-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver_menu_public.sma
107 lines (81 loc) · 3.1 KB
/
server_menu_public.sma
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <amxmodx>
#include <amxmisc>
enum any:MENU_DATA {MENU_NAME[128], MENU_CMD[64]};
/* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ */
#define MENU_TITLE "\r[AWESOMECS.RU]\w Меню сервера"
new const menuData[][MENU_DATA] = {
{"Информация^n", "say /info"},
{"Обнулить счёт \r[\yRS\r]", "say /rs"},
{"Поменять карту \r[\yRTV\r]", "say /rtv"},
{"Номинировать карту \r[\yMAPS\r]^n", "say /maps"},
{"Заткнуть игрока \r[\yMUTE\r]", "say /mute"},
{"Забанить игрока \r[\yVOTEBAN\r]^n", "say /voteban"},
{"\rАдмины\y онлайн", "say /admins"},
{"Меню \r[\yVIP\r]", "vipmenu"},
{"Меню ножей \r[\yVIP\r]", "knifemenu"},
{"Меню управления \r[\yАдмин\r]", "amxmodmenu"},
{"Меню возрождений \r[\yСпонсор\r]", "respawnmenu"}
};
new const menuCmds[][] = {
"say menu",
"say_team menu",
"say /menu",
"say_team /menu",
"menu",
"nightvision"
}
#define ADVERT
#if defined ADVERT
#define ADVERT_TEXT "^3Меню^4 сервера на ^3N^4, или напиши ^3/menu^4 в чат!"
new const Float:ADVERT_INTERVAL = 183.0; // каждые n секунд
#endif
/* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■■■■■ */
new menuId;
#if defined ADVERT
const TASK_ADVERT = 87;
#endif
public plugin_init() {
register_plugin("Server Menu", "1.0", "szawesome");
BuildMenu();
#if defined ADVERT
set_task_ex(ADVERT_INTERVAL, "SendAdvertMessage", TASK_ADVERT, .flags = SetTask_Repeat);
#endif
}
BuildMenu() {
for(new i = 0; i < sizeof menuCmds; i++) {
register_clcmd(menuCmds[i], "ShowMenu");
}
menuId = menu_create(MENU_TITLE, "menuIdHandler");
for(new i = 0; i < sizeof menuData; i++) {
menu_additem(menuId, menuData[i][MENU_NAME], "", 0);
}
menu_setprop(menuId, MPROP_BACKNAME, "Назад");
menu_setprop(menuId, MPROP_NEXTNAME, "Далее");
menu_setprop(menuId, MPROP_EXITNAME, "Выход");
menu_setprop(menuId, MPROP_PERPAGE, 7);
menu_setprop(menuId, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menuId, MPROP_NUMBER_COLOR, "\w");
}
public menuIdHandler(id, menu, item) {
if(!is_user_connected(id)) {
return PLUGIN_HANDLED;
}
if(item == MENU_EXIT || item < 0) {
return PLUGIN_HANDLED;
}
new key[sizeof menuData], name[sizeof menuData], access, callback;
menu_item_getinfo(menu, item, access, key, sizeof key, name, sizeof name, callback);
client_cmd(id, menuData[item][MENU_CMD]);
return PLUGIN_HANDLED;
}
public ShowMenu(id) {
if(!is_user_connected(id)) {
return PLUGIN_HANDLED;
}
return menu_display(id, menuId, 0);
}
#if defined ADVERT
public SendAdvertMessage() {
client_print_color(0, print_team_default, ADVERT_TEXT);
}
#endif