Falls Befehl falsch geschrieben wird eine Message

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
  • Servus Scripter,


    wollte mal wieder mit dem Scripting bei 0 anfangen, da ich mittlerweile auch bisschen C# gelernt habe, sollte das ziemlich gut laufen.
    Habe mir einen einfachen /givemoney Befehl erstellt, der auch funktioniert.


    if (!strcmp(strget(cmdtext, 0), "/givemoney"))
    {
    new pID = strval(strget(cmdtext, 1));
    new money = strval(strget(cmdtext, 2));
    GivePlayerMoney(pID, money);
    SendClientMessage(playerid, red, "Money has been transfered");
    return 1;
    }


    Nur, wie mache ich, dass wenn der Befehl nicht komplett oder falsch eingegeben wird, dass eine Message kommt z.B diese:
    SendClientMessage(playerid, red, "Du hast den Befehl falsch geschrieben");


    Regards

  • Da müsstest du mir auf die Sprünge helfen, bin ziemlich eingerostet.

  • Kanns dir jetzt zwar nicht genau sagen, aber wenn du das für alle Befehle übernehmen willst dann musst nur nur das return 1; bzw. return 0; am Ende von OnPlayerCommandText zu
    return SendClientMessage(playerid, red, "Du hast den Befehl falsch geschrieben");
    machen und es sollte gehen, kann es dir jetzt nicht genau sagen da ich gerade nicht zu Hause bin, allerdings sollte es so gehen. Dann kommt deine Nachricht immer wenn ein Befehl falsch geschrieben wird.


    Denk dran das es das return am Ende von OnPlayerCommandText sein muss, nicht das return von deinem Befehl.

  • Ja aber ich würde das schon auf jeden Befehl beschränken wollen.
    SendClientMessage(playerid, red, "UsAGE: /givemoney [ID][AMOUNT]");


    Das was du da gemacht hast, ist doch ob der Spieler nen Admin ist.
    Es soll aber ganz allgemein bleiben, falls der Befehl falsch geschrieben wird.

  • So einfach den Befehl schreiben:


    if (!strcmp(strget(cmdtext, 0), "/givemoney"))
    {
    new pID = strval(strget(cmdtext, 1));
    new money = strval(strget(cmdtext, 2));
    if(!money) return SendClientMessage(playerid,red,"Verwendung: /givemoney [spielerid][Geld]");
    GivePlayerMoney(pID, money);
    SendClientMessage(playerid, red, "Money has been transfered");
    return 1;
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (!strcmp(strget(cmdtext, 0), "/givemoney"))
    {
    new pID = strval(strget(cmdtext, 1));
    new money = strval(strget(cmdtext, 2));
    GivePlayerMoney(pID, money);
    SendClientMessage(playerid, red, "Money has been transfered");
    return 1;
    }
    SendClientMessage(playerid,Weiss,"Der Befehl wurde nicht gefunden. Verwende {00FFFF}/help{FFFFFF}."); return 1;
    }

  • Aber er möchte es für alle Befehle übernehmen und nicht nur für /givemoney.


    Nene, die haben es schon richtig verstanden.
    Jeder Befehl hat dann seine eigene Fehlermeldung :)


    Danke euch