[DINI] GetPVarString - Spieler speichern und laden - Geht nicht..

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
  • Hey,ihr Brotfische!


    Hab da wieder ein kleines Problem... und zwar wollte ich das ein Spieler in seiner PlayerDatei den Wert Fraktion=FrakName statt einer Zahl reingespeichert bekommt,und dieser auch so wieder geladen wird.


    Ich hab's bei LoadAccount so versucht:


    SetPVarString(playerid,"Fraktion",dini_Get(PlayerDatei,"Fraktion"));


    und bei PlayerSpeichern so:


    dini_Set(PlayerDatei,"Fraktion",GetPVarString(playerid,"Fraktion"));


    Ich will also das der Spieler anfangst dort bei Fraktion= Zivilist stehen hat,und wenn ich jemanden einlade oder Leader mache,soll dort der jeweilige Name stehen.


    Aber noch eine Frage,wenn ich das denn so gemacht habe,wie kann ich eine IF-Abfrage machen,so das der String abgefragt wird,und nicht der Integer?


    Fehler:
    blablabla number of arguments does not match definition (2x)
    und type mismatch (1x)

  • "dini_Set" ist sowei ich weiß für ein String


    "dini_Int" diese ist zum Auslesen
    "dini_IntSet" und die zum Speichern

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Puh! Also hat mein Hintergedanke doch noch eine Bedeutung gehabt ^^


    Okay,vergisst dies,aber wie muss die Funktion gemacht werden,und wie soll das bei z.Bsp meinem /stats Befehl den ich mit nem Dialog in einem Weg schreibe,klappen???

  • hier als vorlage, falls du es in einem enum hast.
    Du schreibst eine funktion, mit dem parameter playerid. Darin fragst du einfach ab, welche fraktion er hat, und formatierst einen string
    welchen du auch zurück gibst.


    So in etwa

    stock frakname(playerid)
    {
    new fraknames[128];
    if (SpielerInfo[playerid][Frak] == 0) fraknames = ("Zivilist");
    if (SpielerInfo[playerid][Frak] == 1) fraknames = ("San Andreas Police Departmane");
    if (SpielerInfo[playerid][Frak] == 2) fraknames = ("Sonder Einsatz Komando");
    if (SpielerInfo[playerid][Frak] == 3) fraknames = ("San Andreas ARMY");
    if (SpielerInfo[playerid][Frak] == 4) fraknames = ("San Andreas Rettungsdienst");
    return fraknames;
    }

  • Ich teste es gleich,aber ich speicher die Fraktion alle mit Dini,frage sie mit GetPVarInt(playerid,"Fraktion") ab,und so weiter..alles mit Dini oder was das noch so ist.


    //Edit:
    So an sich,mit meiner Dini abfrage,keine errors..
    Aber wenn ich /stats eingebe steht dort [rrrr bei Fraktion


    Kannst mal nachschauen ob alles richtig ist?


    ocmd:stats befehl:
    ocmd:stats(playerid,params[])
    {
    new string[128];
    format(string,sizeof(string),"{0f3163}Spieler Infos\n{ffffff}Name: %s\nGeld: %i\nLevel: %i\nZahltag: In %i/60 Minuten\n \n{0f3163}Fraktionen und Job\n{ffffff}Fraktion: %s",PlayerName(playerid),GetPlayerMoney(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Paytime"),frakname(playerid));
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Deine Statistik",string,"Danke"," ");
    return 1;
    }


    und hier der stock
    stock frakname(playerid)
    {
    new fraknames[128];
    if (GetPVarInt(playerid,"Fraktion")==0) fraknames = ("Zivilist");
    if (GetPVarInt(playerid,"Fraktion")==1) fraknames = ("LSPD");
    if (GetPVarInt(playerid,"Fraktion")==2) fraknames = ("News Reporter");
    if (GetPVarInt(playerid,"Fraktion")==3) fraknames = ("Yakuza");
    if (GetPVarInt(playerid,"Fraktion")==4) fraknames = ("Grove Street");
    return fraknames;
    }

  • dann würde es so aussehen



    stock frakname(playerid)
    {
    new fraknames[128];
    if (GetPVarInt(playerid,"Fraktion") == 0) fraknames = ("Zivilist");
    if (GetPVarInt(playerid,"Fraktion") == 1) fraknames = ("San Andreas Police Departmane");
    if (GetPVarInt(playerid,"Fraktion") == 2) fraknames = ("Sonder Einsatz Komando");
    if (GetPVarInt(playerid,"Fraktion") == 3) fraknames = ("San Andreas ARMY");
    if (GetPVarInt(playerid,"Fraktion") == 4) fraknames = ("San Andreas Rettungsdienst");
    return fraknames;
    }

    [/pwn]