Fahrzeug tempo verlangsamen

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
  • Hallo Breafish


    ich wollte diese beiden ids das Tembo verlangsamen das es nur 15 KM/h fährt.
    aber es get nicht hoffe ihr könnt mir da helfen


    beide fahrzeuge

    Code
    if(GetVehicleModel(veh) == 532 || GetVehicleModel(veh) == 531)
    Code
    new veh = GetPlayerVehicleID(i);
    			new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
    			GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
    			final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.0; // 136.666667 = kmph  // 85.4166672= mph
    			final_speed_int = floatround(final_speed,floatround_round);
    			new kmh_anzahl = final_speed_int;


    danke


    mfg Paddy87

  • http://pastebin.com/hKDJfKn3



    stock GetVehicleSpeed(vehicleid)
    {
    new Float:x_speed, Float:y_speed, Float:z_speed, Float:speedf, speed;
    GetVehicleVelocity(vehicleid,x_speed,y_speed,z_speed);
    speedf = floatsqroot(((x_speed*x_speed)+(y_speed*y_speed))+(z_speed*z_speed)) * 187.666667;

    speed = floatround(speedf,floatround_round);
    return speed;
    }

    stock SetVehicleSpeed(vehicleid, Float:speed)
    {
    if(speed != -1)
    {
    new Float:px, Float:py, Float:pz, Float:pvx, Float:pvy, Float:pvz, Float:fl;
    GetVehiclePos(vehicleid, px,py, pz);
    GetVehicleVelocity(vehicleid, pvx, pvy, pvz);
    fl = floatsqroot((pvx * pvx) + (pvy * pvy) + (pvz * pvz));
    pvx = (pvx / fl) * (speed * 0.00475);
    pvy = (pvy / fl) * (speed * 0.00475);
    pvz = (pvz / fl) * (speed * 0.00475);
    SetVehicleVelocity(vehicleid, pvx, pvy, pvz);
    }
    return 1;
    }


    Mit diesen 2 Funktionen kannst du das Limit beschränken.
    Du frägst einfach jede Sekunde (oder öfter) ab, ob das VehicelModel zutrifft und die Geschwindigkeit größer als 15 kmh ist, dann setzt du den Speed einfach auf 15kmh.


  • du meinst mir das hier kann ich das Limit beschränken



    pvy = (pvy / fl) * (speed * 0.00475);

  • if(GetVehicleSpeed(vehicleid) > 15.0){ SetVehicleSpeed(vehicleid, 15.0); }


    Mithilfe der stocks von @H4rd_B4se kannst du diesen Code unter OnPlayerUpdate() ausführen (ggf nicht bei allen aufrufen, musst du sehen).


    Da aber das Handling in SAMP bei weitem nicht so ausgereift wie in MTA ist und es noch einige Bugs darin gibt bei der Berechnung der realen Geschwindigkeit, wird es nicht optimal funktionieren, aber so gut, wie es simpel geht.