Hallo warum gibt er mir die Rückmeldung das ich kein Admin bin obwohl ich Admin lvl 5 bin?
if(sInfo[playerid][pAdmin]>=1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
Kein Admin obwohl admin?
- Kindischer Namesfaker
- Geschlossen
- Erledigt
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
-
-
Du fragst ab, ob der Spieler >= 1 (größer gleich) ist.
Du solltest eher so fragen:
< 1 -
Ich kann mir momentan nur vorstellen das deine Variable Admin im Enum anders definiert wurde...
if(SpielerInfo[playerid][pAdminlevel] >= 1) return SendClientMessage(playerid,GRAU,"Hallo");Eigendlich sollte das so richtig sein !
//TutNichts das ist blödsinn
-
Du musst abfragen, ob das Adminlevel kleiner als 1, bzw == 0ist.
-
Du musst abfragen, ob das Adminlevel kleiner als 1, bzw == 0ist.
Ebenfalls falsch.
Wenn er abfragt ob das Adminlevel == 0 ist und dann ein return macht bekommt der Administrator der Adminrang 0 nichts geschrieben --> Adminrang 0 kann den Befehl nutzen
Adminrang größer als 0 kann den Befehl nicht nutzen.. -
Du fragst ab, ob der Spieler >= 1 (größer gleich) ist.
Du solltest eher so fragen:
< 1
Die Bedeutung von >= :
Größer als oder gleichgroß. -
if(sInfo[playerid][pAdmin]>=1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
Du fragts ja auch ab, ob der USer Adminrang 1 oder höher ist. Wenn ja, bekommt er die Meldung.
Wenn dann so.
if(!sInfo[playerid][pAdmin]>=1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig."); -
Ich bezweifel das das so hinhaut, du müsstest es glaube so machen !=1 aber da würde jede andere zahl als 1 stehen, logischer währe das über nen stock zu machen.
stock IsPlayerAnAdmin(playerid,level)
{
if(sInfo[playerid][pAdmin] >= level) return 1;
return 0;
}so kannst du es dann anwenden:
if(!IsPlayerAnAdmin(playerid,1) return SendClient...
also jedes adminlevel von 1 + -
Da liefert TutNichts schon die richtige Antwort und sie wird gekonnt ignoriert oder als falsch abgestempelt.
Zitatif(sInfo[playerid][pAdmin]>=1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
Alle Werte die gleich oder größer als 1 sind ( z.B. 2, 5 , 1053 , 2385 ) erfüllen die Bedingung. Ist die Bedingung erfüllt,wird ausgegeben,dass das Level zu niedrig ist. Die Ausgabe der Nachricht entspricht nicht der Logik hinter der Abfrage.
Die Ganze Bedingung negieren würde gehe, oder abfragen ob kleiner als 1 etc.//Edit:
Die Lösung von Rocky mit ! klappt auch nicht richtig,da nicht die ganze Bedingung negiert wurde.Lediglich der Wert hinter pAdmin wird negiert,dass bringt nicht viel. -
Du fragts ja auch ab, ob der USer Adminrang 1 oder höher ist. Wenn ja, bekommt er die Meldung.
Wenn dann so.
if(!sInfo[playerid][pAdmin]>=1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
Danke Rocky Ich voll Honk -
-
Die Lösung von Rocky mit ! klappt auch nicht richtig,da nicht die ganze Bedingung negiert wurde.Lediglich der Wert hinter pAdmin wird negiert,dass bringt nicht viel.
Okay recht hast du.
So wäre es wirklich sinnvoller
if(sInfo[playerid][pAdmin] <1)return SendClientMessage(playerid,ROT,"Rang zu Niedrig."); -
Ebenfalls falsch.
Wenn er abfragt ob das Adminlevel == 0 ist und dann ein return macht bekommt der Administrator der Adminrang 0 nichts geschrieben --> Adminrang 0 kann den Befehl nutzen
Adminrang größer als 0 kann den Befehl nicht nutzen..Natürlich kann er das. Wenn dein Adminlevel 0 ist gibt er dir eine Nachricht aus. Sollte die Bedingung nicht erfüllt werden, überspringt er das return und es kommt die nächte Abfrage/der eigentliche Befehl.
e:/ Ich glaub ich habs verstanden. Es geht nicht darum, ob er kein Adminrank hat, sondern das sein Adminrank zu klein ist. In diesem Fall hast du natürlich recht und == 0 kann nicht genutzt werden.
-
breadfish.de
Hat das Thema geschlossen.