Sziasztok!
Csináltam egy hullarendszert, és azóta nem mindig futnak le az onplayerdeath alatt lévő dolgok.
Mitől van ez, és hogy lehetne megoldani?
OnPlayerDeath:
public OnPlayerDeath(playerid, killerid, reason)
{
new S[128], S2[128], Fegyvernev[128];
new Weapon = GetPlayerWeapon(killerid);
KillTimer(EhsegTimer[playerid]);
pInfo[playerid][pEhseg] = 0;
format(serulese[playerid], 64, \"-\");
Meghalt[playerid] = 1;
SetPlayerHealth(playerid, 100.0);
ElolDeagle[playerid] = 0;
ElolColt[playerid] = 0;
ElolUto[playerid] = 0;
FegyverElol[playerid] = 0;
uzi1[playerid] = 0;
Injourney[playerid] = 0;
Watching[playerid] = 0;
Goto[playerid] = 0;
Serult[playerid] = false;
beszorult[id]= false;
KillTimer(SerultTimer[playerid]);
for(new hulla; hulla < MAX_HULLA; hulla++)
{
if(HullaInfo[hulla][Van] == 0)
{
GetPlayerPos(playerid, HullaInfo[hulla][PosX], HullaInfo[hulla][PosY], HullaInfo[hulla][PosZ]);
HullaInfo[hulla][HullaObject] = CreateDynamicObject(2907, HullaInfo[hulla][PosX], HullaInfo[hulla][PosY], HullaInfo[hulla][PosZ]-0.8, 0, 0, 274);
HullaInfo[hulla][Van] = 1;
format(HullaInfo[hulla][Kioltemeg], 24, \"%s\", Nev(killerid));
format(HullaInfo[hulla][Halott], 24, \"%s\", Nev(playerid));
HullaInfo[hulla][Penz] = pInfo[playerid][pMoney];
pInfo[playerid][pMoney] = 0;
HullaInfo[hulla][Htext3d] = CreateDynamic3DTextLabel(\"HOLTTEST\\n(( /hulla ))\", CITROM, HullaInfo[hulla][PosX], HullaInfo[hulla][PosY], HullaInfo[hulla][PosZ], 20.0);
if(reason < 49)
{
GetWeaponName(Weapon, Fegyvernev,sizeof(Fegyvernev));
format(HullaInfo[hulla][HalalOka], 64, \"Lőtt seb: %s\", Fegyvernev);
}
if(reason == 49)
{
format(HullaInfo[hulla][HalalOka], 64, \"Elgázolták\");
}
if(reason == 50)
{
format(HullaInfo[hulla][HalalOka], 64, \"Vágások a testen\");
}
if(reason == 51)
{
format(HullaInfo[hulla][HalalOka], 64, \"Felrobbant\");
}
if(reason == 53)
{
format(HullaInfo[hulla][HalalOka], 64, \"Megfulladt\");
}
if(reason == 54)
{
format(HullaInfo[hulla][HalalOka], 64, \"Lezuhant\");
}
}
}
if(reason < 49)
{
new str1[250];
new zona[MAX_PLAYER_NAME];
GetPlayer2DZone(playerid, zona, MAX_ZONE_NAME);
SendRendorMessage(KEK, \"Központ: Figyelem minden egységnek!\");
SendFBIMessage(KEK, \"Központ: Figyelem minden egységnek!\");
format(str1, sizeof(str1), \"%s körzetben gyilkosság történt.\",zona);
SendRendorMessage(KEK, str1);
SendFBIMessage(KEK, str1);
SendRendorMessage(KEK, \"Minden elérhető járőr azonnal induljon a helyszínre!\");
SendFBIMessage(KEK, \"Minden elérhető járőr azonnal induljon a helyszínre\");
}
if(reason < 49)
{
GetWeaponName(Weapon, Fegyvernev,sizeof(Fegyvernev));
format(S, sizeof(S), \"[AC] %s meghalt. Megölte: %s ( Fegyver: %s )\", Nev(playerid), Nev(killerid), Fegyvernev);
SendAdminMessage(PIROS, S);
}
if(reason == 49)
{
format(S, sizeof(S), \"[AC] %s meghalt. Elütötte: %s.\", Nev(playerid), Nev(killerid));
SendAdminMessage(PIROS, S);
}
if(reason == 50)
{
format(S, sizeof(S), \"[AC] %s meghalt. Lekaszálta: %s.\", Nev(playerid), Nev(killerid));
SendAdminMessage(PIROS, S);
}
if(reason == 51)
{
format(S, sizeof(S), \"[AC] %s meghalt. Felrobbantotta: %s.\", Nev(playerid), Nev(killerid));
SendAdminMessage(PIROS, S);
}
if(reason == 53)
{
format(S, sizeof(S), \"[AC] %s meghalt. Mefulladt\", Nev(playerid));
SendAdminMessage(PIROS, S);
}
if(reason == 54)
{
format(S, sizeof(S), \"[AC] %s meghalt. Halál oka: Lezuhant\", Nev(playerid));
SendAdminMessage(PIROS, S);
}
if(TilosOlni == 1)
{
new stringke[128];
new sendername[32];
GetPlayerName(killerid, sendername, sizeof(sendername));
//new playa;
//new randomaj;
//new tmp[256];
//new name[24];
//GetPlayerName(killerid, name, sizeof(name));
//tmp = strtok(cmdtext, idx);
//playa = killerid;
format(stringke, sizeof(stringke), \"%s AdminJailba zárva a rendszer által | Indok: Zero Tolerancia | Idő: 60 Perc |\",sendername);
SendClientMessageToAll(PIROS, stringke);
pInfo[killerid][pBorton] = 60 * 60;
AJLog(S2);
SetPlayerInterior(id, 3), SetPlayerPos(id, 1237.2462,-687.9935,1085.4559);
SetPlayerHealth(killerid, 100000);
format(S, sizeof(S), \"AdminJailba kerültél! Indok: Zero Tolerancia | Idő: 60 Perc\");
SendClientMessage(killerid, PIROS, S);
//SetPlayerInterior(killerid, 3), SetPlayerPos(killerid, 2985.0122,1535.7924,43.0559);
//KillTimer(BortonTimer[killerid]);
//BortonTimer[killerid] = SetTimerEx(\"IsPlayerSzabad\", 1000, true, \"i\", id);
}
if(reason != 5 && reason != 22 && reason != 24) return 0;
new Float:pPosX, Float:pPosY, Float:pPosZ;
GetPlayerPos(playerid, pPosX, pPosY, pPosZ);
for(new i_slot = 0, gun, ammo; i_slot != 12; i_slot++)
{
GetPlayerWeaponData(playerid, i_slot, gun, ammo);
if(gun != 0 && ammo != 0) Fegyvereldobas(gun, ammo, pPosX+random(2)-random(2), pPosY+random(2)-random(2), pPosZ);
}
return 1;
}