Adminlevel-Befehl spinnt

  • Guten Abend zusammen :D
    Ich bin noch sehr am Anfang und wollte einen Befehl erstellen, mit dem man als Rcon-Admin oder Serverleiter (Adminlevel 4) das Aminlevel eines Spielers ändern kann. Compile-Errors hab ich keine.
    Sowie ich /setadminlevel 0 (Meine ID) 4 auf meinem Localhost eingebe, passiert das im Chat:





    Hier der Befehl im Script:
    dcmd_setadminlevel(playerid, params[])
    {
    new spieler[100];
    new spieler2[100];
    new name[MAX_PLAYER_NAME];
    new name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(spieler,sizeof(spieler),"/Accounts/%s.txt",name);
    if(IsPlayerAdmin(playerid))
    {
    new id, alevel;
    new str[128];
    new str2[128];
    new str3[128];
    if(sscanf(params,"uu",id,alevel)) return SendClientMessage(playerid,WEISS,"/setadminlevel [ID] [0-4]");
    GetPlayerName(id,name2,sizeof(name2));
    format(str,sizeof(str),"A: %s ist nun ein level %d Admin!",name2,alevel);
    format(str2,sizeof(str2),"A: Du wurdest zu einem level %d Admin befördert!",alevel);
    format(str3,sizeof(str3),"A: Du wurdest zu einem level %d Admin degradiert!",alevel);
    format(spieler2,sizeof(spieler2),"/Accounts/%s.txt",name2);
    dini_IntSet(spieler2,"Adminlevel",alevel);
    if(dini_Int(spieler2,"Adminlevel") > alevel)
    SendClientMessage(playerid,HELLROT,str);
    {
    SendClientMessage(id,HELLROT,str3);
    }
    if(dini_Int(spieler2,"Adminlevel") < alevel)
    {
    SendClientMessage(id,HELLROT,str2);
    }
    if(dini_Int(spieler2,"Adminlevel") == alevel)
    {
    SendClientMessage(playerid,HELLROT,"A: Dieser Spieler hat bereits dieses Adminlevel!");
    return 1;
    }
    return 1;
    }
    if(dini_Int(spieler,"Adminlevel") == 4)
    {
    new id, alevel;
    new str[128];
    new str2[128];
    new str3[128];
    if(sscanf(params,"uu",id,alevel)) return SendClientMessage(playerid,WEISS,"/setadminlevel [ID] [0-4]");
    GetPlayerName(id,name2,sizeof(name2));
    format(str,sizeof(str),"A: %s ist nun ein level %d Admin!",name2,alevel);
    format(str2,sizeof(str2),"A: Du wurdest zu einem level %d Admin befördert!",alevel);
    format(str3,sizeof(str3),"A: Du wurdest zu einem level %d Admin degradiert!",alevel);
    format(spieler2,sizeof(spieler2),"/Accounts/%s.txt",name2);
    dini_IntSet(spieler2,"Adminlevel",alevel);
    if(dini_Int(spieler2,"Adminlevel") > alevel)
    SendClientMessage(playerid,HELLROT,str);
    {
    SendClientMessage(id,HELLROT,str3);
    }
    if(dini_Int(spieler2,"Adminlevel") < alevel)
    {
    SendClientMessage(id,HELLROT,str2);
    }
    if(dini_Int(spieler2,"Adminlevel") == alevel)
    {
    SendClientMessage(playerid,HELLROT,"A: Dieser Spieler hat bereits dieses Adminlevel!");
    return 1;
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,HELLROT,"A: Du bist nicht befugt!");
    return 1;
    }
    }


    Danke schonmal im Voraus :thumbup:

  • Versuch es mal mit dem Code.


  • Ok, habe noch in Zeile 3 "SName" zu "Sname" geändert, doch jetzt kommen die Fehlercodes:


    C:\Users\Simon\Desktop\GTA SA Server\gamemodes\NVRoleplay.pwn(1132) : error 001: expected token: "-string end-", but found "-identifier-" // if(dini_Int(Spieler2, "Adminlevel" > alevel))
    C:\Users\Simon\Desktop\GTA SA Server\gamemodes\NVRoleplay.pwn(1141) : error 001: expected token: "-string end-", but found "-identifier-" //else if(dini_Int(Spieler2, "Adminlevel" < alevel))
    C:\Users\Simon\Desktop\GTA SA Server\gamemodes\NVRoleplay.pwn(1150) : error 001: expected token: "-string end-", but found "-identifier-" //else if(dini_Int(Spieler2, "Adminlevel" == alevel))
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

  • Code
    1. if(dini_Int(Spieler2, "Adminlevel" > alevel))

    Bearbeite das und die anderen zwei Abfragen nach diesem Schema:



    Code
    1. if(dini_Int(Spieler2, "Adminlevel") > alevel)

    Eine Klammer muss nach "Adminlevel" gesetzt werden also "Adminlevel") und eine der beiden hinteren kannst du löschen.


    //Edit: Ich beziehe mich auf den Code von SLaYz

  • War mein Fehler sorry. Sollte nun gehen.

  • Jetzt ist der Error draußen, aber Jetzt kann ich als Admin Level 0, 1, 2, 3 mein Level ändern, aber wenn ich Level 4 bin nicht mehr..
    //Edit: Allein als Rcon admin funktioniert, sry ^^

  • So war das nicht gemeint ^^ Ich meinte, dass ich den Command sowohl nur als Serverleiter (Level 4 Admin) , nur als Rcon-Admin als auch als Serverleiter und Rcon-Admin zusammen nutzen kann , also so, wie ich es am Anfang in den Thread gepostet habe :D Tut mir leid, dass es grad so kompliziert ist ^^


  • Ich hoffe ich hab das jetzt richtig verstanden... also du willst den Befehl als Rcon-Admin oder als Serverleiter (Level 4 Admin) verwenden können bzw. wenn du beides bist. Falls ja dann:


  • Ja, richtig verstanden :D Doch wenn ich jetzt kein Rcon-Admin bin, jedoch Level 4 admin, kann ich den Befehl trz nicht verwenden.
    Und wenn ich kein Rcon-Admin bin, jedoch level 4 Admin, geht es auch nicht.. :/
    Ich schätze das liegt an daran, dass die Bedingung Rcon-Admin zu sein ( if(!IsPlayerAdmin(playerid)) ) mit der bedingung level 4 Admin zu sein ( dini_Int(Spieler,"Adminlevel") < 4) ) zusammenhängt..
    Ich würde sagen, es passt aber auch so, bevor ich noch mehr eurer Zeit raube ^^


    Auf jeden Fall bedanke ich mich recht herzlich bei euch! :)

  • Ich schätze das liegt an daran, dass die Bedingung Rcon-Admin zu sein ( if(!IsPlayerAdmin(playerid)) ) mit der bedingung level 4 Admin zu sein ( dini_Int(Spieler,"Adminlevel") < 4) ) zusammenhängt..
    Ich würde sagen, es passt aber auch so, bevor ich noch mehr eurer Zeit raube

    Ups...


    Entweder:

    Oder du ersetzt bei dem anderen Code die | | durch && .