Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » AMX Mod X » Статьи / фрагменты кода » Новая система меню AMXX (Создание базисного меню (основной пример))
Новая система меню AMXX
extazyДата: Суббота, 17.03.2012, 16:43 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 18
Репутация: 10000
Статус: 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
}


Смотри, не получи бан!)
 
Форум » AMX Mod X » Статьи / фрагменты кода » Новая система меню AMXX (Создание базисного меню (основной пример))
  • Страница 1 из 1
  • 1
Поиск: