Finde den Ansatz 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
  • Guten Abend Community.


    Ich wollte einen Befehl erstellen, mit dem ich meinen Wagen mit einer Taste in die entsprechende Richtung beschleunigen kann. Ich habe einen kleinen Ansatz und Hintergedanken gefunden, komme jedoch nicht weiter.
    Ich habe mir vorgestellt, die Geschwindigkeit selbst zu bestimmen:


    dcmd_speed(playerid,params[])
    {
    new Float:x, Float:y, Float:z, SpeedValue;
    if(sscanf(params, "f", SpeedValue)) return SendClientMessage(playerid, COLOR_GREY,"* usage: /speed <value>");
    SetVehicleVelocity(GetPlayerVehicleID(playerid), x*SpeedValue, y*SpeedValue, z*SpeedValue);
    return 1;
    }


    Und dann unter OnPlayerKeyStateChange den Wert wieder irgendwie abrufen


    if (newkeys == KEY_WALK)
    {
    if (!IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY,"*you've to be in a vehicle to speed up.");
    return 1;
    }
    else
    {
    // ????
    }
    }


    return 1;
    }


    Ich denke ich habe den Ansatz soweit richtig. Ich weiß aber nicht wie ich den Wert vom Befehl abrufe um ihn dann unten bei OnPlayerKeyStateChange wieder einfüge.
    Meine Idee war folgende, welche oben bei "// ????" in Frage käme:


    new Float:Velocity[3], SpeedValue;
    GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0]*SpeedValue, Velocity[1]*SpeedValue, Velocity[2]*SpeedValue);


    Es funktioniert aber nicht.^^


    Edit: Hat keiner eine Idee?!
    Mfg.

    2 Mal editiert, zuletzt von Salpoe ()