Robercid Posted August 30, 2012 Posted August 30, 2012 Hola a todos, hago un nuevo tema sobre la velocidad de los vehiculos para ver si me pueden decir el error de este código. function VelocidadInfernus ( me, command, mass ) local infernus = getPedOccupiedVehicle ( me ) -- Obtiene el vehiculo local success = setVehicleHandling ( infernus, "maxVelocity", 400) if success then -- Si funciona outputChatBox ( "Funciona", me, 0, 255, 0 ) else -- Si no funciona outputChatBox ( "No funciona me cago en la madre que lo pario!", me, 255, 0, 0 ) end end addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),VelocidadInfernus) Se supone que tiene que cambiar la velocidad del vehículo a max 400, pero no ejecuta la función de success.
Alexs Posted August 30, 2012 Posted August 30, 2012 ( me, command, mass ) No están definidos, así que el recurso no sabría de quien conseguir el vehículo, usa otro evento (server side ya que el que usas es de Client) o algún comando. PD: Postea Este tipo de dudas en la Sección "Scripting". Edit: Si quieres esto a la facil, te dejo esto con un comando. function VelocidadInfernus ( me, command, mass ) local infernus = getPedOccupiedVehicle ( me ) -- Obtiene el vehiculo local success = setVehicleHandling ( infernus, "maxVelocity", tonumber(mass)) if (success) then outputChatBox ( "Funciona", me, 0, 255, 0 ) else -- Si no funciona outputChatBox ( "No funciona me cago en la madre que lo pario!", me, 255, 0, 0 ) end end addCommandHandler("setmaxspeed", VelocidadInfernus)
Robercid Posted August 30, 2012 Author Posted August 30, 2012 Lo que quiero hacer, es que al empezar un Map de Race se le cambie a cada usuario su vehículo a velocidad máxima 400. He conseguido hacer eso con la Wiki, pero no se me ocurre nada. Tiene que ser algo así: Function Pongo nombre a cada vehiculo de todos los usuarios cambio el handlin de los vehiculos obtenidos anteriormente (maxVelocity) End function Algo así de sencillo ¿Me podeis ayudar? Gracias.
Alexs Posted August 30, 2012 Posted August 30, 2012 Lo que quiero hacer, es que al empezar un Map de Race se le cambie a cada usuario su vehículo a velocidad máxima 400. He conseguido hacer eso con la Wiki, pero no se me ocurre nada. Tiene que ser algo así:Function Pongo nombre a cada vehiculo de todos los usuarios cambio el handlin de los vehiculos obtenidos anteriormente (maxVelocity) End function Algo así de sencillo ¿Me podeis ayudar? Gracias. Algo Asi? function setthemall ( ) for index, players in ipairs (getElementsByType("player") do local autos = getPedOccupiedVehicle(players) setVehicleHandling ( autos, "maxVelocity", 400) end end addEventHandler("onGamemodeMapStart", getRootElement(), setthemall)
BorderLine Posted August 30, 2012 Posted August 30, 2012 la verdad nose porq, por algun bug extraño, la velocidad no llega a ese maximo si no le pones mas aceleracion. modificale el flag de la aceleracion
Robercid Posted August 31, 2012 Author Posted August 31, 2012 Algo Asi? function setthemall ( ) for index, players in ipairs (getElementsByType("player") do local autos = getPedOccupiedVehicle(players) setVehicleHandling ( autos, "maxVelocity", 400) end end addEventHandler("onGamemodeMapStart", getRootElement(), setthemall) Sí eso mismo, pero parece que no funciona (Lo pongo como server).
BorderLine Posted August 31, 2012 Posted August 31, 2012 intenta esto function setthemall (player) local auto = getPedOccupiedVehicle(player) setVehicleHandling ( auto, "maxVelocity", 400) end addEventHandler("onGamemodeMapStart", getRootElement(), setthemall)
Robercid Posted August 31, 2012 Author Posted August 31, 2012 Tampoco Me sale: [21:22:48] INFO: onGamemodeMapStart(race-SuperHeroeFlash) [21:22:48] WARNING: race-SuperHeroeFlash\script.lua:2: Bad 'ped' pointer @ 'getP edOccupiedVehicle'(1) [21:22:48] WARNING: race-SuperHeroeFlash\script.lua:3: Bad argument @ 'setVehicl eHandling' [21:22:48] WARNING: race-SuperHeroeFlash\script.lua:4: Bad argument @ 'setVehicl eHandling'
Alexs Posted August 31, 2012 Posted August 31, 2012 Eso es por que no existe el argumento de player en ese evento. function setthemall ( ) for index, autos in ipairs (getElementsByType("vehicle")) do setVehicleHandling ( autos, "maxVelocity", 400) setVehicleHandling ( autos, "engineAcceleration", 35) end end addEventHandler("onGamemodeMapStart", getRootElement(), setthemall)
Robercid Posted August 31, 2012 Author Posted August 31, 2012 Ese no me marca ningún error pero no modifica nada.
Castillo Posted September 1, 2012 Posted September 1, 2012 addEventHandler ( "onVehicleEnter", root, function ( ) setVehicleHandling ( source, "maxVelocity", 400 ) setVehicleHandling ( source, "engineAcceleration", 35 ) end ) server side.
Alexs Posted September 1, 2012 Posted September 1, 2012 addEventHandler ( "onVehicleEnter", root, function ( ) setVehicleHandling ( source, "maxVelocity", 400 ) setVehicleHandling ( source, "engineAcceleration", 35 ) end ) server side. En Race, los jugadores entran?
Castillo Posted September 1, 2012 Posted September 1, 2012 Ese evento se ejecuta al entrar a un vehiculo, sea warpeandolo dentro o entrando manualmente.
Robercid Posted September 1, 2012 Author Posted September 1, 2012 Funciona Muchas Gracias Ahora una última duda, ¿como haría que saliera un mensaje si un usuario llega a 450 km/h? Algo así: if (GetVehiculeVelocity == 450) then outputChatBox ( Has llegado a los 450 km/h", me, 0, 255, 0 ) end
Castillo Posted September 1, 2012 Posted September 1, 2012 Vas a tener que hacerlo client side, en cada render comparas la velocidad. Podes usar esta funcion para obtener la velocidad de un elemento, en este caso el vehiculo: https://wiki.multitheftauto.com/wiki/GetElementSpeed
Recommended Posts