Blockland Forums > Modification Help
Binding a GUI
(1/1)
kyjus25:
HOPEFULLY this is the last post i'll have to make. So here's whats happening... I'm trying to make a GUI. It works. I want to bind a key to the console command instead of having to put in canvas.pushDialog(___); every single time i want to open the GUI. I named the script 'Kyjus' (for simplicity).

in the .gui file (the file that mission editor made), the bottom (which i added) looks like this:
_____________________________ ______________
//--- OBJECT WRITE END ---

function pushKyjus(%Gui)
{
   %Gui = canvas.pushDialog(Kyjus);
}
_____________________________ ______________

My .cs file looks like this:
_____________________________ ___________
exec("./Kyjus.gui");
moveMap.bind(keyboard, "m", pushKyjus);
}
_____________________________ ______________

when I open Blockland, and press M, it doesn't open. Nor does it open when i push ctrl-m, alt-m, or shift-m. There must be one little mistake that I made, but i just can't figure out what! Am I leaving something out? Help is GREATLY appreciated. (keep in mind it works perfectly if you enter the console command directly)
Tom:
Are your trying the code in game or in the Menu? See, there isn't a good way to make a keybind work in the main menu.

This probably isn't your problem, but don't use moveMap.bind(). Use this method instead:

--- Code: ---if(!$ModNameBindings)
{
$remapDivision[$remapCount] = "Keybind Category";
$remapName[$remapCount] = "Keybind Name";
$remapCmd[$remapCount] = "Function to call";
$remapCount++;
$ModNameBindings = true;
}

--- End code ---
If you use this you get an option to set the keybind and it won't break peoples keybinds.

Also, the argument for the keybind function should be not be %GUI. Use code like this instead.

--- Code: ---function pushKyjus(%val)
{
if(!%val)
return;

canvas.pushDialog(Kyjus);;
}

--- End code ---
kyjus25:
IT WORKS! Thank you so much!!!! That was a very nice surprise to come home from school to!
Navigation
Message Index

Go to full version