1 Frage zu PVar´s und zu Speichern

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
  • Hallo Brotfischer,
    ich bin ja derzeit dabei ein Selfmade zu erstellen und hab ein kleines Problem mit den PVar`s. Unzwar wollte ich gern den Namen von dem man Gebannt wurde speichern in der ini und sie dann im UCP abfragen lassen, es geht halt nur darum das ich versucht habe per SetPVarString zu speichern aber in der Ini nicht der Name drin steht. hier man mein Code
    dcmd_ban(playerid,params[]) {
    new sGrund[128], pID, ThePlayer[MAX_PLAYER_NAME],Aname[MAX_PLAYER_NAME], string[128],h,m,s,tag,monat,jahr;
    if(SpielerEingeloggt[playerid] == 0) { return SendClientMessage(playerid,rot,"Du bist nicht eingeloggt!"); }
    if(GetPVarInt(playerid,"Adminlevel") < 3) { return SendClientMessage(playerid,rot,"Du bist kein Admin oder dein Adminlevel ist zu Niedrig."); }
    if(sscanf(params, "is",pID,sGrund)) { return SendClientMessage(playerid,rot,"Nutzung: /ban [playerid] ([grund],optional)"); }
    if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,rot,"Kein Spieler mit angegebener ID Online"); }
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,Aname,sizeof(Aname));
    format(string,sizeof(string),"%s[%d] wurde von %s[%d] gebannt | Grund: %s",ThePlayer,pID,Aname,playerid,sGrund[0] ? sGrund : "");
    SendClientMessageToAll(rot,string);
    gettime(h,m,s);
    getdate(jahr,monat,tag);
    SetPVarInt(pID,"Gebannt",1);
    format(string,sizeof(string),"%s",Aname);
    SetPVarString(pID,"BanVon",string);
    format(string,sizeof(string),"%d.%d.%d",tag,monat,jahr);
    SetPVarString(pID,"BanDatum",string);
    format(string,sizeof(string),"%d.%d:%d",h,m,s);
    SetPVarString(pID,"BanZeit",string);
    format(string,sizeof(string),"%s",sGrund);
    SetPVarString(pID,"BanGrund",string);
    SaveAccount(pID);
    Ban(pID);
    return 1;
    }

    Und meine 2.nd Frage ist ob es möglich ist per Pawn in eine .cfg datei eine neue Zeile erstellen zu lassen oder sie zu löschen. Quasi das ich im game ein command eingebe und dann in der ini steht halt in einer neuen Zeile meine coordinaten.
    Grüßee David :)

  • SetPVar_* schreibt auch nicht in die Datei.
    PVars sind Daten die nur der Server kennt.


    SetPVarInt(pID,"Gebannt",1);
    //format(string,sizeof(string),"%s",Aname);
    SetPVarString(pID,"BanVon",Aname); // Aname
    format(string,sizeof(string),"%d.%d.%d",tag,monat,jahr);
    SetPVarString(pID,"BanDatum",string);
    format(string,sizeof(string),"%d.%d:%d",h,m,s);
    SetPVarString(pID,"BanZeit",string);
    //format(string,sizeof(string),"%s",sGrund);
    SetPVarString(pID,"BanGrund",sGrund); //sGrund


    Wahrscheinlich speicherst du an dieser Stelle die Daten:
    SaveAccount(pID);
    Je nachdem welches System du nutz,DINI,SINI,Y_INI, MYSQL usw usf musst du damit die Daten speichern.


    Zum zweiten, dafür gibt es ja eigentlich /save.


    Hier ein Beispiel aus meinem Gamemode :-O

    // Die Datei position.txt muss existieren
    COMMAND:savepos(playerid,params[]) {
    new
    File:fFile;
    fFile = fopen("position.txt",io_append);
    if(fFile) {
    new
    Float:_X,
    Float:_Y,
    Float:_Z,
    String[64];
    GetPlayerPos(playerid,_X,_Y,_Z);
    format(String,sizeof(String),"%.3f,%.3f,%.3f\r\n",_X,_Y,_Z);
    fwrite(fFile,String);
    PlayerPlaySound(playerid,SOUND_GOOD,0.0,0.0,0.0);
    SendClientMessage(playerid,COLOR_RED,String);
    fclose(fFile);
    }
    else {
    SendClientMessage(playerid,COLOR_RED,"ERROR");
    }
    return 1;
    }

  • Danke für die Schnelle Antwort :)
    Ja ich Speichere mit Dini, oh und mir fällt grade auf das ich ein Integer speichere :whistling: Wie ist denn die Funktion um Arrays zu speichern?
    wegen der 2.nd Frage, war nur ein beispiel, ich wollte mir eingentlich ein gangcar sys bauen wo man sich ein auto für die gang kaufen kann und auch verkaufen kann. Nur soll das ja in die Ini gespeichert werden und wenn man es verkaufen will soll es ja wieer gelöscht werden. Ich hab lediglich nur keine Ahnung wie ich eine Zeile erstelle oder lösche.

  • ok danke jetz funktionierts :)
    naja ich hab bisher noch nicht gesehn das man gangcars in game kaufen kann und auch verkaufen kann aber so das sie eben auch gespeichert werden falls gmx ist. ich guck mal was sich machen lässt.
    //EDIT: Hab noch ein kleines Problem mit GetPVarString könnte mir jemand dazu ein beispiel geben ich check das nich ganz :whistling:

    Einmal editiert, zuletzt von DDG.Yusuf_Amir ()