Jump to content

GUI Problem


Chopper

Recommended Posts

Posted

Hello.

So, i have a login panel made with Static Images. I have an onClientGUIClick eventhandler, for the loginButton element.

Clicking on the button, i created a function, it works. But if i click anywhere else on the panel that is a gui Image, it does this.

m3xh.png

The original panel:

44m4.png

Anyone have any idea whats wrong with it? Im sure its not the coding, since its just the panel with an event pointing to another function.

Posted

Not really sure what you mean. I have the handler like this:

addEventHandler("onClientGUIClick",loginButton2, tryLogin, false) 

and the loginButton2 is:

loginButton2 = guiCreateStaticImage(553, 447, 178, 100, "loginBut.png", false) 

Posted
  
addEventHandler("onClientGUIClick",loginButton2, function() if (source == loginButton2) then tryLogin() end, false) 
  

As far as I understood your actual problem, thats what you need.

Posted
Not really sure what you mean. I have the handler like this:
addEventHandler("onClientGUIClick",loginButton2, tryLogin, false) 

and the loginButton2 is:

loginButton2 = guiCreateStaticImage(553, 447, 178, 100, "loginBut.png", false) 

see? you don't use parent argument.

https://wiki.multitheftauto.com/wiki/GuiCreateStaticImage

parent: This is the parent that the image is attached to. If the relative argument is true, sizes and positioning will be made relative to this parent. If the relative argument is false, positioning will be the number of offset pixels from the parent's origin. If no parent is passed, the parent will become the screen - causing positioning and sizing according to screen positioning.
loginButton2 = guiCreateStaticImage(553, 447, 178, 100, "loginBut.png", false, YourWindowVariableHere) 

Posted

I dont have a GUI Window. Heres my script.

  
function login(player) 
    outputChatBox(source) 
    lathatoE = guiGetVisible(test) 
    if not lathatoE then 
showCursor(true) 
  fadeCamera(source, true, 5) 
 setCameraMatrix(2442.1264648438,-1649.2254638672,28.584239959717, 5000, -500,-500) 
test = guiCreateStaticImage(0, 300, 413, 150, "bg1.png", false) 
test2 = guiCreateStaticImage(399, 202, 485, 357, "bg2.png", false)     
test3 = guiCreateStaticImage(868, 300, 413, 150, "bg1.png", false) 
felhnevBox = guiCreateEdit(541, 302, 201, 27, "", false)     
pwBox = guiCreateEdit(541, 422, 201, 27, "", false) 
loginButton2 = guiCreateStaticImage(553, 447, 178, 100, "loginBut.png", false,test) 
addEventHandler("onClientGUIClick",loginButton2, tryLogin, false) 
GuiSetEnabled(test,false) 
GuiSetEnabled(test2,false) 
GuiSetEnabled(test3,false) 
 dxDrawImage(405, 212, 462, 333, "bg1.png",0, 0, 0, tocolor(255, 255, 255, 255), true) 
end 
end 
addEventHandler("onPlayerJoin", getRootElement(), login) 
  

Posted

You do realize that LUA is very case-sensitive right? GuiSetEnabled is not the same as guiSetEnabled.

And as TAPL mentioned, you're not using parents. Thus when you click anywhere else, anything that is not a child of that parent - will be put behind the clicked GUI Element.

Therefore, you will need an image to work as a window. And assign it as parent to everything else.

test = guiCreateStaticImage(0, 300, 413, 150, "bg1.png", false, parentHere) 

You'll then have to isolate onClientGUIClick, so it doesn't run the function every time you click some element. An example would be;

function exampleCode() 
    if(source == exampleButton1) then 
        -- Do your stuff here. 
    end 
    if(source == exampleButton2) then 
        -- Do your other stuff here 
    end 
end 
addEventHandler("onClientGUIClick", getRootElement(), exampleCode) 

You'll also need to use onClientRenderto draw DX Drawings. Be careful with this, since it runs the function it's assigned for with every frame. So if not careful, you could end up re-creating hundreds and even thousands of unwanted things, such as timers or whatever you use.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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