COmmand umschreiben!

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 Tag.


    Ich habe ein kleines Problem:


    Diesen Command muss ich in zcmd umschreiben ob ich verstehe es nicht :( :


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[200], idx;
    cmd = strtok(cmdtext, idx);


    if(strcmp(cmd, "/v", true, 10) == 0)
    {


    new String[200];
    new tmp[256];
    new Float:x, Float:y, Float:z;


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, l_red, "Benutze: /v [Fahrzeug Name]");


    new vehicle = GetVehicleModelIDFromName(tmp);


    if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "Dieser Fahrzeug Name wurde nicht gefunden.");


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


    if(IsPlayerInAnyVehicle(playerid) == 1)
    {
    GetXYInFrontOfPlayer(playerid, x, y, 8);
    }
    else
    {
    GetXYInFrontOfPlayer(playerid, x, y, 5);
    }


    new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
    LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));


    format(String, sizeof(String), "Du hast dir ein %s gespawnt!", aVehicleNames[vehicle - 400]);
    SendClientMessage(playerid, l_green, String);
    return 1;
    }
    return 0;
    }
    ....


    Komme da nicht weiter, die "Versuche" gingen alle in die Hosen (gelöscht)... :thumbdown:

  • ich kenne mich zwar nicht mit zcmd aus. aber ich denke mir das so.


    COMMAND:v(playerid, params[]) // or CMD:mycommand(playerid, params[])
    {
    new String[200];
    new tmp[256];
    new Float:x, Float:y, Float:z;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, l_red, "Benutze: /v [Fahrzeug Name]");
    new vehicle = GetVehicleModelIDFromName(tmp);
    if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "Dieser Fahrzeug Name wurde nicht gefunden.");
    new Float:a;
    GetPlayerFacingAngle(playerid, a);
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInAnyVehicle(playerid) == 1)
    {
    GetXYInFrontOfPlayer(playerid, x, y, 8);
    }
    else
    {
    GetXYInFrontOfPlayer(playerid, x, y, 5);
    }


    new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
    LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));
    format(String, sizeof(String), "Du hast dir ein %s gespawnt!", aVehicleNames[vehicle - 400]);
    SendClientMessage(playerid, l_green, String);
    return 1;
    }


    //edit
    command geändert

  • okay sorry. mein fail.


    COMMAND:v(playerid, params[]) // or CMD:mycommand(playerid, params[])
    {
    new String[200];
    new tmp[256];
    new Float:x, Float:y, Float:z;
    tmp = strtok( idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, l_red, "Benutze: /v [Fahrzeug Name]");
    new vehicle = GetVehicleModelIDFromName(tmp);
    if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "Dieser Fahrzeug Name wurde nicht gefunden.");
    new Float:a;
    GetPlayerFacingAngle(playerid, a);
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInAnyVehicle(playerid) == 1)
    {
    GetXYInFrontOfPlayer(playerid, x, y, 8);
    }
    else
    {
    GetXYInFrontOfPlayer(playerid, x, y, 5);
    }


    new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
    LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));
    format(String, sizeof(String), "Du hast dir ein %s gespawnt!", aVehicleNames[vehicle - 400]);
    SendClientMessage(playerid, l_green, String);
    return 1;
    }


    versuch mal den. wenn das immernoch nicht klappt, muss ich leider passen.

  • @Rocky


    wenn man mit zcmd oder dcmd oder ocmd arbeitet...verwendet man kein strtok sondern sscanf ;)


    mfg. :thumbup:


    //Edit: Das muss so aussehen:


    COMMAND:v(playerid, params[])
    {


    new String[200], vehicle;
    new Float:x, Float:y, Float:z;
    if(sscanf(params,"d",vehicle)) return SendClientMessage(playerid, l_red, "Benutze: /v [Fahrzeug Name]");
    if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "Dieser Fahrzeug Name wurde nicht gefunden.");
    new Float:a;
    GetPlayerFacingAngle(playerid, a);
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInAnyVehicle(playerid) == 1)
    {
    GetXYInFrontOfPlayer(playerid, x, y, 8);
    }
    else
    {
    GetXYInFrontOfPlayer(playerid, x, y, 5);
    }


    new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
    LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));


    format(String, sizeof(String), "Du hast dir ein %s gespawnt!", aVehicleNames[vehicle - 400]);
    SendClientMessage(playerid, l_green, String);
    return 1;
    }


    Der Inhalt, also was in diesem Command steht ist ziemlicher Schwachsinn teilweise, aber so müsste das aussehen ;)

    ast2ufdyxkb1.png


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


  • warumd enn nicht gleich so?? :D danke für die richtigstellung.