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!");
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!");
if(strcmp("[rRP]reoarni",SpielerName(playerid) , true, 10) != 0||!isPlayerAdmin(playerid,2))
if(strcmp("[rRP]reoarni",SpielerName(playerid) , true, 10) != 0||isPlayerAdmin(playerid,2))
wieso !=0
bzw. das würde sp sein? Wenn ich bsp in den Befehl das einbaue und kein Admin bind und nicht reoarni heiße retrunt der oda?
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!");
!= 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!");
das ist nun doppelt und auch noch falsch in diesem, deinem fall bist du nämlich reoarni sprich jeder der Kein admin ist oder nicht reoarni heist kanndiesen befehl nutzen
Warum?
Der compiler sollte dir ein Error ausspucken.
So, habs nochmal umstrukturiert war Käse, nimm dir mein Edit, sollte funktionieren
Du kannst kein ! vor eine abfrage setzen bei der zahlen verglichen werden darum BAM TAG MISSMATCH das !vor strcmp is fehl am platz.
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 ?
Das ist für Admins ab lvl 2 und höher
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.
Die Adminabfrage geht ja ? Hat damit ja nix zu tun.
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!