19.08.2013, 00:04
Olб, tenho um gamemode RPG, e quando eu dou lider para o player ao sair, ou relogar ele perde o seu cargo ...
Preciso muito de ajuda !!!
Preciso muito de ajuda !!!
public OnPlayerDisconnect(playerid, reason) { Acertos[playerid] = 0; CPorder[playerid] = 0; DisablePlayerCheckpoint(playerid); KillTimer(timer[playerid]); new str[124]; GetPlayerName(playerid, str, 24); dini_BoolSet("Atendentes.txt", str, PlayerInfo[playerid][pHelper] == 1); if(PlayerInfo[playerid][pHelper] >= 1) { dini_IntSet("Atendimentos.txt", str, Atendimentos[playerid]); } if(Atendimentos[playerid] > dini_Int("Atendimentos.txt", "Recorde - Atendimentos")) { dini_IntSet("Atendimentos.txt", "Recorde - Atendimentos", Atendimentos[playerid]); dini_Set("Atendimentos.txt", "Recorde - Helper", str); } OnPlayerUpdate(playerid); OnPlayerSave(playerid); KillTimer(tempotd[playerid]); PlayerInfo[playerid][pHelperTrabalhando] = 0; TextDrawHideForPlayer(playerid, Zones[playerid]); TextDrawDestroy(FPS[playerid]); new caller = Mobile[playerid]; if(caller != 255) { if(caller < 255) { SendClientMessage(caller, COLOR_GRAD2, "A ligaзгo caiu..."); CellTime[caller] = 0; CellTime[playerid] = 0; Mobile[caller] = 255; } Mobile[playerid] = 255; CellTime[playerid] = 0; } if(WantedPoints[playerid] != 0) { PlayerInfo[playerid][pJailed] = 1; SetPlayerPos(playerid,264.6288,77.5742,1001.0391); PlayerInfo[playerid][pJailTime] = 240; } if(HireCar[playerid] > 0) { VTrancado[HireCar[playerid]] = 0; UnLockCar(HireCar[playerid]); SetVehicleToRespawn(HireCar[playerid]); HireCar[playerid] = 0; } if(TesteBWS[playerid] == 1) { TesteBWS[playerid] = 0; } if(TesteBWS[playerid] == 2) { TesteBWS[playerid] = 0; } if(TesteBWS[playerid] == 3) { TesteBWS[playerid] = 0; } if(TesteBWS[playerid] == 5) { TesteBWS[playerid] = 0; } if (PlayerInfo[playerid][pBarraca] != 0) { RemoveBarraca(playerid); } if (PlayerInfo[playerid][pParedao] != 0) { RemoveParedao(playerid); } if(pbr[playerid] != 0) { RemoveRoadblock(playerid); } if(gpbr[playerid] != 0) { RemoveRoadgang(playerid); } if(pbq[playerid] != 0) { RemoveRoadCones(playerid); } if(nickn[playerid] != 0) { nickn[playerid] = 0; } switch(reason) { case 0: format(gstring, sizeof(gstring), "%s saiu do server por erro de conexгo ou crash", PlayerName(playerid)); case 1: format(gstring, sizeof(gstring), "%s saiu por vontade propria.", PlayerName(playerid)); case 2: format(gstring, sizeof(gstring), "%s Saiu do servidor kickado ou banido", PlayerName(playerid)); } //ProxDetector(100.0, playerid, gstring,COLOR_LIGHTBLUE,COLOR_LIGHTBLUE,COLOR_LIGHTBLUE,COLOR_LIGHTBLUE,COLOR_LIGHTBLUE); //format(gstring, 128, "%s (ID:%d) Acabou de Sair do BWS!",PlayerName(playerid),playerid); //SendMessageToOthersAdmins(playerid, COLOR_YELLOW, gstring); //gActivePlayers[playerid]--; //numplayers--; if(MudarNickAceito[playerid] == 1) { MudarNickAceito[playerid] = 0; } if(MudarSenhaAceito[playerid] == 1) { MudarSenhaAceito[playerid] = 0; } if(ProvocoMata[playerid] == 1) { GangZoneStopFlashForAll(GZMata); GangZoneShowForAll(GZMata, 0xFFFFFF96); GuerranoMata = 0; ProvocoMata[playerid] = 0; donomata = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraMata); } if(ProvocoHotel[playerid] == 1) { GangZoneStopFlashForAll(GZHotel); GangZoneShowForAll(GZHotel, 0xFFFFFF96); GuerranoHotel = 0; ProvocoHotel[playerid] = 0; donohotel = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraHotel); } if(ProvocoCasarao[playerid] == 1) { GangZoneStopFlashForAll(GZCasarao); GangZoneShowForAll(GZCasarao, 0xFFFFFF96); GuerranoCasarao = 0; ProvocoCasarao[playerid] = 0; donocasarao = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraCasarao); } if(ProvocoEstacao[playerid] == 1) { GangZoneStopFlashForAll(GZEstacao); GangZoneShowForAll(GZEstacao, 0xFFFFFF96); GuerranaEstacao = 0; ProvocoEstacao[playerid] = 0; donoestacao = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraEstacao); } if(ProvocoEstacao[playerid] == 1) { GangZoneStopFlashForAll(GZEstacaoLV); GangZoneShowForAll(GZEstacaoLV, 0xFFFFFF96); GuerranaEstacaoLV = 0; ProvocoEstacaoLV[playerid] = 0; donoestacaoLV = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraEstacaoLV); } if(Provocoroda[playerid] == 1) { GangZoneStopFlashForAll(GZroda); GangZoneShowForAll(GZroda, 0xFFFFFF96); Guerranaroda = 0; Provocoroda[playerid] = 0; donoroda = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraroda); } if(Provocopg[playerid] == 1) { GangZoneStopFlashForAll(GZparkglen); GangZoneShowForAll(GZparkglen, 0xFFFFFF96); Guerranapg = 0; Provocopg[playerid] = 0; donopg = 0; Dominando[playerid] = 0; KillTimer(TempoGuerrapg); } if(ProvocoFavela[playerid] == 1) { GangZoneStopFlashForAll(GZFavela); GangZoneShowForAll(GZFavela, 0xFFFFFF96); GuerranaFavela = 0; ProvocoFavela[playerid] = 0; donoFavela = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraFavela); } if(ProvocoSkate[playerid] == 1) { GangZoneStopFlashForAll(GZSkate); GangZoneShowForAll(GZSkate, 0xFFFFFF96); GuerranoSkate = 0; ProvocoSkate[playerid] = 0; donoskate = 0; Dominando[playerid] = 0; KillTimer(TempoGuerraSkate); } for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(TaxiAccepted[i] < 999) { if(TaxiAccepted[i] == playerid) { TaxiAccepted[i] = 999; GameTextForPlayer(i, "~w~O Cliente~n~~r~Saiu do jogo", 5000, 1); TaxiCallTime[i] = 0; DisablePlayerCheckpoint(i); } } else if(CopsrondaAccepted[i] < 999) { if(CopsrondaAccepted[i] == playerid) { CopsrondaAccepted[i] = 999; GameTextForPlayer(i, "~w~Policial o player~n~~r~Deixou o jogo", 5000, 1); CopsrondaCallTime[i] = 0; DisablePlayerCheckpoint(i); } } else if(MedicAccepted[i] < 999) { if(MedicAccepted[i] == playerid) { MedicAccepted[i] = 999; GameTextForPlayer(i, "~w~O Cliente~n~~r~Saiu do jogo", 5000, 1); MedicCallTime[i] = 0; DisablePlayerCheckpoint(i); } } else if(MechanicAccepted[i] < 999) { if(MechanicAccepted[i] == playerid) { MechanicAccepted[i] = 999; GameTextForPlayer(i, "~w~O Cliente~n~~r~Saiu do jogo", 5000, 1); MechanicCallTime[i] = 0; DisablePlayerCheckpoint(i); } } else if(BusAccepted[i] < 999) { if(BusAccepted[i] == playerid) { BusAccepted[i] = 999; GameTextForPlayer(i, "~w~O Cliente~n~~r~Saiu do jogo", 5000, 1); BusCallTime[i] = 0; DisablePlayerCheckpoint(i); } } } } if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999) { if(IsPlayerConnected(TransportDriver[playerid])) { TransportMoney[TransportDriver[playerid]] += TransportCost[playerid]; TransportTime[TransportDriver[playerid]] = 0; TransportCost[TransportDriver[playerid]] = 0; format(gstring, sizeof(gstring), "~w~Passageiro saiu~n~~g~ganhou R$%d",TransportCost[playerid]); GameTextForPlayer(TransportDriver[playerid], gstring, 5000, 1); } } if(GotHit[playerid] > 0) { if(GetChased[playerid] < 999) { if(IsPlayerConnected(GetChased[playerid])) { SendClientMessage(GetChased[playerid], COLOR_YELLOW, "Seu contrato saiu do servidor."); GoChase[GetChased[playerid]] = 999; } } } if(PlayerPaintballing[playerid] != 0) { PaintballPlayers --; } if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0) { KartingPlayers --; } if(PlayersChannel[playerid] < 999) { IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1; } if(HireCar[playerid] != 299) { gLastDriver[HireCar[playerid]] = 300; VTrancado[HireCar[playerid]] = 0; UnLockCar(HireCar[playerid]); } if (gLastCar[playerid] > 0) { gLastDriver[gLastCar[playerid]] = 300; if(PlayerInfo[playerid][pPHousekey] != gLastCar[playerid]-1) { VTrancado[gLastCar[playerid]] = 0; UnLockCar(gLastCar[playerid]); } } if(PlayerBoxing[playerid] > 0) { if(Boxer1 == playerid) { if(IsPlayerConnected(Boxer2)) { PlayerBoxing[Boxer2] = 0; SetPlayerPos(Boxer2, 765.8433,3.2924,1000.7186); SetPlayerInterior(Boxer2, 5); GameTextForPlayer(Boxer2, "~r~Luta interrompida", 5000, 1); } } else if(Boxer2 == playerid) { if(IsPlayerConnected(Boxer1)) { PlayerBoxing[Boxer1] = 0; SetPlayerPos(Boxer1, 765.8433,3.2924,1000.7186); SetPlayerInterior(Boxer1, 5); GameTextForPlayer(Boxer1, "~r~Luta interrompida", 5000, 1); } } InRing = 0; RorndStarted = 0; Boxer1 = 255; Boxer2 = 255; TBoxer = 255; } if(TransportDuty[playerid] == 1) { TaxiDrivers -= 1; } else if(TransportDuty[playerid] == 2) { BusDrivers -= 1; } if(IsACop(playerid)) { if(EmpregoDuty[playerid] == 2) { Copsronda -= 1; } } if(PlayerInfo[playerid][pMembro] == 4 || PlayerInfo[playerid][pLider] == 4) { if(EmpregoDuty[playerid] == 1) { Medics -= 1; } } else if(IsAMec(playerid)) { if(EmpregoDuty[playerid] == 1) { Mechanics -= 1; } } //CurrentMoney[playerid] = 0; BusrouteEast[playerid][0] = 0; BusrouteWest[playerid][0] = 0; if(PlayerInfo[playerid][pAdmin] >= 1 && admhide[playerid] == 0) { format(gstring, sizeof(gstring), "~p~%s ~n~~r~Off-Line", PlayerName(playerid)); for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { GameTextForPlayer(i, gstring , 5000, 4); } } } }