-Gus- Posted January 23, 2012 Share Posted January 23, 2012 bueno, hoy cree un script para modo race DM, que lo que hace es que cuando pongas cierto comando, guarda tu vehiculo actual, posicion, rotacion y velocidad, entonces cuando pones el segundo comando te lleva a ese lugar, con el vehiculo que tenias en ese momento, seria como para ir "guardando" el progreso de la carrera, asi poder testear mapas mas facil y rapido, pero el problema es que, cuando pongo el segundo comando, para volver al punto de "guardado" sale esto: Race integrity test fail (client): Your vehicle has been destroyed. Please panic. Race integrity test fail: Invalid vehicle for player **mi nombre** segun tengo entendido eso pasa cuando el vehiculo de un jugador es destruido, pero yo ya habia sido warpeado a otro vehiculo antes de que este fuera destruido este es el script: --server side function getstuff (playerSource) vehicle = getPedOccupiedVehicle (playerSource) --obtener el vehiculo actual del jugador px,py,pz = getElementPosition (vehicle) rx,ry,rz = getElementRotation (vehicle) vx,vy,vz = getElementVelocity (vehicle) model = getElementModel (vehicle) --obtener posicion, rotacion, velocidad y modelo de vehiculo -- avisarle al jugador que cosas se guardaron if (model) then --si se obtuvo un modelo valido entonces... outputChatBox ('Model:#AAAAAA '.. model ..'', playerSource, 255, 0, 0, true) outputChatBox ('Position:#AAAAAA '.. px .. ', '.. py .. ', '.. pz .. '', playerSource, 255, 0, 0, true) outputChatBox ('Rotation:#AAAAAA '.. rx .. ', '.. ry .. ', '.. rz .. '', playerSource, 255, 0, 0, true) outputChatBox ('Velocity:#AAAAAA '.. vx .. ', '.. vy .. ', '.. vz .. '', playerSource, 255, 0, 0, true) else --pero si no, avisar. outputChatBox ("You're not in a vehicle!", playerSource, 255, 0, 0, true) end end function teleporter (playerSource) newvehicle = createVehicle (model,px,py,pz,rx,ry,rz)-- crear un vehiculo con todo lo que se guardo antes warpPedIntoVehicle (playerSource, newvehicle) --meter al jugador en ese vehiculo setElementVelocity (newvehicle,vx,vy,vz) --poner la velocidad guardada destroyElement (vehicle) --destruir el vehiculo anterior end -- agregar los comandos addCommandHandler ("savepos", getstuff) addCommandHandler ("loadpos", teleporter) a ver si me pueden ayudar. Link to comment
Castillo Posted January 23, 2012 Share Posted January 23, 2012 Cuando el vehiculo de un jugador se destruye en race, el game mode se da cuenta y deja de funcionar. local savedPosition = {} function getstuff (playerSource) local vehicle = getPedOccupiedVehicle (playerSource) --obtener el vehiculo actual del jugador if (vehicle) then --si se obtuvo un vehicle valido entonces... local px,py,pz = getElementPosition (vehicle) local rx,ry,rz = getElementRotation (vehicle) local vx,vy,vz = getElementVelocity (vehicle) local model = getElementModel (vehicle) --obtener posicion, rotacion, velocidad y modelo de vehiculo -- avisarle al jugador que cosas se guardaron savedPosition[playerSource] = {px, py, pz, rx, ry, rz, vx, vy, vz, model} outputChatBox ('Model:#AAAAAA '.. model ..'', playerSource, 255, 0, 0, true) outputChatBox ('Position:#AAAAAA '.. px .. ', '.. py .. ', '.. pz .. '', playerSource, 255, 0, 0, true) outputChatBox ('Rotation:#AAAAAA '.. rx .. ', '.. ry .. ', '.. rz .. '', playerSource, 255, 0, 0, true) outputChatBox ('Velocity:#AAAAAA '.. vx .. ', '.. vy .. ', '.. vz .. '', playerSource, 255, 0, 0, true) else --pero si no, avisar. outputChatBox ("You're not in a vehicle!", playerSource, 255, 0, 0, true) end end function teleporter (playerSource) local px, py, pz, rx, ry, rz, vx, vy, vz, model = unpack(savedPosition[playerSource]) local vehicle = getPedOccupiedVehicle(playerSource) if (not vehicle) then return end setElementPosition(vehicle, px, py, pz) setElementRotation(vehicle, rx, ry, rz) setElementModel(vehicle, model) setElementVelocity (vehicle,vx,vy,vz) --poner la velocidad guardada end -- agregar los comandos addCommandHandler ("savepos", getstuff) addCommandHandler ("loadpos", teleporter) Eso deberia guardar los datos en una tabla y luego cargarlos de la misma y cambiar los datos del vehiculo. Link to comment
-Gus- Posted January 23, 2012 Author Share Posted January 23, 2012 ahh gracias, no conocia la funcion setElementModel (lo que es muy estupido porque es el contrario a getElementModel, y esa funcion la use), voy a probarlo Link to comment
-Gus- Posted January 23, 2012 Author Share Posted January 23, 2012 modifique el script, hice esto: --client side function getstuff (key, keyState) player = getLocalPlayer () vehicle = getPedOccupiedVehicle (player) --obtener el vehiculo actual del jugador px,py,pz = getElementPosition (vehicle) rx,ry,rz = getElementRotation (vehicle) vx,vy,vz = getElementVelocity (vehicle) model = getElementModel (vehicle) --obtener posicion, rotacion, velocidad y modelo de vehiculo if (model) then outputChatBox ("#~Position saved Successfully!", 0, 255, 0, true) else outputChatBox ("#~#FF0000You are not in a vehicle!", 0, 255, 0, true) end end function teleporter (key, keyState) setElementModel (vehicle, model) setElementPosition (vehicle,px,py,pz) setElementRotation (vehicle,rx,ry,rz) fixVehicle (vehicle) addVehicleUpgrade (vehicle, 1010) setVehicleFrozen (vehicle, true) outputChatBox ("#~Position loaded Successfully!", 0, 255, 0, true) end function timerf () setVehicleFrozen (vehicle, false) setElementVelocity (vehicle,vx,vy,vz) end setTimer (timerf, 1000, 1) end bindKey ("z", "down", getstuff) bindKey ("x", "down", teleporter) y funciona bien, pero tengo otro problema, explico: si yo guardo mi posicion, sigo la carrera normalmente, pero en el trayecto agarro un pickup de "vehiclechange" y despues cargo la posicion, cuando vuelvo a agarrar el pickup ya no funciona. Link to comment
Castillo Posted January 23, 2012 Share Posted January 23, 2012 Yo lo haria server side. P.D: No entiendo, despues de cargar la posicion no podes usar los pickups? Link to comment
-Gus- Posted January 24, 2012 Author Share Posted January 24, 2012 si yo agarro un pickup de "vehiclechange" y luego cargo una posicion guardada y vuelvo a agarrar el mismo pickup, ya no funciona. Link to comment
Recommended Posts