Fehler: /dienst [ZAHL] wird nicht erkannt!

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
  • Hey Leute,


    ich habe ein Taxisystem gemacht und man legt mit "/dienst [ZAHL]" den Preis fest.
    Sprich [ZAHL] ist der Preis...


    Wenn ich "/dienst" eingebe, kommt die Fehlermeldung, dass ich hinter "/dienst" eine Zahl angeben muss ! | <---- Das ist auch soweit richtig!


    Wenn ich nun jedoch "/dienst 20" eingebe, kommt die Meldung "Uknow command"...


    Was mache ich falsch?!?



    Mein Befehl:


    if(strcmp(cmdtext,"/dienst", true)==0)
    {
    new string[200];
    new sendername[MAX_PLAYER_NAME];
    new tmp;
    tmp = strtok(cmdtext);
    new moneys;
    new idx;
    moneys = strval(tmp);
    if(Spieler[playerid][Beruf] == 3)
    {
    if(Dienst[playerid] > 0)
    {
    Dienst[playerid] = 0;
    format(string, sizeof(string), "* Du bist nun außer Dienst und hast $%d verdient.", TransportMoney[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(playerid, TransportMoney[playerid]);
    TransportValue[playerid] = 0; TransportMoney[playerid] = 0;
    SetPlayerColor(playerid,COLOR_WHITE);
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 420 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 438)
    {
    if(GetPlayerState(playerid) == 2)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "NUTZUNG: /dienst [Fahrpreis]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 500) { SendClientMessage(playerid, COLOR_RED, "Preis muss zwischen 1 und 500 Dollar liegen!"); return 1; }
    Dienst[playerid] = 1; TransportValue[playerid] = moneys;
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "Taxifahrer %s ist im Dienst, Preis: $%d.", sendername, TransportValue[playerid]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun im Dienst!");
    GlobChat(COLOR_YELLOW,string);
    SetPlayerColor(playerid,COLOR_YELLOW);
    return 1;
    }
    }
    SendClientMessage(playerid,COLOR_RED,"Du musst in einem Taxi sitzen!");
    return 1;
    }
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Taxifahrer!");
    return 1;
    }

  • Du musst den Befehl vorher aussplitten, damit du mit den Parametern nicht blockiert wirst.
    Dann sieht das ganze so aus, wenn ich dein Vorhaben richtig gedeutet habe.
    new cmd[20], idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd, "/dienst", true)==0)
    {
        new string[145];
        if(Spieler[playerid][Beruf] == 3)
        {
            if(Dienst[playerid] > 0)
            {
                Dienst[playerid] = 0;
                format(string, sizeof(string), "* Du bist nun außer Dienst und hast $%d verdient.", TransportMoney[playerid]);
                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                GivePlayerMoney(playerid, TransportMoney[playerid]);
                TransportValue[playerid] = 0;
                TransportMoney[playerid] = 0;
                SetPlayerColor(playerid,COLOR_WHITE);
                return 1;
            }
            if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 420 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 438)
            {
                if(GetPlayerState(playerid) == 2)
                {
                    new tmp[20];
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "NUTZUNG: /dienst [Fahrpreis]");
                        return 1;
                    }
                    new moneys = strval(tmp);
                    if(moneys < 1 || moneys > 500)
                    {
                        SendClientMessage(playerid, COLOR_RED, "Preis muss zwischen 1 und 500 Dollar liegen!");
                        return 1;
                    }
                    Dienst[playerid] = 1;
                    TransportValue[playerid] = moneys;
                    new sendername[MAX_PLAYER_NAME];
                    GetPlayerName(playerid,sendername,sizeof(sendername));
                    format(string, sizeof(string), "Taxifahrer %s ist im Dienst, Preis: $%d.", sendername, TransportValue[playerid]);
                    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun im Dienst!");
                    GlobChat(COLOR_YELLOW,string);
                    SetPlayerColor(playerid,COLOR_YELLOW);
                    return 1;
                }
            }
            SendClientMessage(playerid,COLOR_RED,"Du musst in einem Taxi sitzen!");
            return 1;
        }
        SendClientMessage(playerid,COLOR_RED,"Du bist kein Taxifahrer!");
        return 1;
    }