First check if the player is injured, and in last instance set the player to the last position. If it still doesn't work, debug your pFlag value.
pawn Код:
if(IsBit(pFlag[playerid], pBIT_INJURED))
{
....
}
else if(IsBit(pFlag[playerid], pBIT_HOSPITALIZED))
{
....
}
else(IsBit(pFlag[playerid], pBIT_CAGED))
{
....
}
else if(pInfo[playerid][Prison] >= 2)
{
....
}
else if(pInfo[playerid][PosX] == 0.0 && pInfo[playerid][PosY] == 0.0) // new player
{
new position = random(sizeof(CivilianSpawn));
SetPlayerPos(playerid, CivilianSpawn[position][0], CivilianSpawn[position][1], CivilianSpawn[position][2]+0.3);
SetPlayerFacingAngle(playerid, CivilianSpawn[position][3]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetCameraBehindPlayer(playerid);
}
else if(pInfo[playerid][PosX] != 0.0 && pInfo[playerid][PosY] != 0.0) // existing player
{
SetPlayerPos(playerid, pInfo[playerid][PosX], pInfo[playerid][PosY], pInfo[playerid][PosZ]+1.5);
SetPlayerFacingAngle(playerid, pInfo[playerid][PosAngle]);
SetPlayerInterior(playerid, pInfo[playerid][Interior]);
SetPlayerVirtualWorld(playerid, pInfo[playerid][VirtualWorld]);
SendClientMessage(playerid, COLOR_GOV, "SERVER: {FFFFFF}Welcome to your last position.");
if(pInfo[playerid][SkinID] == 0) return ShowModelSelectionMenu(playerid, skinlist, "Select Skin");
}