Jump to content

Problema con GUI


Recommended Posts

Bueno, estuve haciendo una tienda de armas (saque la idea de un recurso y lo modifique) y tengo unos problemas con el GUI (lo hice en el GUIEditor).

1.- Al hacer click en cualquier lado de la ventana, se compran todos los items y todas las municiones :/

2.- Quise ponerle imagenes de las armas al boton. Probe con imagenes estaticas, pero el boton funciona como al 4° click; tambien probe con dxDrawImage, pero la imagen dura una milesima de segundo.

Aqui esta el script, es del lado del cliente.

GUIEditor_Button = {} 
  
ventana = guiCreateWindow(778,171,245,382,"Tienda de Armas Basicas",false) 
btnColt = guiCreateButton(9,30,75,75,"",false,ventana) 
btnColt50 = guiCreateButton(86,30,75,75,"",false,ventana) 
GUIEditor_Button[1] = guiCreateButton(163,30,72,75,"",false,ventana) 
btnShotg = guiCreateButton(9,112,75,75,"",false,ventana) 
btnShotg50 = guiCreateButton(86,112,75,75,"",false,ventana) 
GUIEditor_Button[2] = guiCreateButton(163,112,73,75,"",false,ventana) 
btnUzi = guiCreateButton(9,194,75,75,"",false,ventana) 
btnUzi50 = guiCreateButton(86,194,75,75,"",false,ventana) 
GUIEditor_Button[3] = guiCreateButton(163,194,72,75,"",false,ventana) 
btnSalir = guiCreateButton(139,334,97,39,"Salir",false,ventana) 
guiWindowSetMovable(ventana,false) 
guiWindowSetSizable(ventana,false) 
guiSetVisible(ventana,false) 
  
addEventHandler("abrirTienda",getRootElement(), 
    function() 
        dxDrawImage(787.0,365.0,75.0,75.0,"images/28.png",0.0,0.0,0.0,tocolor(255,255,255,255),true) 
        dxDrawImage(787.0,283.0,75.0,75.0,"images/25.png",0.0,0.0,0.0,tocolor(255,255,255,255),true) 
        dxDrawImage(787.0,201.0,75.0,75.0,"images/22.png",0.0,0.0,0.0,tocolor(255,255,255,255),true) 
    end 
) 
  
function abrirTienda() 
guiSetVisible(ventana,true) 
showCursor(true) 
dxDrawImage(787.0,365.0,75.0,75.0,"images/28.png",0.0,0.0,0.0,tocolor(255,255,255,255),true) 
dxDrawImage(787.0,283.0,75.0,75.0,"images/25.png",0.0,0.0,0.0,tocolor(255,255,255,255),true) 
dxDrawImage(787.0,201.0,75.0,75.0,"images/22.png",0.0,0.0,0.0,tocolor(255,255,255,255),true) 
end 
addEvent("abrirTienda",true) 
addEventHandler("abrirTienda",getRootElement(),abrirTienda) 
  
function cerrarTienda() 
    if guiGetVisible(ventana) then  
        guiSetVisible(ventana,false) 
        showCursor(false) 
    end 
end 
addEventHandler ("onClientGUIClick", btnSalir, cerrarTienda) 
  
function darColt() 
    local itemID = 22 
    local itemCost = 500 
    local itemMuni = 100 
    triggerServerEvent ("comprarColt", getLocalPlayer(), itemID, itemCost,itemMuni) 
end 
addEventHandler ("onClientGUIClick", btnColt, darColt) 
  
function darShotg() 
    local itemID = 25 
    local itemCost = 1000 
    local itemMuni = 50 
    triggerServerEvent ("comprarShotgun", getLocalPlayer(), itemID, itemCost,itemMuni) 
end 
addEventHandler ("onClientGUIClick", btnShotg, darShotg) 
  
function darUzi() 
    local itemID = 28 
    local itemCost = 1500 
    local itemMuni = 150 
    triggerServerEvent ("comprarUzi", getLocalPlayer(), itemID, itemCost,itemMuni) 
end 
addEventHandler ("onClientGUIClick", btnUzi, darUzi) 
  
function darMuniUzi50() 
    local armaID = 28 
    local itemCost = 150 
    local itemMuni = 50 
    triggerServerEvent ("comprarMuniUzi", getLocalPlayer(), armaID, itemCost,itemMuni) 
end 
addEventHandler ("onClientGUIClick", btnUzi50, darMuniUzi50) 
  
function darMuniShotg50() 
    local armaID = 25 
    local itemCost = 150 
    local itemMuni = 50 
    triggerServerEvent ("comprarMuniShotg", getLocalPlayer(), armaID, itemCost,itemMuni) 
end 
addEventHandler ("onClientGUIClick", btnShotg50, darMuniShotg50) 
  
function darMuniColt50() 
    local armaID = 22 
    local itemCost = 150 
    local itemMuni = 50 
    triggerServerEvent ("comprarMuniColt", getLocalPlayer(), armaID, itemCost,itemMuni) 
end 
addEventHandler ("onClientGUIClick", btnColt50, darMuniColt50) 
     

Ojala puedan ayudarme con esto, se los agradeceria mucho.

Saludos.

Link to comment

Para las imagenes: Creas la imagen dentro del boton, luego usas la imagen para cuando quieren comprar, no el boton.

Para lo de comprar todo cuando clickeas un boton es porque te olvidaste de ponerle "false" al final del evento: "onClientGUIClick".

Ejemplo:

addEventHandler ( "onClientGUIClick", btnColt, darColt, false) 

Link to comment

vitoko me refiero a esto :

addEventHandler("onClientGUIClick", root,       ----Aqui un root  
function() 
if source == btnColt and source ==  darColt then        ---- aqui vamos poniendo los botones  
---Relleno----- 
     end 
end) 

:)

Link to comment

Ahora tengo otro problema, pasa que hice el GUI en una resolucion de 1024 x 768, y al parecer, a un amigo que tiene una de 800 x 600 se le ve mas grande y no alcanza a presionar el boton para cerrar la ventana, ya que la hice en relacion a la mia. Mi consulta es como hacer para que el GUI se adapte a cada resolucion, osea para que no se ensanche o agrande, impidiendo cerrarla. ¿Como se podria corregir?

Link to comment

Tenes que usar el relative en ese caso

Fijate que si ves en la wiki, el ejemplo de guiCreateButton (https://wiki.multitheftauto.com/wiki/GuiCreateButton)

El tipo usa el relative en true

Osea

  
guiCreateButton ( float x, float y, float width, float height, string text, bool relative, [ element parent = nil ] ) 
  
  

Fijate que vos en ese relative pusiste "false" porque usaste pixeles reales. Si queres que se adapte tendras que cambiar a "true", pero buscar las coordenadas en relative ( usa el GUI Editor para ello). De esa forma, se adapta a todas las resoluciones.

Link to comment
  • Recently Browsing   0 members

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