Starztec Posted December 24, 2017 Share Posted December 24, 2017 Lo que busco en hacer un tunning shop con objetos reemplazados, mi pregunta es como hago para que estos objetos se queden guardados en el vehiculo de cada uno, y que los demas lo puedan ver¿? Client Side: local txd147paragolpe = engineLoadTXD( "objetos/147/vehicle.txd" ) local dff147paragolpe = engineLoadDFF( "objetos/147/spl_b_mar_m.dff", 0 ) engineImportTXD( txd147paragolpe, 1000 ) engineReplaceModel( dff147paragolpe, 1000 ) function upgradeTheCar(cmd) local veh = getPedOccupiedVehicle ( localPlayer ) 147Paragolpe = createObject( 1000, 2,2,2) setElementCollisionsEnabled ( 147Paragolpe , false ) attachElements ( 147Paragolpe , veh, 0,0,0,0,0,0) end addCommandHandler("add", upgradeTheCar) Link to comment
Simple0x47 Posted December 24, 2017 Share Posted December 24, 2017 Almacenar de alguna forma que dicho vehículo tiene un objeto personalizado añadido. 1 Link to comment
Starztec Posted December 26, 2017 Author Share Posted December 26, 2017 De acuerdo, tratare de investigar mas sobre como almacenar e intentaré, gracias. Link to comment
Simple0x47 Posted December 26, 2017 Share Posted December 26, 2017 20 minutes ago, Starztec said: De acuerdo, tratare de investigar mas sobre como almacenar e intentaré, gracias. Tienes que hacerlo de dos maneras, una que tiene como duración la vida de la ejecución y otra que es más permanente y que no depende de la vida de ejecución. La primera la puedes hacer usando tablas Lua y la segunda SQLite, XML o mySQL. 1 Link to comment
Starztec Posted December 26, 2017 Author Share Posted December 26, 2017 42 minutes ago, Simple01 said: Tienes que hacerlo de dos maneras, una que tiene como duración la vida de la ejecución y otra que es más permanente y que no depende de la vida de ejecución. La primera la puedes hacer usando tablas Lua y la segunda SQLite, XML o mySQL. Muchas gracias, me orientaste mucho. Otra pregunta, sabes como hacer para que los demás puedan ver los objetos¿? Porque solo la persona que lo pone lo ve. Link to comment
Melbourne Posted December 26, 2017 Share Posted December 26, 2017 @Starztec Eso es porque estás creando el objeto en client side, o sea, solo para el jugador local. Para que todos lo vean debes crear el objeto desde server side. 1 Link to comment
Starztec Posted December 27, 2017 Author Share Posted December 27, 2017 Aca es el avance de lo que hice, pero me quedé trabado. No me aparece las cortinas al apretar el boton en la ventana que cree (Boton9A) que creo en el server side para que todos lo vean... Client Side addEventHandler("onClientGUIClick", guiRoot, --VENTANA2 = CORTINAS > Completas > Turquesas function() local getGui = guiGetVisible(Ventana2) if source == Boton9A then outputChatBox ("=======PonerCortina======", "FFFB0202" ) end end ) addEvent( "SERVERcortina1", true ) --evento para crear las cortinas Server Side function mapLoad ( name ) local txdCortinas1518 = engineLoadTXD( "objetos/cortinas/vehicle.txd" ) local dffCortinas1518 = engineLoadDFF( "objetos/cortinas/spl_b_mar_m.dff", 0 ) engineImportTXD( txdCortinas1518, 1000 ) engineReplaceModel( dffCortinas1518, 1000 ) end addEventHandler ( "onResourceStart", resourceRoot, mapLoad ) triggerClientEvent ("SERVERcortina1", getRootElement (), Cortina1_1518) function Cortina1_1518 (player) local vehicle = getPlayerOccupiedVehicle (player) if (vehicle) then local object = createObject ( 1000, 0, 0, 0) ------Crea cortinas attachElementToElement (object, vehicle, 0, 0, 1, 0, 0, -90) ---Attach end end Link to comment
Melbourne Posted December 27, 2017 Share Posted December 27, 2017 (edited) En primer lugar, engineImportTXD, engineReplaceModel, engineLoadTXD, engineLoadDFF son funciones propias de client side(solo pueden ser usadas en client side, no en server), segundo, es mejor que uses attachElements en vez de attachElementToElement, ya que esta ultima como dice la wiki está deprecated(obsoleta). Y por último lo que tienes son errores en cuanto al código. Prueba esto y mira si te funciona: CLIENT function mapLoad ( name ) local txdCortinas1518 = engineLoadTXD( "objetos/cortinas/vehicle.txd" ) local dffCortinas1518 = engineLoadDFF( "objetos/cortinas/spl_b_mar_m.dff", 0 ) engineImportTXD( txdCortinas1518, 1000 ) engineReplaceModel( dffCortinas1518, 1000 ) end addEventHandler ( "onClientResourceStart", resourceRoot, mapLoad ) addEventHandler("onClientGUIClick", guiRoot, --VENTANA2 = CORTINAS > Completas > Turquesas function() local getGui = guiGetVisible(Ventana2) if source == Boton9A then triggerServerEvent("PonerCortina", localPlayer, localPlayer) end end ) SERVER function Cortina1(player) local vehicle = getPedOccupiedVehicle( player ) if ( vehicle ) then local object = createObject( 1000, 0, 0, 0 ) attachElements( object, vehicle, 0, 0, 1, 0, 0, -90 ) end end addEvent("PonerCortina", true) addEventHandler("PonerCortina", root, Cortina1) Edited December 27, 2017 by Melbourne 1 Link to comment
Starztec Posted December 27, 2017 Author Share Posted December 27, 2017 31 minutes ago, Melbourne said: En primer lugar, engineImportTXD, engineReplaceModel, engineLoadTXD, engineLoadDFF son funciones propias de client side(solo pueden ser usadas en client side, no en server), segundo, es mejor que uses attachElements en vez de attachElementToElement, ya que esta ultima como dice la wiki está deprecated(obsoleta). Y por último lo que tienes son errores en cuanto al código. Prueba esto y mira si te funciona: CLIENT function mapLoad ( name ) local txdCortinas1518 = engineLoadTXD( "objetos/cortinas/vehicle.txd" ) local dffCortinas1518 = engineLoadDFF( "objetos/cortinas/spl_b_mar_m.dff", 0 ) engineImportTXD( txdCortinas1518, 1000 ) engineReplaceModel( dffCortinas1518, 1000 ) end addEventHandler ( "onClientResourceStart", resourceRoot, mapLoad ) addEventHandler("onClientGUIClick", guiRoot, --VENTANA2 = CORTINAS > Completas > Turquesas function() local getGui = guiGetVisible(Ventana2) if source == Boton9A then triggerServerEvent("PonerCortina", localPlayer, localPlayer) end end ) SERVER function Cortina1(player) local vehicle = getPedOccupiedVehicle( player ) if ( vehicle ) then local object = createObject( 1000, 0, 0, 0 ) attachElements( object, vehicle, 0, 0, 1, 0, 0, -90 ) end end addEvent("PonerCortina", true) addEventHandler("PonerCortina", root, Cortina1) "triggerServerEvent("PonerCortina", localPlayer, localPlayer)" lo cambié por triggerServerEvent("PonerCortina", localPlayer, name) Pero de todas formas sigue sin funcionar, intente buscar otra cosa pero nada Link to comment
Melbourne Posted December 27, 2017 Share Posted December 27, 2017 ¿No te funcionó dejando el localPlayer? intenta cambiar el guiRoot por solamente root. 1 Link to comment
Starztec Posted December 29, 2017 Author Share Posted December 29, 2017 On 27/12/2017 at 07:17, Melbourne said: ¿No te funcionó dejando el localPlayer? intenta cambiar el guiRoot por solamente root. Fue un error mio que a la función no sé porque estaba como (name), al copiarla de nuevo la que me hiciste funcionó. El problema, es que el objeto me aparece recien al acelerar, entonces al seleccionarlo como para ver cual comprar, no me deja verlo Link to comment
Melbourne Posted December 29, 2017 Share Posted December 29, 2017 ¿Puedes mostrar una imagen o vídeo del problema? Link to comment
Starztec Posted December 29, 2017 Author Share Posted December 29, 2017 1 hour ago, Starztec said: Fue un error mio que a la función no sé porque estaba como (name), al copiarla de nuevo la que me hiciste funcionó. El problema, es que el objeto me aparece recien al acelerar, entonces al seleccionarlo como para ver cual comprar, no me deja verlo 1) Apreto para que se pongan https://ibb.co/gQrvUw (deberian aparecer) 2) Al salir del shop, no pasa nada tampoco https://ibb.co/cY4zpw 3) Pero al mover el vehiculo, aparece el objeto https://ibb.co/mMvHbb Mi problema es que esto no me sirve para un shop, porque no podes ver lo que compras Link to comment
Enargy, Posted December 29, 2017 Share Posted December 29, 2017 function Cortina1() local vehicle = getPedOccupiedVehicle( source ) if ( vehicle ) then local pos = {getElementPosition( vehicle )} local object = createObject( 1000, pos[1], pos[2], pos[3] ) attachElements( object, vehicle, 0, 0, 1, 0, 0, -90 ) end end addEvent("PonerCortina", true) addEventHandler("PonerCortina", root, Cortina1) 2 Link to comment
Starztec Posted December 29, 2017 Author Share Posted December 29, 2017 6 hours ago, Enargy, said: function Cortina1() local vehicle = getPedOccupiedVehicle( source ) if ( vehicle ) then local pos = {getElementPosition( vehicle )} local object = createObject( 1000, pos[1], pos[2], pos[3] ) attachElements( object, vehicle, 0, 0, 1, 0, 0, -90 ) end end addEvent("PonerCortina", true) addEventHandler("PonerCortina", root, Cortina1) Muchas gracias, se solucionó a la perfección. Gracias a todos Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now