Jump to content

Recommended Posts

Witajcie z lua zacząłem bawić sie dzisiaj i mam coś takiego.

Może nie wygląda ale jest to podstawka pod testowe gui. (o ile wgl moge to tak nazwać)


function panel1 ( theResource )

    spawnScreenMenu = guiCreateWindow ( 0.15, 0.33, 0.7, 0.34, "Naglowek", true )
    botton = guiCreateButton ( 0.4, 0.85, 0.20, 0.15, "OK", true, spawnScreenMenu )
    
end


function fpanelu1()
    if panel1 == false then
        showCursor (true)
        addEventHandler ("onClientRender", root, panel1)
        panel1 = true
    else
        showCursor (false)
        removeEventHandler ("onClientRender", root, panel1)
        panel1 = false
    end
end
addCommandHandler("panel1", panel1)

 

Gdy wpisze /panel1 pojawia mi sie panel wszystko ok lecz gdy wpisze znów pojawia się kolejny a poprzedni sie nie zamyka

nie moge znaleść nigdzie linijki która po wpisaniu ponownie kom /panel1 zamknie go a nie otworzy następny

Prosiłbym o wytłumaczenie mi błędów które gdzieś tam mogą być i zapoznania mnie z poszukiwaną przeze mnie linijka.

Z góry dziękuje ;)

PS: To kilka wycinek , testów , opcji z różnych źródeł które skleiłem i próbuje dostosować pod moje oczekiwania i plany.

Edited by XxboguuxX
Link to comment
  • 3 months later...

Tutaj chodzi o to że wywołujesz funkcje panel1 a nie fpanelu1

addCommandHandler("panel1", panel1)

wszystko dziala tak jak powinno w twoim kodzie, funkcja fpanelu1 nie jest w ogole uzywana, dodatkowo korzystasz z 

addEventHandler ("onClientRender", root, panel1)

co jest bez sensu z uzywaniem GUI, to uzywa sie np w przypadku dx (np dxDrawText) w GUI tego nie uzywamy.

Caly skrypt powinnien wygladac tak: 

open = false;

spawnScreenMenu = guiCreateWindow ( 0.15, 0.33, 0.7, 0.34, "Naglowek", true );
botton = guiCreateButton ( 0.4, 0.85, 0.20, 0.15, "OK", true, spawnScreenMenu );
guiSetVisible(spawnScreenMenu, false);



function fpanelu1()
	if open == false then
		showCursor (true);
		guiSetVisible(spawnScreenMenu, true);
		open = true;
	else
		showCursor (false);
		guiSetVisible(spawnScreenMenu, false);
		open = false;
	end
end
addCommandHandler("panel1", fpanelu1);

Skrypt uruchamia sie ukrywając GUI, gdy wpiszesz "panel1" pokaze sie, co widac w tej linjce 

guiSetVisible(spawnScreenMenu, true);

i zmienia sie zmienna open na true, gdy znow wpiszesz "panel1" gui sie ukrywa 

guiSetVisible(spawnScreenMenu, false);

i zmienna open zmienia sie na false i tak w kolko.

Najwazniejsza zmiana w calym kodzie jest tu:

zamiast 

addCommandHandler("panel1", panel1);

powinno byc:

addCommandHandler("panel1", fpanelu1);

Caly skrypt jest po stronie klienta.

Jakbys mial jakies pytania lub czegos nie rozumial to pisz, chetnie wytlumacze.

Link to comment

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...