Beitrag von _Advanced_ ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Ok, eins nach dem anderen.
Speichern und Laden noch nicht richtig
Was genau funktioniert da nicht?
Wird nicht geladen und auch nicht gespeichert
//Edit
Zumindest nicht geladen, da ich noch keine Befehle habe um die Position zu ändern etc. Von daher kann ich Speichern nicht überprüfen aber geladen wird das Fahrzeug nach einem Restart nicht.
Ouuhh, das bezieht sich gar nicht auf einen Spieler. Ja, dann ist es klar.
Du arbeitest mit PVars, das geht nicht. Die funktionieren nur für Spieler und nur wenn diese online sind.
Schau dir mal mein Tutorial an: [ SCRIPTING ] [jTuT] Fraktions-Fahrzeug-System mit MySQL R39-2
Das bezieht sich zwar auf MySQL, aber das kannst du ziemlich ähnlich auch mit dini machen (cache Funktionen -> dini).
Weil ich kann dir da kaum erklären was falsch ist, da das ganze Vorhaben so nicht klappen wird.
Naja, das alles zu verstehen und dann richtig umzustellen dauert schon :-/ Muss man nicht einfach mit dini_Get arbeiten oder so?
Wenn du noch etwas warten kannst, dann warte bis Ende nächster Woche, dann kann ich das auf dini umschreiben und dazu ein Tutorial posten, das hatte ich ja im Threads bereits zugesagt, bin bis jetzt aber noch nicht dazu gekommen.
ocmd:efa(playerid,params[])
{
new str[128],Spielerdatei[64],frakname[25],vID,color1,color2,frakt,Float:fxpos,Float:fypos,Float:fzpos,Float:fapos,spielername[MAX_PLAYER_NAME];
GetPlayerName(playerid,spielername,sizeof(spielername));
if(IsPlayerConnected(playerid))
if(IsPlayerAdminLevel(playerid, 3))
{
if(GetPVarInt(playerid,"loggedin") == 0)return SendClientMessage(playerid,Grau,"Bitte logge dich zuerst ein.");
if(sscanf(params,"dddd",vID,color1,color2,frakt))return SendClientMessage(playerid,Grau,"Benutze: /efa [VehicleID] [Farbe 1] [Farbe 2] [Fraktion]");
if(frakt < 1 || frakt > 6)return SendClientMessage(playerid,Grau,"Diese Fraktion existiert nicht! (1-6)");
if(color1 < 0 || color1 > 255)return SendClientMessage(playerid,Grau,"Diese Farb ID existiert nicht! (0-255)");
if(color2 < 0 || color2 > 255)return SendClientMessage(playerid,Grau,"Diese Farb ID existiert nicht! (0-255)");
if(vID < 400 || vID > 611)return SendClientMessage(playerid,Grau,"Diese Fahrzeug ID existiert nicht! (400-611)");
if(frakt == 1) { frakname = "RussenMafia"; }
else if(frakt == 2) { frakname = "LVPD"; }
else if(frakt == 3) { frakname = "Triaden"; }
else if(frakt == 4) { frakname = "CNNNews"; }
else if(frakt == 5) { frakname = "Hitman"; }
else if(frakt == 6) { frakname = "Sanitäter"; }
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(FactionCars[fc][fcarid] != 0) continue;
FactionCars[fc][fcarid] = 1 + random(10000000);
GetPlayerPos(playerid,fxpos,fypos,fzpos); GetPlayerFacingAngle(playerid,fapos);
format(Spielerdatei,sizeof(Spielerdatei),"/FraktionAutos/%d.txt",fc);
dini_Create(Spielerdatei);
FactionCars[fc][fvehid] = vID;
FactionCars[fc][fcolor1] = color1;
FactionCars[fc][fcolor2] = color2;
FactionCars[fc][xpos] = fxpos;
FactionCars[fc][ypos] = fypos;
FactionCars[fc][zpos] = fzpos;
FactionCars[fc][apos] = fapos;
FactionCars[fc][ffrak] = frakt;
format(FactionCars[fc][fplate],25,frakname);
SetVehicleNumberPlate(CreateVehicle(vID,fxpos,fypos,fzpos,fapos,color1,color2,-1),FactionCars[fc][fplate]);
SaveCar();
SendClientMessage(playerid,Grün,"Fahrzeug erfolgreich erstellt.");
SendClientMessage(playerid,Weiss,"Vergiss es nicht mit /fpark zu parken.");
format(str,sizeof(str),"[AdmCmd]: %s %s hat ein Fahrzeug (%d) für die Fraktion %s erstellt.",Adminrang(playerid),spielername,vID,frakname);
printf("%s",str);
return true;
}
}
return 1;
}
stock SaveCar()
{
new Spielerdatei[64],frakt;
for(new fc;fc<sizeof(FactionCars);fc++)
{
format(Spielerdatei,sizeof(Spielerdatei),"/FraktionAutos/%d.txt",fc);
dini_IntSet(Spielerdatei,"VehicleID",FactionCars[fc][fvehid]);
dini_IntSet(Spielerdatei,"VehicleColour1",FactionCars[fc][fcolor1]);
dini_IntSet(Spielerdatei,"VehicleColour2",FactionCars[fc][fcolor2]);
dini_IntSet(Spielerdatei,"FrakID",FactionCars[fc][ffrak]);
dini_IntSet(Spielerdatei,"fcarid",FactionCars[fc][fcarid]);
dini_FloatSet(Spielerdatei,"VehicleX",FactionCars[fc][xpos]);
dini_FloatSet(Spielerdatei,"VehicleY",FactionCars[fc][ypos]);
dini_FloatSet(Spielerdatei,"VehicleZ",FactionCars[fc][zpos]);
dini_FloatSet(Spielerdatei,"VehicleA",FactionCars[fc][apos]);
dini_Set(Spielerdatei,"Numberplate",FactionCars[fc][fplate]);
}
return 1;
}
stock LoadCar()
{
new Spielerdatei[64],frakt;
for(new fc;fc<sizeof(FactionCars);fc++)
{
format(Spielerdatei,sizeof(Spielerdatei),"/FraktionAutos/%d.txt",fc);
FactionCars[fc][fvehid] = dini_Int(Spielerdatei,"VehicleID");
FactionCars[fc][fcolor1] = dini_Int(Spielerdatei,"VehicleColour1");
FactionCars[fc][fcolor2] = dini_Int(Spielerdatei,"VehicleColour2");
FactionCars[fc][xpos] = dini_Float(Spielerdatei,"VehicleX");
FactionCars[fc][ypos] = dini_Float(Spielerdatei,"VehicleY");
FactionCars[fc][zpos] = dini_Float(Spielerdatei,"VehicleZ");
FactionCars[fc][apos] = dini_Float(Spielerdatei,"VehicleA");
format(FactionCars[fc][fplate], 25, dini_Get(Spielerdatei,"Numberplate"));
FactionCars[fc][ffrak] = dini_Int(Spielerdatei,"FrakID");
FactionCars[fc][fcarid] = dini_Int(Spielerdatei,"fcarid");
SetVehicleNumberPlate(CreateVehicle(FactionCars[fc][fvehid],FactionCars[fc][xpos],FactionCars[fc][ypos],FactionCars[fc][zpos],FactionCars[fc][apos],FactionCars[fc][fcolor1],FactionCars[fc][fcolor2],-1),FactionCars[fc][fplate]);
}
return 1;
}
Versuche es so.
Versuche es so.
Also es klappt schon mal soweit so gut, jedoch wird nur das erste Fahrzeug gespeichert (Datei 0). Erstelle ich mehrere (Datei 1,2,3) werden diese Textdateien zwar erstellt, jedoch sind sie leer, dort steht nichts drin.
Das erste Fahrzeug also mit der AutoID 0 wird perfekt gespeichert und auch geladen.
MfG
Okay danke für den Tipp, jedoch muss es ein return 1; beim Efa Befehl unter dem printf geben sonst erstellt er mir 900 Dateien Aber sonst klappt erstmal alles. (Hoff ich mal).
Danke für die Hilfe.
MfG
jedoch muss es ein return 1; beim Efa Befehl unter dem printf geben sonst erstellt er mir 900 Dateien
Ja, das hatte ich vorhin gesehen und habe es wieder geändert.
Schließlich ist es ja noch früh am morgen
Ja, das hatte ich vorhin gesehen und habe es wieder geändert.
Schließlich ist es ja noch früh am morgen
haha ja das stimmt Ich verzeihe dir
MfG