Difference between revisions of "MENU"
MrSugarCube (talk | contribs) (Created page with '__FORCETOC__ Menus are a simple way of displaying a selection dialog to clients. Menus can be shown to players in one of two styles: * Text-based * Item-based ==Text-Based Menu...') |
MrSugarCube (talk | contribs) m |
||
(2 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
==Text-Based Menu== | ==Text-Based Menu== | ||
+ | A text-based menu simply shows a list of text options the choose from in a vertical list. The player can select an option and then press a "Continue" button to submit it. | ||
+ | |||
The syntax for defining a text-based menu is as follows: | The syntax for defining a text-based menu is as follows: | ||
Line 67: | Line 69: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | |||
+ | ==Triggers== | ||
+ | When the client selects an option from the menu, the "ON=''...''" section will be executed, in a similar fashion to how a trigger would fire. | ||
+ | |||
+ | |||
+ | If the client cancels the menu (by right-clicking it, or for text-based menus by pressing "Cancel"), an @Cancel trigger will be fired. | ||
+ | |||
+ | |||
+ | In both cases, the following references and arguments are available: | ||
+ | |||
+ | {| border="1" cellspacing="4" cellpadding="4" | ||
+ | | '''Name''' || '''Description''' | ||
+ | |- | ||
+ | | '''[[I]]''' || The [[Characters|character]] or [[Items|item]] that the MENU function was called from. | ||
+ | |- | ||
+ | | '''[[SRC]]''' || The client operating the menu. | ||
+ | |} | ||
+ | |||
Line 117: | Line 138: | ||
</spherescript> | </spherescript> | ||
+ | |||
+ | <spherescript> | ||
+ | // | ||
+ | // Demonstrates the @Cancel trigger | ||
+ | // | ||
+ | [MENU m_cancelmenu] | ||
+ | Don't cancel this menu! | ||
+ | |||
+ | ON=0 Ok! | ||
+ | SRC.SYSMESSAGE Thank you! | ||
+ | RETURN | ||
+ | |||
+ | ON=@Cancel | ||
+ | SRC.SYSMESSAGE I said don't cancel this menu! | ||
+ | MENU m_cancelmenu | ||
+ | RETURN | ||
+ | |||
+ | </spherescript> | ||
+ | |||
+ | [[Category: Reference Compendium]] | ||
+ | [[Category: Definitions]] |
Latest revision as of 23:44, 9 June 2009
Menus are a simple way of displaying a selection dialog to clients. Menus can be shown to players in one of two styles:
- Text-based
- Item-based
Text-Based Menu
A text-based menu simply shows a list of text options the choose from in a vertical list. The player can select an option and then press a "Continue" button to submit it.
The syntax for defining a text-based menu is as follows:
[MENU defname]
title
ON=0 text
script
ON=0 text
script
Name | Description |
defname | The menu's defname. |
title | The title of the menu. Properties and references of the object the menu was called on can be accessed. |
text | The text to display for the option. Properties and references of the object the menu was called on can be accessed. |
script | The script to run when the option is pressed. |
Item-Based Menu
The syntax for an item-based menu is as follows:
[MENU defname]
title
ON=baseid text
script
ON=baseid @hue, text
script
Name | Description |
defname | The menu's defname. |
title | The title of the menu. Properties and references of the object the menu was called on can be accessed. |
baseid | The item BASEID to display for the button. |
hue | If the @hue syntax is used, the item will be displayed in the specified colour. |
text | The text to display for the option. Properties of the ITEMDEF that baseid refers to can be accessed. |
script | The script to run when the button is pressed. |
Triggers
When the client selects an option from the menu, the "ON=..." section will be executed, in a similar fashion to how a trigger would fire.
If the client cancels the menu (by right-clicking it, or for text-based menus by pressing "Cancel"), an @Cancel trigger will be fired.
In both cases, the following references and arguments are available:
Name | Description |
I | The character or item that the MENU function was called from. |
SRC | The client operating the menu. |
Examples
// // Displays a menu asking if the player wants more gold, and creates it // if they select Yes. // [MENU m_goldmenu] You currently have <SRC.BANKBALANCE>gp in your account. Would you like some more gold? ON=0 Yes SERV.NEWITEM i_gold, 5000 SRC.BOUNCE <NEW.UID> RETURN ON=0 No SRC.SYSMESSAGE Ok then! RETURN
// // Displays a menu asking the player which item they would like. // [MENU m_itemmenu] Which item would you like? ON=i_sword_viking <NAME> SERV.NEWITEM i_sword_viking SRC.BOUNCE <NEW.UID> RETURN ON=i_gold 5000 <NAME> SERV.NEWITEM i_gold, 5000 SRC.BOUNCE <NEW.UID> RETURN ON=i_backpack @020, a red backpack SERV.NEWITEM i_backpack NEW.COLOR = 020 SRC.BOUNCE <NEW.UID> RETURN ON=0 Nothing SRC.SYSMESSAGE You get nothing! RETURN
// // Demonstrates the @Cancel trigger // [MENU m_cancelmenu] Don't cancel this menu! ON=0 Ok! SRC.SYSMESSAGE Thank you! RETURN ON=@Cancel SRC.SYSMESSAGE I said don't cancel this menu! MENU m_cancelmenu RETURN