Admin script

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
  • Ich bin auf der suche nach einem guten Admin Tutorial bzw nach einem Script an den ich mich halten kann... Einen Login/Register Script hab ich schon gemacht, weiß aber nicht wie man den Adminscript macht



    Die SuFu habe ich schon versucht... Auch Tutorials gefunden, aber bei denen hat immer wer gepostet falsch erklärt....


    Hoffe ihr könnt mir weiter helfen



    MFG Nehli

  • Hast du das Register login System in GUI form und mit enum?


    Dann kann ichs dir gerne erklären dann einfach ne PM an mich ;D

    [color=#0000FF]



    Suche aktive Leute die Interesse haben ein Freeroam Projekt großzuziehen! Es wird noch alles gesucht!
    Besonders: Scripter für einen GM der besonderen Art , Mapper, Brainstormer & Gehilfen! Bei Interesse einfach melden!
    Info: Server, Webspace & WBB 3 + Lizenz vorhanden!

  • Jap


    Edit: enum hab ich auch :)


    enum SInfo
    {
    Adminlevel,
    Fraktion,
    Leader
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];


    und kannst ruhig das Beispiel auch hier rein geben bin nicht der einzige der sich da nicht so gut auskennt :whistling: :whistling:


    mfg

  • Ok dann fangen wir mal an


    wir haben das enum, dort wird nun ein neuer Punktzugefügt den nennen wir mal "admin":


    enum SInfo{ Adminlevel, Fraktion, Leader, admin }
    new SpielerInfo[MAX_PLAYERS][SInfo];





    Nun brauchen wir noch den Setlevel Command um jemanden zum Admin zu machen...
    Dafür definieren wir "ziel" um auch den Spieler angeben zu können,den wir zum Admin machen wollen und ebenfalls "opfer" damit wir den namen ausgeben können.


    das sieht so aus und das fügen wir mal unter OnPlayerCommandText ein sieht wie folgt aus:


    public OnPlayerCommandText{new ziel = strval(strget(cmdtext,1));
    new opfer[MAX_PLAYER_NAME];
    GetPlayerName(ziel,opfer,sizeof(opfer));
    //commandsreturn 0;}




    Nun brauchen wir noch den Command um jemanden zum Admin zu machen:


    if(strcmp(strget(cmdtext,0),"/setlevel",true) == 0){if(IsPlayerConnected(ziel)) //Abfragen ob Spieler Connected ist...{ if(SpielerInfo[playerid][admin] >= 5 || IsPlayerAdmin(playerid)) // Abfragen ob der Spieler Admin level 5 oder Rcon Admin ist... { if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2))) // Abfragen ob jeweils die ID und der Level eingegeben wurden, und wenn nicht... { SendClientMessage(playerid,COLOR_YELLOW,"Verwendung: /setlevel [spielerid][Level](1-5)"); // kommt wie es richtig ist... return 1; } new level = strval(strget(cmdtext,2)); //angeben das der 2te punkt nach dem leerzeichen (also die zahl die den level angeben soll) der level ist... new msg1[200]; //string 1 definieren... new msg2[200]; //string 2 definieren... pInfo[ziel][admin] = level; //Setzt den angegebenen Spieler auf den angegebenen Level format(msg1,sizeof(msg1),"* Du wurdest von Admin %s zum Admin Level %d gemacht.",spieler,level); //wird dem spieler ausgegeben format(msg2,sizeof(msg2),"* Du hast %s zum Admin Level %d gemacht.",opfer,level); // wird dem admin ausgegeben SendClientMessage(playerid,COLOR_LIGHTBLUE,msg2); // Sendet die nachricht msg2 zu dem Admin... SendClientMessage(ziel,COLOR_LIGHTBLUE,msg1); // Sendet die nachricht msg1 zu dem ziel das zum admin gemacht wurde... PlayerPlaySound(ziel,1057,0.0,0.0,0.0); //spielt einen Nachrichtensound ab... return 1; } else { SendClientMessage(playerid,farbe,"Du musst Level 5 oder Rcon Admin sein für diesen Command!"); //Wenn nicht lvl 5 oder Rcon Admin... } } else { SendClientMessage(playerid,farbe,"Dieser Spieler existiert nicht."); // Wenn Ziel nicht Connected ist wird eine Nachricht ausgegeben } return 1; }




    Und wenn ihr halt dann einen Command nur für Admins haben wollt, macht ihr einfach:


    if(strcmp(strget(cmdtext,0),"/cmd",true) == 0) {if(pInfo[playerid][admin] >= 1) // abfragen ob mindestens level 1 ist....{//cmd}else{ SendClientMessage(playerid,farbe,"Du musst mindestens Level 1 sein für diesen Command"); //Kein Admin? = Nachricht!!}return 1;}





    Hoffe ich konnte einigen Helfen...Sorry für die Rechtschreibfehler xD


    Stehe unter Stress gerade.


    Mfg OilMast3r


    //Edit sorry ich hasse diese Pawn Einrückung die funzt bei mir nie -.-...

    [color=#0000FF]



    Suche aktive Leute die Interesse haben ein Freeroam Projekt großzuziehen! Es wird noch alles gesucht!
    Besonders: Scripter für einen GM der besonderen Art , Mapper, Brainstormer & Gehilfen! Bei Interesse einfach melden!
    Info: Server, Webspace & WBB 3 + Lizenz vorhanden!

  • Würde aber mit ocmd die Befehle erstellen, ist viel einfacher (meiner Meinung nach)....
    Zum Beispiel ein makeadmin Befehl:

    ocmd:makeadmin(playerid, params[])
    {
    new id, adminname[64], spielername[64], level, string[128], string2[128];
    if(sscanf(params, dd) id, level) return SendClientMessage(playerid, COLOR_RED, "Benutze /makeadmin [ID] [Level]"); //Hier werden die Parameter definiert, wenn zu wenig/keine/zu viele Parameter eingegeben wurden, wird mit einem Text returnt.
    else if(Spielerinfo[playerid][pAdmin] != 1337 || IsPlayerAdmin(id)) SendClientMessage(playerid, COLOR_RED, "Du bist kein Administrator!"); //Hier wird mit einem Text returnt, wenn der Player kein Admin Level 1337/Rcon Admin ist.
    else
    {
    GetPlayerName(playerid, adminname, sizeof(adminname)); //Hier wird der Name der playerid herausgefunden und im string gespeichert.
    GetPlayerName(id, spielername, sizeof(spielername)); //Hier wird der Name der Parameter id herausgefunden und im string gespeichert.
    format(string, sizeof(string), "Du hast %s zu einem Admin Level %d gemacht.", spielername, level);
    format(string2, sizeof(string2), "Du wurdest von %s zu einem Admin Level %d gemacht.", adminname, level);
    SendClientMessage(playerid, COLOR_GREEN, string);
    SendClientMessage(id, COLOR_GREEN, string2);
    Spielerinfo[id][pAdmin]= level; //Hier wird das Adminlevel der Parameter ID zu dem Parameter Level gemacht.
    }
    return 1;
    }


    Sry für die Einrückung (die nicht da ist) und wenn was falsch ist auch sorry, ist aus dem FF

  • Eigntl egal wie man es macht...Es dürfte in jeglicher Form funktionieren und jeder sollte es eh so machen wie er es am besten kann und nicht einfach nur Copy & Paste....


    Dadruch lernt man ja schließlich nichts.


    PS: Vergessen bei dem enum kann dann das AdminLevel weg.

    [color=#0000FF]



    Suche aktive Leute die Interesse haben ein Freeroam Projekt großzuziehen! Es wird noch alles gesucht!
    Besonders: Scripter für einen GM der besonderen Art , Mapper, Brainstormer & Gehilfen! Bei Interesse einfach melden!
    Info: Server, Webspace & WBB 3 + Lizenz vorhanden!

  • hier der befehl verbessert...


    ocmd:makeadmin(playerid, params[])
    {
    new id, adminname[64], spielername[64], level, string[128], string2[128];
    if(sscanf(params, "ud",id, level)) return SendClientMessage(playerid, COLOR_RED, "Benutze /makeadmin [ID] [Level]"); //Hier werden die Parameter definiert, wenn zu wenig/keine/zu viele Parameter eingegeben wurden, wird mit einem Text returnt.
    if(Spielerinfo[playerid][pAdmin] != 1337 || IsPlayerAdmin(id)) return SendClientMessage(playerid, COLOR_RED, "Du bist kein Administrator!"); //Hier wird mit einem Text returnt, wenn der Player kein Admin Level 1337/Rcon Admin ist.
    GetPlayerName(playerid, adminname, sizeof(adminname)); //Hier wird der Name der playerid herausgefunden und im string gespeichert.
    GetPlayerName(id, spielername, sizeof(spielername)); //Hier wird der Name der Parameter id herausgefunden und im string gespeichert.
    format(string, sizeof(string), "Du hast %s zu einem Admin Level %d gemacht.", spielername, level);
    format(string2, sizeof(string2), "Du wurdest von %s zu einem Admin Level %d gemacht.", adminname, level);
    SendClientMessage(playerid, COLOR_GREEN, string);
    SendClientMessage(id, COLOR_GREEN, string2);
    Spielerinfo[id][pAdmin]= level; //Hier wird das Adminlevel der Parameter ID zu dem Parameter Level gemacht.
    return 1;
    }
    edit:verbessert


  • Geh doch bitte woanders deine Posts erspammen!
    #Reported


    dcmd & Sccanf ist viel einfacher ;) Merk es dir! Ressourcenschonend.
    Ausserdem hat Sheep. vergessen:



    dcmd(makeadmin,9,cmdtext);


    #e1: Semikolon vergessen! :rolleyes: