Wie mache ich das damit?

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
  • Diese Abfrage ist auch bescheuert:
    if(!SpielerInfo[playerid][pAdminlevel] >= 4) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 4");


    Versuch das mal:
    if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 4");

    Nein so funktioniert es auch nicht?
    Liegt es vllt. am ocmd include oderso?

    • Offizieller Beitrag

    public OnPlayerCommandPerformed(playerid, cmdtext[], success)
    {
    new string[128];
    format(string, sizeof string, "Der Befehl "COLO"%s"COLW" existiert nicht!", cmdtext);
    if(!success)return SendClientMessage(playerid, Weiß, string);
    return 1;
    }


    Ich habe grade gegoogled.


    Laut dem sa-mp.com Forum ist das ein Callback von zcmd und nicht von ocmd.
    Ich weiß nicht ob es auch mittlw. in ocmd existiert, aber klammer mal diesen Callback aus.

  • Dieses habe ich bereits schon ausgeklammet,und nun kommt : "Server unknown Command"

  • Der Callback OnPlayerCommandPerformed ist für ZCMD.
    Für Ocmd kannst / musst OnPlayerCommandText benutzen.


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    new string[64];format(string,64,"Der Befehl %s existiert nicht!",cmdtext);
    return SendClientMessage(playerid,-1,string);
    }


    Grüße,
    PAWN

  • Also... ocmd kann man doch auch einfach außerhalb zb ganz am Ende des Scripts einfügen... Dafür braucht man doch kein Public ? Einfach am Ende des Scripts rein ? Oder hab ich mir das jetzt falsch durchgelesen alles ?^^ Aber ocmd kann man generell außerhalb von OnPlayerCommandText machen.

  • Bis auf das ich das Zeichen ausversehen falsch gesetzt habe, ist die Abfrage meine Meinung nach nicht bescheuert, so sollte es richtig sein:
    if(!SpielerInfo[playerid][pAdminlevel] =< 4) return SendClientMessage(playerid,Rot,"Möglich ab: 'COLG' Adminrank 4");
    Du kannst es irgendwo außerhalb OnPlayerCommandText benutzen ;) Aber ich glaube du darfst nicht beides benutzen, nur eins von beiden.

  • Ähm, kann sein, dass ich grade verwirrt bin aber zeigt deine Abfrage die Nachricht nicht allen Admins mit den Admin Leveln 4 und höher ?


    Wenn der Admin Level nicht kleiner als 4 ist..
    Meiner Meinung nach ist die Abfrage mit


    if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: ´COLG´Adminrank 4");


    Oder ich bin grade einfach verwirrt ...

  • Nein,es zeigt jeden einzelnen Spieler an,der nicht Adminlevel 4 oder dadrüber ist.
    //edit: Thema gelöst,kann closed werden

  • Wahrscheinlich kapierst du nicht ganz worauf ich hinaus wil. Wenn sein Adminlevel nicht gleich 4 oder höher ist, wird die Nachricht angezeigt, dass man mindestens Admin Level 4 für das Command braucht. So verwende ich es selber in meiner isAdmin Funktion und es funktioniert wunderbar.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Doch wir verstehens... Ja, das Thema ist beendet aber wir weisen dich nur auf einen Fehler hin, der dir vielleicht noch Probleme macht...
    Zu deinem Verständnis
    < kleiner Zeichen
    > größer Zeichen
    Als Beispiel#
    3<4<5
    3 ist kleiner als 4, 4 ist kleiner als 5


    ! Ist nicht


    Du schreibst also wenn er nicht admin level 1,2,3 hat zeigt er dir diese Message...
    Um ein bisschen in die Theorie das zu verschieben:
    wenn man das Rufzeichen weg nimmt steht das da:


    if(SpielerInfo[playerid][pAdminlevel] =< 4)


    Heißt, wenn sein Adminlevel (welches ja von pAdminlevel wiedergegeben wird) kleiner ist als 4, dann......


    Wenn wir jetzt ein Rufzeichen hinzufügen, dann ist es genau das gegenteil...


    Heißt wenn sein Adminlevel größer gleich 4 ist, dann.....



    Also musst du das Rufzeichen weg nehmen damit es für deinen Zweck stimmt...