Jump to content

Problema con dx


aka Blue

Recommended Posts

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

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 :lol:

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...