Liegt an OnPlayerDisconnect, und es ist das RGR Script.
Hier der Fix, einfach drüber schreiben:
public OnPlayerDisconnect(playerid, reason)
{
new string[256];
new sendername[MAX_PLAYER_NAME];
DeleteTicket(playerid);
KillTimer(paydaycount[playerid]);
GetPlayerName(playerid,sendername,sizeof(sendername));
// MoneySpam[playerid] = 0;
DestroyObject(Sperre[playerid][0]);
DestroyObject(Sperre[playerid][1]);
DestroyObject(Sperre[playerid][2]);
DestroyObject(Sperre[playerid][3]);
DestroyObject(Sperre[playerid][4]);
// Delete3DTextLabel(label[playerid]);
Sperrebit[playerid]=0;
InCargo[playerid] = 0; InLevi[playerid] = 0;
// DestroyPickup(LogoutPickup[playerid][0]);
gActivePlayers[playerid]--;
numplayers--;
PlayerInfo[playerid][pAdjustable] = 1;
PlayerUpdate(playerid);
StadtreinigungCP[playerid] = 0;
Stadtreinigung[playerid] = 0;
StadtreinigungCP2[playerid] = 0;
Stadtreinigung2[playerid] = 0;
StadtreinigungCP3[playerid] = 0;
Stadtreinigung3[playerid] = 0;
MullabfuhrCP[playerid] = 0;
Mullabfuhr[playerid] = 0;
MullabfuhrCP2[playerid] = 0;
Mullabfuhr2[playerid] = 0;
GetPlayerName(playerid,sendername,sizeof(sendername));
format(string,sizeof(string),"%s war nun %d Minuten online! (ID: %d | IP: %s)",sendername,PlayerInfo[playerid][pMinutesSinceLogin],playerid,pIP[playerid]);
Log("Online.txt",string);
new dateiname[128];
new playername[MAX_PLAYER_NAME];
new var[256];
GetPlayerName(playerid, playername, sizeof(playername));
format(dateiname, sizeof(dateiname), "/fahrzeuge/%s.car", playername);
new File: CarFile = fopen(dateiname, io_write);
format(var, 256, "AH_Typ=%i\n", Carlist[playerid][Typ]); fwrite(CarFile, var);
format(var, 256, "AH_X=%f\n", Carlist[playerid][CarPos_x]); fwrite(CarFile, var);
format(var, 256, "AH_Y=%f\n", Carlist[playerid][CarPos_y]); fwrite(CarFile, var);
format(var, 256, "AH_Z=%f\n", Carlist[playerid][CarPos_z]); fwrite(CarFile, var);
format(var, 256, "AH_Rot=%f\n", Carlist[playerid][CarRotate]); fwrite(CarFile, var);
format(var, 256, "AH_Status=%i\n", Carlist[playerid][Status]); fwrite(CarFile, var);
format(var, 256, "AH_Lock=%i\n", Carlist[playerid][Lock]); fwrite(CarFile, var);
format(var, 256, "AH_Paintjob=%i\n", Carlist[playerid][Paintjob]); fwrite(CarFile, var);
format(var, 256, "AH_Farbe1=%i\n", Carlist[playerid][Farbe1]); fwrite(CarFile, var);
format(var, 256, "AH_Farbe2=%i\n", Carlist[playerid][Farbe2]); fwrite(CarFile, var);
format(var, 256, "AH_mod1=%i\n", Carlist[playerid][mod1]); fwrite(CarFile, var);
format(var, 256, "AH_mod2=%i\n", Carlist[playerid][mod2]); fwrite(CarFile, var);
format(var, 256, "AH_mod3=%i\n", Carlist[playerid][mod3]); fwrite(CarFile, var);
format(var, 256, "AH_mod4=%i\n", Carlist[playerid][mod4]); fwrite(CarFile, var);
format(var, 256, "AH_mod5=%i\n", Carlist[playerid][mod5]); fwrite(CarFile, var);
format(var, 256, "AH_mod6=%i\n", Carlist[playerid][mod6]); fwrite(CarFile, var);
format(var, 256, "AH_mod7=%i\n", Carlist[playerid][mod7]); fwrite(CarFile, var);
format(var, 256, "AH_mod8=%i\n", Carlist[playerid][mod8]); fwrite(CarFile, var);
format(var, 256, "AH_mod9=%i\n", Carlist[playerid][mod9]); fwrite(CarFile, var);
format(var, 256, "AH_mod10=%i\n", Carlist[playerid][mod10]); fwrite(CarFile, var);
format(var, 256, "AH_mod11=%i\n", Carlist[playerid][mod11]); fwrite(CarFile, var);
format(var, 256, "AH_mod12=%i\n", Carlist[playerid][mod12]); fwrite(CarFile, var);
format(var, 256, "AH_mod13=%i\n", Carlist[playerid][mod13]); fwrite(CarFile, var);
format(var, 256, "AH_mod14=%i\n", Carlist[playerid][mod14]); fwrite(CarFile, var);
format(var, 256, "AH_mod15=%i\n", Carlist[playerid][mod15]); fwrite(CarFile, var);
format(var, 256, "AH_mod16=%i\n", Carlist[playerid][mod16]); fwrite(CarFile, var);
format(var, 256, "AH_mod17=%i\n", Carlist[playerid][mod17]); fwrite(CarFile, var);
fclose(CarFile);
/* if(Invade[playerid] != 255)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast während dem einehmen einer Gang Zone den Server verlassen.");
Invade[playerid] = 255;
if(GangWarMember[playerid] == 1) Attackers --;
else if(GangWarMember[playerid] == 2) Defenders --;
GangWarMember[playerid] = 0;
}*/
if(Carlist[playerid][Carid]!=-1)
{
SetVehicleParamsForAll(Carlist[playerid][Carid],0,0);
DestroyVehicle(Carlist[playerid][Carid]);
Carlist[playerid][Carid]=-1;
}
if (Spectating[playerid][0]!=-1)
{
SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
Spectating[playerid][0]=-1;
}
if(RobStatus[playerid] == 1)
{
KillTimer(robbing[playerid]);
RobInfo[Rob_Zone[playerid]][rRobber] --;
}
if(robtransp1[playerid] == 1)
{
new s[256];
format(s,sizeof(s),"%s hat den Server verlassen. Transporterrob gescheitert.",PlayerName(playerid));
SendClientMessageToAll(COLOR_YELLOW,s);
RobTransp[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SetVehicleToRespawn(RobTransporter[0]);
}
printf("Debug4");
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~Kunde~n~~r~Hat das Spiel Verlassen", 5000, 1);
TaxiCallTime[i] = 0;
DisablePlayerCheckpoint(i);
}
}
else if(BusAccepted[i] < 999)
{
if(BusAccepted[i] == playerid)
{
BusAccepted[i] = 999;
GameTextForPlayer(i, "~w~Kunde~n~~r~Hat Spiel Verlassen", 5000, 1);
BusCallTime[i] = 0;
DisablePlayerCheckpoint(i);
}
}
else if(reauber[playerid] == 1)
{
new s[100], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
reauber[playerid] = 0;
glav = 1800;
KillTimer(bankcountdown1);
KillTimer(bankcountdown2);
KillTimer(bankcountdown3);
KillTimer(bankcountdown4);
KillTimer(bankcountdown5);
KillTimer(ausgeraubt1);
SetTimer("rauberlauben1", 1800000, 0);
format(s,sizeof(s),"%s hat den Server verlassen. Bankrob gescheitert.",name);
SendClientMessageToAll(COLOR_YELLOW,s);
}
else if(reaubersf[playerid] == 1)
{
new s[100], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
reaubersf[playerid] = 0;
glavsf = 1800;
KillTimer(bankcountdown1sf);
KillTimer(bankcountdown2sf);
KillTimer(bankcountdown3sf);
KillTimer(bankcountdown4sf);
KillTimer(bankcountdown5sf);
KillTimer(ausgeraubt1sf);
SetTimer("rauberlauben1sf", 1800000, 0);
format(s,sizeof(s),"%s hat den Server verlassen. Bankrob gescheitert.",name);
SendClientMessageToAll(COLOR_YELLOW,s);
}
}
}
printf("Debug5");
if(reason == 0)
{
if(PlayerCuffed[playerid] >= 1)
{
format(string,sizeof(string),"AdmCmd: %s hatte gefesselt einen Exe-Crash! Er wird nicht ins Auto-Jail kommen.",sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
if(reason == 1)
{
if(PlayerCuffed[playerid] >= 1)
{
format(string,sizeof(string),"AdmCmd: %s ist gefesselt bzw. gecufft Offline gegangen! Strafe: 10 min. Prison(Offline-Flucht)",sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
PlayerInfo[playerid][pJailed] = 2;
PlayerInfo[playerid][pJailTime] = 10*60;
}
}
if(reason == 0)
{
if(InGangJail[playerid] == 1)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid,-1634.9923,-2239.2424,31.4766);
UnFreezePlayer(playerid);
PlayerTied[playerid] = 0;
InGangJail[playerid] = 1;
format(string,sizeof(string),"AdmCmd: %s hatte im Gangjail einen Exe-Crash! Er wird automatisch beim Connecten zurück teleportiert.",sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
if(reason == 1)
{
if(InGangJail[playerid] == 1)
{
PlayerInfo[playerid][pJailed] = 2;
PlayerInfo[playerid][pJailTime] = 10*600;
format(string,sizeof(string),"AdmCmd: %s ist gefangen im Gangjail Offline gegangen! Strafe: 100 min. Prison(Offline-Flucht)",sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
if(GettingCK[playerid] < 999)
{
if(IsPlayerConnected(GettingCK[playerid]))
{
SendClientMessage(GettingCK[playerid], COLOR_YELLOW, "Dein Abschuss hat den Server verlassen, versuch es später nochmal.");
OnCK[GettingCK[playerid]] = 999;
}
}
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(string, sizeof(string), "~w~Kunde ist ausgestiegen~n~~g~Verdienst: $%d",TransportCost[playerid]);
GameTextForPlayer(TransportDriver[playerid], string, 5000, 1);
}
}
printf("Debug6");
if(GotHit[playerid] > 0)
{
if(GetChased[playerid] < 999)
{
if(IsPlayerConnected(GetChased[playerid]))
{
SendClientMessage(GetChased[playerid], COLOR_YELLOW, "Er hat den Server verlassen.");
GoChase[GetChased[playerid]] = 999;
}
}
}
if(PlayerPaintballing[playerid] != 0)
{
PaintballPlayers --;
}
if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0)
{
KartingPlayers --;
}
if(HireCar[playerid] != 299)
{
gLastDriver[HireCar[playerid]] = 300;
gCarLock[HireCar[playerid]] = 0;
UnLockCar(HireCar[playerid]);
SetVehicleToRespawn(HireCar[playerid]);
SetVehicleToRespawn(RobTransporter[0]);
}
if (gLastCar[playerid] > 0)
{
gLastDriver[gLastCar[playerid]] = 300;
if(PlayerInfo[playerid][pPhousekey] != gLastCar[playerid]-1)
{
gCarLock[gLastCar[playerid]] = 0;
UnLockCar(gLastCar[playerid]);
}
}
printf("Debug7");
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~Kampf unterbrochen", 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~Kampf unterbrochen", 5000, 1);
}
}
new caller = Mobile[playerid];
if(caller != 255)
{
if(caller < 255)
{
SendClientMessage(caller, COLOR_GRAD2, " Die Verbindung wurde unterbrochen....");
CellTime[caller] = 0;
CellTime[playerid] = 0;
Mobile[caller] = 255;
}
Mobile[playerid] = 255;
CellTime[playerid] = 0;
}
InRing = 0;
RoundStarted = 0;
Boxer1 = 255;
Boxer2 = 255;
TBoxer = 255;
}
if(TransportDuty[playerid] == 1)
{
TaxiDrivers -= 1;
}
else if(TransportDuty[playerid] == 2)
{
BusDrivers -= 1;
}
if(PlayerInfo[playerid][pJob] == 11)
{
if(JobDuty[playerid] == 1) { Medics -= 1; }
}
else if(PlayerInfo[playerid][pJob] == 7)
{
if(JobDuty[playerid] == 1) { Mechanics -= 1; }
}
else if(PlayerInfo[playerid][pJob] == 22)
{
if(JobDuty[playerid] == 1) { Eismanner -= 1; }
}
else if(PlayerInfo[playerid][pJob] == 11)
{
if(JobDuty[playerid] == 1) { Oamt -= 1; }
}
printf("Debug8");
return 1;
}
Sind noch ein paar Debug-Zeilen drin da ich selber den Bug gesucht habe. 