Beiträge von Ryan_Crawley

    MadAd ist Buggy ^^ Registriere mich mit Passwort z.b. Test und kann mich mit jeden andern Passwort einloggen. Es geht nichts über ein selfmade adminscript ;)


    Meins läd das Adminlvl noch nicht ^^

    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 -.-

    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 -.-

    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

    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;
    }