Menus Front-End

Сообщения
79
Реакции
1
Ошибка
L 09/03/2022 - 22:38:56: [pluginmenu.amxx] Function not found! (AddMenuItem_call failed)
L 09/03/2022 - 22:38:56: [pluginmenu.amxx] Function not found! (AddMenuItem_call failed)
ОС
Windows
Amx Mod X
AMX Mod X 1.9.0.5294
Билд
3.11.0.779-dev
ReGamedll
ReGameDLL version: 5.21.0.556-dev
Версия Metamod
Metamod-r build: 18:51:02 Jul 11 2022
Список метамодулей
[ 1] Reunion          RUN   -    reunion.so                  v0.1.0.137       ini  Start Never
[ 2] AMX Mod X RUN - amxmodx.so v1.9.0.5294 ini Start ANY
[ 3] ReAuthCheck RUN - reauthcheck.so v0.1.6 ini Start Never
[ 4] Rechecker RUN - rechecker.so v2.7 ini ANY
[ 5] ReSemiclip RUN - resemiclip.so v2.3.9 ini ANY
[ 6] VoiceTranscoder RUN - vtc.so v2017RC5 ini ANY
[ 7] WHBlocker RUN - whblocker.so v1.5.697 ini ANY
[ 8] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl2 ANY
[ 9] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl2 ANY
[10] ReAPI RUN - reapi_amxx_i386.so v5.21.0.252-dev pl2 ANY Never
[11] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[12] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[13] MySQL RUN - mysql_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[14] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl2 ANY Never
[15] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[16] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
Список плагинов
[ 1] Reunion          RUN   -    reunion.so                  v0.1.0.137       ini  Start Never
[ 2] AMX Mod X RUN - amxmodx.so v1.9.0.5294 ini Start ANY
[ 3] ReAuthCheck RUN - reauthcheck.so v0.1.6 ini Start Never
[ 4] Rechecker RUN - rechecker.so v2.7 ini ANY
[ 5] ReSemiclip RUN - resemiclip.so v2.3.9 ini ANY
[ 6] VoiceTranscoder RUN - vtc.so v2017RC5 ini ANY
[ 7] WHBlocker RUN - whblocker.so v1.5.697 ini ANY
[ 8] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5294 pl2 ANY
[ 9] CSX RUN - csx_amxx_i386.so v1.9.0.5294 pl2 ANY
[10] ReAPI RUN - reapi_amxx_i386.so v5.21.0.252-dev pl2 ANY Never
[11] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[12] Engine RUN - engine_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[13] MySQL RUN - mysql_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[14] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl2 ANY Never
[15] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
[16] Fun RUN - fun_amxx_i386.so v1.9.0.5294 pl2 ANY ANY
Автор плагина
neygomon
Версия плагина
1.5
Исходный код
#include <amxmodx>
enum _:DATA { Name[64], Cmd[32], Flags }

//#define ADMIN_LOADER // Выводить срок до конца админки с Admin Loader by Neugomon
new g_szDefaultItems[][DATA] = // Стандартные пункты в меню | { "название пункта", "команда", "флаг доступа" }
{
{ "Кикнуть", "amx_kickmenu", ADMIN_KICK },
{ "Забанить", "amx_banmenu", ADMIN_BAN },
{ "\rУдарить\w/\rУбить", "amx_slapmenu", ADMIN_KICK },
{ "Команда игрока", "amx_teammenu", ADMIN_KICK },
{ "Сделать Скриншот", "screen_menu", ADMIN_BAN },
{ "Смена карты", "amx_mapmenu", ADMIN_MAP },
{ "Голосование за карту", "amx_votemapmenu", ADMIN_VOTE },
{ "\rЗатнуть Игрока", "amx_gagmenu", ADMIN_BAN },
{ "Настройка Кваров", "amx_cvarmenu", ADMIN_RCON },
{ "Настройка Статистики", "amx_statscfgmenu", ADMIN_RCON },
{ "Настройка Армии", "ar_armymenu", ADMIN_RCON },
{ "\rЗапустить \yГолосование", "amx_rtv", ADMIN_RCON },
{ "\yСерверные команды", "amx_cmdmenu", ADMIN_BAN },
{ "\rРазбан Игроков", "amx_unbanmenu", ADMIN_LEVEL_F },
{ "Истории Банов", "amx_banhistorymenu", ADMIN_BAN },
{ "Забаненные Подсети", "amx_bansubnetmenu", ADMIN_BAN },
{ "Отключенные Игроки", "amx_bandisconnectedmenu", ADMIN_BAN }
}

new g_iNumItems;
new g_szMenuData[128][DATA];
new g_iMenuPage[33];
#if defined ADMIN_LOADER
native admin_expired(index);
#endif
public plugin_init()
{
register_plugin("Menus Front-End", "1.5 untested :D", "neugomon");

register_clcmd("amxmodmenu", "clcmdAdminMenu", ADMIN_MENU);
register_srvcmd("amx_addmenuitem", "SrvAddMenuItems");

register_menucmd(register_menuid("AMX Menu"), 1023, "amxx_handler");

MenuDefaultLoad();
}

public clcmdAdminMenu(id, flags)
{
if(get_user_flags(id) & flags)
{
g_iMenuPage[id] = 0;
BuildMenu(id, g_iMenuPage[id]);
}
else console_print(id, "* Вы не имеете доступа к этой команде");
return PLUGIN_HANDLED;
}

public SrvAddMenuItems()
{
if(read_argc() >= 3)
{
new ItemName[64], ItemCmd[32], ItemFlags[30];
read_argv(1, ItemName, charsmax(ItemName));
read_argv(2, ItemCmd, charsmax(ItemCmd));
read_argv(3, ItemFlags, charsmax(ItemFlags));

copy(g_szMenuData[g_iNumItems][Name], charsmax(g_szMenuData[][Name]), ItemName);
copy(g_szMenuData[g_iNumItems][Cmd], charsmax(g_szMenuData[][Cmd]), ItemCmd);
g_szMenuData[g_iNumItems][Flags] = read_flags(ItemFlags);
g_iNumItems++;
}
else server_print("[Menus Front-End by Neugomon] Item not added! Syntax: ^"Item name^" ^"Item command^" ^"Item access^"");
return PLUGIN_HANDLED;
}

MenuDefaultLoad()
{
for(new i; i < sizeof g_szDefaultItems; i++)
{
copy(g_szMenuData[g_iNumItems][Name], charsmax(g_szMenuData[][Name]), g_szDefaultItems[i][Name]);
copy(g_szMenuData[g_iNumItems][Cmd], charsmax(g_szMenuData[][Cmd]), g_szDefaultItems[i][Cmd]);
g_szMenuData[g_iNumItems][Flags] = g_szDefaultItems[i][Flags];
g_iNumItems++;
}
}

BuildMenu(id, pos)
{
new szMenu[512];
new len
new start = pos * 8;
new end = start + 8;
new keys = MENU_KEY_0;

if(start >= g_iNumItems)
start = pos = g_iMenuPage[id] = 0;
if(g_iNumItems == 9 || end > g_iNumItems)
end = g_iNumItems;
#if defined ADMIN_LOADER
new exp = admin_expired(id);
if(exp > 0)
{
new systime = get_systime();
if(exp - systime > 0)
{
if((exp - systime) / 86400 > 0)
len = formatex(szMenu, charsmax(szMenu), "\rAmxModMenu^n\wОсталось \r%d \wдней^n^n", ((exp - systime) / 86400));
else len = formatex(szMenu, charsmax(szMenu), "\rAmxModMenu^n\rПоследний \wдень^n^n");
}
}
else if(exp == 0) len = formatex(szMenu, charsmax(szMenu), "\rAmxModMenu^n\wПрава \yне ограничены^n^n");
#else
len = formatex(szMenu, charsmax(szMenu), "\rAmxModMenu^n\wВыберите действие^n^n");
#endif
for(new i = start, flags = get_user_flags(id), a; i < end; i++)
{
if(flags & g_szMenuData[i][Flags])
{
keys |= (1 << a);
len += formatex(szMenu[len], charsmax(szMenu) - len, "\r%d. \w%s^n", ++a, g_szMenuData[i][Name]);
}
else len += formatex(szMenu[len], charsmax(szMenu) - len, "\r%d. \d%s^n", ++a, g_szMenuData[i][Name]);
}

if(end != g_iNumItems)
{
formatex(szMenu[len], charsmax(szMenu) - len, "^n\r9. \yДалее^n\r0. \r%s", pos ? "Назад" : "Выход");
keys |= MENU_KEY_9;
}
else formatex(szMenu[len], charsmax(szMenu) - len, "^n\r0. \r%s", pos ? "Назад" : "Выход");

return show_menu(id, keys, szMenu, -1, "AMX Menu");
}

public amxx_handler(id, key)
{
switch(key)
{
case 9: if(g_iMenuPage[id]) BuildMenu(id, --g_iMenuPage[id]);
default:
{
if(key == 8 && g_iNumItems > 9)
BuildMenu(id, ++g_iMenuPage[id]);
else
{
new pos = g_iMenuPage[id] * 8 + key;
if(g_szMenuData[pos][Cmd][0] == 's' && g_szMenuData[pos][Cmd][1] == 'v' && g_szMenuData[pos][Cmd][2] == '_')
server_cmd(g_szMenuData[pos][Cmd]);
else client_cmd(id, g_szMenuData[pos][Cmd]);
}
}
}
return PLUGIN_HANDLED;
}
Ошибки выдает плагин.
 
Сообщения
494
Реакции
109
Помог
16 раз(а)
отключи pluginmenu.amxx или он тебе так нужен? (нет)
 

iOS

Сообщения
323
Реакции
100
Помог
5 раз(а)
Не по теме, но поставь лучше втк выше чем амхмодх)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу