Server crashed
#1

Hello,

i just wondering, why my server crashed, when i put this onto my gamemode (i put this because cars wont save in my gamemode). I hope you can find the error, why my server always crashed.

OnPlayerLogin i put this:

Quote:

new dateiname[MAX_PLAYER_NAME+15];
new playername[MAX_PLAYER_NAME];
//new owner[MAX_PLAYER_NAME];
Carlist[playerid][Typ]=-1; Carlist[playerid][CarPos_x]=0.0; Carlist[playerid][CarPos_y]=0.0; Carlist[playerid][CarPos_z]=0.0;
Carlist[playerid][CarRotate]=0.0; Carlist[playerid][Status]=0; Carlist[playerid][Lock]=0; Carlist[playerid][Carid]=-1;
Carlist[playerid][Farbe1]=-1; Carlist[playerid][Farbe2]=-1; Carlist[playerid][mod1]=-1; Carlist[playerid][mod2]=-1;
Carlist[playerid][mod3]=-1; Carlist[playerid][mod4]=-1; Carlist[playerid][mod5]=-1; Carlist[playerid][mod6]=-1;
Carlist[playerid][mod7]=-1; Carlist[playerid][mod8]=-1; Carlist[playerid][mod9]=-1; Carlist[playerid][mod10]=-1;
Carlist[playerid][mod11]=-1; Carlist[playerid][mod12]=-1; Carlist[playerid][mod13]=-1; Carlist[playerid][mod14]=-1;
Carlist[playerid][mod15]=-1; Carlist[playerid][mod16]=-1; Carlist[playerid][mod17]=-1; Carlist[playerid][Paintjob]=-1;
Carlist[playerid][TowPark]=0; Carlist[playerid][owner]=-1;
Spectating[playerid][0]=-1;
#if defined CARSELL
#endif
GetPlayerName(playerid, playername, sizeof(playername));
format(dateiname, sizeof(dateiname), "fahrzeuge/%s.car", playername);
if (fexist(dateiname))
{
new File: CarFile = fopen(dateiname, io_read);
if ( CarFile )
{
new key[ 256 ];
new Data[ 256 ];
while ( fread( CarFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey(Data);
if(strcmp(key,"AH_Typ",true)==0) { Carlist[playerid][Typ]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_X",true)==0) { Carlist[playerid][CarPos_x]=floatstr(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Y",true)==0) { Carlist[playerid][CarPos_y]=floatstr(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Z",true)==0) { Carlist[playerid][CarPos_z]=floatstr(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Rot",true)==0) { Carlist[playerid][CarRotate]=floatstr(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Status",true)==0) { Carlist[playerid][Status]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Lock",true)==0) { Carlist[playerid][Lock]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Paintjob",true)==0) { Carlist[playerid][Paintjob]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Farbe1",true)==0) { Carlist[playerid][Farbe1]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Farbe2",true)==0) { Carlist[playerid][Farbe2]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod1",true)==0) { Carlist[playerid][mod1]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod2",true)==0) { Carlist[playerid][mod2]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod3",true)==0) { Carlist[playerid][mod3]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod4",true)==0) { Carlist[playerid][mod4]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod5",true)==0) { Carlist[playerid][mod5]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod6",true)==0) { Carlist[playerid][mod6]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod7",true)==0) { Carlist[playerid][mod7]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod8",true)==0) { Carlist[playerid][mod8]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod9",true)==0) { Carlist[playerid][mod9]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod10",true)==0) { Carlist[playerid][mod10]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod11",true)==0) { Carlist[playerid][mod11]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod12",true)==0) { Carlist[playerid][mod12]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod13",true)==0) { Carlist[playerid][mod13]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod14",true)==0) { Carlist[playerid][mod14]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod15",true)==0) { Carlist[playerid][mod15]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod16",true)==0) { Carlist[playerid][mod16]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_mod17",true)==0) { Carlist[playerid][mod17]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_TowPark",true)==0) { Carlist[playerid][TowPark]=strval(ini_GetValue(Data)); }
else if(strcmp(key,"AH_Besitzer",true)==0) { Carlist[playerid][owner]=strval(ini_GetValue(Data)); }
}
}
fclose(CarFile);
if(Carlist[playerid][Typ]!=-1 || Carlist[playerid][Status]==1)
{
Carlist[playerid][Carid]=CreateTunedCar(playerid);
SetVehicleParamsForAll(Carlist[playerid][Carid],0,1);
}
}

Onplayerdisconnect i put this:

Quote:

new dateiname[MAX_PLAYER_NAME+15];
new playername[MAX_PLAYER_NAME];
new CarVar[256];
// new owner[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(dateiname, sizeof(dateiname), "fahrzeuge/%s.car", playername);
new File: CarFile = fopen(dateiname, io_write);
format(CarVar, 256, "AH_Typ=%i\n", Carlist[playerid][Typ]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_X=%f\n", Carlist[playerid][CarPos_x]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Y=%f\n", Carlist[playerid][CarPos_y]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Z=%f\n", Carlist[playerid][CarPos_z]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Rot=%f\n", Carlist[playerid][CarRotate]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Status=%i\n", Carlist[playerid][Status]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Lock=%i\n", Carlist[playerid][Lock]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Paintjob=%i\n", Carlist[playerid][Paintjob]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Farbe1=%i\n", Carlist[playerid][Farbe1]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Farbe2=%i\n", Carlist[playerid][Farbe2]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod1=%i\n", Carlist[playerid][mod1]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod2=%i\n", Carlist[playerid][mod2]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod3=%i\n", Carlist[playerid][mod3]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod4=%i\n", Carlist[playerid][mod4]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod5=%i\n", Carlist[playerid][mod5]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod6=%i\n", Carlist[playerid][mod6]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod7=%i\n", Carlist[playerid][mod7]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod8=%i\n", Carlist[playerid][mod8]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod9=%i\n", Carlist[playerid][mod9]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod10=%i\n", Carlist[playerid][mod10]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod11=%i\n", Carlist[playerid][mod11]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod12=%i\n", Carlist[playerid][mod12]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod13=%i\n", Carlist[playerid][mod13]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod14=%i\n", Carlist[playerid][mod14]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod15=%i\n", Carlist[playerid][mod15]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod16=%i\n", Carlist[playerid][mod16]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_mod17=%i\n", Carlist[playerid][mod17]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_TowPark=%i\n", Carlist[playerid][TowPark]); fwrite(CarFile, CarVar);
format(CarVar, 256, "AH_Besitzer=%s\n", Carlist[playerid][owner]); fwrite(CarFile, CarVar);
fclose(CarFile);
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;
}

I hope you can find the error, dont wondering about the german language. ^^

greetings from germany
Reply
#2

Hm, could be a problem with the enum. Maybe you have a variable with the same name as an element of the enum.

If not, when does it crash exactly? On server start, when a player logs in, ...
Reply
#3

It will crash when the login gui was appears on the screen.


Thanks for your widely help. =)
Reply
#4

Hmm, try adding a / in front of fahrzeuge in the formats ("/fahrzeuge/%s.car") so it is forced to be detected as subfolder. But i dont think this can crash the server, it should just return 0 for fexist if something were wrong with this.

A quite annoying, but helpful test would be to add a print("<current line>"); every 4th or 5th line in OnPlayerLogin. Then check the server log, what was printed last before the server crashed, so you can limit the crash source to few lines (also post what line the linenumber is plz )
Reply
#5

Okay, ill test this yet. What text should i put in print? print Test ?? Or what else?

Thanks for help =)
Reply
#6

I put any prints in my script, and this is the answer:

Quote:

[21:41:40]
[21:41:40] Number of vehicle models: 94
[21:41:40] Incoming connection: 78.143.6.18:53937
[21:41:40] [npc:join] BusBot has joined the server (0:78.143.6.1
[21:41:40] Incoming connection: 78.143.6.18:34062
[21:41:40] [npc:join] ZugBot has joined the server (1:78.143.6.1
[21:41:40] Incoming connection: 78.143.6.18:56661
[21:41:40] [npc:join] Flugzeugbot has joined the server (2:78.143.6.1
[21:41:41] Flugzeugbot wurde geladen..
[21:41:41] 5

After the number 5 appears, no thing will load.... I think it lays on OnPlayerLogin because when anybody login, the server crash... Where is the error?
Reply
#7

So nobody can help me? :/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)