Anti-Admin-Ban

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
  • Wie kann ich scripten, dass wenn ein Admin einen anderen Admin der Adm Level 1338 oder höher besitzt nicht bannen kann, also dass dann da steht, Du bist nicht befugt oder so. Mir gehts hauptsächlich nur darum, dass er ihn dann nicht bannen kann.

    MfG

  • Mit gAdmin auf jeden Fall nicht, ich kann das nicht genau sagen, da ich den Script nur gedownloadet und editiert habe. Und bin halt kein Meister im scripten^^. Musst du das wissen?

    MfG

  • so machen:hmm du könntest es so machen


    //zb bei einem cmd:machste eine if abfrage rein:
    if(name == admin1name || name == admin2name
    {
    }
    else
    {
    ban(pid//die id die bei diesem befehl zb /ban [playerid] übergeben wurde);
    }


    ISt jetzt nicht sehr schön geschrieben

  • hm also ich stelle mal das jetzige /ban rein vlt. hilfts ja
    if(strcmp(cmd, "/ban", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ban [playerid/PartOfName] [reason]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 2)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ban [playerid/PartOfName] [reason]");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "UserBan: %s wurde von %s gebannt!, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);


    format(string, sizeof(string), "UserBan: %s wurde von %s gebannt!, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    PlayerInfo[giveplayerid][pLevel] = -999;
    PlayerInfo[giveplayerid][pAdmin] = PlayerInfo[giveplayerid][pLevel];
    Ban(giveplayerid);
    return 1;
    }
    }//not connected
    }
    else
    {
    format(string, sizeof(string), " %d Ist kein Aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

    MfG

  • Ich glaub du hast es mit enum.


    if(strcmp.....
    {
    if(PlayerInfo[playerid][pAdmin] == ......
    {
    if(IDdesZubannendenSpieler == IDeinesAdmins)
    {
    return SendClientMessage(playerid,FARBE,"Du kannst kein Admin Bannen");
    }
    ban(IDdesZubannendenSpieler);
    }
    return 1;
    }

  • if(PlayerInfo[playerid][Admin] <= PlayerInfo[playerid2][Admin])
    {
    return SendClientMessage(playerid, Farbe, "Du bist dazu nicht befugt."
    }
    else
    {
    // Ban
    }

    Mit dieser Abfrage kann man nur Leute bannen, die ein niedrigeres Adminlvl haben.


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Ganz einfach.


    if(PlayerInfo[giveplayer oder wie das heisst][pAdmin] < 1) { Aktion Abbrechen } return 1;