[Duda] SetVehicleVelocity
#1

Hola gente, querнa preguntarles sobre la funciуn SetVehicleVelocity, la verdad es que cambiй los numero (0.0 0.0 0.0) y al apretar el click (que era el botуn para que ejecutara esa funciуn), me hacнa saltar o cualquier cosa, lo que yo busco es un sistema de turbo para autos, saludos y de antemano muchнsimas gracias.

PD: si tienen un sistema de turbo o un tuto de como hacer el mismo se los agradecerнa, saludos.
Reply
#2

Con SetPlayerVelocity puedes alterar la velocidad de un vehнculo. Para mбs informaciуn puedes ver el tutorial de Sergio_Team, SetPlayerVelocity.

Para hacer lo del sistema de turbo primero obtienes la velocidad del vehнculo con GetPlayerVelocity y despuйs la multiplicas por el nъmero que quieras. (1.4 en el ejemplo de abajo)
pawn Код:
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehid = GetPlayerVehicleID(playerid);
    new Float:Velocity[3];
    if(PRESSED(KEY_FIRE))
    {
        //Obtienes la velocidad del vehнculo (X, Y, Z)      
        GetVehicleVelocity(vehid, Velocity[0], Velocity[1], Velocity[2]);
        if(Velocity[0] < 2.0 && Velocity[1] < 2.0 && Velocity[2] < 1.3)
        {
            //Multiplicas la velocidad del vehiculo (X, Y, Z) por 1.4
            //o por cualquier otro nъmero que desees.      
            SetVehicleVelocity(vehid, floatmul(Velocity[0], 1.4), floatmul(Velocity[1], 1.4), floatmul(Velocity[2], 1.4]));
        }
    }
    return true;
}
Reply
#3

Quote:
Originally Posted by LuiisRubio
Посмотреть сообщение
Con SetPlayerVelocity puedes alterar la velocidad de un vehнculo. Para mбs informaciуn puedes ver el tutorial de Sergio_Team, SetPlayerVelocity.

Para hacer lo del sistema de turbo primero obtienes la velocidad del vehнculo con GetPlayerVelocity y despuйs la multiplicas por el nъmero que quieras. (1.4 en el ejemplo de abajo)
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehid = GetPlayerVehicleID(playerid);
    new Float:Velocity[3];
    if((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE)))
    {
        //Obtienes la velocidad del vehнculo (X, Y, Z)      
        GetVehicleVelocity(vehid, Velocity[0], Velocity[1], Velocity[2]);
        if(Velocity[0] < 2.0 && Velocity[1] < 2.0 && Velocity[2] < 1.3)
        {
            //Multiplicas la velocidad del vehiculo (X, Y, Z) por 1.4
            //o por cualquier otro nъmero que desees.      
            SetVehicleVelocity(vehid, floatmul(Velocity[0], 1.4), floatmul(Velocity[1], 1.4), floatmul(Velocity[2], 1.4]));
        }
    }
    return true;
}
Gracias por responderme amigo, pero no me funcionу.
Reply
#4

pawn Код:
#include <a_samp>
#define pressed(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
    new vehicleid = GetPlayerVehicleID(playerid);
    if(pressed(KEY_FIRE)){
        IncreaseSpeed(vehicleid,5.0);
    }
    return true;
}

stock IncreaseSpeed(vehicleid,Float:speed){ //By OTACON
new Float:Velocity[4];
SetVehicleVelocity(vehicleid,0,0,0);
GetVehicleVelocity(vehicleid,Velocity[0],Velocity[1],Velocity[2]);
GetVehicleZAngle(vehicleid,Velocity[3]);
Velocity[0] = Velocity[0] + (speed/speed * floatsin(-Velocity[3], degrees));
Velocity[1] = Velocity[1] + (speed/speed * floatcos(-Velocity[3], degrees));
SetVehicleVelocity(vehicleid,Velocity[0],Velocity[1],Velocity[2]);}
Reply
#5

Quote:
Originally Posted by OTACON
Посмотреть сообщение
pawn Код:
#include <a_samp>
#define pressed(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
    new vehicleid = GetPlayerVehicleID(playerid);
    if(pressed(KEY_FIRE)){
        IncreaseSpeed(vehicleid,5.0);
    }
    return true;
}

stock IncreaseSpeed(vehicleid,Float:speed){ //By OTACON
new Float:Velocity[4];
SetVehicleVelocity(vehicleid,0,0,0);
GetVehicleVelocity(vehicleid,Velocity[0],Velocity[1],Velocity[2]);
GetVehicleZAngle(vehicleid,Velocity[3]);
Velocity[0] = Velocity[0] + (speed/speed * floatsin(-Velocity[3], degrees));
Velocity[1] = Velocity[1] + (speed/speed * floatcos(-Velocity[3], degrees));
SetVehicleVelocity(vehicleid,Velocity[0],Velocity[1],Velocity[2]);}
Muchнsimas gracias amigo Otacon, me sъper sirviу .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)