Fraktions Autos

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Beitrag von _Advanced_ ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Wird nicht geladen und auch nicht gespeichert :D


    //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.

    Einmal editiert, zuletzt von _Advanced_ ()

  • 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.

  • 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.

  • Beitrag von _Advanced_ ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • 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.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: returns entfernt

  • 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

  • Spoiler anzeigen
    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;
    }

    Spoiler anzeigen
    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;
    }

    Du musst aus beiden Schleifen das return true; entfernen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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 :P