Admin setzt immer wieder auf 0

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


    Ich habe mal wieder ein Problem und zwar setzt es mein adminlevel immer wieder auf 0 zurück..
    Sprich ich regestriere mich gehe in den Scriptfiles ordner gebe mir admin level 5 und starte den server neu.


    Doch sobald ich den server neu starte setzt es das Adminlevel automatisch wieder auf 0 zurück..


    Sagt mir bitte was ihr für einen Code braucht ich wüsste nicht welchen ich euch zeigen müsste außer den Spieler laden Code


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SetPlayerScore(playerid, dini_Int(Spieler,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
    sSpieler[playerid][Leader] = dini_Int(Spieler,"Leader");
    sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");
    sSpieler[playerid][Rang] = dini_Int(Spieler,"Rang");
    sSpieler[playerid][sLogin] = 1;
    SpawnPlayer(playerid);
    }
    return 1;
    }

    Mit freundlichen Grüßen
    Siepac

  • stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spieler,"Skin",sSpieler[playerid][Skin]);
    dini_IntSet(Spieler,"Leader",sSpieler[playerid][Leader]);
    dini_IntSet(Spieler,"Geld",sSpieler[playerid][Geld]);
    dini_IntSet(Spieler,"Rang",sSpieler[playerid][Rang]);
    }
    return 1;
    }

    Mit freundlichen Grüßen
    Siepac

  • CMD:setadmin(playerid,params[])//jmd. zum Admin machen
    {
    new string[90];
    if(sSpieler[playerid][Adminlevel] < 3)return SendClientMessage(playerid,Rot,"Du hast nicht den nötigen Adminrang");
    new pID, rang;
    if(sscanf(params,"ui",pID,rang))return SendClientMessage(playerid,Rot,"Benutze /setadmin [ID] [Rang]");
    if(rang>2000 || rang<0)return SendClientMessage(playerid,Rot,"Bitte gültigen Rang angeben.");
    sSpieler[pID][Adminlevel] = rang;
    format(string,sizeof(string),"Du wurdest von %s auf Adminlevel %i befördert.",Spielername(playerid),rang);
    SendClientMessage(pID,Blau,string);
    format(string,sizeof(string),"Du hast %s auf Adminlevel %i befördert",Spielername(pID),rang);
    SendClientMessage(playerid,Blau,string);
    return 1;
    }


    mit dem befehl hat das aber nichts zutuhen hat ja vorher auch geklappt



    und alles andere hast du getestet und klappt?


    Ich kann mir doch kein geld geben ohne admin :D



    public OnPlayerDisconnect(playerid, reason)
    {
    sSpieler[playerid][sLogin] = 0;
    SpielerSpeichern(playerid);
    return 1;
    }

    Mit freundlichen Grüßen
    Siepac


  • dann mach doch bei OnPlayerConnect zu testen einfach:

    GivePlayerMoney(playerid,+5000);
    SetPlayerScore(playerid,GetPlayerScore(playerid) + 5);

  • Warte..Mach folgendes...Connecte nicht,und ändere ohne dass du auf dem Server bist die .ini..da sonst die Dateien überschrieben werden,wenn du es machst,während du auf dem Server bist

    jetzt klappt es doch warum hat es einfach mal so alles auf 0 gesetzt?

    Mit freundlichen Grüßen
    Siepac


  • ich würds so machen :

    dini_IntSet(Spieler,"Adminlevel",GetPlayerPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));

    und das dann alles so umschrieben
    //edit bei load account würd ichs so machen:
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spieler,"Adminlevel"));
    und du musst natürlich bei onPlayerConnect SpielerLaden(playerid);
    machen oder bei deinem login/register system damit es auch geladen wird vershest du?

  • nein,ist es nicht :whistling:


    Zitat von »Manniac«
    Warte..Mach folgendes...Connecte nicht,und ändere ohne dass du auf dem Server bist die .ini..da sonst die Dateien überschrieben werden,wenn du es machst,während du auf dem Server bist
    jetzt klappt es doch warum hat es einfach mal so alles auf 0 gesetzt?

  • Techno4life hast du bei OnPlayerConnect oder bei dem login dialog

    SpielerLaden(playerid);
    eingebaut
    /edit mannaic das was du gesagt hast hat schin mal weitergeholfen aber so sollte jetzt auch das nächste behoben sein