A czy zamiast przechowywać wszystkie dane o graczu jak nick, kolor skóry, nuber buta, filuta długość i średnice nie prościej samo id? A później pobierać to sobie w wygodnym momencie.
I skąd na miłość boską mania używania tasków.
Dodatkowo nikt nigdzie nie sprawdził czy śmierć następuje w wyniku zabójstwa granatem. Przecież równie szybko jedna po drugiej może nastąpić śmierć w wyniku przestrzelenia dwóch graczy w jednej linii z awp.
Nie testowałem, bo nie mam jak. Wiadomość powinna się pokazać w ciągu kilku sekund od śmierci.
#include <amxmodx>
new Float:last_kill[33],ofiary[33][10]//zakładam, że więcej niż 10 nie zabije:D
public plugin_init()
{
register_plugin("grenade multikill","0.1","grankee");
register_event("DeathMsg", "DeathMsg", "a");
register_event("ClCorpse", "hook_corpse", "a", "12>0")
}
public DeathMsg()
{
new Killer = read_data(1);
new Victim = read_data(2);
if(!Killer || Killer==Victim)
return PLUGIN_CONTINUE
new weapon[64]
read_data(4,weapon,63)
if(!equali(weapon,"HEGRENADE"))
return PLUGIN_CONTINUE
if(last_kill[Killer]+0.2>get_gametime())
{
for(new i=1;i<10;i++)
{
if(ofiary[Killer][i]==0)
{
ofiary[Killer][i]=Victim
}
}
}
else
{
for(new i=1;i<10;i++)
{
ofiary[Killer][i]=0
}//Czyszczenie tablicy ofiar, tak dla pewności
ofiary[Killer][0]=Victim
}
last_kill[Killer]=get_gametime()
}
public hook_corpse()
{
new id = read_data(12)
for(new i=0;i<33;i++)
{
if(ofiary[i][0]==id)
{
new text[256],name[32]
get_user_name(i,name,31)
format(text,255,"%s zabil graczy",name)
get_user_name(ofiary[Killer][0],name,31)
format(text,255,"%s: %s",text,name)
for(new a=1;ofiary[Killer][a]>0;a++)
{
get_user_name(ofiary[Killer][a])
ofiary[Killer][a]=0
format(text,255,"%s, %s",text,name)
}
format(text,255," %s granatem.",text,name)
break
}
}
}