- Сообщения
- 11
- Симпатии
- 0
- Баллы
- 1
Ребят, короче нашёл исходник вроде бы нормального админ меню. Но есть проблема. amxmodmenu могут открывать все игроки, даже без админки. Мне нужно чтобы amxmodmenu могли открывать исключительно админы. Помогите найти строчку отвечающую за это
#include <amxmodx>
#define MAX_MENU 35 // Максимальное допустимое число пунктов меню
#define MAX_LENGTH 63 // Максимальный размер одной строки
#define INIFILE "/addons/amxmodx/configs/amxmodmenu/menu.ini" // Файл настройки меню админа!
new MenuItem[MAX_MENU+1][MAX_LENGTH+1], MenuCmd[MAX_MENU+1][MAX_LENGTH+1], lines
#define INICMDFILE "/addons/amxmodx/configs/amxmodmenu/clcmd.ini" // Файл настройки клиентских команд для входа в меню
new MenuClcmd[MAX_MENU+1][MAX_LENGTH+1], cmd_lines
public plugin_precache()
{
register_plugin("Server AMXMODMENU [INI]", "1.0", "Leo_[BH]")
cmd_ini_file()
menu_ini_file()
}
public cmd_ini_file()
{
new cmd_line = 1, cmd_bufferd[256]
new cmd_iFiled = fopen(INICMDFILE,"r")
while(!feof(cmd_iFiled))
{
fgets(cmd_iFiled,cmd_bufferd,255)
trim(cmd_bufferd)
if(cmd_bufferd[0]=='"')
{
parse(cmd_bufferd, MenuClcmd[cmd_line], MAX_LENGTH)
}
else
{
continue
}
cmd_line++
}
cmd_lines = cmd_line
fclose(cmd_iFiled)
}
public menu_ini_file()
{
new line = 1, bufferd[256]
new iFiled = fopen(INIFILE,"r")
while(!feof(iFiled))
{
fgets(iFiled,bufferd,255)
trim(bufferd)
if(bufferd[0]=='"')
{
parse(bufferd, MenuItem[line], MAX_LENGTH, MenuCmd[line], MAX_LENGTH)
}
else
{
continue
}
line++
}
lines = line
fclose(iFiled)
}
new g_Menu_Text
public plugin_init()
{
g_Menu_Text = register_cvar("amxmodmenu_text", "\yМеню для админа \wот \rLeo_[BH]\w")
for(new num = 1; num < cmd_lines; num++)
{
register_clcmd(MenuClcmd[num], "open_admin_menu");
}
}
// // // // // // // // // // // // // // //
public open_admin_menu(id)
{
new g_szTextGL[64]
get_pcvar_string( g_Menu_Text, g_szTextGL, 63 );
new menu = menu_create(g_szTextGL, "handler_menu")
for(new num = 1; num < lines; num++)
{
new Number[4]
formatex(Number, charsmax(Number), "%i", num)
menu_additem(menu, MenuItem[num], Number)
}
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public handler_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[15], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 14, iName, 63, callback)
client_cmd(id, MenuCmd[str_to_num(data)])
menu_destroy(menu)
return PLUGIN_HANDLED
}
#define MAX_MENU 35 // Максимальное допустимое число пунктов меню
#define MAX_LENGTH 63 // Максимальный размер одной строки
#define INIFILE "/addons/amxmodx/configs/amxmodmenu/menu.ini" // Файл настройки меню админа!
new MenuItem[MAX_MENU+1][MAX_LENGTH+1], MenuCmd[MAX_MENU+1][MAX_LENGTH+1], lines
#define INICMDFILE "/addons/amxmodx/configs/amxmodmenu/clcmd.ini" // Файл настройки клиентских команд для входа в меню
new MenuClcmd[MAX_MENU+1][MAX_LENGTH+1], cmd_lines
public plugin_precache()
{
register_plugin("Server AMXMODMENU [INI]", "1.0", "Leo_[BH]")
cmd_ini_file()
menu_ini_file()
}
public cmd_ini_file()
{
new cmd_line = 1, cmd_bufferd[256]
new cmd_iFiled = fopen(INICMDFILE,"r")
while(!feof(cmd_iFiled))
{
fgets(cmd_iFiled,cmd_bufferd,255)
trim(cmd_bufferd)
if(cmd_bufferd[0]=='"')
{
parse(cmd_bufferd, MenuClcmd[cmd_line], MAX_LENGTH)
}
else
{
continue
}
cmd_line++
}
cmd_lines = cmd_line
fclose(cmd_iFiled)
}
public menu_ini_file()
{
new line = 1, bufferd[256]
new iFiled = fopen(INIFILE,"r")
while(!feof(iFiled))
{
fgets(iFiled,bufferd,255)
trim(bufferd)
if(bufferd[0]=='"')
{
parse(bufferd, MenuItem[line], MAX_LENGTH, MenuCmd[line], MAX_LENGTH)
}
else
{
continue
}
line++
}
lines = line
fclose(iFiled)
}
new g_Menu_Text
public plugin_init()
{
g_Menu_Text = register_cvar("amxmodmenu_text", "\yМеню для админа \wот \rLeo_[BH]\w")
for(new num = 1; num < cmd_lines; num++)
{
register_clcmd(MenuClcmd[num], "open_admin_menu");
}
}
// // // // // // // // // // // // // // //
public open_admin_menu(id)
{
new g_szTextGL[64]
get_pcvar_string( g_Menu_Text, g_szTextGL, 63 );
new menu = menu_create(g_szTextGL, "handler_menu")
for(new num = 1; num < lines; num++)
{
new Number[4]
formatex(Number, charsmax(Number), "%i", num)
menu_additem(menu, MenuItem[num], Number)
}
menu_setprop(menu, MPROP_NEXTNAME, "Далее")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
public handler_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[15], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 14, iName, 63, callback)
client_cmd(id, MenuCmd[str_to_num(data)])
menu_destroy(menu)
return PLUGIN_HANDLED
}
Последнее редактирование модератором: