• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Ayuda] Limitador de velocidad
#1
Buenos d?as



He estado investigando como hacer un limitador de velocidad, es decir

cuando un jugador ejecute un comando estando en un veh?culo,?

no puede tener mas velocidad que la establecida por el.



/limitador [velocidad]

[velocidad] es la velocidad m?xima?alcanzada por el veh?culo



para ello encontr? una funci?n



PHP Code:
SetVehicleVelocity(vehicleidFloat:XFloat:YFloat:Z); 



Aun no se como implementarla.

como comprobar para que direccion esta yendo.



PHP Code:
CMD:limitador(playeridparams[])

{

? ? if(!
sscanf(params"d"velocidad))

? ? {

? ? ? ??new 
vehicleid =?GetPlayerVehicleID(playerid);

? ?? ? ?
SetVehicleVelocity(vehicleidvelocidadvelocidadvelocidad);

? ??}





En este CMD hay varios errores, falta comprobar si esta en un veh?culo y si la velocidad es mas alta de lo que puede ir en realidad el vehiculo.

no se me ocurre una forma de lograr esto.
[Image: Fondo.jpg]

  Reply
#2
Est? bien m?s o menos lo que hiciste, pero tuviste ciertos errores que complican la l?gica del c?digo:



Eso es porque no haz implementado una condicional IsPlayerInAnyVehicle para ver si el usuario est? en un veh?culo o no...



Tambi?n cuando pones "velocidad" en el SetVehicleVelocity pones que el limite ser?an los par?metros puestos... pero... Los par?metros son tipo Float? Porque en la funci?n SetVehicleVelocity(vehicleid, Float:X, Float:Y, Float:Z) necesitar?as Variables Flotantes...



Eso tambi?n causa un error con el sscanf ya que en donde pones ?!sscanf(params, "d", velocidad) ?pones un "d" como especificador, pero el "d" es para variables enteras y no flotantes... osea, debes usar un "f".



Te quedar?a algo as?...



PHP Code:
CMD:limitador(playeridparams[])

{

? ? new 
Float:velocidad;

? ? if(!
sscanf(params"f"velocidad))

? ? {

? ? ? ? if(
IsPlayerInAnyVehicle(playerid))

? ? ? ? {

? ? ? ? new 
vehicleid GetPlayerVehicleID(playerid);

? ? ? ? 
SetVehicleVelocity(vehicleidvelocidadvelocidadvelocidad);

? ? ? ? }

? ? }

? ? return 
1;





Recuerda que la sint?xis es as?: /limitador X Y Z

Pero no pongas numeros superiores a 0, ya que con solo poner un 1 es mucha velocidad. Para usarlo deber?as usar 0.0 0.0 0.2, n?meros peque?os flotantes. Para m?s informaci?n sobre el uso de SetVehicleVelocity, ve a?https://wiki.sa-mp.com/wiki/SetVehicleVelocity?.
Languajes de Programaci?n que domino:

Pawn, Lua.

Lenguajes de Programaci?n que estoy aprendiendo:

C, JavaScript & C#.



?Listo para ayudarte!

  Reply
#3
Solo era un ejemplo, la ayuda era lograr el limitador.

ya lo he logrado.
[Image: Fondo.jpg]

  Reply


Forum Jump: