extazy | Дата: Суббота, 17.03.2012, 16:43 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 18
Статус: Offline
| [/code]#include <amxmodx>
public plugin_init() { // Данные вашего плагина
// Клиентская команда для вызова меню register_clcmd("my_menu", "My_Menu") }
// Создадим функцию, которая будет формировать меню public My_Menu(id) { // Сперва необходимо создать переменную для меню, с которой мы будем взаимодействовать в дальнейшем new i_Menu = menu_create("\rTitle of my menu:", "menu_handler")
// Теперь добавим некоторые опции для меню menu_additem(i_Menu, "\wFirst option #1", "1", 0) menu_additem(i_Menu, "\wSecond option #2", "2", 0) menu_additem(i_Menu, "\wAdmin option #3", "3", ADMIN_ADMIN)
// Устанавливаем свойства меню menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)
// Отображение меню игроку menu_display(id, i_Menu, 0) }
// Создадим теперь функцию обработки действий меню public menu_handler(id, menu, item) { // Если игрок нажал выход из меню if (item == MENU_EXIT) { // Уничтожение меню menu_destroy(menu) return PLUGIN_HANDLED }
// Теперь создадим переменные, необходимые для получения информации о меню и нажатой опции new s_Data[6], s_Name[64], i_Access, i_Callback
// Получаем информацию об опции menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
// Если посмотреть раньше на использовании menu_additem, то можно увидеть, что мы посылали некоторую информацию // В данном случае вся информация - целочисленная new i_Key = str_to_num(s_Data)
// Теперь найдем, какая именно опция была использована switch(i_Key) { case 1: { client_print(id, print_chat, "You selected first option") // Уничтожение меню menu_destroy(menu) return PLUGIN_HANDLED } case 2: { client_print(id, print_chat, "You selected second option") } case 3: { client_print(id, print_chat, "You selected admin option") } }
// Уничтожение меню menu_destroy(menu) return PLUGIN_HANDLED }
Смотри, не получи бан!)
|
|
| |