#include <amxmodx>
#include <dhudmessage>
#define PLUGIN "Server Menu"
#define VERSION "0.1"
#define AUTHOR "444444"
new giMenu
new pShowHudMsg
new gszHudMsg[] = "Меню Сервера, нажми на M"
#define ITMS 0 // menu items
#define CMDS 1 // client commands
#define QNTY 10 // total entries
new gszArray[QNTY][2][] = {
{ "\wМеню кредитов!", "say /anew" },
{ "\rCSO-Оружейка", "cso" },
{ "\yМеню \wДжетпака!", "say /j_menu" },
{ "\yСменить \wКоманду", "chooseteam" },
{ "\rМагазин Жизней", "say /life" },
{ "\yУскоритель \w| \rРаспрыг", "say /bh" },
{ "\w[\rNEW\w] \yНожички!", "say /knife" },
{ "\r[\yКомната \wприв\yилегий\r]", "komnatamenu" }
}
public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )
register_clcmd( "amx_menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "say /menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "say_team /menu", "ShowMenu", ADMIN_ALL )
register_clcmd( "menu", "ShowMenu", ADMIN_ALL )
pShowHudMsg = register_cvar( "show_hudmsg", "1" ) // 1 - on, 0 - off
set_task( 12.0, "CheckConfig" )
giMenu = menu_create( "\yМеню [SURF] Идеальный Полет \rツ", "MenuHandler", .ml = 0 /* Russian only, fucking 'UTF-8 inside SMA' style */ )
new szInfo[3]
for ( new i = 0; i < QNTY; i++ ) {
num_to_str( i, szInfo, charsmax(szInfo) )
menu_additem( giMenu, gszArray[i][ITMS], .info = szInfo )
}
menu_setprop( giMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop( giMenu, MPROP_NEXTNAME, "Дальше" )
menu_setprop( giMenu, MPROP_BACKNAME, "Назад" )
menu_setprop( giMenu, MPROP_EXITNAME, "Выход" )
}
public CheckConfig() {
if ( get_pcvar_num( pShowHudMsg) )
set_task( 15.0, "ShowHudMsgTask", .flags = "b" )
}
public client_authorized(id) { // binding for some reason doesn't work at client_putinserver
client_cmd( id, "bind ^"M^" ^"menu^"" )
}
public ShowHudMsgTask() {
set_dhudmessage( 0, 255, 0, .x = 0.0, .y = 0.11, .effects = 0, .fxtime = 1.0, .holdtime = 15.5, .fadeintime = 0.1, .fadeouttime = 0.1 )
show_dhudmessage( 0, gszHudMsg )
}
public ShowMenu(id) {
menu_display( id, giMenu )
return PLUGIN_HANDLED
}
public MenuHandler( id, menu, item ) {
if ( item == MENU_EXIT )
return PLUGIN_HANDLED
new access, info[3], callback
menu_item_getinfo( menu, item, access, info, charsmax(info), .callback = callback )
client_cmd(id, gszArray[str_to_num(info)][CMDS] )
return PLUGIN_HANDLED
}
public plugin_end() {
menu_destroy(giMenu)
}