Geschwindikeit festlegen

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 möchte Geschwindigkeiten von bestimmten Fahrzeugen festlegen. Wenn ich nun die Geschwindigkeit ausrechne:
    Geschwindigkeit = floatsqroot(X*X + Y*Y + Z*Z) * 100 * 2
    dann ist die Geschwindigkeit beim Infernus etwa 200. Wenn ich nun mit dem Roller fahre und das vergleiche, ist der doch recht schnell, besonders wenn man ganze zeit die Pfeiltaste tibbelt so das er sich dauernt nach vorne beugt. Deswegen möchte ich die Geschwindigkeit nicht nur ausrechnen, sondern auch für Fahrzeuge festlegen, so das das Fahrzeug nicht schneller fahren kann.
    Wenn ich nun die Maximale geschwindigkeit vom Infernus auf 100 reduziere und laut berechnung er aber 200 fahren kann, soll er nur bis zu 100kmh fahren können.


    Ich denke das ist machbar mit SetVehicleVelocity, aber wie genau ich dasmachen muss weiß ich nicht.


    Ich hoffe ihr könnt mir da weiterhelfen.

  • es soll wie eine drosselung sein. Power genug hat er um schneller zu fahren, aber er fährt nicht schneller.
    Das müsste mit SetVehicleVelocity möglich sein, denn genau das ist die Funktion, die die Geschwindigkeit einstellt.
    wenn ich also SetVehicleVelocity(vehicleid,0,0,z); mache, dann bleibt das auto sofort stehen, egal wie schnell ich vorher gefahren bin.
    Wenn ich nun SetVehicleVelocity(vehicleid,99999,99999,z); mache, vermute ich, das das Auto mega schnell wird, ausprobiert habe ich es aber noch nicht.
    Und genauso muss man dann wohl auch die Velocity so einstellen, dass das Auto normal weiterfährt aber halt nicht schneller als im script festgelegt.
    Und dazu muss ich wohl rechnen, und wie genau ich rechnen muss, weiß ich nicht.


    Aufjedenfall ist es möglich, da ich es schon auf anderen Servern gesehen habe.



  • Das Problem bei SetVehicleVelocity(vehicleid,99999,99999,z); ist, dass du nicht die Beschleunigung nach vorne sondern in die Richtung 99999 und 99999 hast.
    Hiermit bekommst du eine Beschleunigung nach vorne:


    new vID, Float:Xvelo, Float:Yvelo, Float:Zvelo, Float:rot;
    vID = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);
    GetVehicleZAngle(vID, rot);
    Xvelo=Xvelo+(floatcos(rot+90, degrees)*1.5);
    Yvelo=Yvelo+(floatcos(360-rot, degrees)*1.5);
    SetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);


    Musst eben noch so umbauen, dass es bremst und dann könnte es funktionieren ^^

  • ja, nur ich verstehe das noch nicht ganz was du ausgerechnet hast und wie bekomme ich das nun hin das der roller nun maximal 60 oder 70 fährt. iwie muss ich herausbekommen wie die velocity sein muss.

  • Hallo, ich versuche grade das gleiche! habe das momentan wie volgt aufgebaut:



    new Float:speed_x, Float:speed_y, Float:speed_z, Float:VA;
    GetVehicleVelocity(vehid, speed_x, speed_y, speed_z);
    if(GetSpeed(vehid) >= 50)
    {
    speed_x=speed_x+(floatcos(VA+90, degrees));
    speed_y=speed_y+(floatcos(360-VA, degrees));
    SetVehicleVelocity(vehid, speed_x, speed_y, speed_z);
    }
    ALlerdings werde ich immer nach Norden hingezogen! das hat sicherlich etwas mit der rotation zutuhen nur ich weiß nicht genau was falls davon einer ne Ahnung hatt bitte melden!