Jump to content

Recommended Posts

Posted (edited)

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
  • 3 months later...
Posted

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.

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