/givemoney funktioniert nicht

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 Leute, ich habe grade versucht, einen /givemoney Befehl zu erstellen, leider bin ich noch absoluter Anfänger und er funktioniert nicht.
    Ich gebe euch mal den entsprechenden Code:



    ocmd:givemoney(playerid,params[])
    {
    new receiverid;
    new moneyvalue;
    if(sscanf(params,"ui",receiverid,moneyvalue))return SendClientMessage(playerid,COLOR_RED,"/givemoney [playerid] [Wert]");
    GivePlayerMoney(receiverid,moneyvalue);
    SendClientMessage(playerid,COLOR_GREEN,"Geld erfolgreich gegeben.");
    }
    So weit, so gut. Der Compiler gibt leider ein Warning aus:



    Zitat

    warning 209: function "ocmd_givemoney" should return a value


    Ich habe den Befehl getestet, und euch ist vielleicht schon die SendClientMessage aufgefallen:

    Zitat

    SendClientMessage(playerid,COLOR_RED,"/givemoney [playerid] [Wert]");

    Die soll eigentlich ausgegeben werden, wenn nicht die richtigen Werte eingetragen wurden. Das funktioniert auch, aber auch wenn ich z.B. im Spiel /givemoney 0 10 eingebe, wird mir die SendClientMessage ausgegeben.
    Bei anderen Befehlen funktioniert alles einwandfrei. Bitte um Hilfe!


    Mit freundlichen Grüßen
    SunRiZez
    Developer von UltimateReallife (Alpha-Phase)

  • aber auch wenn ich z.B. im Spiel /givemoney 0 10 eingebe, wird mir die SendClientMessage ausgegeben.
    Bei anderen Befehlen funktioniert alles einwandfrei.


    Wenn du das sscanf Plugin nicht verwendest, schreibe es so:
    ocmd:givemoney(playerid,params[])
    {
    new receiverid, moneyvalue;
    if(sscanf(params,"ii",receiverid,moneyvalue))return SendClientMessage(playerid,COLOR_RED,"/givemoney [playerid] [Wert]");
    GivePlayerMoney(receiverid,moneyvalue);
    return SendClientMessage(playerid,COLOR_GREEN,"Geld erfolgreich gegeben.");
    }

  • Nyu_x3:
    Diese Warnung kommt, wenn kein Wert mit einem return zurückgegeben wird, obwohl einer erwartet wird.
    Beispiel:
    ocmd:hallowelt(playerid,params[])
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Hallo Welt");
    }
    Das würde eine 209-er Warnung geben.


    So wäre es richtig:
    ocmd:hallowelt(playerid,params[])
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Hallo Welt");
    return 1;
    }


    "should return a value" deutet immer auf ein fehlendes return hin. ;)

  • Achso Danke wieder was neues Dazugelernt.
    Aber könnte es nicht am Plugin liegen ? vlt mal neu in den Ordner Ziehen von der RaR etc.

  • Für alle die diesen Beitrag noch lesen:
    Jeffry hatte Recht, ich konnte das Problem lösen, indem ich am Ende um ein "return 1" ergänzte.