Frage | dini - Abspeicherung

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
  • Guten Abend Community,
    ich bin seit ca. 30 Minuten auf der Suche nach einer Frage auf meine Antwort es betrifft die dini Abspeicherung ich würde etwas benötigen und zwar möchte ich einen Geldbetrag den ich zuvor mit einem Befehl gesetzt habe abspeichern lassen und anschließend wieder auslesen lassen.
    Hier der Code:



    new fareprice = 50, //Ich musste dem farprice vorläufig einen bestimmten Wert geben um den Rest zu erledigen



    dcmd_setfareprice(playerid,params[])
    {
    if(PlayerInfo[playerid][pLeader] != 10) return SendClientMessage(playerid,COLOR_GREY," * Du bist kein Sunny Side Mitarbeiter oder nicht der Leader!");
    if(!params[0]) return SendClientMessage(playerid,COLOR_GRAD1,"Verwendung: /setfareprice [Preis]");
    new str[128];
    if(strval(params) < 0) return SendClientMessage(playerid, COLOR_RED, "Der Preis sollte über 0$ liegen!"); //Hier sollte irgendwo der fareprice gespeichert werden
    fareprice = strval(params);
    format(str, sizeof str, "Preis erfolgreich auf %d$ gesetzt!",fareprice);
    SendClientMessage(playerid,COLOR_GREEN,str);
    return 1;
    }



    if(strcmp(cmd,"/taxidienst",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInFrac(playerid, 10))
    {
    if(TransportDienst[playerid] > 0)
    {
    if(TransportDienst[playerid] == 1)
    {
    TaxiDrivers -= 1;
    }
    TransportDienst[playerid] = 0;
    format(string, sizeof(string), "* Du bist nun außer Dienst und hast $%d verdient.", TransportGeld[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(playerid, TransportMoney[playerid]);
    ConsumingMoney[playerid] = 1; TransportVolumen[playerid] = 0; TransportGeld[playerid] = 0;
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 420 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 438)
    {
    if(GetPlayerState(playerid) == 2)
    {
    PlayerInfo[playerid][pInDienst] = 1;
    TaxiDrivers += 1; TransportDienst[playerid] = 1; TransportVolumen[playerid] = fareprice;
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "Taxifahrer %s ist im Dienst, Preis: $%d.", sendername, fareprice); //Hier sollte der fareprice wieder ausgelesen werden
    OOCNews(TEAM_GROVE_COLOR,string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht der Fahrer von diesem Taxi!");
    return 1;
    }
    }
    }
    }
    return 1;
    }



    Zudem würde ich mich auch über ein gutes Tutorial freuen, wie ich z.B Geldbeträge abspeichere und anschließend wieder auslese (Spielerdaten abspeichern und auslesen lassen, funktioniert.).


    Mit freundlichen Grüßen,
    dome_crasher

  • du machst einfach bei:
    dcmd_setfareprice(playerid,params[]){
    if(PlayerInfo[playerid][pLeader] != 10) return SendClientMessage(playerid,COLOR_GREY," * Du bist kein Sunny Side Mitarbeiter oder nicht der Leader!");
    if(!params[0]) return SendClientMessage(playerid,COLOR_GRAD1,"Verwendung: /setfareprice [Preis]");
    new str[128];
    if(strval(params) < 0) return SendClientMessage(playerid, COLOR_RED, "Der Preis sollte über 0$ liegen!"); //Hier sollte irgendwo der fareprice gespeichert werden
    fareprice = strval(params);
    format(str, sizeof str, "Preis erfolgreich auf %d$ gesetzt!",fareprice);
    SendClientMessage(playerid,COLOR_GREEN,str); SetPVarInt(playerid,"TaxiCost",fareprice);
    return 1; }






    und fragst es halt da wo du es haben willst mit:
    GetPVarInt(playerid,"TaxiCost");


    ab

  • Wird der eingegebene fareprice auch gespeichert? - Es sollte gespeichert werden, wenn z.B der Leader einen Preis eingestellt hat und anschließend ein Serverneustart ist, ist der fareprice nicht mehr eingestellt.
    Nun sollte es eben gespeichert sein damit dieses Szenario nicht eintreffen kann. :)


    Mit freundlichen Grüßen,
    dome_crasher

  • dann musst du das in einer txd oder anderen datei abspeichern lassen und dann wieder abfragen lassen

  • dini_GetInt?
    Du meinst wohl hoffentlich dini_Int ^^


    //Edit INk
    Ja mein ich xD

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

    Einmal editiert, zuletzt von InternetInk aka Benjamin ()

  • Ungetestet:

    //In dem SetfareBefehl vor dem format
    if(!dini_Exists("Fare"))//wenn es sie nicht gibt
    {
    dini_Create("Fare"));//Erstellen
    dini_IntSet("Fare","Price",fareprice);//Preis festlegen
    }
    else//Wenn doch ändere den aktuellen preis in der Datei
    {
    dini_IntSet("Fare","Price",fareprice);
    }


    //In dem Befehl taxidienst nach der SendclientMessage z.B.
    if(!dini_Exists("Fare"))//wenn es sie nicht gibt
    {
    dini_Create("Fare"));//Erstellen
    dini_IntSet("Fare","Price",15);//Standard Preis festlegen
    }
    else//Wenn doch lade den aktuellen preis aus der Datei
    {
    fareprice = dini_Int("Fare","Price");
    }