Hallo
Ich habe mir mal ein Carsystem gebaut, bei dem die Cars nach einem Logout nicht gelöscht werden. Jedoch habe ich ein VehicleID Problem und ich rast echt langsam aus xD, wir sind zu 3. am testen und bei jedem geht das nicht, was beim anderen geht.
PS: Man könnte es vielleicht umbauen, dass beim Laden der Cars die Vehicle ID unabhängig vom System abgespeichert wird.
FReadCode
new line[255],File:carx = fopen(CAR_DATEI,io_read),
car_index;
if(carx)
{
while(fread(carx,line))
{
if(line[strlen(line)-2] == '\r')line[strlen(line)-2] = '\0';
if(line[strlen(line)-1] == '\n')line[strlen(line)-1] = '\0';
strmid(FDaten[_cache_fahrzeug][fBesitzer],strtok(line,car_index,','),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
FDaten[_cache_fahrzeug][fPreis] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fLocked] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTunbar] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fVerwahrt] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fVerkauft] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fModelID] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fX] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fY] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fZ] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fA] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][vX] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][vY] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][vZ] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][vA] = floatstr(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fFarbe1] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fFarbe2] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fJob] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fFraktion] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fPaintjob] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil0] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil1] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil2] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil3] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil4] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil5] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil6] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil7] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil8] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil9] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil10] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil11] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil12] = strval(strtok(line,car_index,','));
FDaten[_cache_fahrzeug][fTuningteil13] = strval(strtok(line,car_index,','));
if(FDaten[_cache_fahrzeug][fVerwahrt] == 0)
{
FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][fX],FDaten[_cache_fahrzeug][fY],FDaten[_cache_fahrzeug][fZ],FDaten[_cache_fahrzeug][fA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2], -1);
SetTimerEx("PrivatCarTuneUp",1000,0,"d",_cache_fahrzeug);
}
else if(FDaten[_cache_fahrzeug][fVerwahrt] == 1)
{
FDaten[_cache_fahrzeug][fCarID] = CreateVehicle(FDaten[_cache_fahrzeug][fModelID],FDaten[_cache_fahrzeug][vX],FDaten[_cache_fahrzeug][vY],FDaten[_cache_fahrzeug][vZ],FDaten[_cache_fahrzeug][vA],FDaten[_cache_fahrzeug][fFarbe1],FDaten[_cache_fahrzeug][fFarbe2], -1);
SetTimerEx("PrivatCarTuneUp",1000,0,"d",_cache_fahrzeug);
}
car_index = 0;
_cache_fahrzeug++;
}
fclose(carx);
}
BeispielCode, bei welchem man immer die Nachricht bekommt, die Kiste gehört nicht einem obwohl sie einem gehört
dcmd_carlock(playerid,params[])
{
#pragma unused params
new Float:APos[3];
if(PlayerInfo[playerid][pFAnzahl] == 0) return SendClientMessage(playerid,COLOR_GREY,"Du besitzt kein Fahrzeug");
else
{
for(new i = 0;i<_cache_fahrzeug;i++)
{
if(strcmp(FDaten[i][fBesitzer],spielername(playerid))){SendClientMessage(playerid,COLOR_GREY,"Dieses Fahrzeug gehört nicht dir");break;}
GetVehiclePos(FDaten[i][fCarID], APos[0], APos[1], APos[2]);
if(IsPlayerInRangeOfPoint(playerid, 3, APos[0],APos[1],APos[2]))
{
if(FDaten[i][fLocked] == 1)
{
for(new p = 0; p < MAX_PLAYERS; p++)
{
SetVehicleParamsForPlayer(FDaten[i][fCarID], p, 0, 0);
}
SendClientMessage(playerid,COLOR_GREEN,"Auto aufgeschlossen");
FDaten[i][fLocked] = 0;
SaveCache();
break;
}
else
{
for(new p = 0; p < MAX_PLAYERS; p++)
{
SetVehicleParamsForPlayer(FDaten[i][fCarID], p, 0, 1);
}
SendClientMessage(playerid,COLOR_GREEN,"Auto geschlossen");
FDaten[i][fLocked] = 1;
SaveCache();
break;
}
}
}
}
return 1;
}
Ich wäre um Hilfe echt froh, auch um Tipps, ich bin am verzweifeln und sehe nur die grösste Bugsammlung meines Lebens