Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[Szukam] Licznik zabójstw granatem


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 therealfr0zen

    Życzliwy

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 07.11.2019 23:44

Witam.

Szukałem, ale nie znalazłem więc postanowiłem, że zapytam. Otóż szukam pluginu (o ile taki jest, jeśli nie, będę wdzięczny za kod), który ma za zadanie naliczać zabójstwa z granatów (he). Może być to coś na wzór /top15, tzn. po wpisaniu odpowiedniej komendy na say (np. /granat) otwierałoby się okno motd z przykładowymi informacjami:

Łączna ilość zabójstw: X
Łączna ilość zadanych obrażeń: X


lub

po wpisaniu odpowiedniej komendy (w/w) na czacie pojawiałaby się przykładowa informacja:

say /granat
Zdobyłeś X zabójstw z granatów odłamkowych.


Za każdą pomoc z góry dziękuję.

Użytkownik therealfr0zen edytował ten post 07.11.2019 23:46

  • +
  • -
  • 0

#2 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 08.11.2019 10:58

https://amxx.pl/topi...-stattrak-menu/

 


  • +
  • -
  • 1

#3 therealfr0zen

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 08.11.2019 18:56

Plus za pomysł, ale...

Edytowałem sobie kod w taki sposób:

#include <amxmodx>
#include <nvault>

#define AUTHOR "Alelluja | aSior - amxx.pl/user/60210-asiorr/"

#define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)
#define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++)

new const statTrakMenuCommands[][] =
{
"/granat"
};

new const weaponsData[][] =
{
"Fragi"
};

new const weaponIndexes[] =
{
"CSW_HEGRANADE"

};


new userStatTrak[33][33],
vaultFile;

public plugin_init()
{
register_plugin("Stattrak CSGO", "v0.1", AUTHOR);

registerCommands(statTrakMenuCommands, charsmax(statTrakMenuCommands), "statTrakMenu");

register_event("DeathMsg", "playerDeathEvent", "a");

vaultFile = nvault_open("statTrak");
}

public playerDeathEvent()
{
new killer = read_data(1),
victim = read_data(2),
weaponName[33],
weaponIndex;

if(killer == victim || !is_user_connected(killer) || !is_user_connected(victim))
{
return;
}

read_data(4, weaponName, charsmax(weaponName));

format(weaponName, charsmax(weaponName), "weapon_%s", weaponName);

weaponIndex = get_weaponid(weaponName);

if(!weaponIndex || !inArray(weaponIndex, weaponIndexes, sizeof(weaponIndexes)))
{
return;
}

userStatTrak[killer][weaponIndex]++;
saveData(killer)
}

public statTrakMenu(index)
{
new menuIndex = menu_create("Menu StatTrak:", "statTrakMenu_handler"),
item[64],
menuCallback = menu_makecallback("blockOptions");

ForArray(i, weaponsData)
{
formatex(item, charsmax(item), "\r%s \w--> \rZabojstwa: %i", weaponsData[i], userStatTrak[index][weaponIndexes[i]]);

menu_additem(menuIndex, item, _, _, menuCallback);
}

menu_display(index, menuIndex);

return PLUGIN_HANDLED;
}

public statTrakMenu_handler(id, menu, item)
{
menu_destroy(menu);

if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}

return PLUGIN_HANDLED;
}

public blockOptions(index, menu, item)
{
return ITEM_DISABLED;
}

public client_putinserver(index)
{
readData(index);
}

saveData(index)
{
new userName[33],
vaultKey[33],
vaultData[33];

get_user_name(index, userName, charsmax(userName));

formatex(vaultKey, charsmax(vaultKey), "%s-statTrak", userName);

ForArray(i, weaponIndexes)
{
format(vaultData, charsmax(vaultData), "%s%i#", vaultData, userStatTrak[index][weaponIndexes[i]]);
}

nvault_set(vaultFile, vaultKey, vaultData);
}

readData(index)
{
new userName[33],
vaultKey[33],
vaultData[33],
intValues[30][30];

get_user_name(index, userName, charsmax(userName));

formatex(vaultKey, charsmax(vaultKey), "%s-statTrak", userName);

nvault_get(vaultFile, vaultKey, vaultData, charsmax(vaultData));

explode(vaultData, '#', intValues, charsmax(intValues), sizeof(weaponIndexes))

ForArray(i, weaponIndexes)
{
userStatTrak[index][weaponIndexes[i]] = str_to_num(intValues[i]);
}
}

inArray(value, const array[], arraySize)
{
ForRange(i, 0, arraySize)
{
if(array[i] == value)
{
return true;
}
}

return false;
}

stock explode(const string[],const character,output[][],const maxs,const maxlen)
{
new iDo = 0,
len = strlen(string),
oLen = 0;

do
{
oLen += (1+copyc(output[iDo++],maxlen,string[oLen],character))
}
while(oLen < len && iDo < maxs)
}

stock registerCommands(const array[][], arraySize, function[])
{
#if !defined ForRange

#define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)

#endif

#if AMXX_VERSION_NUM >= 183

ForRange(i, 0, arraySize - 1)
{
ForRange(j, 0, 1)
{
register_clcmd(fmt("%s %s", !j ? "say" : "say_team", array[i]), function);
}
}

#else

new newCommand[33];

ForRange(i, 0, arraySize - 1)
{
ForRange(j, 0, 1)
{
formatex(newCommand, charsmax(newCommand), "%s %s", !j ? "say" : "say_team", array[i]);
register_clcmd(newCommand, function);
}
}

#endif
}

Kompiluje się to bez żadnego problemu. Do tego odblokowałem moduł nvault oraz dopisałem oczywiście granat.amxx do plugin.ini,niestety po wpisaniu komendy /granat na serwerze totalnie nic się nie dzieje, a serwer nie wywala żadnych błędów, więc logów nawet nie mogę podać.

Ma ktoś jakiś pomysł co mogło pójść nie tak?

@edit
Sprawdzane na serwerze testowym z wersją amx 1.8.3

Użytkownik therealfr0zen edytował ten post 08.11.2019 18:59

  • +
  • -
  • 0

#4 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 09.11.2019 08:08

#include <amxmodx>
#include <nvault>

#define AUTHOR "Alelluja | aSior - amxx.pl/user/60210-asiorr/"

#define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)
#define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++)

new const statTrakMenuCommands[][] =
{
"/granat"
};

new const weaponsData[][] =
{
"Fragi"
};

new const weaponIndexes[] =
{
CSW_HEGRANADE

};


new userStatTrak[33][33],
vaultFile;

public plugin_init()
{
register_plugin("Stattrak CSGO", "v0.1", AUTHOR);

registerCommands(statTrakMenuCommands, charsmax(statTrakMenuCommands), "statTrakMenu");

register_event("DeathMsg", "playerDeathEvent", "a");

vaultFile = nvault_open("statTrak");
}

public playerDeathEvent()
{
new killer = read_data(1),
victim = read_data(2),
weaponName[33],
weaponIndex;

if(killer == victim || !is_user_connected(killer) || !is_user_connected(victim))
{
return;
}

read_data(4, weaponName, charsmax(weaponName));

format(weaponName, charsmax(weaponName), "weapon_%s", weaponName);

weaponIndex = get_weaponid(weaponName);

if(!weaponIndex || !inArray(weaponIndex, weaponIndexes, sizeof(weaponIndexes)))
{
return;
}

userStatTrak[killer][weaponIndex]++;
saveData(killer)
}

public statTrakMenu(index)
{
new menuIndex = menu_create("Menu StatTrak:", "statTrakMenu_handler"),
item[64],
menuCallback = menu_makecallback("blockOptions");

ForArray(i, weaponsData)
{
formatex(item, charsmax(item), "\r%s \w--> \rZabojstwa: %i", weaponsData[i], userStatTrak[index][weaponIndexes[i]]);

menu_additem(menuIndex, item, _, _, menuCallback);
}

menu_display(index, menuIndex);

return PLUGIN_HANDLED;
}

public statTrakMenu_handler(id, menu, item)
{
menu_destroy(menu);

if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}

return PLUGIN_HANDLED;
}

public blockOptions(index, menu, item)
{
return ITEM_DISABLED;
}

public client_putinserver(index)
{
readData(index);
}

saveData(index)
{
new userName[33],
vaultKey[33],
vaultData[33];

get_user_name(index, userName, charsmax(userName));

formatex(vaultKey, charsmax(vaultKey), "%s-statTrak", userName);

ForArray(i, weaponIndexes)
{
format(vaultData, charsmax(vaultData), "%s%i#", vaultData, userStatTrak[index][weaponIndexes[i]]);
}

nvault_set(vaultFile, vaultKey, vaultData);
}

readData(index)
{
new userName[33],
vaultKey[33],
vaultData[33],
intValues[30][30];

get_user_name(index, userName, charsmax(userName));

formatex(vaultKey, charsmax(vaultKey), "%s-statTrak", userName);

nvault_get(vaultFile, vaultKey, vaultData, charsmax(vaultData));

explode(vaultData, '#', intValues, charsmax(intValues), sizeof(weaponIndexes))

ForArray(i, weaponIndexes)
{
userStatTrak[index][weaponIndexes[i]] = str_to_num(intValues[i]);
}
}

inArray(value, const array[], arraySize)
{
ForRange(i, 0, arraySize)
{


  • +
  • -
  • 1

#5 therealfr0zen

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 09.11.2019 11:20

#include <amxmodx>
#include <nvault>

#define AUTHOR "Alelluja | aSior - amxx.pl/user/60210-asiorr/"

#define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)
#define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++)

new const statTrakMenuCommands[][] =
{
"/granat"
};

new const weaponsData[][] =
{
"Fragi"
};

new const weaponIndexes[] =
{
CSW_HEGRANADE

};


new userStatTrak[33][33],
vaultFile;

public plugin_init()
{
register_plugin("Stattrak CSGO", "v0.1", AUTHOR);

registerCommands(statTrakMenuCommands, charsmax(statTrakMenuCommands), "statTrakMenu");

register_event("DeathMsg", "playerDeathEvent", "a");

vaultFile = nvault_open("statTrak");
}

public playerDeathEvent()
{
new killer = read_data(1),
victim = read_data(2),
weaponName[33],
weaponIndex;

if(killer == victim || !is_user_connected(killer) || !is_user_connected(victim))
{
return;
}

read_data(4, weaponName, charsmax(weaponName));

format(weaponName, charsmax(weaponName), "weapon_%s", weaponName);

weaponIndex = get_weaponid(weaponName);

if(!weaponIndex || !inArray(weaponIndex, weaponIndexes, sizeof(weaponIndexes)))
{
return;
}

userStatTrak[killer][weaponIndex]++;
saveData(killer)
}

public statTrakMenu(index)
{
new menuIndex = menu_create("Menu StatTrak:", "statTrakMenu_handler"),
item[64],
menuCallback = menu_makecallback("blockOptions");

ForArray(i, weaponsData)
{
formatex(item, charsmax(item), "\r%s \w--> \rZabojstwa: %i", weaponsData[i], userStatTrak[index][weaponIndexes[i]]);

menu_additem(menuIndex, item, _, _, menuCallback);
}

menu_display(index, menuIndex);

return PLUGIN_HANDLED;
}

public statTrakMenu_handler(id, menu, item)
{
menu_destroy(menu);

if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}

return PLUGIN_HANDLED;
}

public blockOptions(index, menu, item)
{
return ITEM_DISABLED;
}

public client_putinserver(index)
{
readData(index);
}

saveData(index)
{
new userName[33],
vaultKey[33],
vaultData[33];

get_user_name(index, userName, charsmax(userName));

formatex(vaultKey, charsmax(vaultKey), "%s-statTrak", userName);

ForArray(i, weaponIndexes)
{
format(vaultData, charsmax(vaultData), "%s%i#", vaultData, userStatTrak[index][weaponIndexes[i]]);
}

nvault_set(vaultFile, vaultKey, vaultData);
}

readData(index)
{
new userName[33],
vaultKey[33],
vaultData[33],
intValues[30][30];

get_user_name(index, userName, charsmax(userName));

formatex(vaultKey, charsmax(vaultKey), "%s-statTrak", userName);

nvault_get(vaultFile, vaultKey, vaultData, charsmax(vaultData));

explode(vaultData, '#', intValues, charsmax(intValues), sizeof(weaponIndexes))

ForArray(i, weaponIndexes)
{
userStatTrak[index][weaponIndexes[i]] = str_to_num(intValues[i]);
}
}

inArray(value, const array[], arraySize)
{
ForRange(i, 0, arraySize)
{


Błąd przy kompilacji.

Wystąpił nieznany błąd (134)


  • +
  • -
  • 0

#6 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 09.11.2019 15:04

Jak kompilujesz lokalnie czy online? Sądząc po błędzie to masz wadliwy kompilator.
Zmieniałeś coś w kodzie prócz tablic?

Użytkownik Devastator edytował ten post 09.11.2019 15:05

  • +
  • -
  • 1

#7 therealfr0zen

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 09.11.2019 15:28

Jak kompilujesz lokalnie czy online? Sądząc po błędzie to masz wadliwy kompilator.
Zmieniałeś coś w kodzie prócz tablic?

Nic więcej nie zmieniałem, a kompilowałem online tu na forum.

Użytkownik therealfr0zen edytował ten post 09.11.2019 15:29

  • +
  • -
  • 0

#8 therealfr0zen

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 09.11.2019 16:22

Nie mogę edytować postu, a chciałbym zapytać. Może jest ktoś w stanie przerobić powyższy plugin (stattrak) lub napisać od 0, który ma za zadanie naliczać zabójstwa wyłącznie granatem zaczepnym (he), zapisywać ilość zdobytych fragów oraz stwórzyć ranking w motd pod komendą /hetop15?
  • +
  • -
  • 0

#9 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 09.11.2019 16:25

Skompiluj lokalnie
https://amxx.pl/topi...ilacja-lokalna/

Jak kompilujesz lokalnie czy online? Sądząc po błędzie to masz wadliwy kompilator.
Zmieniałeś coś w kodzie prócz tablic?

Nic więcej nie zmieniałem, a kompilowałem online tu na forum.

  • +
  • -
  • 1

#10 therealfr0zen

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 09.11.2019 16:35

Skompiluj lokalnie
https://amxx.pl/topi...ilacja-lokalna/

Jak kompilujesz lokalnie czy online? Sądząc po błędzie to masz wadliwy kompilator.
Zmieniałeś coś w kodzie prócz tablic?

Nic więcej nie zmieniałem, a kompilowałem online tu na forum.

Niestety nie mam takiej możliwości, z tego względu, że nie mam dostępu do komputera. Jeśli byłbyś tak miły i podesłał gotowe, skomplikowane, działające pliki .sma oraz .amx to będę Ci wdzięczny.
  • +
  • -
  • 0

#11 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 09.11.2019 17:37

Masz

 

a tu skompilowaną wersje

https://www107.zippy...opqJo/file.html

Załączone pliki


  • +
  • -
  • 1

#12 therealfr0zen

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:25
  • GG:
  • Imię:Olaf
  • Lokalizacja:Kaszuby
Offline

Napisano 09.11.2019 19:23

Niestety w dalszym ciągu nie działa. Spróbuję to zrobić inspirując się innym pluginem, dzięki za czas i chęć pomocy.
  • +
  • -
  • 0

#13 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 09.11.2019 20:12

Bez logów nic nie zdziałam a muszą na pewno być
  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych