Код:
#include <amxmodx>
#define ADMIN_ACCESS ADMIN_BAN // Флаг для доступа к меню.
new iKeys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6;
public plugin_init()
{
#define PLUGIN "AmxModMenu"
#define VERSION "1.0"
register_plugin(PLUGIN, VERSION, "Realution");
register_clcmd("amxmodmenu", "AmxModMenu");
register_menucmd(register_menuid(PLUGIN), iKeys, "HandleMenu");
}
public AmxModMenu(id)
{
if(!(get_user_flags(id) & ADMIN_ACCESS))
return ChatColor(id, "^3[^4%s^3]^1 Это меню только для ^4Админа^1!", PLUGIN);
new szMenu[512], iLen;
iLen = formatex(szMenu, charsmax(szMenu), "\y%s^n^n", PLUGIN);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \wКикнуть^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wЗабанить^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \wУдарить/Убить^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r4. \wКоманда игрока^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \wСменить карту^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \wГолосование за карту^n");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r7. \wОружейка^n^n");
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r0. \wВыход");
return show_menu(id, iKeys, szMenu, -1, PLUGIN);
}
public HandleMenu(id, iKey)
{
switch(iKey)
{
case 0: client_cmd(id, "amx_kickmenu");
case 1: client_cmd(id, "amx_banmenu");
case 2: client_cmd(id, "amx_slapmenu");
case 3: client_cmd(id, "amx_teammenu");
case 4: client_cmd(id, "amx_mapmenu");
case 5: client_cmd(id, "amx_votemapmenu");
case 6: client_cmd(id, "weaponmenu");
}
return PLUGIN_HANDLED;
}
/* Сток цветного чата от Neygomon'a =) */
stock ChatColor(const id, const szMessage[], any:...)
{
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id)
{
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
return 1;
}
Отредактировал: Realution, - 6.3.2015, 18:39