01.02.2016, 19:36
When a player gets killed the server crashes and i can't figure out why.
This is my OnPlayerDeath
This is my OnPlayerDeath
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
Alive[playerid] = 0;
CheckDelay[playerid] = 10;
TextDrawHideForPlayer(playerid, Status[playerid]);
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleVariables[vehicleid][vVehicleJob] == 7)
{
format(szMessage, sizeof(szMessage), "Job failed.");
SCM(playerid, COLOR_NOB, szMessage);
SetVehicleToRespawnEx(vehicleid);
KillTimer(mowertimer[playerid]);
MowerMoney[playerid] = 0;
TextDrawHideForPlayer(playerid,Mower[playerid]);
playerVariables[playerid][pFarmerMoney] = 0;
}
if(PlayerPaintballing[playerid] != 0)
{
new string[500];
new pinfo[128];
KillP[killerid]++;
DeathP[playerid]++;
format(string, sizeof(string), "You have killed %s. You now have %d kills.",GetName(playerid), KillP[killerid]);
SendClientMessage(killerid, COLOR_GENANNOUNCE, string);
format(string, sizeof(string), "You have been killed by %s.",GetName(killerid));
SendClientMessage(playerid, COLOR_GENANNOUNCE, string);
PlayerPaintballScore[killerid] = KillP[killerid];
if(PlayerPaintballScore[killerid] > PaintballWinnerScore)
{
PaintballWinner = killerid;
PaintballWinnerScore = PlayerPaintballScore[killerid];
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
if(PlayerPaintballing[i] != 0)
{
format(pinfo,sizeof(pinfo),"%s is now in lead with %d kills.",GetName(PaintballWinner),PaintballWinnerScore);
SCM(i, COLOR_YELLOW, pinfo);
}
}
}
}
return 1;
}
KillTimer(mowertimer[playerid]);
if(playerVariables[playerid][pHeadValue] > 0)
{
if(IsPlayerConnected(killerid))
{
if(playerVariables[killerid][pGroup] == 12)
{
if(GoChase[killerid] == playerid)
{
new string[256];
new killer[MAX_PLAYER_NAME];
new name[MAX_PLAYER_NAME];
GetPlayerName(killerid, killer, sizeof(killer));
GetPlayerName(playerid, name, sizeof(name));
playerVariables[killerid][pMoney] += playerVariables[playerid][pHeadValue];
format(string,128,"<< Hitman %s has fulfilled the contract on %s and collected $%s. Distance: %.0fm. >>",killer,name,playerVariables[playerid][pHeadValue], GetDistanceBetweenPlayers(killerid, playerid));
SendToGroup(12, COLOR_HITMAN, string);
playerVariables[playerid][pHeadValue] = -1;
GotHit[playerid] = 0;
GetChased[playerid] = 999;
GoChase[killerid] = 999;
}
}
}
}
new turfkiller, turfplayerid;
for(new i = 0; i <= sizeof(TurfInfo); i++)
{
if(IsPlayerInTurf(playerid, i) == 1)
{
turfplayerid = i;
break;
}
}
for(new i = 0; i <= sizeof(TurfInfo); i++)
{
if(IsPlayerInTurf(killerid, i) == 1)
{
turfkiller = i;
break;
}
}
new string[256];
if(WarInfo[turfplayerid][wTime] > 0 && WarInfo[turfkiller][wTime] > 0)
{
if(turfplayerid == turfkiller)
{
if(playerVariables[playerid][pGroup] == WarInfo[turfplayerid][wAttacker] && playerVariables[killerid][pGroup] == WarInfo[turfplayerid][wFaction])
{
playerVariables[playerid][pWarDeaths] += 1;
format(string, sizeof(string), "You have been killed by %s (%i)", playerVariables[killerid][pNormalName], killerid);
SCM(playerid, COLOR_GENANNOUNCE, string);
groupVariables[WarInfo[turfkiller][wFaction]][gScore] += 1;
playerVariables[killerid][pWarScore] += 1;
format(string, sizeof(string), "You have killed %s (%i).", playerVariables[playerid][pNormalName], playerid);
SCM(killerid, COLOR_GENANNOUNCE, string);
SCM(playerid, COLOR_LIGHTBLUE, "You will be spawned in the HQ.");
}
else if(playerVariables[killerid][pGroup] == WarInfo[turfkiller][wAttacker] && playerVariables[playerid][pGroup] == WarInfo[turfkiller][wFaction])
{
playerVariables[playerid][pWarDeaths] += 1;
format(string, sizeof(string), "You have been killed by %s (%i).", playerVariables[killerid][pNormalName], killerid);
SCM(playerid, COLOR_GENANNOUNCE, string);
groupVariables[WarInfo[turfplayerid][wAttacker]][gScore] += 1;
playerVariables[killerid][pWarScore] += 1;
format(string, sizeof(string), "You have killed %s (%i).", playerVariables[playerid][pNormalName], playerid);
SCM(killerid, COLOR_GENANNOUNCE, string);
SCM(playerid, COLOR_LIGHTBLUE, "You will be spawned in group HQ.");
}
}
}
if((WarInfo[turfkiller][wTime] != 0 && (WarInfo[turfkiller][wAttacker] == playerVariables[playerid][pGroup] || WarInfo[turfkiller][wFaction] == playerVariables[playerid][pGroup]) && playerVariables[playerid][pGroup] != 0) || (playerVariables[killerid][pGroup] == 1
|| playerVariables[killerid][pGroup] == 2 || playerVariables[killerid][pGroup] == 3 || playerVariables[killerid][pGroup] == 5) || (playerVariables[playerid][pGroup] == 1 || playerVariables[playerid][pGroup] == 2 || playerVariables[playerid][pGroup] == 3 || playerVariables[playerid][pGroup] == 5) || (playerVariables[playerid][pGroup] == playerVariables[killerid][pGroup]) || (PlayerPaintballing[killerid] >= 1))
{
}
else
{
WantedID[playerid] = killerid;
SCM(playerid, COLOR_GENANNOUNCE, "{E60000}[KILL]: {FFFFFF}%s murdered you, use [/call 112]. You have 60 seconds to announce the police.");
WantedIDTime[playerid] = 60;
}
//SetTimerEx("Spawn", 3999, 0, "d", playerid);
SetPlayerHealth(playerid, 0);
killerid = INVALID_PLAYER_ID;
return 1;
}

