Problem mit makehelfer

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!


    Da es im Sammethread schon zu übersichtlich wird, versuche ich es hier nochmal.


    Ich möchte einen /makehelfer Befehl erstellen, jedoch klappt er irgendie net ganz.



    ocmd:makehelfer(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5)
    {
    if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
    if(IsPlayerNPC(pID))return 1;
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]");
    if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    SendAdminMessage(ADMCMD, string);
    SpielerDaten[pID][pAdmin] = 0;
    SpielerSpeichern(pID);
    return 1;
    }
    if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendAdminMessage(ADMCMD, string);
    //SpawnPlayerEx(pID);
    SpielerSpeichern(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }

    So habe ich es versucht.


    Der Helferverwalter bzw. alle über Rang 4 sollen Helfer einstellen können, jedoch dann auch nur die Gruppe 1 vergeben können und nicht mehr.
    Helferverwalter ist ein Extra Teamrang, die Funktion müsste ich nch erstellen.


    MfG

  • Danke, so ist es übersichtlicher.


    if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5)
    zu:
    if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] >= 5)



    if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
    zu:
    if(adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");


    #pragma unused params
    Entfernen.
    Das brauchst du nur, wenn du "params" nicht im Befehl verwendest.



    Effekt:
    Somit kann jeder, der Admin ab Rang 5 ist, einen Spieler zum Helfer ernennen, und zwar nur zum Helfer (Gruppe 1), nicht mehr.

  • Ach ich sehe grade du hast die Reihenfolge geändert.
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]");


    Das muss zwei Zeilen höher, sprich vor die adminid Abfrage. Sonst kann es nicht klappen.