8e894e85f1
- Расширен список правил с 5 до 10 (по запросу пользователя) - Переход с Menu (с пагинацией) на Panel — теперь все правила отображаются на одном экране без переключений - Добавлена ссылка на Telegram для оспаривания наказаний
151 lines
4.9 KiB
SourcePawn
151 lines
4.9 KiB
SourcePawn
#pragma semicolon 1
|
|
#pragma newdecls required
|
|
|
|
#include <sourcemod>
|
|
|
|
#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);
|
|
}
|