Problem mit Makeadmin-Befehl

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
  • Guten Tag,


    ich habe vor kurzem nach sehr langen wieder mit dem Scripten begonnen und bin derzeit an einem Stunt-Server Projekt.
    Nun habe ich ein Problem mit meinem 'makeadmin'-Befehl, dieser auf einmal nicht mehr geht. Vorhin ging dieser noch, und
    rumgetestet habe ich auch schon. Hier ist der Code, ich danke im vorraus für Hilfe.



    ocmd:makeadmin(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist dafür zu niedrig.");
    new pID, rank;
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"Benutzung: /makeadmin [ID] [Level]");
    if(rank<1||rank>5)return SendClientMessage(playerid,ROT,"Bitte einen gültigen Rang angeben.");
    SetPVarInt(pID,"Adminlevel",rank);
    SpielerSpeichern(pID);
    return 1;
    }

  • Hier ist der Stock:



    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }

  • hab gedacht vlcht haste
    Adminlevel


    falsch geschrieben aber sieht nicht so aus ^^
    wird denn der rank in die ini abgespeichert?


    edit: in meinem alten script sieht das genau gleich aus eigtl:

    stock isPlayerAnAdmin(playerid,rang)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPVarInt(playerid,"AdminLevel")>=rang)return 1;
    }
    return 0;
    }


    ocmd:adminrang(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID, rang,
    if(!isPlayerAnAdmin(playerid,6)) return SendClientMessage(playerid,ROT,"Dein Admin Level ist nicht hoch genug!");
    if(sscanf(params,"ui",pID,rang)) return SendClientMessage(playerid,BLAU,"Info: /adminrang [id] [level]");
    if(rang<0||rang>6) return SendClientMessage(playerid,ROT,"Ungültiger Rang! /adminrang [id] [0-6]");
    SetPVarInt(pID,"AdminLevel",rang);
    SpielerSpeichern(pID);
    }
    return 1;
    }


    edit2:
    mir faellt auf du hast so eine abfrage nicht mit drin:

    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht auf dem Server!");

    vielleicht gibts du der falschen id den rang?

    Einmal editiert, zuletzt von Tround ()

  • Dein Code sollte eigentlich funktionieren.
    Das von Carlos ist leider komplett falsch, damit fragst du ab ob er einen geringeren Rang als den gesuchten Rang hat.
    Was funktioniert denn eigentlich nicht? Kommt ein "Unknown Command" oder passiert überhaupt nichts oder wird der Code ausgeführt, aber du bist immer noch kein Admin?

    Professioneller Webentwickler.

  • Hallo Mr. Flash,


    nein es kommt nicht Unknown Command. Es passiert einfach nichts. Ich teste es nun noch einmal.

  • Hier ist mal meiner, versuch den mal :)



    ocmd:makeadmin(playerid,params[])
    {
    new pID, Rang, string[128],adminname[128];
    if(!isPlayerAnAdmin(playerid,6))return SendClientMessage(playerid,Rot,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {C90000}Full Admin");
    if(sscanf(params,"ui",pID,Rang))return SendClientMessage(playerid,Gelb,"Benutzung: /setadmin [ID][Rang]");
    if(Rang < 0 || Rang > 6)return SendClientMessage(playerid,Rot,"Es gibt nur 6 Adminlevel");
    SetPVarInt(pID,"Adminlevel",Rang);
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminname="Nein";}
    case 1:{adminname="{00D4C9}ProbeSupporter";}
    case 2:{adminname="{00FA1D}Supporter";}
    case 3:{adminname="{018210}Moderator";}
    case 4:{adminname="{D18400}Super Moderator";}
    case 5:{adminname="{D12300}High Admin";}
    case 6:{adminname="{C90000}Full Admin";}
    }
    format(string,sizeof(string),"AdmCmd: Du hast %s zu einem %s gemacht.",SpielerName(playerid),adminname);
    SendClientMessage(playerid,Gold,string);
    format(string,sizeof(string),"{C90000}Full Admin {FFFFFF}%s hat dich zu einem %s befördert!",SpielerName(pID),adminname);
    SendClientMessage(pID,Gold,string);
    return 1;
    }

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward


  • lol :D kommt dann sowas wie:


    "AdmCmd: Du hast bla zu einem Nein gemacht."


    ? :D


    Nein, ^^... das ist Adminlevel 0 = User :D also keine Rechte. und das Nein muss ich noch ändern, war spontan :D.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Der Befehl ging vorhin noch, kann es sein dass dieser Befehl von einem anderen blockiert wird?

  • Der Befehl ging vorhin noch, kann es sein dass dieser Befehl von einem anderen blockiert wird?


    Nein kann nicht sein, schau am besten mal nach, was du zuletzt in das Script getan hast. Villeicht hat es damit was zu tun

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Erklär uns doch bitte erstmal, WAS nicht geht. -.-'
    Sonst können wir auch nicht helfen ...

  • ocmd:makeadmin(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))
    {
    return SendClientMessage(playerid,ROT,"Dein Rang ist dafür zu niedrig.");
    }
    new pID, rank, sendername[MAX_PLAYER_NAME], anderername[MAX_PLAYER_NAME];
    if(sscanf(params,"ui",pID,rank))
    {
    return SendClientMessage(playerid,ROT,"Benutzung: /makeadmin [ID] [Level]");
    }
    if(rank>5)
    {
    return SendClientMessage(playerid,ROT,"Bitte einen gültigen Rang angeben.");
    }
    GetPlayerName(playerid,sendername,sizeof(sendername));
    GetPlayerName(pID,anderername,sizeof(anderername));
    SetPVarInt(pID,"Adminlevel",rank);
    format(string,sizeof(string),"Du hast %s sein Adminlevel auf %d gesetzt!",anderername,rank);
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string,sizeof(string),"%s hat dich dein Adminlevel auf %d gesetzt!",sendername,rank);
    SendClientMessage(playerid,COLOR_BLUE,string);
    SpielerSpeichern(pID);
    return 1;
    }
    Probiere es so mal


    //edit:
    Zu spät-.-

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png