ahelp problem

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
  • Was ist das Problem in diesem Code?


    ocmd:ahelp(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    SendClientMessage(playerid,WHITE,"{00CF00}**Moderator: {FFFFFF}/tban /warn /freeze /unfreeze /aduty /goto /gethere /setint");
    }
    else if(SpielerInfo[playerid][pAdmin] >= 2)
    {
    SendClientMessage(playerid,WHITE,"{FF9800}**Adminstrator: {FFFFFF}/getcar /gotocar /Sethp /Setarmor");
    }
    else if(SpielerInfo[playerid][pAdmin] >= 3)
    {
    SendClientMessage(playerid,WHITE,"{0098FF}**Super Adminstrator: {FFFFFF}/fixveh /ban /makeleader /veh");
    }
    else if(SpielerInfo[playerid][pAdmin] >= 4)
    {
    SendClientMessage(playerid,WHITE,"{FFFF00}**ServerManager: {FFFFFF}/spawn /givegun");
    }
    else if(SpielerInfo[playerid][pAdmin] >= 5)
    {
    SendClientMessage(playerid,WHITE,"{FF0038}**ServerOwner: {FFFFFF}/makeadmin /gmx");
    }
    return 1;
    }


    ich habe admin rechte 5 und siehe nur die von Moderator

  • ocmd:ahelp(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin] == 1)
    {
    SendClientMessage(playerid,WHITE,"{00CF00}**Moderator: {FFFFFF}/tban /warn /freeze /unfreeze /aduty /goto /gethere /setint");
    }
    else if(SpielerInfo[playerid][pAdmin] == 2)
    {
    SendClientMessage(playerid,WHITE,"{00CF00}**Moderator: {FFFFFF}/tban /warn /freeze /unfreeze /aduty /goto /gethere /setint");
    SendClientMessage(playerid,WHITE,"{FF9800}**Adminstrator: {FFFFFF}/getcar /gotocar /Sethp /Setarmor");
    }
    else if(SpielerInfo[playerid][pAdmin] == 3)
    {
    SendClientMessage(playerid,WHITE,"{00CF00}**Moderator: {FFFFFF}/tban /warn /freeze /unfreeze /aduty /goto /gethere /setint");
    SendClientMessage(playerid,WHITE,"{FF9800}**Adminstrator: {FFFFFF}/getcar /gotocar /Sethp /Setarmor");
    SendClientMessage(playerid,WHITE,"{0098FF}**Super Adminstrator: {FFFFFF}/fixveh /ban /makeleader /veh");
    }
    else if(SpielerInfo[playerid][pAdmin] == 4)
    {
    SendClientMessage(playerid,WHITE,"{00CF00}**Moderator: {FFFFFF}/tban /warn /freeze /unfreeze /aduty /goto /gethere /setint");
    SendClientMessage(playerid,WHITE,"{FF9800}**Adminstrator: {FFFFFF}/getcar /gotocar /Sethp /Setarmor");
    SendClientMessage(playerid,WHITE,"{0098FF}**Super Adminstrator: {FFFFFF}/fixveh /ban /makeleader /veh");
    SendClientMessage(playerid,WHITE,"{FFFF00}**ServerManager: {FFFFFF}/spawn /givegun");
    }
    else if(SpielerInfo[playerid][pAdmin] == 5)
    {
    SendClientMessage(playerid,WHITE,"{00CF00}**Moderator: {FFFFFF}/tban /warn /freeze /unfreeze /aduty /goto /gethere /setint");
    SendClientMessage(playerid,WHITE,"{FF9800}**Adminstrator: {FFFFFF}/getcar /gotocar /Sethp /Setarmor");
    SendClientMessage(playerid,WHITE,"{0098FF}**Super Adminstrator: {FFFFFF}/fixveh /ban /makeleader /veh");
    SendClientMessage(playerid,WHITE,"{FFFF00}**ServerManager: {FFFFFF}/spawn /givegun");
    SendClientMessage(playerid,WHITE,"{FF0038}**ServerOwner: {FFFFFF}/makeadmin /gmx");
    }
    else
    {
    SendClientMessage(playerid,WHITE,"Du bist kein Teammitglied.");
    }
    return 1;
    }

  • Die Nutzung von "else if" ist hier das Problem.
    Denn nur eines der Fälle wird durchgeführt,sofern die Bedingung wahr ist.
    Da du bei Level 5 die erste Bedingung ( if(SpielerInfo[playerid][pAdmin] >= 1) ) erfüllst , werden alle anderen nicht mehr geprüft.


    Am einfachsten wäre es,das "else" aus dem "else if" zu entfernen. Die Lösung von Scott_Mitchell würde aber auch funktionieren.