Adminsystem

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
  • Moin, ich mal wieder^^
    dcmd_makeadmin(playerid,params[])
    {
    new pid,level;
    if(sscanf(params,"ud",pid, level))
    {
    return SendClientMessage(playerid,GELB,"Benutzung: /makeadmin [ID] [Adminlevel]");
    }
    if(IstSpielerAdmin(playerid,2000))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online!");
    }
    if(IstSpielerAdmin(pid,level))
    {
    return SendClientMessage(playerid,ROT,"Der Spieler ist bereits Admin auf diesem Level");
    }
    else
    {
    sStats[pid][Adminlevel] = level;
    SendClientMessage(pid,GELB,"Du bist nun ein Admin!");
    SendClientMessage(playerid,GELB,"Du hast einen Admin ernnannt!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Admin");
    }
    return 1;


    Errors:
    C:\Program Files (x86)\Ruuuckstargames\samp03e_svr_win32\gamemodes\miller.pwn(1268) : error 017: undefined symbol "sStats"
    C:\Program Files (x86)\Ruuuckstargames\samp03e_svr_win32\gamemodes\miller.pwn(1268) : warning 215: expression has no effect
    C:\Program Files (x86)\Ruuuckstargames\samp03e_svr_win32\gamemodes\miller.pwn(1268) : error 001: expected token: ";", but found "]"
    C:\Program Files (x86)\Ruuuckstargames\samp03e_svr_win32\gamemodes\miller.pwn(1268) : error 029: invalid expression, assumed zero
    C:\Program Files (x86)\Ruuuckstargames\samp03e_svr_win32\gamemodes\miller.pwn(1268) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Das ist die Zeile 1268:
    sStats[pid][Adminlevel] = level;

  • Ich nochmal...
    //DCMD Befehle


    dcmd_makeadmin(playerid,params[])
    {
    new pid,level;
    if(sscanf(params,"ud",pid, level))
    {
    return SendClientMessage(playerid,GELB,"Benutzung: /makeadmin [ID] [Adminlevel]");
    }
    if(IstSpielerAdmin(playerid,5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online!");
    }
    if(IstSpielerAdmin(pid,level) == level)
    {
    return SendClientMessage(playerid,ROT,"Der Spieler ist bereits Admin auf diesem Level");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid,GELB,"Du bist nun ein Admin!");
    SendClientMessage(playerid,GELB,"Du hast einen Admin ernnannt!");
    }
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist kein Admin");
    }
    return 1;
    }


    Das ist mein Makeadmin befehl aber wenn ich in meiner Spielerdatei mein Adminlevel auf 6 stelle steht da ingame ich bin kein admin? oO

  • Mach ich doch^^
    Klappt trozdem nicht
    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,BLAU,"Du hast dich erflogreich eingelogt");
    SpielerLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Das Passwort ist falsch!");
    Kick(playerid);
    }
    return 1;
    }


    Dammit lädt er doch alles was in der spieler datei ist oder?

  • 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");
    }
    return 1;
    }


    Was ist daran denn falsch? :S


    Edit:
    Hier das speichern:
    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]);
    }
    return 1;
    }

  • Wie meinßt du setzen?
    Ich habe das Adminsystem eben fertig gemacht und dann in meine Spielerdatei das Adminlevel=6 gesetzt
    Aber ingame steht ich bin kein admin.
    Und /makeadmin geht auch nicht (habe den befehl ja au schon).


    Edit: Hier noch mein IstSpielerAdmin

    //Adminsystem
    stock IstSpielerAdmin(playerid,level)
    {
    if(sSpieler[playerid][Adminlevel] >= level) return 1;
    return 0;
    }


    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");
    }
    return 1;
    }

  • Pack das mal rein. Und loge dich als rcon admin ein. Dan müsstest du dir eig. über /makeadmin 0 5 dich als Admin setzen können
    @4#Future: Wie soll er sich den ingame sein Adminlevel setzen wenn er kein Admin ist?.



    dcmd_makeadmin(playerid, params[])
    {
    new pid,level;
    if(sscanf(params,"ud",pid, level))
    {
    return SendClientMessage(playerid,Grey, "Befehl: /nakeadmin [ID] [Rank]");
    }
    if(IsPlayerAdminInt(playerid, 5))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid,Red,"Ungültiger Spieler");
    }
    if(IsPlayerAdminInt(pid,level) == level)
    {
    SendClientMessage(playerid, Red, "Der Spieler ist bereits Admin");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid, Red, "Du wurdest zum Admin ernannt");
    }
    }
    if(IsPlayerAdmin(playerid))
    {
    if(pid == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid,Red,"Ungültiger Spieler");
    }
    if(IsPlayerAdminInt(pid,level) == level)
    {
    SendClientMessage(playerid, Red, "Der Spieler ist bereits Admin");
    }
    else
    {
    sSpieler[pid][Adminlevel] = level;
    SendClientMessage(pid, Red, "Du wurdest zum Admin ernannt");
    }
    }
    else
    {
    return SendClientMessage(playerid,Red,"Du bist kein Admin");
    }
    return 1;
    }