Admin (2 Posts hasta ahora) | | Hola hoy les vengo a traer un tuto de tipos de menues
SISTEMA NUEVO
Citar: |
#include
public plugin_init()
{
register_plugin("Menu Basico", "1.0", "ModZombie"
register_clcmd( "say /menu", "cmdMenu" );
}
public cmdMenu(id)
{
new gMenu = menu_create("rHola soy un menu", "handlerMenu"
//creamos el menu en la variable 'Menu' con el titulo 'Hola soy un menu'
//que segun la opcion que elija el usuario va a llamar a la funcion 'handlerMenu'
menu_additem(gMenu, "wOpcion #1", "1" //Blanco = w
menu_additem(gMenu, "dOpcion #2", "2" //Transparente = d
menu_additem(gMenu, "yOpcion #3", "3" //Amarillo = y
//Rojo = r
//adderimos opciones al menu 'Menu' y le ponemos el numero de opcion
menu_display(id, gMenu, 0)
//aca le mostramos el menu 'Menu' al 'id'(indice de player) que queramos.
//el '0' es la pagina del menu que le vamos a mostrar.
}
public handlerMenu(id, menu, item) //los parametros deben ir en este orden
{
if ( item == MENU_EXIT ) //si el item seleccionado es igual a '0'(Exit[Salir])
{
menu_destroy(menu) //destruimos el menu
return PLUGIN_HANDLED; //y returnamos la funcion
}
switch(item) //hacemos un swicheo de los posibles resultados:
{
case 0: //en caso de que precione 1: le mandamos un msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #1."
}
case 1: //en caso de que precione 2: le mandamos otro msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #2."
}
case 2: //en caso de que precione 3: le mandamos otro msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #3 MUAJAJAJA(?."
}
}
return PLUGIN_HANDLED; // returnamos la funcion...
}
|
SISTEMA VIEJO
Citar: | #include
#include
new KEYSMENU = MENU_KEY_0 | MENU_KEY_1 | MENU_KEY_2;
public plugin_init()
{
register_plugin("Menu con Len", "1.0", "ModZombie"
register_clcmd( "say /menu", "cmdOtroMenu"
register_menu("Menu", KEYSMENU, "HandMenu"
//registramos el menu 'Menu', con las teclas KEYSMENU
//y el handler que al que va a llamar 'HandMenu'
}
public cmdOtroMenu(id)
{
new menu[100], len;
// 'menu' es donde se va a alojar el string del menu,
// en este caso le damos 99 celdas para sus caracteres
len = 0;
len += formatex(menu[len], sizeof menu - 1 - len, "r Menu:^n"
len += formatex(menu[len], sizeof menu - 1 - len, "y[1]wOpcion #1^n"
len += formatex(menu[len], sizeof menu - 1 - len, "y[2]wOpcion #2^n^n"
len += formatex(menu[len], sizeof menu - 1 - len, "r[0]wSalir"
show_menu(id, KEYSMENU, menu, -1, "Menu"
//mostramos el menu al 'id' deseado, con las teclas ya definidas, el menu 'menu'
//el timpo es lo que tarda el menu en cerrarse en este caso -1 que es infinito, como lo registre en el init 'Menu'
}
public HandMenu(id, keys, menu) //los parametros deben ir en este orden
{
switch(keys) //hacemos un swicheo de los posibles resultados:
{
case 0: client_print(id, print_chat, "HOLA SOY LA OPCION #1" //en caso de que precione 1: le mostramos el menu 'gMenu', en la pagina '0'
case 1: client_print(id, print_center, "HOLA SOY LA OPCION #2" //en caso de que precione 2: le mandamos un msj
case 9: menu_destroy(menu) //en caso de que precione 0: le destruimos el menu...
}
}
|
2 MENUES Y 1 HANDLED
Citar: | #include
public plugin_init()
{
register_plugin( "2 Menus 1 Handled", "1.0", "[Anti]" );
register_clcmd("say /menu", "cmdMenu"
}
public cmdMenu(id)
{
if ( get_user_team(id) == 1 ) //Si es del team TT.
Menu_TT(id); //Mandamos al Menu TT.
else if ( get_user_team(id) == 2 ) //Si es del team CT.
Menu_CT(id); //Mandamos al Menu TT.
}
public Menu_TT(id)
{
new menu = menu_create("rMenu TT:", "handMenu"
menu_additem(menu, "Opcion 1#", "T"
menu_additem(menu, "Opcion 2#", "T"
menu_additem(menu, "Opcion 3#", "T"
menu_display(id, menu, 0); //Mostramos el menu
}
public Menu_CT(id)
{
new menu = menu_create("rMenu CT:", "handMenu"
menu_additem(menu, "Opcion 1#", "C"
menu_additem(menu, "Opcion 2#", "C"
menu_additem(menu, "Opcion 3#", "C"
menu_display(id, menu, 0); //Mostramos el menu
}
public handMenu(id, menu, item)
{
if ( item == MENU_EXIT ) //si el item seleccionado es igual a '0'(Exit[Salir])
{
menu_destroy( menu ); //destruimos el menu.
return PLUGIN_HANDLED; //Returnamos la funcion.
}
new szData[2];
new item_access, item_callback;
menu_item_getinfo( menu, item, item_access, szData,charsmax( szData ), _, _, item_callback );
//obtenemos informacion del menu y el item elegido.
switch( szData[0] ) //Vemos la letra que hay en la primera celda de szData
{
case 'T': //En este caso si es "T".
{
switch( item ) //Switch del Menu TT
{
case 0: {}// Opcion 1# TT's
case 1: {}// Opcion 2# TT's
case 2: {}// Opcion 3# TT's
}
}
case 'C': //En este caso si es "C".
{
switch( item ) //Switch del Menu CT
{
case 0: {}// Opcion 1# CT's
case 1: {}// Opcion 2# CT's
case 2: {}// Opcion 3# CT's
}
}
}
menu_destroy(menu); //Destruimos el menu
return PLUGIN_HANDLED; //Returnamos el Handled
} |
Diferentes natives(solo para el sistema nuevo)
Citar: |
//Establece propiedades en un menu. Propiedades:
#define MPROP_PERPAGE /* Numero de items en cada pagina (default 7)*/
#define MPROP_BACKNAME /* Nombre del boton "Back" */
#define MPROP_NEXTNAME /* Nombre del boton "Next" */
#define MPROP_EXITNAME /* Nombre del boton "Exit" */
#define MPROP_TITLE /* Establece el titulo de un menu */
#define MPROP_EXIT /* Establece la funcion del exit con MEXIT_NEVER(no aparece la opcion exit) y MEXIT_ALL(aparece la opcion exit[default]) */
#define MPROP_NOCOLORS /* Establece si los colores son automaticos */
#define MPROP_NUMBER_COLOR /* Establece el color de los numeros(default rojo) */
menu_setprop(menu, prop, ...);
//Cancela el menu de un player.
menu_cancel(player);
//Adiere una linea de texto al menu.
menu_addtext(menu, const text[], slot=1);
//Adiere un espacio en blanco al menu.
menu_addblank(menu, slot=1);
//Destruye el menu.
menu_destroy(menu);
//Establece un texto para un item.
menu_item_setname(menu, item, const name[]);
//Obtiene el indice de item del menu y la pagina indicada(devuelve menor a 0 si es un item especial como MENU_EXIT)
menu_find_id(menu, page, key);
//Muestra a una player un menu.
menu_display(id, menu, page=0);
//Obtiene la cantidad de items en un menu.
menu_items(menu);
//Obtiene la cantidad de paginas en un menu.
menu_pages(menu);
|
|