Код:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#define PLUGIN "AdminMenuExample"
#define VERSION "1.0"
#define AUTHOR "SLIMSHADY"
new day[32]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /adminmenu","main_menu")
register_clcmd("say /status","daychat")
}
public client_authorized(id)
{
if(is_user_admin(id))
{
new admin[32], pass[32], flags[32], x_access[32], x_days[32],bufferd[128],name[32], st[33]
new iFiled = fopen("/addons/amxmodx/configs/users.ini","r");
get_user_name(id, name, 31)
get_user_authid(id, st, 32)
while(!feof(iFiled))
{
fgets(iFiled,bufferd,255)
trim(bufferd)
if(bufferd[0]=='"')
{
parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31)
// ПроверÑем игрока через Name или Steam (проверку через IP Ñделаете Ñами еÑли нужно)
if(equal(admin, name) || equal(admin, st))
{
day[id]=str_to_num(x_days)
return PLUGIN_HANDLED
}
}
}
fclose(iFiled)
}
return PLUGIN_HANDLED
}
public daychat(id)
if(is_user_admin(id))
client_print_color(id, RED, "^4[^3ProStrike^4] ^4Ваши привилегии закончатÑÑ Ñ‡ÐµÑ€ÐµÐ· ^3%d дней.", day[id])
public main_menu(id)
{
if(is_user_admin(id))
{
// Формируем заголовок меню Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð°
new szArgs[256]
formatex(szArgs, charsmax(szArgs), "\yÐдмин меню\w \d[\rProStrike\d]\w^n\yОÑталоÑÑŒ\w \d[\r%d\d]\w \yдней", day[id])
new i_Menu = menu_create(szArgs, "main_opt")
menu_additem(i_Menu, "\yКикнуть", "1", 0)
menu_additem(i_Menu, "\yЗабанить", "2", 0)
menu_additem(i_Menu, "\yУдарить/Убить", "3", 0)
menu_additem(i_Menu, "\yСменить команду", "4", 0)
menu_additem(i_Menu, "\yСменить карту", "5", 0)
menu_additem(i_Menu, "\yГолоÑование за карту", "6", 0)
menu_additem(i_Menu, "\yБеÑÐ¿Ð»Ð°Ñ‚Ð½Ð°Ñ Ð¾Ñ€ÑƒÐ¶ÐµÐ¹ÐºÐ°", "7", 0)
menu_setprop(i_Menu, MPROP_EXITNAME, "\yВыход")
menu_display(id, i_Menu, 0)
}
return PLUGIN_HANDLED
}
public main_opt(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
console_cmd(id, "amx_kickmenu")
}
case 2:
{
console_cmd(id, "amx_banmenu")
}
case 3:
{
console_cmd(id, "amx_slapmenu")
}
case 4:
{
console_cmd(id, "amx_teammenu")
}
case 5:
{
console_cmd(id, "amx_mapmenu")
}
case 6:
{
console_cmd(id, "amx_votemapmenu")
}
case 7:
{
console_cmd(id, "say /weaponmenu")
}
}
return PLUGIN_HANDLED
}
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}