RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
New Menu System
New Menu System
Теги:
Скачать плагины cs
Серверные
Нове меню сервера та amxmodmenu!
Компилятор: 1.9.0
+ZIP
621
Команды:
amxmodmenu - адмін меню
/menu - Меню сервера
Або натискай n
.sma / .sp
#include
#define PLUGIN "Menu System" #define VERSION "1.1" #define AUTHOR "Pricolist" #pragma semicolon 1 enum _:MenuIndexes { PLAYER, ADMIN }; enum _:Data { Name[64], Cmd[16], Access[32] }; new g_arrMenuData[128][MenuIndexes][Data], g_iDataSize[MenuIndexes]; new g_szAccess[32]; enum _:PlayerData { Menu, Pos }; new g_PlayerData[MAX_PLAYERS + 1][PlayerData]; new g_iLoadSystem; native admin_expired(id); native cmsapi_service_timeleft(id, szDate[]="", iLen=0, srvName[]=""); native amxbans_get_expired(id); native adminload_get_expired(id); public plugin_natives() set_native_filter("native_filter"); public native_filter(const name[], index, trap) return trap ? PLUGIN_CONTINUE : PLUGIN_HANDLED; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_srvcmd("menu_system_reload", "plugin_cfg"); register_menucmd(register_menuid("Menu System"), 1023, "MenuHandler"); } public plugin_cfg() { register_dictionary("menu_system.txt"); new szPath[64]; get_localinfo("amxx_configsdir", szPath, charsmax(szPath)); add(szPath, charsmax(szPath), "/menu_system.ini"); new iFile = fopen(szPath, "rt"); if(!iFile) plugin_print(true, "Файл ^"%s^" не найден.", szPath); new iState, szBuffer[128], szSetting[8], szValue[128]; arrayset(g_iDataSize, 0, MenuIndexes); while(!feof(iFile)) { fgets(iFile, szBuffer, charsmax(szBuffer)); trim(szBuffer); parse(szBuffer, szSetting, charsmax(szSetting), szValue, charsmax(szValue)); switch(szBuffer[0]) { case 0: continue; case ';':continue; case '[': { if(strcmp(szBuffer, "[PLAYER]") == 0) iState = PLAYER; else if(strcmp(szBuffer, "[ADMIN]") == 0) iState = ADMIN; } case 'a': copy(g_szAccess, charsmax(g_szAccess), szValue); case 'c': register_clcmd(szValue, (iState == PLAYER) ? "ClCmdMenu" : "ClCmdAdminMenu"); default: { if(parse(szBuffer, g_arrMenuData[g_iDataSize[iState]][iState][Name], charsmax(g_arrMenuData[][][Name]), g_arrMenuData[g_iDataSize[iState]][iState][Cmd], charsmax(g_arrMenuData[][][Cmd]), g_arrMenuData[g_iDataSize[iState]][iState][Access], charsmax(g_arrMenuData[][][Access]) ) == 3) g_iDataSize[iState]++; } } } fclose(iFile); plugin_print(false, "Настройки плагина загружены."); if(is_plugin_loaded("Admin Loader") != -1) g_iLoadSystem = 1; else if(is_plugin_loaded("GameCMS_API") != -1) g_iLoadSystem = 2; else if(is_plugin_loaded("AMXBans RBS") != -1) g_iLoadSystem = 3; else if(is_plugin_loaded("Admin Load") != -1) g_iLoadSystem = 4; } public ClCmdMenu(const id) { g_PlayerData[id][Menu] = PLAYER; g_PlayerData[id][Pos] = 0; ShowMenu(id, 0); } public ClCmdAdminMenu(const id) { if(get_user_flags(id) & read_flags(g_szAccess)) { g_PlayerData[id][Menu] = ADMIN; g_PlayerData[id][Pos] = 0; ShowMenu(id, 0); } else client_print_color(id, print_team_default, "%l", "MENU_NOT_ACCESS"); } ShowMenu(const id, iPos) { new szMenu[512]; new iMenu = g_PlayerData[id][Menu]; new iSize = g_iDataSize[iMenu]; new iKeys = MENU_KEY_0; new iStart = iPos * 8; new iEnd = iStart + 8; new iLen = formatex(szMenu, charsmax(szMenu), "%l\R%d/%d^n", (iMenu == PLAYER) ? "MENU_PLAYER_TITLE" : "MENU_ADMIN_TITLE", iPos + 1, (iSize / 8 + ((iSize % 8) ? 1 : 0))); new iExp, iSysTime = get_systime(); switch(g_iLoadSystem) { case 0: iExp = -1; case 1: iExp = admin_expired(id); case 2: iExp = cmsapi_service_timeleft(id); case 3: iExp = amxbans_get_expired(id); case 4: iExp = adminload_get_expired(id); } if(iExp > 0) { if(iExp - iSysTime > 0) { if((iExp - iSysTime) / 86400 > 0) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%l^n^n", "MENU_EXPIRED", ((iExp - iSysTime) / 86400)); else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%l^n^n", "MENU_LASTDAY"); } } else if(iExp == 0) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%l^n^n", "MENU_NOLIMIT"); else if(iExp == -1) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n"); if(iStart >= iSize) iStart = iPos = g_PlayerData[id][Pos] = 0; if(iEnd > iSize) iEnd = iSize; for(new i = iStart, iFlags = get_user_flags(id), a; i < iEnd; ++i) { replace_string(g_arrMenuData[i][iMenu][Name], charsmax(g_arrMenuData[][][Name]), "\n", "^n"); if(!g_arrMenuData[i][iMenu][Access][0] || iFlags & read_flags(g_arrMenuData[i][iMenu][Access])) { iKeys |= (1 << a++); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y%d\r] \w%s^n", a, g_arrMenuData[i][iMenu][Name]); } else { replace_string(g_arrMenuData[i][iMenu][Name], charsmax(g_arrMenuData[][][Name]), "\w", "\d"); replace_string(g_arrMenuData[i][iMenu][Name], charsmax(g_arrMenuData[][][Name]), "\r", "\d"); replace_string(g_arrMenuData[i][iMenu][Name], charsmax(g_arrMenuData[][][Name]), "\y", "\d"); iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y%d\r] \d%s^n", ++a, g_arrMenuData[i][iMenu][Name]); } } if(iEnd >= 8) { iKeys |= MENU_KEY_9; iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n%l", iPos ? "MENU_BACK" : "MENU_NEXT"); } formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n%l", "MENU_EXIT"); show_menu(id, iKeys, szMenu, -1, "Menu System"); return PLUGIN_HANDLED; } public MenuHandler(const id, iKey) { switch(iKey) { case 8: { if(g_PlayerData[id][Pos]) ShowMenu(id, --g_PlayerData[id][Pos]); else ShowMenu(id, ++g_PlayerData[id][Pos]); } case 9: return PLUGIN_HANDLED; default:client_cmd(id, "%s", g_arrMenuData[g_PlayerData[id][Pos] * 8 + iKey][g_PlayerData[id][Menu]][Cmd]); } return PLUGIN_HANDLED; } plugin_print(bool:bBlock, const szMessage[], any:...) { new szMsg[128]; vformat(szMsg, charsmax(szMsg), szMessage, 3); switch(bBlock) { case false: log_amx(szMsg); case true: set_fail_state(szMsg); } }
Отправить
Загрузил
GlowN
2024-03-19 23:04:40
2
229
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Чем?
GlowN
2024-03-25 13:40:41
Немного кривоват он (
MayanCalendar
2024-03-25 09:47:43
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2024 Хостинг игровых серверов