Como paso esto a comando
#1

Buscando y buscando encontrй como aumentar la velocidad mбxima a los autos pero tengo un problema xD se activa solo con las teclas creo y el auto corre y corre no tiene velocidad limite bueno lo que quiero hacer es como poner un limite que ya haya usado el comando y pasar las teclas a comandos osea que no se active al presionar la tecla si no al poner el comando

este es el script

Код:
// speedup.pwn by Slice

#include <a_samp>

// The speed will be multiplied by this value
#define SPEED_MULTIPLIER 1.5

// The speed will only be increased if velocity is larger than this value
#define SPEED_THRESHOLD  0.4

new
          g_SpeedUpTimer = -1,
    Float:g_SpeedThreshold,
          PLAYER_SLOTS
;

new const
          KEY_VEHICLE_FORWARD  = 0b001000,
          KEY_VEHICLE_BACKWARD = 0b100000
;

public OnFilterScriptInit() {
    PLAYER_SLOTS = GetMaxPlayers();

    g_SpeedUpTimer = SetTimer("SpeedUp", 220, true);

    // Cache this value for speed
    // This can not be done during compilation because of a limitation with float values
    g_SpeedThreshold = SPEED_THRESHOLD * SPEED_THRESHOLD;
}

public OnFilterScriptExit() {
    KillTimer(g_SpeedUpTimer);
}

forward SpeedUp();
public SpeedUp() {
    new
        vehicleid,
        keys,
        Float:vx,
        Float:vy,
        Float:vz
    ;

    // Loop all players
    for (new playerid = 0; playerid < PLAYER_SLOTS; playerid++) {
        if (!IsPlayerConnected(playerid))
            continue;

        // Store the value from GetPlayerVehicleID and continue if it's not 0
        if ((vehicleid = GetPlayerVehicleID(playerid))) {
            // Get the player keys (vx is used here because we don't need updown/leftright)
            GetPlayerKeys(playerid, keys, _:vx, _:vx);

            // If KEY_VEHICLE_FORWARD is pressed, but not KEY_VEHICLE_BACKWARD or KEY_HANDBRAKE.
            if ((keys & (KEY_VEHICLE_FORWARD | KEY_VEHICLE_BACKWARD | KEY_HANDBRAKE)) == KEY_VEHICLE_FORWARD) {
                // Get the velocity
                GetVehicleVelocity(vehicleid, vx, vy, vz);

                // Don't do anything if the vehicle is going slowly
                if (vx * vx + vy * vy < g_SpeedThreshold)
                    continue;

                // Increase the X and Y velocity
                vx *= SPEED_MULTIPLIER;
                vy *= SPEED_MULTIPLIER;

                // Increase the Z velocity to make up for lost gravity, if needed.
                if (vz > 0.04 || vz < -0.04)
                    vz -= 0.020;

                // Now set it
                SetVehicleVelocity(vehicleid, vx, vy, vz);
            }
        }
    }
}
Reply
#2

No sй si te refieres a esto:
pawn Код:
new
    vehicleid,
    keys,
    Float:vx,
    Float:vy,
    Float:vz
;
CMD:comando(playerid, params[])
{
    GetVehicleVelocity(vehicleid, vx, vy, vz);
               
    if (vx * vx + vy * vy < g_SpeedThreshold)
    continue;

    vx *= SPEED_MULTIPLIER;
    vy *= SPEED_MULTIPLIER;

    if (vz > 0.04 || vz < -0.04)
    vz -= 0.020;

    SetVehicleVelocity(vehicleid, vx, vy, vz);
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)