Edit: Es klappt, für alle anderen Leute hier ein kleines erklärer Tutorial
Edit2: Schaut erst das Tutorial an eh ihr weiter macht:
Vorwort
Ich erstelle dies hier aus 2 Gründen.
1. für Leute die mit der MySQL Datenbank nicht zurecht kommen (so wie ich)
2. um anderen Leuten zu helfen, die das selbe woll(t)en wie ich.
.ini (.txt) erstellen
Mit kleinen Grundkentnissen kann man das ganze schon anfangen zu starten. Sobald man den Stock Register gesehen hat, weiß man auch wie das mit einer anderen .txt datei funktioniert. Nungut. Geht zu OnDialogResponse und schaut wo steht "dialogid == AUTOHAUS" Habt ihr gefunden? Okay! Schaut nun wo ihr eine Message an den Playerid gesendet habt die so heißen könnte: "Herzlichen Glückwunsch du hast ein neues Auto!"
Auch gefunden? Denn dahin muss nun das was wir einfügen!
Als erstes müssen wir 2 neue Variablen deklarieren
new ASpieler[64];
new ASname[MAX_PLAYER_NAME];
Wenn ich ehrlich sein soll, weiß ich nicht wofür das "Spieler" bzw in dem Fall "ASpieler" stehen soll, ich denke das ist die Länge des Maximalen Namens.
ASName steht für die Anzahl aller Namen. *berichtigt mich wenn ich was Falsches schreibe*
Die nächsten 3 Zeilen sollten sich relativ selbst erklären
GetPlayerName(playerid,ASname,sizeof(ASname));
format(ASpieler,sizeof(ASpieler),"/Autos/Autos_von_%s.txt",ASname); //%s = Name
dini_Create(ASpieler);
GetPlayerName - findet den Namen der playerid heraus und speichert den Namen in die Variable "ASname"
format(ASpieler........) - erstellt eine .txt Datei die heißt "Autos_von_%s" dabei ist %s der Spielername den man InGame Sieht
dini_Create(ASpieler); - hier wird aus den gegebenen Informationen nun die .txt erstellt
Das ist aber noch längst nicht alles! Wir müssen auch bestimmte Werte in der .txt eintragen lassen!
new vID = GetPlayerVehicleID(playerid); // bekommt die VehicleID raus (NICHT die ModelID!)
new gVM = GetVehicleModel(vID); //hier wird die ModelID herausbekommen (z.B. 550 - Sultan)
new Float:pc_x; // Float Variable
new Float:pc_y; // Float Variable
new Float:pc_z; // Float Variable - eine Float Variable kann negative, positive und Komma Zahlen speichern (pc steht für private car)
GetVehiclePos(vID,pc_x,pc_y,pc_z); // hier wird die VehiclePos rausbekommen und in allen Variablen gespeichert
dini_IntSet(ASpieler,"FahrzeugID",gVM); //FahrzeugID wird abgespeichert "INT" - Integer - Rundezahlen
dini_FloatSet(ASpieler,"SpawnX",pc_x); // X Koordinate - Float weil eine Float Variable negative, positive und Komma Zahlen speichern kann
dini_FloatSet(ASpieler,"SpawnY",pc_y); // Y Koordinate
dini_FloatSet(ASpieler,"SpawnZ",pc_z); // Z Koordinate - dies wird alles in der .txt abgespeichert sein
Alle wichtigen Sachen sind nun als Kommentar dazu geschrieben worden.
Nun muss aber noch das Auto geladen werden!
Dies tun wir bei "OnPlayerConnect" und fügt folgenden Code ein (wichtiges ist in Klammern geschrieben):
new ASpieler[64];
new ASname[MAX_PLAYER_NAME];
GetPlayerName(playerid,ASname,sizeof(ASname));
format(ASpieler,sizeof(ASpieler),"/Autos/Autos_von_%s.txt",ASname); //%s = Name
if(dini_Exists(ASpieler)) //wenn die Datei existiert dann soll das ausgeführt werden
{
new modelid = dini_Int(ASpieler,"FahrzeugID"); //eine neue Variable namens "modelid" wird festgelegt, diese zieht sich ihren Wert aus der FahrzeugID (dini_Int - benutzt man für Integer Zahlen)
new Float:x = Float:dini_Float(ASpieler,"SpawnX"); //eine neue Variable namens "Float:x" wird festgelegt, hier allerdings muss man Float:dini_Float schreiben, ansonsten kommt es zu Warnings oder es geht ganz einfach nicht da die X-Y-Z Werte keine Integer Werte sind!
new Float:y = Float:dini_Float(ASpieler,"SpawnY");
new Float:z = Float:dini_Float(ASpieler,"SpawnZ");
CreateVehicle(modelid,x,y,z,0.0,-1,-1,0,0); //ein Auto wird erstellt
SendClientMessage(playerid,gelb,"Auto wurde geladen!"); //eine Nachricht wird ausgegeben
}
Und unter OnPlayerDisconnect kann man das Fahrzeug zerstören (allerdings weiß ich nicht ob das wirklich geschieht)
new ASpieler[64];
new ASname[MAX_PLAYER_NAME];
GetPlayerName(playerid,ASname,sizeof(ASname));
format(ASpieler,sizeof(ASpieler),"/Autos/Autos_von_%s.txt",ASname); //%s = Name
if(dini_Exists(ASpieler)
{
new modelid = dini_Int(ASpieler,"FahrzeugID");
new Float:x = Float:dini_Float(ASpieler,"SpawnX");
new Float:y = Float:dini_Float(ASpieler,"SpawnY");
new Float:z = Float:dini_Float(ASpieler,"SpawnZ");
new vID = CreateVehicle(modelid,x,y,z,0.0,-1,-1,0,0); //das habe ich hingeschrieben weil ich denke das bei CreateVehicle ein Wert ausgegeben wird, dieser soll in die Variable vID gespeichert werden
DestroyVehicle(vID); // das Auto wird zerstört print("Auto wurde ERFOLGREICH zerstört!"); //eine Nachricht in der Konsole wird ausgegeben
}
Ich hoffe ich konnte euch helfen!