strcmp + Admin

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
  • Hi ehm wie mach ich das genau?


    if(!strcmp,SpielerName(playerid),"[rRP]reoarni") || isPlayerAdmin(playerid,2)) return SendClientMessage(playerid,WRONGCMD,"Du bist nicht reoarni oder hast keine Rechte dazu!");

  • Ja, nimm aber das hier


    new Vergleich[24];
    GetPlayerName(playerid, Vergleich, sizeof(Vergleich));
    if(strcmp("DeinName", Vergleich, true) == 0)|| isPlayerAdmin(playerid) <= 2) return SendClientMessage(playerid,WRONGCMD,"Du bist nicht DeinName oder hast keine Rechte dazu!");

    KleineHilfe 2.0

    Einmal editiert, zuletzt von YaBroo ()

  • != 0 weil er 0 returnt wenn die strings übereinstimmen.
    er returnt -1 wenn der erste string vor dem 2. kommt
    er returnt 1 wenn der erste nach dem zweiten kommt.
    Da uns egal is welcher vorne oder danach ist und wir einfach wissen wollen ob sie NICHT identisch sind ein !=0 sprich egal ob er -1 oder 1 returnt hauptsache nicht 0. Dann sind sie Nicht identisch.
    Das gegenteil:


    == 0 gibt nur zurück wenn sie identisch sind.


    if(strcmp("[rRP]reoarni",SpielerName(playerid) , true, 10) == 0||isPlayerAdmin(playerid,2)))
    {
    //Du bist reonari oder Admin
    }
    else
    {
    //dein name ist nicht [rRP]reoarni oder du bist kein Admin
    }


    umgekehrt:


    if((strcmp("[rRP]reoarni",SpielerName(playerid) , true, 10) != 0)||(!isPlayerAdmin(playerid,2)))
    {
    //dein name nicht [rRP]reoarni oder du bist kein Admin
    }
    else
    {
    //Du bist reonari oder Admin
    }

  • Habs sonew Vergleich[24];
    GetPlayerName(playerid, Vergleich, sizeof(Vergleich));
    if(!strcmp(Vergleich, "[rRP]reoarni", true) == 0) || strcmp(Vergleich, "reoarni", true) == 0) || isPlayerAnAdmin(playerid,2)) return SendClientMessage(playerid,WRONGCMD,"Du bist nicht reoarni oder hast keine Rechte dazu!");

  • So wirds gehen?

    if((strcmp("[rRP]reoarni",SpielerName(playerid) , true, 10) != 0)|| strcmp("reoarni",SpielerName(playerid) , true, 10) != 0) ||(!isPlayerAdmin(playerid,2)))
    {
    return SendClientMessage(playerid,WORNGCMD,"Du bist nicht reoarni oder ein Admin!");
    }

  • Das ! gibt den Error Tag Mismatch und generell ist das ganze noch umgedreht, ich will mal nicht so sein und tschaue das schnell.
    Das ist richtig, und da es sich hier um eine Einzeilige abfrage handelt, kannst du dir die klammern sparen und es sieht so aus:
    if((strcmp("[rRP]reoarni",SpielerName(playerid) , true, 10) != 0)|| strcmp("reoarni",SpielerName(playerid) , true, 10) != 0) ||(!isPlayerAdmin(playerid,2))) return SendClientMessage(playerid,WORNGCMD,"Du bist nicht reoarni oder ein Admin!");

    nun ist alles perfekt


    Aber Was ist wenn ein Spieler Adminelvel 3 ist, darf er den befehl dann auch verwenden oder ist dieser NUR NUUUUR für spieler adminlevel 2 ?

  • Darauf wollt ich hinaus zeig mal bitte deine abfrage isPlayerAdmin, ich möchte wissen ob du dart die Operatoren richtig hast und du hast doch auch ein Adminlevel höher als 2 warum soll also nach deinem namen gefragt werden wenn du doch eh höher bist als 2.

  • okay aber nun ist immernoch die frage du bist doch admin also warum soll noch nach deinem namen gefragt werden?
    (!isPlayerAdmin(playerid,2)||!IsPlayerAdmin(playerid))return SendClientMessage(playerid,WORNGCMD,"Du bist kein Admin >= Level 2!");
    Nun kann jeder Admin Höher oder gleich Level 2 und der RCON diesen Befehl verwenden.

  • okay aber nun ist immernoch die frage du bist doch admin also warum soll noch nach deinem namen gefragt werden?
    (!isPlayerAdmin(playerid,2)||!IsPlayerAdmin(playerid))return SendClientMessage(playerid,WORNGCMD,"Du bist nicht reoarni oder ein Admin!");
    Nun kann jeder Admin Höher oder gleich Level und der RCON diesen Befehl verwenden.


    Gelöst! :thumbup: