Kleine frage zu return ture;

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
  • Moin ihr lieben :)
    ich habe hier ein befehl und wollte wissen ob da umbeding ein return hin muss ^^



    if(strcmp(cmdtext,"/armyan",true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pAdmin] >= 1339)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 433)
    {
    //ausfürung
    }
    else
    {
    //wen nicht ärger geben ^^
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion: Army" );
    }
    return 1;//muss das da hin ?

  • Ja immer vor der letzten } des Befehls.
    Aus dem einfachen Grund das damit OnPlayerCommandText mit 1 beendet wird.
    Würdest du das nicht setzen rauscht der Code runter zum return 0 das am ende von OnPlayerCommandText steht.
    Und, so wie es auch in der Wiki steht, wenn OnPlayerCommandText mit 0 beendet wird, gibt es dem Spieler "SERVER: Unknown Command" aus.
    Und das willst du ja nicht, daher beendest du die Befehle mit einem return 1;

  • ich habe ganz unten return 1; stehen muss ich daraus 0 machen ? ^^

  • Musst du nicht, anders in einem FilterScript, wenn du es dort auf 1 lässt, kannst du im GM keinen Befehl mehr nutzen.
    Denn nur wenn es auf 0 steht leitet OnPlayerCommandText den Befehl auf andere Scripte weiter.
    Da FilterScripte vor dem GM durchgegangen werden sollten die immer auf 0 stehen, im GM ists egal.
    Setz es aber lieber auf 0, so bekommt der Spieler die Nachricht wenn er ihn falsch eingegeben hat.