Starztec Posted December 24, 2017 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)
Simple0x47 Posted December 24, 2017 Posted December 24, 2017 Almacenar de alguna forma que dicho vehículo tiene un objeto personalizado añadido. 1
Starztec Posted December 26, 2017 Author Posted December 26, 2017 De acuerdo, tratare de investigar mas sobre como almacenar e intentaré, gracias.
Simple0x47 Posted December 26, 2017 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
Starztec Posted December 26, 2017 Author 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.
Melbourne Posted December 26, 2017 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
Starztec Posted December 27, 2017 Author 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
Melbourne Posted December 27, 2017 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
Starztec Posted December 27, 2017 Author 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
Melbourne Posted December 27, 2017 Posted December 27, 2017 ¿No te funcionó dejando el localPlayer? intenta cambiar el guiRoot por solamente root. 1
Starztec Posted December 29, 2017 Author 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
Melbourne Posted December 29, 2017 Posted December 29, 2017 ¿Puedes mostrar una imagen o vídeo del problema?
Starztec Posted December 29, 2017 Author 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
Enargy, Posted December 29, 2017 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
Starztec Posted December 29, 2017 Author 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
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