Adminlevel wird nicht geladen oder gespeichert

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Nabend,


    Habe den Thread schon woanders aufgemacht, muss noch von einem Mod freigegeben werden. Da das aber der falsche Thread sein wird, hoffe ich hier auf hilfe :S


    Nunja, ich bin neu und lerne grade das Scripten. Ich habe
    mit hilfe eines Tuts, ein Login system erstellt. Da das gut gekappt
    hat, arbeite ich auch an einem Adminsystem. Sobald ich mich registriere
    und das Adminlvl auf 2000 Stelle und mich wieder neu einlogge, ist es
    auf 0. Ich habe vorher geschpeichert und den Server neu gestartet. Fals
    es so ein Thread schon geben sollte, tut mir leid bin neu :S
    Poste einfach mal die Zeilen.

    enum SInfo
    {
    AdminLevel,
    Fraktion
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];


    public OnPlayerConnect(playerid)
    {
    new SpielerDatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.txt",Name);
    if(dini_Exists(SpielerDatei))
    {
    ShowPlayerDialog(playerid,DialogLogin, DIALOG_STYLE_INPUT,"Herzlich Willkommen","Dein Account wurde gefunden. \nBitte gebe dein Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DialogRegister,DIALOG_STYLE_INPUT,"Herzlich Willkommen","Gib bitte das gewünschte Passwort ein.","Register","Abbrechen");
    }
    return 1;
    }



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



    stock Register(playerid, key[])
    {
    new SpielerDatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.txt",Name);
    dini_Create(SpielerDatei);
    dini_Set(SpielerDatei,"Passwort",key);
    dini_IntSet(SpielerDatei,"AdminLevel",0);
    SendClientMessage(playerid, Weiß, "Du hast dich erfolgreich registriert.");
    SetPlayerScore(playerid, 0);
    return 1;
    }


    stock Login(playerid, key[])
    {
    new SpielerDatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.txt",Name);
    if(!strcmp(key,dini_Get(SpielerDatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid, Weiß, "Erfolgreich Eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, Weiß, "Das Passwort ist falsch.");


    ShowPlayerDialog(playerid, DialogRegister, DIALOG_STYLE_INPUT,"Herzlich Willkommen","Dein Account wurde gefunden. \nBitte gebe dein Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }


    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,"Score"));
    GivePlayerMoney(playerid,dini_Int(SpielerDatei,"Geld"));
    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,"Score",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"AdminLevel",SpielerInfo[playerid][AdminLevel]);
    dini_IntSet(SpielerDatei,"Fraktion",SpielerInfo[playerid][Fraktion]);
    return 1;
    }

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    Einmal editiert, zuletzt von Freggel ()

  • Wird doch so wie es ist über meine .ini gespeichert oder sehe ich das falsch?

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • Einfach aus



    "/Accounts/%s.txt"


    "/accounts/%s.ini"


    Machen? Sorry, bin wirklich neu und Copy&Past will ich nicht, da lernt man es nicht.


    Zu dem noch ne frage. Habe den /ban Befehl nun erstellt. Wie kann man den Ban in einer .ini oder .txt Datei speichern?

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • du kannst einen ban auch in der .ini speichern.


    Einfach einen Eintrag "Ban" erstellen, und den dann auf 1 setzen wenn der Spieler gebannt ist, wobei das dir nix bringt, da es ja in der samp.ban Datei hinterlegt wird, wer gebannt ist bzw welche IP ^^


    und ja aus dem . txt einfach ein .ini machen.

  • Werde es gleich mal versuchen, danke.



    Nochmal zu dem Ban ^^


    Hatte vorher ein filterscript als Armin System in dem wurde der Ban in einer .txt Datei bei aceiptfiles gesavet. Da konnte man dan einfach einen Ban entfehrnen ^^.

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

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

    "/Accounts/%s.txt"

    in

    "/Accounts/%s.ini"

    geändert. Nun habe ich das Problem das er das Adminlvl nicht läd, aber in der .ini speichert. Zudem ist in der .ini nur Passwort und Adminlvl gespeichert, da fehlt noch Geld und lvl.
    Selben Zeilen wie oben nur mit .ini statt .txt

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

  • Es ist nicht deins, also nicht Copy&Past, habs nach deinem Video gemacht ;)
    Muss sagen, bis jetzt gute videos, danke


    Edit: Habe es nach MrMonats angaben gemacht. Dann habe ich mir in der .txt datei adminlvl 2000 gegeben.
    Ingame kann ich nicht die Befehle eines Adminranks 1 machen.



    dcmd_kick(playerid,params[])
    {
    new
    sGrund[128],
    pID;
    if(SpielerInfo[playerid][AdminLevel]<1)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Adminlevel 1");
    }
    if(sscanf(params, "us",pID,sGrund))
    {
    return SendClientMessage(playerid,COLOR_RED,"/kick [playerid] [grund]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online.");
    }
    new
    ThePlayer[MAX_PLAYER_NAME],
    string[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    format(string,sizeof(string),"%s wurde vom Server gekickt,Grund: %s.",ThePlayer,pID,sGrund);
    Kick(pID);
    return 1;
    }


    Hier werde ich als Adminrank 1 (Supporter) angezeigt. Aber Laut system habe ich kein Adminrank -.-

    dcmd_admins(playerid,params[])
    {
    #pragma unused params
    SendClientMessage(playerid, COLOR_YELLOW, "_________________________________");
    SendClientMessage(playerid, COLOR_YELLOW, "|=========Admins Online========|");


    new i = 0, sendername[256], string[256];
    for(; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "| Admin Level 1 (Supporter): %s", sendername);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    else if(isPlayerAnAdmin(playerid,2))
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "| Admin Level 2 (Moderator): %s", sendername);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    else if(isPlayerAnAdmin(playerid,3))
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "| Admin Level 3 (Admin): %s", sendername);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    else if(isPlayerAnAdmin(playerid,1337))
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "| Admin Level 1337 (Fulladmin): %s", sendername);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    else if(isPlayerAnAdmin(playerid,2000))
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, 256, "| Admin Level 2000 (Server Owner): %s", sendername);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    }
    }
    }
    SendClientMessage(playerid,COLOR_YELLOW,"|_______________________________|");
    return 1;
    }

    Den /admins cmd habe ich nicht selber gemacht. Den habe ich übernommen, aber auf mein script angepasst.
    Hoffe ihr könnt mir helfen -.-

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    Einmal editiert, zuletzt von Freggel ()

  • Egal wie ich es mache, ob mit PVarInt oder mit enum es klappt nicht -.-
    Kann mir vllt einer ein Funktionierendes Reg/Loginsystem machen, in dem das AdminLevel abgespeichert und geladen wird. Zu dem suche ich jmd der mit das nochmal erklärt, verstehe es nicht warum das Adminlvl nicht geladen wird -.-

    Glaub keinem, der Dir sagt, dass Du nichts verändern kannst.
    Die, die das behaupten, haben nur vor der Veränderung Angst.
    Es sind dieselben, die erklären, es sei gut so, wie es ist.
    Und wenn Du etwas ändern willst, dann bist Du automatisch Terrorist (Die Ärzte - Deine Schuld)

    Einmal editiert, zuletzt von Freggel ()