Unknown Command bei /veh

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
  • Guten Abend,
    da ich jetzt schon länger grübel und einfach keinen Lösungsansatz finde, möchte ich hier einmal um Rat fragen.


    Ich nutze folgenden Code:
    if(strcmp(cmdtext, "/veh", true) == 0) {
    new idx;
    new tmp[256], tmp2[256], tmp3[256];
    tmp = strtok(cmdtext, idx);
    tmp2 = strtok(cmdtext, idx);
    tmp3 = strtok(cmdtext, idx);


    new model = strval(tmp);
    new color1 = strval(tmp2);
    new color2 = strval(tmp3);


    if(!strlen(tmp)){
    SendClientMessage(playerid, COLOR_YELLOW, "You did not type a model id.");
    return 1;
    }


    if(!strlen(tmp2)){
    SendClientMessage(playerid, COLOR_YELLOW, "You did not type a primary color id");
    return 1;
    }


    if(!strlen(tmp3)){
    SendClientMessage(playerid, COLOR_YELLOW, "You did not type a secondary color id.");
    return 1;
    }



    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);


    CreateVehicle(model, x, y+2, z+1, a, color1, color2, -1);


    new string[128];
    format(string, sizeof(string), "You created a Vehicle Model: %d with ColorID1: %d and ColorID2: %d.", model, color1, color2);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
    }


    Problem ist hier, dass ich wenn ich /veh eingebe folgendes zurückgegeben wird: You did not type a primary color id
    Wenn ich allerdings /veh 560 222 222 beispielsweise eingebe kommt: Unknown Command


    Woran könnte das liegen?

  • Nutze am einfachsten ocmd/zcmd/ycmd (kein dcmd) und sscanf :)


    Dein Problem hierbei liegt bei dem cmdtext in der if-Abfrage...
    Ändere das nur in cmd...oder in:
    if(!strcmp(cmdtext,"/veh",true,4))

    ast2ufdyxkb1.png


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

  • Danke hat mir schon ein wenig weiter geholfen. Jedoch wenn ich /veh 560 222 222 eingebe:


    [21:23:39] You created a Vehicle Model: 0 with ColorID1: 560 and ColorID2: 222.


    Und es spawnt kein Car?!

  • Nimm das
    new idx;
    aus dem Befehl raus und schreibe es direkt unter OnPlayerCommandText hin, also direkt in der Zeile nach der ersten Klammer auf ({).


    Dazu dann noch direkt drunter
    new cmd[256];
    cmd = strtok(cmdtext, idx);


    Dann sieht dein Befehl so aus:
    if(strcmp(cmd, "/veh", true) == 0)