|
Стаж: 14 лет
Сообщений: 93
Благодарностей: 7
Полезность: < 0
|
Разобрался. Код:
#include <amxmodx>
#define PLUGIN_NAME "AllMenu" #define PLUGIN_VERSION "1.0" #define PLUGIN_AUTHOR "Fraig"
new GlobalMenu
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); register_clcmd("say /menu", "AllMenu"); register_event("HLTV", "StartHUD", "a", "1=0", "2=0") }
public StartHUD(id) { set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 5.0) show_hudmessage(id, "Для активации меню сервера введите в чате /menu") }
public AllMenu(id) { if ((get_user_flags(id) & ADMIN_BAN) && (get_user_flags(id) & ADMIN_LEVEL_F)){ GlobalMenu = menu_create("\yМеню \rVIP\y-\wАдминистратора\r", "func_menu"); menu_additem(GlobalMenu, "Меню оружия", "1") menu_additem(GlobalMenu, "Обнулить счет", "2") menu_additem(GlobalMenu, "Меню бонусов", "3") menu_addblank(GlobalMenu, -1) menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "4") menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5") menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "6") menu_additem(GlobalMenu, "\rКикнуть \wигрока", "7") menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "8") menu_additem(GlobalMenu, "\rЗабанить \wигрока", "9") menu_additem(GlobalMenu, "Досрочное голос. за карту", "10") menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "11") menu_additem(GlobalMenu, "Сменить карту", "12") menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "13") menu_additem(GlobalMenu, "Команда игрока", "14") menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "15") menu_additem(GlobalMenu, "\yРазбанить \wигрока", "16") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") }else if (get_user_flags(id) & ADMIN_BAN){ GlobalMenu = menu_create("\yМеню \wАдминистратора\r", "func_menu"); menu_additem(GlobalMenu, "Обнулить счет", "1") menu_additem(GlobalMenu, "Меню бонусов", "2") menu_addblank(GlobalMenu, -1) menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "3") menu_additem(GlobalMenu, "\rПредупредить игрока", "4") menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "5") menu_additem(GlobalMenu, "\rКикнуть \wигрока", "6") menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "7") menu_additem(GlobalMenu, "\rЗабанить \wигрока", "8") menu_additem(GlobalMenu, "Досрочное голос. за карту", "9") menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "10") menu_additem(GlobalMenu, "Сменить карту", "11") menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "12") menu_additem(GlobalMenu, "Команда игрока", "13") menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "14") menu_additem(GlobalMenu, "\yРазбанить \wигрока", "15") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") }else if (get_user_flags(id) & ADMIN_LEVEL_H){ GlobalMenu = menu_create("\yМеню \rVIP\y-\wИгрока\r", "func_menu"); menu_additem(GlobalMenu, "Меню оружия", "1") menu_additem(GlobalMenu, "Обнулить счет", "2") menu_additem(GlobalMenu, "Меню бонусов", "3") menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "4") menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5") menu_additem(GlobalMenu, "Голосовать за \rбан \wигрока", "6") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") } else { GlobalMenu = menu_create("\yМеню \wИгрока \r", "func_menu"); menu_additem(GlobalMenu, "Обнулить счет", "1") menu_additem(GlobalMenu, "Меню бонусов", "2") menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "3") menu_addblank(GlobalMenu, 1) menu_additem(GlobalMenu, "\yКонтакты", "4") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") } menu_display(id, GlobalMenu) }
public func_menu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new szData[6], szName[64], iAccess, iCallback menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback) new iKey = str_to_num(szData) if ((get_user_flags(id) & ADMIN_BAN) && (get_user_flags(id) & ADMIN_LEVEL_F)){ switch(iKey) { case 1: client_cmd(id,"say /vm") case 2: client_cmd(id,"say /rs") case 3: client_cmd(id,"say /anew") case 4: client_cmd(id,"say /reply") case 5: client_cmd(id,"say /warn") case 6: client_cmd(id,"amx_mute2") case 7: client_cmd(id,"amx_kickmenu") case 8: client_cmd(id,"amx_ssmenu") case 9: client_cmd(id,"fb_menu") case 10: client_cmd(id,"dmap_rockthevote") case 11: client_cmd(id,"amx_votemapmenu") case 12: client_cmd(id,"amx_mapmenu") case 13: client_cmd(id,"amx_slapmenu") case 14: client_cmd(id,"amx_teammenu") case 15: client_cmd(id,"amx_unmute_menu") case 16: client_cmd(id,"amx_unban") } }else if (get_user_flags(id) & ADMIN_BAN){ switch(iKey) { case 1: client_cmd(id,"say /rs") case 2: client_cmd(id,"say /anew") case 3: client_cmd(id,"say /reply") case 4: client_cmd(id,"say /warn") case 5: client_cmd(id,"amx_mute2") case 6: client_cmd(id,"amx_kickmenu") case 7: client_cmd(id,"amx_ssmenu") case 8: client_cmd(id,"fb_menu") case 9: client_cmd(id,"dmap_rockthevote") case 10: client_cmd(id,"amx_votemapmenu") case 11: client_cmd(id,"amx_mapmenu") case 12: client_cmd(id,"amx_slapmenu") case 13: client_cmd(id,"amx_teammenu") case 14: client_cmd(id,"amx_unmute_menu") case 15: client_cmd(id,"amx_unban") } }else if (get_user_flags(id) & ADMIN_LEVEL_H){ switch(iKey) { case 1: client_cmd(id,"say /vm") case 2: client_cmd(id,"say /rs") case 3: client_cmd(id,"say /anew") case 4: client_cmd(id,"say /support") case 5: client_cmd(id,"say /warn") case 6: client_cmd(id,"say /voteban") } } else{ switch(iKey) { case 1: client_cmd(id,"say /rs") case 2: client_cmd(id,"say /anew") case 3: client_cmd(id,"say /support") case 4: client_cmd(id,"say /admins") } } menu_destroy(menu) return PLUGIN_HANDLED } Вот конечный вариант. Может кому пригодится, поэтому поменял флаги ADMIN_LEVEL_F (у меня на сервере исп. этот флаг) на ADMIN_LEVEL_H Добавил активацию меню с помощью кнопки N Код:
#include <amxmodx>
#define PLUGIN_NAME "AllMenu" #define PLUGIN_VERSION "1.0" #define PLUGIN_AUTHOR "Fraig"
new GlobalMenu
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR); register_clcmd("say /menu", "AllMenu"); register_clcmd("nightvision", "AllMenu"); register_event("HLTV", "StartHUD", "a", "1=0", "2=0") }
public StartHUD(id) { set_hudmessage(0, 255, 0, -1.0, 0.05, 0, 6.0, 5.0) show_hudmessage(id, "Для активации меню сервера введите в чате /menu или нажмите клавишу N") }
public AllMenu(id) { new flags = get_user_flags(id); if ((flags & ADMIN_BAN) && (flags & ADMIN_LEVEL_H)){ GlobalMenu = menu_create("\yМеню \rVIP\y-\wАдминистратора\r", "func_menu"); menu_additem(GlobalMenu, "Меню оружия", "1") menu_additem(GlobalMenu, "Обнулить счет", "2") menu_additem(GlobalMenu, "Меню бонусов", "3") menu_addblank(GlobalMenu, -1) menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "4") menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5") menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "6") menu_additem(GlobalMenu, "\rКикнуть \wигрока", "7") menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "8") menu_additem(GlobalMenu, "\rЗабанить \wигрока", "9") menu_additem(GlobalMenu, "Досрочное голос. за карту", "10") menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "11") menu_additem(GlobalMenu, "Сменить карту", "12") menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "13") menu_additem(GlobalMenu, "Команда игрока", "14") menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "15") menu_additem(GlobalMenu, "\yРазбанить \wигрока", "16") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") }else if (flags & ADMIN_BAN){ GlobalMenu = menu_create("\yМеню \wАдминистратора\r", "func_menu"); menu_additem(GlobalMenu, "Обнулить счет", "1") menu_additem(GlobalMenu, "Меню бонусов", "2") menu_addblank(GlobalMenu, -1) menu_additem(GlobalMenu, "Дать \yответ \wпож. игроку", "3") menu_additem(GlobalMenu, "\rПредупредить \wигрока", "4") menu_additem(GlobalMenu, "\rВыкл. \wмикрофон у игрока", "5") menu_additem(GlobalMenu, "\rКикнуть \wигрока", "6") menu_additem(GlobalMenu, "Сделать \yскриншоты \wигроку", "7") menu_additem(GlobalMenu, "\rЗабанить \wигрока", "8") menu_additem(GlobalMenu, "Досрочное голос. за карту", "9") menu_additem(GlobalMenu, "Выдвинуть карты на голосование", "10") menu_additem(GlobalMenu, "Сменить карту", "11") menu_additem(GlobalMenu, "\yУдарить\w/\rубить \wигрока", "12") menu_additem(GlobalMenu, "Команда игрока", "13") menu_additem(GlobalMenu, "\yВкл. \wмикрофон игроку", "14") menu_additem(GlobalMenu, "\yРазбанить \wигрока", "15") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") }else if (flags & ADMIN_LEVEL_H){ GlobalMenu = menu_create("\yМеню \rVIP\y-\wИгрока\r", "func_menu"); menu_additem(GlobalMenu, "Меню оружия", "1") menu_additem(GlobalMenu, "Обнулить счет", "2") menu_additem(GlobalMenu, "Меню бонусов", "3") menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "4") menu_additem(GlobalMenu, "\rПредупредить \wигрока", "5") menu_additem(GlobalMenu, "Голосовать за \rбан \wигрока", "6") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") } else { GlobalMenu = menu_create("\yМеню \wИгрока \r", "func_menu"); menu_additem(GlobalMenu, "Обнулить счет", "1") menu_additem(GlobalMenu, "Меню бонусов", "2") menu_additem(GlobalMenu, "\rПожаловаться \wна игрока", "3") menu_addblank(GlobalMenu, 1) menu_additem(GlobalMenu, "\yКонтакты", "4") menu_setprop(GlobalMenu, MPROP_BACKNAME, "Назад") menu_setprop(GlobalMenu, MPROP_NEXTNAME, "Дальше") menu_setprop(GlobalMenu, MPROP_EXITNAME, "Выход") } menu_display(id, GlobalMenu) }
public func_menu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new szData[6], szName[64], iAccess, iCallback menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback) new iKey = str_to_num(szData) new flags = get_user_flags(id); if ((flags & ADMIN_BAN) && (flags & ADMIN_LEVEL_H)){ switch(iKey) { case 1: client_cmd(id,"say /vm") case 2: client_cmd(id,"say /rs") case 3: client_cmd(id,"say /anew") case 4: client_cmd(id,"say /reply") case 5: client_cmd(id,"say /warn") case 6: client_cmd(id,"amx_mute2") case 7: client_cmd(id,"amx_kickmenu") case 8: client_cmd(id,"amx_ssmenu") case 9: client_cmd(id,"fb_menu") case 10: client_cmd(id,"dmap_rockthevote") case 11: client_cmd(id,"amx_votemapmenu") case 12: client_cmd(id,"amx_mapmenu") case 13: client_cmd(id,"amx_slapmenu") case 14: client_cmd(id,"amx_teammenu") case 15: client_cmd(id,"amx_unmute_menu") case 16: client_cmd(id,"amx_unban") } }else if (flags & ADMIN_BAN){ switch(iKey) { case 1: client_cmd(id,"say /rs") case 2: client_cmd(id,"say /anew") case 3: client_cmd(id,"say /reply") case 4: client_cmd(id,"say /warn") case 5: client_cmd(id,"amx_mute2") case 6: client_cmd(id,"amx_kickmenu") case 7: client_cmd(id,"amx_ssmenu") case 8: client_cmd(id,"fb_menu") case 9: client_cmd(id,"dmap_rockthevote") case 10: client_cmd(id,"amx_votemapmenu") case 11: client_cmd(id,"amx_mapmenu") case 12: client_cmd(id,"amx_slapmenu") case 13: client_cmd(id,"amx_teammenu") case 14: client_cmd(id,"amx_unmute_menu") case 15: client_cmd(id,"amx_unban") } }else if (flags & ADMIN_LEVEL_H){ switch(iKey) { case 1: client_cmd(id,"say /vm") case 2: client_cmd(id,"say /rs") case 3: client_cmd(id,"say /anew") case 4: client_cmd(id,"say /support") case 5: client_cmd(id,"say /warn") case 6: client_cmd(id,"say /voteban") } } else{ switch(iKey) { case 1: client_cmd(id,"say /rs") case 2: client_cmd(id,"say /anew") case 3: client_cmd(id,"say /support") case 4: client_cmd(id,"say /admins") } } menu_destroy(menu) return PLUGIN_HANDLED }
Отредактировал: Fraig, - 2.7.2015, 10:10
|