Liebe Community,
ich habe ein Problem mit meinem Autohaus System.
Wenn man ein Auto kauft wird es erstellt und man kann es abschließen etc.
Doch nach einem Relogg wird das Auto nicht geladen und
es heißt man besitze kein Auto, obwohl die Datei "name.ini" im Autohaus Ordner vorhanden ist.
Mein Code:
Die /parken Funktion
if(strcmp(cmd, "/parken", true) == 0) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED,"Du befindest dich in keinem Auto !"); if(SpielerInfo[playerid][pSchluessel] == 0) return SendClientMessage(playerid, COLOR_RED,"Du besitzt noch kein Auto !"); if(GetPlayerVehicleID(playerid) == SpielerInfo[playerid][pSchluessel]) { new Float: X, Float: Y, Float: Z, Float: A; GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z); GetVehicleZAngle(GetPlayerVehicleID(playerid), A); SpielerInfo[playerid][pX1] = X; SpielerInfo[playerid][pY1] = Y; SpielerInfo[playerid][pZ1] = Z; SpielerInfo[playerid][pA] = A; SpielerInfo[playerid][pModel] = GetVehicleModel(GetPlayerVehicleID(playerid)); new color1, color2; GetVehicleColor(GetPlayerVehicleID(playerid), color1, color2); SpielerInfo[playerid][pFarbe1] = color1; SpielerInfo[playerid][pFarbe2] = color2; format(string, sizeof(string),"%f, %f, %f, %f, %d, %d, %d, %d",X,Y,Z,A,color1,color2,GetVehicleModel(GetPlayerVehicleID(playerid)),SpielerInfo[playerid][pPreis1]); SaveVehicles(string,playerid);
DestroyVehicle(GetPlayerVehicleID(playerid)); SpielerInfo[playerid][pSchluessel] = CreateVehicle(SpielerInfo[playerid][pModel],SpielerInfo[playerid][pX1],SpielerInfo[playerid][pY1],SpielerInfo[playerid][pZ1],SpielerInfo[playerid][pA],SpielerInfo[playerid][pFarbe1],SpielerInfo[playerid][pFarbe2],-1); PutPlayerInVehicle(playerid, SpielerInfo[playerid][pSchluessel], 0); SendClientMessage(playerid, COLOR_BLUE,"Du hast dein Auto erfolgreich geparkt !"); return 1; } else { return SendClientMessage(playerid, COLOR_RED,"Dieses Auto gehört nicht dir !"); } }
Der kauf Dialog
if(dialogid == Dialog0) { new str[256], sts[128], string[128]; if(response == 1) { if(SpielerInfo[playerid][pSchluessel] > 0) { SendClientMessage(playerid, COLOR_RED,"Du besitzt schon ein Auto !"); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); return 1; } if(GetPlayerMoney(playerid) >= preis1[playerid]) { GivePlayerMoney(playerid, -preis1[playerid]); SpielerInfo[playerid][pPreis1] = preis1[playerid]; format(string, sizeof(string),"769.4449, -1327.1703, 13.3326, 268.7346, 0, 0, %d, %d",GetVehicleModel(GetPlayerVehicleID(playerid)),preis1[playerid]); SaveVehicles(string, playerid); SpielerInfo[playerid][pSchluessel] = CreateVehicle(GetVehicleModel(GetPlayerVehicleID(playerid)), 769.4449,-1327.1703,13.3326,268.7346,0,0,-1); GetPlayerName(playerid, name, sizeof(name)); format(sts, sizeof(sts),"%s",name); SetVehicleNumberPlate(SpielerInfo[playerid][pSchluessel], sts); SetVehicleToRespawn(SpielerInfo[playerid][pSchluessel]); SetPlayerPos(playerid, 769.7058,-1324.5464,13.3906); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); format(str, sizeof(str),"Auto erfolgreich für %d$ gekauft !",preis1[playerid]); SendClientMessage(playerid, COLOR_BLUE, str); return 1; } else { RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); SendClientMessage(playerid, COLOR_RED,"Du besitzt zu wenig Geld für dieses Auto !"); return 1; } }
Die Restlichen Stock Funktionen
stock Auto(playerid, preiss){ new string[256]; format(string, 256,"{FFFFFF}Willst du dieses Auto für {FF0000}%d${FFFFFF} kaufen ?",preiss); preis1[playerid] = preiss; TogglePlayerControllable(playerid, 0); ShowPlayerDialog(playerid,Dialog0,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus",string,"Kaufen","Abbrechen");}
stock PlayerName(playerid){ new name[24]; GetPlayerName(playerid, name, 24); return name;}stock Umschreiben(old, neu){ SpielerInfo[neu][pX1] = SpielerInfo[old][pX1]; SpielerInfo[neu][pY1] = SpielerInfo[old][pY1]; SpielerInfo[neu][pZ1] = SpielerInfo[old][pZ1]; SpielerInfo[neu][pA] = SpielerInfo[old][pA]; SpielerInfo[neu][pModel] = SpielerInfo[old][pModel]; SpielerInfo[neu][pFarbe1] = SpielerInfo[old][pFarbe1]; SpielerInfo[neu][pFarbe2] = SpielerInfo[old][pFarbe2]; SpielerInfo[neu][pPreis1] = SpielerInfo[old][pPreis1]; new string[256]; format(string, sizeof(string),"%f, %f, %f, %f, 0, 0, %d, %d",SpielerInfo[neu][pX1],SpielerInfo[neu][pY1],SpielerInfo[neu][pZ1],SpielerInfo[neu][pA],GetVehicleModel(GetPlayerVehicleID(neu)),SpielerInfo[neu][pPreis1]); SaveVehicles(string, neu);
SpielerInfo[old][pX1] = 0; SpielerInfo[old][pY1] = 0; SpielerInfo[old][pZ1] = 0; SpielerInfo[old][pA] = 0; SpielerInfo[old][pModel] = 0; SpielerInfo[old][pFarbe1] = 0; SpielerInfo[old][pFarbe2] = 0; SpielerInfo[old][pPreis1] = 0; DeleteVehicle(old);}
stock DeleteVehicle(playerid){ new name[MAX_PLAYER_NAME], string[256]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string),"/Autohaus/%s.ini",name); if(fexist(string)) { fremove(string); } return 1;}
stock LoadVehicles(playerid){ new arrCoords[30][64]; new strFromFile2[256]; new string[256], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(string, sizeof(string),"/Autohaus/%s.ini",name); if(!fexist(string)) return 1; new File: file = fopen(string, io_read); if (file) { print("1"); fread(file, strFromFile2); print("2"); split(strFromFile2, arrCoords, ','); print("3"); SpielerInfo[playerid][pX1] = floatstr(arrCoords[0]); print("4"); SpielerInfo[playerid][pY1] = floatstr(arrCoords[1]); print("5"); SpielerInfo[playerid][pZ1] = floatstr(arrCoords[2]); SpielerInfo[playerid][pA] = floatstr(arrCoords[3]); SpielerInfo[playerid][pFarbe1] = strval(arrCoords[4]); SpielerInfo[playerid][pFarbe2] = strval(arrCoords[5]); SpielerInfo[playerid][pModel] = strval(arrCoords[6]); SpielerInfo[playerid][pPreis1] = strval(arrCoords[7]); strmid(SpielerInfo[playerid][pName], name, 0, strlen(name), 255); new str[128]; format(str, sizeof(str),"%s",name); SpielerInfo[playerid][pSchluessel] = CreateVehicle(SpielerInfo[playerid][pModel],SpielerInfo[playerid][pX1],SpielerInfo[playerid][pY1],SpielerInfo[playerid][pZ1],SpielerInfo[playerid][pA],SpielerInfo[playerid][pFarbe1],SpielerInfo[playerid][pFarbe2],-1); SetVehicleNumberPlate(SpielerInfo[playerid][pSchluessel],str); SetVehicleToRespawn(SpielerInfo[playerid][pSchluessel]); fclose(file); } return 1;}stock SaveVehicles(string[],playerid){ new entry[256],str[256],name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(str, sizeof(str),"/Autohaus/%s.ini",name); format(entry, sizeof(entry), "%s\n",string); new File:hFile; hFile = fopen(str, io_write); fwrite(hFile, entry); fclose(hFile);}
stock GetVehicleColor(vehicleID, &color1, &color2){ vehicleID = PROPERTY_OFFSET(vehicleID);
if(existproperty(_, "", vehicleID)) { new colorStr[24], strPos ; getproperty(_, "", vehicleID, colorStr); strunpack(colorStr, colorStr);
if((strPos = strfind(colorStr, "-")) != -1) { color1 = strval(colorStr); color2 = strval(colorStr[strPos + 1]); return 1; } } return 0;}