normalen command zu einen admin command machen

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 leute !
    wollte mal fragen wie ich ein normalen command zu einem admin command mache?


    hoffe ihr könnt mir helfen und danke euch schon mal im vorraus!


    Mfg RuSsiADaN

    Selfmade Reallife Server:IIIIIIIIIIIIIIIIIII 5%

  • bei kick und bei givemoney :D
    asoo mom mache ebn die zeilen rein ^^


    if(strcmp("/kick", cmdtext, true, 5) == 0) //normal command - unfortunately, the cellmax is needed
    {
    new tmp[128]; //create a tmp, just like strtok
    tmp = zcmd(1, cmdtext); //the "1" is the position of the var - see next example
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!"); //check string length, just like strtok
    Kick(strval(tmp)); //kick the value of the tmp string
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
    return 1;
    }


    und hier :


    if(strcmp("/givemoney", cmdtext, true, 10) == 0)
    {
    new tmp[128], tmp2[128], string[128], id, ammount, pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME];
    tmp = zcmd(1, cmdtext);
    tmp2 = zcmd(2, cmdtext);


    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!");
    if(strlen(tmp2) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast kein Geld angebeben!");


    id = strval(tmp);
    ammount = strval(tmp2);


    if(IsPlayerConnected(id) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Spieler ist nicht Online!");
    if(ammount < 0 || ammount > 1000000) return SendClientMessage(playerid, 0xFF0000FF, "Ungültiger Wert!");


    GetPlayerName(playerid, pname, sizeof(pname));
    GetPlayerName(id, oname, sizeof(oname));


    GivePlayerMoney(id, ammount);


    format(string, sizeof(string), "Du hast %s $%d gegeben.", oname, ammount);
    SendClientMessage(playerid, 0x00FF00FF, string);


    format(string, sizeof(string), "Du hast $%d von %s bekommen!", ammount, pname);
    SendClientMessage(id, 0x00FF00FF, string);
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
    return 1;
    }

    Selfmade Reallife Server:IIIIIIIIIIIIIIIIIII 5%

  • Die Abfrage muss weiter nach oben ungefähr so:



    if(strcmp("/kick", cmdtext, true, 5) == 0) //normal command - unfortunately, the cellmax is needed
    {
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
    new tmp[128]; //create a tmp, just like strtok
    tmp = zcmd(1, cmdtext); //the "1" is the position of the var - see next example
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!"); //check string length, just like strtok
    Kick(strval(tmp)); //kick the value of the tmp string
    return 1;
    }

    So wie du es gemacht hast wird der Spieler erst gekickt, dh. der Befehl ausgeführt und dann überprüft ob der Nutzer überhaupt ein Admin ist.
    Bei givemoney ist es das selbe

  • Hi,


    so ist es richtig :


    if(strcmp("/kick", cmdtext, true, 5) == 0) //normal command - unfortunately, the cellmax is needed
    {
    if(!IsPlayerAdmin(playerid))
    {
    new tmp[128]; //create a tmp, just like strtok
    tmp = zcmd(1, cmdtext); //the "1" is the position of the var - see next example
    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!"); //check string length, just like strtok
    Kick(strval(tmp)); //kick the value of the tmp string
    }
    else
    {
    SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
    }}
    return 1;
    }


    und:


    if(strcmp("/givemoney", cmdtext, true, 10) == 0)
    {
    if(!IsPlayerAdmin(playerid))
    {
    new tmp[128], tmp2[128], string[128], id, ammount, pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME];
    tmp = zcmd(1, cmdtext);
    tmp2 = zcmd(2, cmdtext);


    if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast keine ID angegeben!");
    if(strlen(tmp2) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Du hast kein Geld angebeben!");


    id = strval(tmp);
    ammount = strval(tmp2);


    if(IsPlayerConnected(id) == 0) return SendClientMessage(playerid, 0xFF0000FF, "Spieler ist nicht Online!");
    if(ammount < 0 || ammount > 1000000) return SendClientMessage(playerid, 0xFF0000FF, "Ungültiger Wert!");


    GetPlayerName(playerid, pname, sizeof(pname));
    GetPlayerName(id, oname, sizeof(oname));


    GivePlayerMoney(id, ammount);


    format(string, sizeof(string), "Du hast %s $%d gegeben.", oname, ammount);
    SendClientMessage(playerid, 0x00FF00FF, string);


    format(string, sizeof(string), "Du hast $%d von %s bekommen!", ammount, pname);
    SendClientMessage(id, 0x00FF00FF, string);
    }
    else
    {
    SendClientMessage(playerid, 0xFFFF00FF, "Dieser Befehl ist nur für Admins!");
    }}
    return 1;
    }


    deine Fehler waren:


    1. Du hast die IF abfrage erst am ende gemacht.
    2.Die If abfrage konnte gar nicht abgefragt werden :D



    MFG: Apoolecu