-Gus- Posted December 4, 2011 Share Posted December 4, 2011 bueno, hice mi primer script ayudandome con la wiki, y me funciono, pero no como yo esperaba les explico, lo que quiero hacer es que cuando en modo race, cambie de vehiculo mediante un pickup, me diera unas ruedas, y lo que hace el script es darme las ruedas cuando un mapa se inicia, pero cuando cambio de vehiculo mediante pickup, vuelve a las ruedas por defecto. el script es este: theVehicle = getPedOccupiedVehicle () addEventHandler("onClientVehicleEnter", getRootElement(), function(thePlayer, seat) if thePlayer == getLocalPlayer() then addVehicleUpgrade( theVehicle, 1075 ) end end ) Link to comment
diegofkda Posted December 4, 2011 Share Posted December 4, 2011 onClientVehicleEnter es cuando entras al vehiculo, no cuando cambias su ID, y cuando el vehiculo cambia su ID, las ruedas se ponen a las preterminadas. Podrías detectar cuando la ID del vehiculo ha cambiado: setTimer ( function () vehicle = getPedOccupiedVehicle ( getLocalPlayer () ) currentWheel = getElementModel ( vehicle ) if oldCurrentWheel == currentWheel then --aquí no pones nada else addVehicleUpgrade( vehicle, 1075 ) end oldCurrentWheel = getElementModel ( vehicle ) end, 100, 0 ) Link to comment
-Gus- Posted December 4, 2011 Author Share Posted December 4, 2011 a ver si entendi todo... setTimer ( function () --setTimer para crear un delay entre el momento en que cambia en ID y cuando te da las ruedas vehicle = getPedOccupiedVehicle ( getLocalPlayer () ) --vehicle = obtener el vehiculo actual currentWheel = getElementModel ( vehicle ) --currentWheel = el modelo actual ( del vehiculo ) if oldCurrentWheel == currentWheel then -- si el modelo viejo es igual al actual entonces... --no hacer nada else --pero si es distinto addVehicleUpgrade( vehicle, 1075 ) --agregarle a "vehicle" las ruedas 1075 end oldCurrentWheel = getElementModel ( vehicle ) --oldCurrentwheel = el vehiculo actual end, 100, 0 ) --delay de 100 ms. Link to comment
diegofkda Posted December 4, 2011 Share Posted December 4, 2011 ¡Excelente! Checkea si funciona . Link to comment
Castillo Posted December 4, 2011 Share Posted December 4, 2011 Me pregunto, para que esta el evento: onPlayerPickUpRacePickup si no lo usan? -- server side: addEventHandler("onPlayerPickUpRacePickup",root, function (pickupID, pickupType, vehicleModel) if (pickupType == "vehiclechange") then local theVehicle = getPedOccupiedVehicle(source) addVehicleUpgrade(theVehicle, 1075) end end) Link to comment
diegofkda Posted December 4, 2011 Share Posted December 4, 2011 Yo casi no scripteo en servidores race, no tenía idea que existía. Link to comment
Castillo Posted December 4, 2011 Share Posted December 4, 2011 Ni yo, pero ultimamente me estan contratando para scripts de race, asi que tengo que saber que eventos existen . Link to comment
-Gus- Posted December 4, 2011 Author Share Posted December 4, 2011 yo tambien intente hacer eso que hizo solidnake pero no habia encontrado la funcion, igualmente el script de diegofkda funciono, despues pruebo el de solid, ahora me tengo que ir pero gracias a los dos Link to comment
Castillo Posted December 4, 2011 Share Posted December 4, 2011 Yo que vos uso el mio (no es por sea mejor o algo parecido), pero es mas simple. Link to comment
-Gus- Posted December 4, 2011 Author Share Posted December 4, 2011 ahora que lo pienso, ese script te da las ruedas cuando agarras un pickup de vehiclechange pero no cuando se inicia el mapa, perdon si me equivoco. Link to comment
Castillo Posted December 4, 2011 Share Posted December 4, 2011 Eso es lo que yo entendi que querias, me equivoque? Link to comment
-Gus- Posted December 4, 2011 Author Share Posted December 4, 2011 lo que queria son las dos cosas, es decir, iniciar el mapa con esas ruedas, y que cuando agarre el pickup no cambien, porque al cambiar de vehiculo vuelve a las por defecto. Se podria hacer una combinacion de lo que hice yo y lo que hiciste vos, que me de las ruedas "onClientVehicleEnter" y "onPlayerPickUpRacePickup" Link to comment
diegofkda Posted December 4, 2011 Share Posted December 4, 2011 El mio las pondría siempre . Link to comment
-Gus- Posted December 4, 2011 Author Share Posted December 4, 2011 diego, tu script funciona y me pone las ruedas siempre, pero me salen estos errores con el debugscript 3 Link to comment
Gothem Posted December 4, 2011 Share Posted December 4, 2011 no se ve la imagen con los errores ._. Link to comment
-Gus- Posted December 4, 2011 Author Share Posted December 4, 2011 al principio se veia pero despues no se que paso, bueno aca esta Link to comment
Castillo Posted December 5, 2011 Share Posted December 5, 2011 setTimer ( function () --setTimer para crear un delay entre el momento en que cambia en ID y cuando te da las ruedas vehicle = getPedOccupiedVehicle ( getLocalPlayer () ) --vehicle = obtener el vehiculo actual if (not vehicle) then return end currentWheel = getElementModel ( vehicle ) --currentWheel = el modelo actual ( del vehiculo ) if oldCurrentWheel == currentWheel then -- si el modelo viejo es igual al actual entonces... --no hacer nada else --pero si es distinto addVehicleUpgrade( vehicle, 1075 ) --agregarle a "vehicle" las ruedas 1075 end oldCurrentWheel = getElementModel ( vehicle ) --oldCurrentwheel = el vehiculo actual end, 100, 0 ) --delay de 100 ms. Link to comment
-Gus- Posted December 5, 2011 Author Share Posted December 5, 2011 funciona igual pero siguen saliendo errores Link to comment
diegofkda Posted December 5, 2011 Share Posted December 5, 2011 setTimer ( function () --setTimer para crear un delay entre el momento en que cambia en ID y cuando te da las ruedas if not isPedInVehicle ( getLocalPlayer() ) then return end vehicle = getPedOccupiedVehicle ( getLocalPlayer () ) --vehicle = obtener el vehiculo actual currentWheel = getElementModel ( vehicle ) --currentWheel = el modelo actual ( del vehiculo ) if oldCurrentWheel == currentWheel then -- si el modelo viejo es igual al actual entonces... --no hacer nada else --pero si es distinto addVehicleUpgrade( vehicle, 1075 ) --agregarle a "vehicle" las ruedas 1075 end oldCurrentWheel = getElementModel ( vehicle ) --oldCurrentwheel = el vehiculo actual end, 100, 0 ) --delay de 100 ms. Link to comment
Recommended Posts