Menu API: Difference between revisions
Appearance
| Line 36: | Line 36: | ||
Fully-featured way to construct menus. Allows customizing each line if the menu. | Fully-featured way to construct menus. Allows customizing each line if the menu. | ||
* byte '''OpCode''' | * byte '''OpCode''' | ||
* | * string '''Message''' | ||
* byte '''MenuItemCount''' | * byte '''MenuItemCount''' | ||
** byte '''MenuItemType''' | ** byte '''MenuItemType''' | ||
Revision as of 04:11, 9 July 2011
Influenced by SourceMod menu, allows to display menus, votes, options, confirmation prompts, alerts, and other interactive dialogs/menus.
MenuItemType enumeration
- Spacer = empty space
- PlainText = plain white text (cannot be selected)
- Button = button that can be selected
- DisabledButton = grayed-out button that cannot be selected
Button Index Codes
- -2 = Menu was closed by MenuClose packet
- -1 = Menu was closed by user hitting Escape
- 0 = Last button (bottom-most)
- 1, 2, 3.. = Other buttons, starting with the top button.
Packets (Server -> Client)
Notification


Simple plain-text message with a "close" button. Usable for showing server rules, world descriptions, global notifications, etc - any kind of information that the user just needs to read through and close.
- byte OpCode
- string Message
- string CloseButtonLabel
MenuYesNo


A plain-text message with two buttons - one for "Yes", and one for "No". Can be used for votes or confirmation prompts.
- byte OpCode
- string Message
- string YesButtonLabel
- string NoButtonLabel
- byte SelectedIndex
Menu

Fully-featured way to construct menus. Allows customizing each line if the menu.
- byte OpCode
- string Message
- byte MenuItemCount
- byte MenuItemType
- string MenuItemLabel
- string CloseButtonLabel
- byte SelectedIndex
MenuClose
Forces any open menu to close. Client is still required to send a MenuClosed event, with a special ButtonIndex code (see above).
- byte OpCode
Packets (Client -> Server)
MenuItemSelected
- byte OpCode
- sbyte ButtonIndex