27.02.2010, 15:23
Its realy annoying - I have separate function in callback OnPlayerSpawn called SetPlayerSpawn.
It runs greate with 28 calls (respawns) then... Its gone
I have made test variable which count function calls and its 28 calls before function stop responding.
It runs greate with 28 calls (respawns) then... Its gone
I have made test variable which count function calls and its 28 calls before function stop responding.
Код:
public SetPlayerSpawn(playerid) { test++; printf("SetPlayerSpawn Count: %d", test); if(IsPlayerConnected(playerid)) { printf("SetPlayerSpawn - IsPlayerConnected - 1"); if(PlayerInfo[playerid][pCrashed] == 1) { printf("SetPlayerSpawn - Crashed - 0"); if(AdminDuty[playerid] == 1) { SetPlayerColor(playerid,COLOR_ADMINDUTY); SetPlayerHealth(playerid,99999); SetPlayerArmour(playerid,99999); } //SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]); SetPlayerToPos(playerid,PlayerInfo[playerid][pCrashX],PlayerInfo[playerid][pCrashY],PlayerInfo[playerid][pCrashZ]); SetPlayerInterior(playerid,PlayerInfo[playerid][pCrashInt]); SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pCrashW]); PlayerInfo[playerid][pCrashed] = 0; GameTextForPlayer(playerid, "~r~Crashed...~n~~g~Respawn na ostatniej znanej pozycji.", 7000, 6); if(PlayerInfo[playerid][pSex] == 1) { PlayerLocalMessage(playerid,15.0,"został przeniesiony na ostatnią znaną pozycje."); } else { PlayerLocalMessage(playerid,15.0,"została przeniesiony na ostatnią znaną pozycje."); } return 1; } if(PlayerInfo[playerid][pCrashed] == 0) { printf("SetPlayerSpawn - Crashed - 0"); if(JustDied[playerid] == 1) { printf("SetPlayerSpawn - JustDied - 1"); //SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]); if(PlayerInfo[playerid][pLevel] >=1 && PlayerInfo[playerid][pLevel] < 10) { SetPlayerHealth(playerid,50); } if(PlayerInfo[playerid][pLevel] >= 10 && PlayerInfo[playerid][pLevel] < 20) { SetPlayerHealth(playerid,75); } if(AdminDuty[playerid] == 1) { SetPlayerColor(playerid,COLOR_ADMINDUTY); SetPlayerHealth(playerid,99999); SetPlayerArmour(playerid,99999); new house = PlayerInfo[playerid][pHouseKey]; if(house != 255 && PlayerInfo[playerid][pSpawnPoint] == 1) { SetPlayerInterior(playerid,Houses[house][ExitInterior]); SetPlayerToPos(playerid, Houses[house][ExitX], Houses[house][ExitY],Houses[house][ExitZ]); SetPlayerVirtualWorld(playerid,house); JustDied[playerid] = 0; return 1; } if(PlayerInfo[playerid][pFaction] != 255 && PlayerInfo[playerid][pSpawnPoint] == 0) { SetPlayerToFactionColor(playerid); SetPlayerToFactionSkin(playerid); SetPlayerToPos(playerid, -2649.4966,576.2688,14.6094); SetPlayerFacingAngle(playerid, 180.5617); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid, 0); JustDied[playerid] = 0; return 1; } } if(AdminDuty[playerid] == 0) { if(PlayerInfo[playerid][pFaction] != 255 && PlayerInfo[playerid][pJailed] == 0) { SetPlayerToFactionColor(playerid); SetPlayerToFactionSkin(playerid); SetPlayerToPos(playerid, -2649.4966,576.2688,14.6094); SetPlayerFacingAngle(playerid, 180.5617); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid, 0); JustDied[playerid] = 0; return 1; } if(PlayerInfo[playerid][pFaction] == 255 && PlayerInfo[playerid][pJailed] == 0) { SetPlayerToPos(playerid, -2649.4966,576.2688,14.6094); SetPlayerFacingAngle(playerid, 180.5617); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid, 0); JustDied[playerid] = 0; return 1; } if(PlayerInfo[playerid][pJailed] == 1) { if(PlayerInfo[playerid][pFaction] != 255) { SetPlayerToFactionColor(playerid); SetPlayerToFactionSkin(playerid); } SetPlayerVirtualWorld(playerid,2); //BUILDING ID 2, MAKE SURE PD IS ID 2 SetPlayerInterior(playerid, 6); SetPlayerToPos(playerid,264.5743,77.5118,1001.0391); SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[BLAD:] Miłego czekania !"); JustDied[playerid] = 0; return 1; } } } else { printf("SetPlayerSpawn - JustDied - 0"); //SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]); if(PlayerInfo[playerid][pLevel] >=1 && PlayerInfo[playerid][pLevel] < 10) { SetPlayerHealth(playerid,50); } if(PlayerInfo[playerid][pLevel] >= 10 && PlayerInfo[playerid][pLevel] < 20) { SetPlayerHealth(playerid,75); } if(AdminDuty[playerid] == 1) { SetPlayerColor(playerid,COLOR_ADMINDUTY); SetPlayerHealth(playerid,99999); SetPlayerArmour(playerid,99999); } if(PlayerInfo[playerid][pJailed] == 1) { if(PlayerInfo[playerid][pFaction] != 255) { SetPlayerToFactionColor(playerid); SetPlayerToFactionSkin(playerid); } SetPlayerVirtualWorld(playerid,2); //BUILDING ID 2, MAKE SURE PD IS ID 2 SetPlayerInterior(playerid, 6); SetPlayerToPos(playerid,264.5743,77.5118,1001.0391); SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[BLAD:] Nie jesteś jeszcze wolny !"); return 1; } if(PlayerInfo[playerid][pHouseKey] != 255 && PlayerInfo[playerid][pSpawnPoint] == 1 && PlayerInfo[playerid][pJailed] == 0) { SetPlayerInterior(playerid,Houses[PlayerInfo[playerid][pHouseKey]][ExitInterior]); SetPlayerToPos(playerid, Houses[PlayerInfo[playerid][pHouseKey]][ExitX], Houses[PlayerInfo[playerid][pHouseKey]][ExitY],Houses[PlayerInfo[playerid][pHouseKey]][ExitZ]); SetPlayerVirtualWorld(playerid,PlayerInfo[playerid][pHouseKey]); return 1; } if(PlayerInfo[playerid][pFaction] != 255 && PlayerInfo[playerid][pSpawnPoint] == 0 && PlayerInfo[playerid][pJailed] == 0) { SetPlayerToFactionColor(playerid); SetPlayerToFactionSkin(playerid); SetPlayerToPos(playerid,DynamicFactions[PlayerInfo[playerid][pFaction]][fX],DynamicFactions[PlayerInfo[playerid][pFaction]][fY],DynamicFactions[PlayerInfo[playerid][pFaction]][fZ]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); return 1; } if(PlayerInfo[playerid][pFaction] == 255 && PlayerInfo[playerid][pHouseKey] == 255 && PlayerInfo[playerid][pJailed] == 0) { //====================[Setting Civilian Position]========================== SetPlayerToPos(playerid,CivilianSpawn[X],CivilianSpawn[Y],CivilianSpawn[Z]); SetPlayerVirtualWorld(playerid, CivilianSpawn[World]); SetPlayerInterior(playerid, CivilianSpawn[Interior]); SetPlayerFacingAngle(playerid,CivilianSpawn[Angle]); //========================================================================= return 1; } } } } return 1; }