Код
public plugin_init()
{
register_plugin("Menu", "1.0", "Fast")
register_menucmd(register_menuid("Menu"), 1023, "ActionMenu")
register_clcmd("chooseteam", "Show_menu", ADMIN_ALL)
register_concmd("say /menu", "Show_menu")
register_concmd("say menu", "Show_menu")
register_concmd("servermenu", "Show_menu")
register_concmd("amx_plmenu", "Show_menu")
register_concmd("menu", "Show_menu")
register_concmd("say_team /menu", "Show_menu")
register_concmd("amx_menu", "Show_menu")
register_concmd("menu", "Show_menu")
return PLUGIN_CONTINUE
}
Код
public Show_menu(id)
{
static menu[512]
new iCTcount, flags, iChar = charsmax(menu), user_team = get_user_team(id), user_alive = is_user_alive(id), mode = get_deathrun_mode()
new iLen = formatex(menu[iLen], iChar - iLen, "\rМеню сервера^n")
switch(mode)
{
case 0: iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\dРежим: \dНе выбран^n^n")
case 1: iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\dРежим: \yЛовушки^n^n")
case 2: iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\dРежим: \yНевидимка^n^n")
case 3: iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\dРежим: \yНа ножах^n^n")
case 4: iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\dРежим: \yСнежки^n^n")
default: iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\dРежим: \dНе выбран^n^n")
}
if(user_alive)
{
flags |= MENUBUTTON1
iLen += formatex(menu[iLen], iChar - iLen, "\r1. \wМагазин^n")
}
else iLen += formatex(menu[iLen], iChar - iLen, "\r1. \dМагазин^n")
for(new i = 1; i <= DR_SLOTS; i++)
{
if(is_user_alive(i) && get_user_team(i) == 2) iCTcount++
}
if(iCTcount == 1 && user_alive && user_team == 2)
{
flags |= MENUBUTTON2
iLen += formatex(menu[iLen], iChar - iLen, "\r2. \wДуэль^n")
}
else iLen += formatex(menu[iLen], iChar - iLen, "\r2. \dДуэль (\rНедоступно\d)^n")
flags |= MENUBUTTON3
iLen += formatex(menu[iLen], iChar - iLen, "\r3. \wПередать деньги^n")
flags |= MENUBUTTON4
iLen += formatex(menu[iLen], iChar - iLen, "\r4. \wЗаткнуть игрока^n")
flags |= MENUBUTTON5
iLen += formatex(menu[iLen], iChar - iLen, "\r5. \wТоп прыжков^n")
if(user_alive)
{
flags |= MENUBUTTON6
iLen += formatex(menu[iLen], iChar - iLen, "\r6. \wЯ застрял^n")
}
else iLen += formatex(menu[iLen], iChar - iLen, "\r6. \dЯ застрял (\rВы мертвы\d)^n")
flags |= MENUBUTTON7
switch(Music[id])
{
case true: iLen += formatex(menu[iLen], iChar - iLen, "\r7. \wМузыка: \yВкл^n")
case false: iLen += formatex(menu[iLen], iChar - iLen, "\r7. \wМузыка: \rВыкл^n")
}
flags |= MENUBUTTON8
iLen += formatex(menu[iLen], iChar - iLen, "\r8. \wПоднять фпс^n")
if(user_alive)
{
flags |= MENUBUTTON9
iLen += formatex(menu[iLen], iChar - iLen, "\r9. \wСкаут без патронов^n")
}
else iLen += formatex(menu[iLen], iChar - iLen, "\r6. \dСкаут (\rВы мертвы\d)^n")
flags |= MENUBUTTON0
iLen += formatex(menu[iLen], iChar - iLen, "\r0. \wВыход")
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
show_menu(id, flags, menu, -1, "Menu")
return PLUGIN_HANDLED
}
Код
public ActionMenu(id, key)
{
switch(key)
{
case 0:
{
client_cmd(id, "say /drshop")
}
case 1:
{
new iCTcount, user_alive = is_user_alive(id), user_team = get_user_team(id)
for(new i = 1; i <= DR_SLOTS; i++)
{
if(is_user_alive(i) && get_user_team(i) == 2) iCTcount++
}
if(iCTcount == 1 && user_alive && user_team == 2) client_cmd(id, "say /lr")
else Show_menu(id)
}
case 2: client_cmd(id, "tm")
case 3: client_cmd(id, "say /mute")
case 4: client_cmd(id, "ljtop")
case 5:
{
if(is_user_alive(id))
{
new
Float:origin[3], Float:mins[3], Float:vec[3],
hull, i, iSize = sizeof size
pev(id, pev_origin, origin)
hull = pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
if(!is_hull_vacant(origin, hull, id) && pev(id, pev_movetype) != MOVETYPE_NOCLIP && ~(pev(id, pev_solid) & SOLID_NOT))
{
pev(id, pev_mins, mins)
vec[2] = origin[2]
for(i = 0; i < iSize; ++i)
{
vec[0] = origin[0] - mins[0] * size[i][0]
vec[1] = origin[1] - mins[1] * size[i][1]
vec[2] = origin[2] - mins[2] * size[i][2]
if(is_hull_vacant(vec, hull, id))
{
set_pev(id, pev_origin, vec)
set_pev(id, pev_velocity, {0.0, 0.0, 0.0})
client_print(id, print_chat, "Вы освобождены")
break
}
}
}
else
{
Show_menu(id)
client_print(id, print_chat, "Вы не застряли")
}
}
else
{
Show_menu(id)
client_print(id, print_chat, "Вы мертвы")
}
}
case 6:
{
if(Music[id])
{
client_cmd(id, "say /roundsound")
Music[id] = false
}
else
{
client_cmd(id, "say /roundsound")
Music[id] = true
}
Show_menu(id)
}
case 7:
{
client_cmd(id, "say /fixfps")
}
case 8:
{
client_cmd(id, "say /sc")
}
}
return PLUGIN_CONTINUE
}