/ahelp Problem liest die Variablen nicht richtig?

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
  • Hallo, wenn ich InGame /ahelp mache sehe ich nur die Supporter Befehle, obwohl meine Rechte bis auf Variable 6 Server Leitung gehen.
    Hier der Code:
    ocmd:ahelp(playerid,params[])
    {
    if(GetPVarInt(playerid,"Online") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt und kannst diesen Befehl nicht verwenden.");
    if(GetPVarInt(playerid,"Adminduty") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht im Admindienst.");
    if(isPlayerAnAdmin(playerid,1))
    {
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /kick | /gethere | /goto | /w | /aduty");
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /unspec | /spec | /checkgun | /o");
    }
    else if(isPlayerAnAdmin(playerid,2))
    {
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /kick | /gethere | /goto | /w | /aduty");
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /unspec | /spec | /checkgun | /o");
    SendClientMessage(playerid,COLOR_GELB,"*MODERATOR*: /spawn | /getip | /freeze | /unfreeze | /slap | /clearchat");
    }
    else if(isPlayerAnAdmin(playerid,3))
    {
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /kick | /gethere | /goto | /w | /aduty");
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /unspec | /spec | /checkgun | /o");
    SendClientMessage(playerid,COLOR_GELB,"*MODERATOR*: /spawn | /getip | /freeze | /unfreeze | /slap | /clearchat");
    SendClientMessage(playerid,COLOR_GELB,"*ADMINISTRATOR*: /ban | /explode | /warn | /unwarn | /unban | /rac");
    }
    else if(isPlayerAnAdmin(playerid,4))
    {
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /kick | /gethere | /goto | /w | /aduty");
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /unspec | /spec | /checkgun | /o");
    SendClientMessage(playerid,COLOR_GELB,"*MODERATOR*: /spawn | /getip | /freeze | /unfreeze | /slap | /clearchat");
    SendClientMessage(playerid,COLOR_GELB,"*ADMINISTRATOR*: /ban | /explode | /warn | /unwarn | /unban | /rac");
    SendClientMessage(playerid,COLOR_GELB,"SUPER ADMINISTRATOR*: /heal | /armour");
    }
    else if(isPlayerAnAdmin(playerid,5))
    {
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /kick | /gethere | /goto | /w | /aduty");
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /unspec | /spec | /checkgun | /o");
    SendClientMessage(playerid,COLOR_GELB,"*MODERATOR*: /spawn | /getip | /freeze | /unfreeze | /slap | /clearchat");
    SendClientMessage(playerid,COLOR_GELB,"*ADMINISTRATOR*: /ban | /explode | /warn | /unwarn | /unban | /rac");
    SendClientMessage(playerid,COLOR_GELB,"*SUPER ADMINISTRATOR*: /heal | /armour");
    SendClientMessage(playerid,COLOR_GELB,"*SERVER MANAGER*: /kickall");
    }
    else if(isPlayerAnAdmin(playerid,6))
    {
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /kick | /gethere | /goto | /w | /aduty");
    SendClientMessage(playerid,COLOR_GELB,"*SUPPORTER*: /unspec | /spec | /checkgun | /o");
    SendClientMessage(playerid,COLOR_GELB,"*MODERATOR*: /spawn | /getip | /freeze | /unfreeze | /slap | /clearchat");
    SendClientMessage(playerid,COLOR_GELB,"*ADMINISTRATOR*: /ban | /explode | /warn | /unwarn | /unban | /rac");
    SendClientMessage(playerid,COLOR_GELB,"*SUPER ADMINISTRATOR*: /heal | /armour");
    SendClientMessage(playerid,COLOR_GELB,"*SERVER MANAGER*: /kickall");
    SendClientMessage(playerid,COLOR_GELB,"*SERVER LEITUNG*: /kill | /gotocords | /setadmin | /restart | /makeleader | /leaderuninvite");
    }
    return 1;
    }


    MfG

  • Also mit einer Funktion, die dir das AdminLevel des Spielers ausgibt, lässt sich das Ganze viel schöner realisieren.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Nun, mit deiner Funktion isPlayerAnAdmin überprüfst du nur, ob der Spieler ein gewisses AdminLevel hat.
    Eine Funktion (beispielsweise getPlayerAdminLevel(playerid)), die dir das AdminLevel des Spielers ausgibt, würde dir hier immense Vorteile bringen und einige Zeilen einsparen.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Nun, mit deiner Funktion isPlayerAnAdmin überprüfst du nur, ob der Spieler ein gewisses AdminLevel hat.
    Eine Funktion (beispielsweise getPlayerAdminLevel(playerid)), die dir das AdminLevel des Spielers ausgibt, würde dir hier immense Vorteile bringen und einige Zeilen einsparen.


    Naja mir geht es vorerst nicht um die Zeilen, sondern darum das ich den Befehl zum laufen kriege.


    Gruß

    • Offizieller Beitrag

    Die Funktion "isPlayerAnAdmin" fragt bei dir sicherlich ab, ob der Spieler (playerid) dasselbe Adminlevel hat oder höher (>=). Da jedoch der Spieler, welcher Adminlevel 6 hat, über "1" ist, greift direkt die erste "if-Abfrage" und die anderen werden gar nicht erst ausgeführt.
    Du musst hier direkt mit "GetPVarInt" arbeiten oder eine neue, zweite Adminabfrage schreiben.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Die Funktion "isPlayerAnAdmin" fragt bei dir sicherlich ab, ob der Spieler (playerid) dasselbe Adminlevel hat oder höher (>=). Da jedoch der Spieler, welcher Adminlevel 6 hat, über "1" ist, greift direkt die erste "if-Abfrage" und die anderen werden gar nicht erst ausgeführt.
    Du musst hier direkt mit "GetPVarInt" arbeiten oder eine neue, zweite Adminabfrage schreiben.


    Achso jetzt habe ich es verstanden, danke für eure Mühe.


    MfG