aka Blue Posted August 21, 2015 Share Posted August 21, 2015 Bueno, tengo un panel mecánico con distintas funciones el cual anteriormente publiqué. Lo estoy arreglando para el sv y para la comunidad ya que lo voy a subir y tengo un problema. Al loguearme por ejemplo, al hacer click en el textBox para escribir el usuario me salta el panel de color o el de ruedas ya que coge la posición del mouse el DX pero no sé si se podría arreglar ya que es bastante molesto. El código. He quitado los draw y demás. function lucesitas () addEventHandler("onClientGUIClick", BCERRAR, cerrarlo) addEventHandler("onClientGUIClick", DIZ, luz1) addEventHandler("onClientGUIClick", DDER, luz2) end function cerrarlo () destroyElement (VentanaLuces) showCursor (false) end function luz1 () triggerServerEvent ("onLUZ1", getLocalPlayer ()) end function luz2 () triggerServerEvent ("onLUZ2", getLocalPlayer ()) end ------------------------------------------------------------------------------------------- function ruedas () addEventHandler("onClientGUIClick", atras, atrasf) addEventHandler("onClientGUIClick", instalar, Rueda1) showCursor (true) end function atrasf () destroyElement (rueds) showCursor (false) end function Rueda1 (button, modelo) end end ------------------------------------------------------------------------------------ function abrirelpanel() addEventHandler("onClientGUIClick", getRootElement(), onGuiClick) end function onGuiClick() if source == Cerrar then destroyElement(panelcolor) showCursor (false) elseif source == capa1 then exports.colorblender:openPicker (1, 0, "Capa 1") addEventHandler( "onColorPickerOK", localPlayer, Pintarla1) elseif source == capa2 then exports.colorblender:openPicker (1, 0, "Capa2") addEventHandler( "onColorPickerOK", localPlayer, Pintarla2) end end function Pintarla1(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, true, false) removeEventHandler( "onColorPickerOK", getRootElement(), Pintarla1) end function Pintarla2(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, false, true) removeEventHandler( "onColorPickerOK", localPlayer, Pintarla2) end --------------------------------------------------------------------------------------------- function abririnflar () end function onguiClick () if source == CerrarPanel then guiSetVisible (InflarPanel, false) showCursor (false) elseif source == DIzquierda then triggerServerEvent ( "onInflar1", getLocalPlayer() ) elseif source == DDerecha then triggerServerEvent ( "onInflar2", getLocalPlayer() ) elseif source == TIzquierda then triggerServerEvent ( "onInflar3", getLocalPlayer() ) elseif source == TDerecha then triggerServerEvent ( "onInflar4", getLocalPlayer() ) end end ---------------------------------------------------------------------------------------------- function panelsito () showCursor (true) end function openPanel() addEventHandler ( "onClientRender", getRootElement(), panelsito ) addEventHandler ( "onClientClick", getRootElement(), repararlo) function isCursorOnElement(x,y,w,h) local mx,my = getCursorPosition () if isCursorShowing() then else mx,my = x,y end local fullx,fully = guiGetScreenSize() cursorx,cursory = mx*fullx,my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end function repararlo ( _,state) if state == "down" then if isCursorOnElement ( 440, 297, 146, 32) then triggerServerEvent ( "onReparar", getLocalPlayer() ) showCursor (false) destroyElement (panelsito) removeEventHandler ( "onClientRender", root, panelsito ) removeEventHandler ( "onClientClick", getRootElement(), repararlo) elseif isCursorOnElement ( 441, 466, 146, 32 ) then abririnflar () destroyElement (panelsito) showCursor (true) removeEventHandler ( "onClientRender", root, panelsito ) removeEventHandler ( "onClientClick", getRootElement(), repararlo) elseif isCursorOnElement ( 440, 348, 146, 32 ) then abrirelpanel () showCursor (true) destroyElement (panelsito) removeEventHandler ( "onClientRender", root, panelsito ) removeEventHandler ( "onClientClick", getRootElement(), repararlo) elseif isCursorOnElement ( 441, 406, 146, 32 ) then ruedas () showCursor (true) destroyElement (panelsito) removeEventHandler ( "onClientRender", root, panelsito ) removeEventHandler ( "onClientClick", getRootElement(), repararlo) elseif isCursorOnElement ( 441, 525, 146, 32 ) then lucesitas () showCursor (true) destroyElement (panelsito) removeEventHandler ( "onClientRender", root, panelsito ) removeEventHandler ( "onClientClick", getRootElement(), repararlo) end end end addEventHandler ( "onClientClick", getRootElement(), repararlo) Link to comment
Sasu Posted August 21, 2015 Share Posted August 21, 2015 Tal vez puedas usar guiGetInputEnabled, y sino tendrás que utilizar variables. Link to comment
aka Blue Posted August 21, 2015 Author Share Posted August 21, 2015 ¿Se pueden usar variables en dx? Me refiero a que se haga como el onClientGUIClick en vez de coger la posición del mouse ya que por eso es el problema... Link to comment
Pipee20k Posted August 21, 2015 Share Posted August 21, 2015 Yo lo que hacia es que usaba una variable para cuando estuviera abierto el panel, no se si haya una forma mas eficiente pero esto fue lo unico que se me ocurrio cuando me paso esto, espero que entiendas este mamarracho renderedPanel = false function blabla () -- Esta es la funcion con la que se abre el panel renderedPanel = true addEventHandler ("onClientRender", root, panel) end function click () -- Esta es la funcion de cuando dan click if renderedPanel then if isMouseInPosition (...) then -- Tus cosas end end end Link to comment
aka Blue Posted August 21, 2015 Author Share Posted August 21, 2015 Voy a probar a ver. Es que es muy molesto porque al loguearte, aprietas y te sale o el panel de tuneo o el panel de no se qué... Link to comment
Pipee20k Posted August 21, 2015 Share Posted August 21, 2015 Voy a probar a ver. Es que es muy molesto porque al loguearte, aprietas y te sale o el panel de tuneo o el panel de no se qué... Si me pasaba pero era al contrario, en el admin al dar click en un boton se me abria la ventana de registro del login panel XDD Link to comment
aka Blue Posted August 21, 2015 Author Share Posted August 21, 2015 Solucionado. Muchas gracias @Pipee20k PD: Pueden cerrar ésto. Link to comment
Recommended Posts