Passa o code nгo й, vai em OnPlayerDisconnect e ve o sistema de salvamento.
Desculpe por mandar o Cуdigo todo ... OBS: a Arara tambйm estб sumindo do ombro do player
Код:
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);
}
}
}
}