Using New Menu System
Contents
Introduction
Write some intro here
Menu Tutorial
Now lets discuss how to use the new menu system. We will go through the basics in this tutorial and make a simple Change Level vote.
Includes
As always we will start out by adding the required includes
#include <amxmodx>
Global Variables
new g_Menu; // Main Menu handler new g_Votes[3]; // Store Yes votes at 1, No at 2
In here we created 2 global var's. One to hold our menu handle, and the other to store our menu votes. The 'Yes' votes will be stored in g_Votes[1] and the 'No' votes will be stored in g_Votes[2].
Registering Plugin and Menu
public plugin_init() { // Register Our Plugin register_plugin("Vote Menu","1.0","Freecode"); // Register our Change Level vote menu g_Menu = menu_create("Change Level?","menu_handle"); register_clcmd("amx_startvote","startvote",ADMIN_CFG,"Gaben"); // Now we need to build our menu build_menu(); }
Lets break this down.
- register_plugin("Vote Menu","1.0","Freecode"); - Registers our plugin
- g_Menu = menu_create("Change Level?","menu_handle");
- Syntax:
menu_create ( title[], handler[], ml=0 )
- g_Menu - Our menu handle. It will be set after menu_create gets called.
public startvote(id)
{
for(new i = 0; i < 33; i++)
{
if( is_user_alive(i) )
{
menu_display(i, g_Menu, 0);
}
}
return PLUGIN_HANDLED; }
build_menu() { menu_additem(g_Menu, "Yes", "1"); menu_additem(g_Menu, "No", "2");
menu_setprop(g_Menu, MPROP_PERPAGE, 0); }
public menu_handle(id, menu, item) { if( item < 0 ) return PLUGIN_CONTINUE;
// Get item info new cmd[6], iName[64]; new access, callback;
menu_item_getinfo(menu, item, access, cmd,5, iName, 63, callback);
new iChoice = str_to_num(cmd);
g_Votes[iChoice]++;
return PLUGIN_HANDLED; } </pawn>