Sich selbst Premium-Geb Befehl funktioniert nur solange ich In-Game bin

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, Breadfish-User.
    Ich habe da eine Frage, undzwar:
    Ich habe ein Command gemacht der mich selbst Premium macht. Jedoch muss ich dann dafür reconnecten. Wenn ich InGame bin und /givemepremium eingebe, und in die Accountdatei schau, dann steht da 1 (Premium) aber wenn ich rausgehe, und reconnecte, wird es wieder auf 0 (nicht premium) gesetzt. Hier ist der Code:
    if(!strcmp("/givemepremium",cmdtext,true))
    {
    if(isPlayerAnAdmin(playerid,3))
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format (Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Premium",10);
    SendClientMessage(playerid,Color_RED,"Du hast dir erfolgreich selbst Premium gegeben!");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Color_RED,"Du hast nicht das geeignete Adminlevel dafür!");
    return 1;
    }
    }


    Kann das auch sein, dass es am AccountSpeichern liegt? Sofern ihr den Code dazu wollt schreibt einfach kurz, und ich poste es noch.
    Hoffe mir kann jemand helfen.


    LG

  • Ich hab noch keinen wirklichen nur zum probieren:

    if(!strcmp("/phelp",cmdtext,true))
    if(isPlayerPremium(playerid,1))
    {//befehl6
    SendClientMessage(playerid,Hellgruen,"___________________________________________________________________");
    SendClientMessage(playerid,Blau,"Folgende Befehle stehen Premiumusern zurzeit zur Verfügung:");
    SendClientMessage(playerid,Blau,"Bisher wurden noch keine Premium-Befehle hinzugefügt.");
    SendClientMessage(playerid,Hellgruen,"___________________________________________________________________");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Color_RED,"Du besitzt keinen Premium-Account, wende dich dazu an den Serverowner!");
    return 1;
    }//befehl6


    Die Kommentare stehen da für die Übersicht, hab mal meine ganzen Commands wegen einem Klammerfehler "aufgeschmissen"

  • Anstatt:
    dini_IntSet(Spielerdatei,"Premium",10);


    Lieber
    dini_IntSet(Spielerdatei,"Premium",1);


    Oder nicht? Du fragst bei /phelp

    if(isPlayerPremium(playerid,1))


    Ob er Premium 1 ist aber bei givemepremium kriegt er premium 10


  • stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format (Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Premium",dini_Int(Spielerdatei,"Premium"));
    //SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
    //SpielerInfo[playerid][Fraktion]=dini_Int(Spielerdatei,"Fraktion");
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format (Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Premium",GetPVarInt(playerid,"Premium"));
    return 1;
    }



    Vergesst den Kommentar, war noch von nem alten "System"
    Und in OnPlayerDisconnect

    public OnPlayerDisconnect(playerid, reason)
    {
    SpielerSpeichern(playerid);
    return 1;
    }

  • Du könntest in dem "/givemepremium" Befehl anstatt "dini_SetInt" -> "SetPVarInt verwenden und ihm so Premium geben.
    Denn beim SpielerSpeichern fragt er ab, was in "GetPVarInt" eingetragen wurde und erkennt nichts. Daher wird er es nach dem Disconnecten immer wieder auf 0 setzen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen