Problem mit Stock - Adminrangabfrage

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,
    Ich würde gerne die Abfrage welcher Rang der Admin ist in einen Stock packen, damit ich es immer wieder Abrufen kann, nur weiß ich nicht genau wie ich das mache.
    Also ich möchte zum Beispiel, wenn der Spieler Rang 1 ist "Supporter" returnen, sodass ich es in sscanf per %s Abfragen kann,


    Ich habs im moment so, kommen aber Erros:


    stock GetPlayerAdminRang(playerid)
    {
    if(IsPlayerAnAdmin(playerid,1))return Supporter;
    if(IsPlayerAnAdmin(playerid,2))return Moderator;
    if(IsPlayerAnAdmin(playerid,3))return Administrator;
    if(IsPlayerAnAdmin(playerid,4))return Super Administrator;
    if(IsPlayerAnAdmin(playerid,5))return Projektleiter;
    }


  • sollte so funktionieren , wenn nicht melden!



    stock GetPlayerAdminRang(playerid)
    {
    new admintext[256];
    if(IsPlayerAnAdmin(playerid,1))return admintext="Supporter";
    if(IsPlayerAnAdmin(playerid,2))return admintext="Moderator";
    if(IsPlayerAnAdmin(playerid,3))return admintext="Administrator";
    if(IsPlayerAnAdmin(playerid,4))return admintext="Super Administrator";
    if(IsPlayerAnAdmin(playerid,5))return admintext="Projektleiter";
    else return admintext="Kein Admin";
    }


  • Erstmal Danke :)


    Es kommen keine Errors, aber es funtkioniert ingame nicht.
    Ich habe diese Zeile zum testen gemacht, es kann ja sein, dass es daran liegt:


    ocmd:testadmin(playerid)
    {
    new text[128];
    format(text,sizeof(text),"%s %s macht einen Test",GetPlayerAdminRang(playerid),Spielername(playerid));
    SendClientMessage(playerid,GELB,text);
    return 1;
    }


    Vielleicht muss ich dort was umschreiben oder der stock funktioniert nicht ganz

  • versuchs mal so zu machen


    stock GetAdminRangName(playerid)
    {
    new rname[80];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 1:{rname="Supporter";}
    case 2:{rname="Moderator";}
    case 3:{rname="Administrator";}
    case 4:{rname="Super Administrator";}
    case 5:{rname="Projektleiter";}
    }
    return 0;
    }


    so müsste es eig gehen


    EDIT: eingerückt

  • So funtkionert es auch nicht, passiert genau das gleiche wie oben.


    Ich habe auch schon versucht das return 0; in ein return rname; zu ändern, passiert aber auch nichts


    Bitte helfen

    Einmal editiert, zuletzt von Ketchup ()

  • stock GetAdminRangName(playerid)
    {
    new rname[80];
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 1:{rname="Supporter";}
    case 2:{rname="Moderator";}
    case 3:{rname="Administrator";}
    case 4:{rname="Super Administrator";}
    case 5:{rname="Projektleiter";}
    }
    return rname;
    }

  • Das ändert nicht, wie oben geschrieben


    Zitat

    Ich habe auch schon versucht das return 0; in ein return rname; zu ändern, passiert aber auch nichts

    Hat das nicht jemand in seinem Script oder weiß genau wie es geht, oder hat jemand eine Ahnung ob och etwas falsch mache?

  • Zitat

    <PsyNet>^^ was ist das für ein stock?
    <PsyNet>Das ergibt ja keinen Sinn ..
    <PsyNet>getRang(pid, rang)
    <PsyNet>anstatt der Zahlen dann eben rang rein ^^ und dann bei der Abfrage getRang(playerid, PlayerInfo[playerid][pAdmin]) .....

    So sollte es laut PsyNet funktionieren. ;)

  • Also was ich mir jetzt vorstellen könnte.


    Entweder gibt deine Funktion
    IsPlayerAnAdmin(playerid,1) keinen vernünftigen returnwert zurück oder der Stock muss, da ein String returnt wird als ein String returnender stock definiert werden. Hatte ich bei Floats als returnwert oft.


    Also mein Vorschlag wäre das hier:


    stock String GetPlayerAdminRang(playerid)
    {
    new admintext[256];
    if(IsPlayerAnAdmin(playerid,1)) admintext="Supporter";
    else if(IsPlayerAnAdmin(playerid,2)) admintext="Moderator";
    else if(IsPlayerAnAdmin(playerid,3)) admintext="Administrator";
    else if(IsPlayerAnAdmin(playerid,4)) admintext="Super Administrator";
    else if(IsPlayerAnAdmin(playerid,5)) admintext="Projektleiter";
    else admintext="Kein Admin";


    return admintext;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen