#pragma semicolon 1 #pragma newdecls required #include #define HELP_PREFIX "\x09[HELP]\x01" #define TG_LINK "https://t.me/arcanegamecs" #define WEBSITE_LINK "https://arcanegame.ru" public Plugin myinfo = { name = "Help Menu", author = "deidara.dev", description = "Меню справки для игроков: правила, команды, контакты сервера", version = "1.0.1", url = "https://deidara.dev" }; public void OnPluginStart() { RegConsoleCmd("sm_help", Command_Help, "Открыть меню справки"); } public Action Command_Help(int client, int args) { if (client <= 0 || !IsClientInGame(client)) { ReplyToCommand(client, "[HELP] Команда доступна только в игре."); return Plugin_Handled; } ShowMainMenu(client); return Plugin_Handled; } void ShowMainMenu(int client) { Menu menu = new Menu(MenuHandler_Main); menu.SetTitle("ArcaneGame — справка"); menu.AddItem("rules", "Правила сервера"); menu.AddItem("commands", "Команды"); menu.AddItem("telegram", "Наш Telegram"); menu.AddItem("website", "Наш сайт"); menu.ExitButton = true; menu.Display(client, 30); } public int MenuHandler_Main(Menu menu, MenuAction action, int client, int item) { if (action == MenuAction_End) { delete menu; return 0; } if (action != MenuAction_Select) { return 0; } char info[16]; menu.GetItem(item, info, sizeof(info)); if (StrEqual(info, "rules")) { ShowRulesMenu(client); } else if (StrEqual(info, "commands")) { ShowCommands(client); } else if (StrEqual(info, "telegram")) { ShowTelegram(client); } else if (StrEqual(info, "website")) { ShowWebsite(client); } return 0; } void ShowRulesMenu(int client) { // Используем Panel вместо Menu — позволяет показать 10 правил без пагинации Panel panel = new Panel(); panel.SetTitle("Правила сервера ArcaneGame"); panel.DrawText("1. Запрещены читы, хаки, макросы и стороннее ПО"); panel.DrawText("2. Запрещены оскорбления игроков и админов"); panel.DrawText("3. Запрещено намеренно мешать союзникам"); panel.DrawText("4. Запрещено использование багов карт и движка"); panel.DrawText("5. Запрещён спам в голосовом и текстовом чате"); panel.DrawText("6. Запрещена реклама сторонних серверов"); panel.DrawText("7. Запрещена политика и провокации"); panel.DrawText("8. Уважайте решения админов; жалобы — в Telegram"); panel.DrawText("9. Незнание правил не освобождает от ответственности"); panel.DrawText("10. Админы наказывают за вред репутации сервера"); panel.DrawText(" "); panel.DrawText("Оспорить наказание: t.me/ArcaneGameCSGO"); panel.DrawText(" "); panel.CurrentKey = 1; panel.DrawItem("Назад в меню"); panel.CurrentKey = 9; panel.DrawItem("Закрыть"); panel.Send(client, PanelHandler_Rules, 30); delete panel; } public int PanelHandler_Rules(Menu menu, MenuAction action, int client, int item) { if (action == MenuAction_Select) { if (item == 1) { ShowMainMenu(client); } // item == 9 (Закрыть) — ничего не делаем, panel и так закроется } return 0; } void ShowCommands(int client) { PrintToChat(client, "%s \x04Команды сервера:", HELP_PREFIX); PrintToChat(client, "%s \x04!g\x01 — меню койнов", HELP_PREFIX); PrintToChat(client, "%s \x04!ws\x01 — выбор скинов оружия", HELP_PREFIX); PrintToChat(client, "%s \x04!glove\x01 — выбор перчаток", HELP_PREFIX); PrintToChat(client, "%s \x04!knife\x01 — выбор ножа", HELP_PREFIX); PrintToChat(client, "%s \x04!help\x01 — открыть это меню", HELP_PREFIX); } void ShowTelegram(int client) { PrintToChat(client, "%s \x04Наш Telegram-канал:", HELP_PREFIX); PrintToChat(client, "%s \x05%s\x01", HELP_PREFIX, TG_LINK); PrintToChat(client, "%s Подписывайся, чтобы быть в курсе обновлений и анонсов!", HELP_PREFIX); } void ShowWebsite(int client) { PrintToChat(client, "%s \x04Наш сайт:", HELP_PREFIX); PrintToChat(client, "%s \x05%s\x01", HELP_PREFIX, WEBSITE_LINK); PrintToChat(client, "%s Заходи: статистика, магазин, новости.", HELP_PREFIX); }