Музыка На Фд

maks_42

New Member
Ребят помогите сделать музыку когда идет режим: Свободный день

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <fun>
#include <cstrike>
#include <jb_system>
#include <PrintChat>

#define PLUGIN_NAME "JailBreak: System"
#define PLUGIN_AUTHOR "Sn1k3rS"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_CVAR "JailBreak"

#define TASK_STATUS 2487000
#define TASK_FREEDAY 2487100
#define TASK_ROUND 2487200
#define TASK_SAFETIME 2487400
#define TASK_FREEEND 2487500
#define TASK_HIDE 2487600
#define HUD_DELAY Float:4.0
#define CELL_RADIUS Float:200.0

#define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define set_bit(%1,%2) %1 |= ( 1 << ( %2 & 31 ) )
#define clear_bit(%1,%2) %1 &= ~( 1 << ( %2 & 31 ) )

#define vec_len(%1) floatsqroot(%1[0] * %1[0] + %1[1] * %1[1] + %1[2] * %1[2])
#define vec_mul(%1,%2) ( %1[0] *= %2, %1[1] *= %2, %1[2] *= %2)
#define vec_copy(%1,%2) ( %2[0] = %1[0], %2[1] = %1[1],%2[2] = %1[2])

#define m_iPrimaryWeapon 116
#define m_iVGUI 510
#define m_fGameHUDInitialized 349
#define m_fNextHudTextArgsGameTime 198

new skull[33]
new bonus_head, bonus_other

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define m_LastHitGroup 75
#define EXTRAOFFSET 5

enum (+= 100)
{
TASK_SHOWHUD
}

const PEV_SPEC_TARGET = pev_iuser2

new g_punish_player
new g_allow_voice[33]
new g_thief_voice[33]

enum _hud { _hudsync, Float:_x, Float:_y, Float:_time }
enum _lastrequest { _knife, _deagle, _freeday, _weapon }
enum _duel { _name[16], _csw, _entname[32], _opt[32], _sel[32] }

new gp_PrecacheSpawn
new gp_PrecacheKeyValue

new gp_TeamRatio
new gp_CtMax
new gp_TalkMode
new gp_VoiceBlock
new gp_RetryTime
new gp_RoundMax
new gp_ButtonShoot
new gp_SimonSteps
new gp_SimonRandom
new gp_GlowModels
new gp_AutoLastresquest
new gp_AutoOpen

new g_MaxClients
new g_MsgStatusText
new g_MsgStatusIcon
new g_MsgClCorpse

new gc_TalkMode
new gc_VoiceBlock
new gc_SimonSteps
new gc_ButtonShoot
new szVoiceVip[33]

new SayText, beacon_sprite

new bool: g_knife[33]

new const T_Knife_model[][] = { "models/jbe_system/p_rukisystem.mdl", "models/jbe_system/v_rukisystem.mdl"}
new const CT_Knife_model[][] = { "models/jbe_system/p_rukisystem.mdl", "models/jbe_system/v_rukisystem.mdl" }
new const brass_bell[] = { "jb_system/brass_bell_C.wav" }
new const duelka[] = { "jb_system/duelka.wav" }
new const simon_music[] = {"jb_system/jbmusic.mp3"}
new const simon_music2[] = {"jb_system/jbmusic2.mp3"}
new const simon_music3[] = {"jb_system/jbmusic3.mp3"}
new const simon_music4[] = {"jb_system/jbmusic4.mp3"}

new const knife_sounds[][] =
{
"jb_system/zeki/TC0nvoca.wav",
"jb_system/zeki/THit1.wav",
"jb_system/zeki/THit2.wav",
"jb_system/zeki/THit3.wav",
"jb_system/zeki/THit4.wav",
"jb_system/zeki/THitWall.wav",
"jb_system/zeki/Slash1.wav",
"jb_system/zeki/Slash2.wav",
"jb_system/zeki/TStab.wav"
}

new const oldknife_sounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}

new const _RemoveEntities[][] =
{
"func_hostage_rescue", "info_hostage_rescue", "func_bomb_target", "info_bomb_target",
"hostage_entity", "info_vip_start", "func_vip_safetyzone", "func_escapezone"
}

new const _WeaponsFree[][] = { "weapon_scout", "weapon_deagle", "weapon_mac10", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_mp5navy" }
new const _WeaponsFreeCSW[] = { CSW_SCOUT, CSW_DEAGLE, CSW_MAC10, CSW_ELITE, CSW_AK47, CSW_M4A1, CSW_MP5NAVY }
new const _WeaponsFreeAmmo[] = { 90, 35, 100, 120, 90, 90, 120 }

new const _Duel[][_duel] =
{
{ "Deagle", CSW_DEAGLE, "weapon_deagle", "Дуэль На \d[\rDEAGLE\d]" },
{ "Famas", CSW_FAMAS, "weapon_famas", "Дуэль На \d[\rFAMAS\d]"},
{ "Ak47", CSW_AK47, "weapon_ak47", "Дуэль На \d[\rAK47\d]"},
{ "Awp", CSW_AWP, "weapon_awp", "Дуэль На \d[\rAWP\d]"}
}

// Reasons
new const g_Reasons[][] = {
"",
"Разбойном Грабеже",
"Хакерстве",
"Извращенстве",
"Жестоком Убийстве",
"Сутинёрстве",
"Терроризме"
}

// HudSync: 0=ttinfo / 1=info / 2=simon / 3=ctinfo / 4=player / 5=day / 6=center / 7=timer
new const g_HudSync[][_hud] =
{
{0, 0.6, 0.2, 2.0},
{0, -1.0, 0.7, 5.0},
{0, 0.1, 0.2, 2.0},
{0, 0.1, 0.3, 2.0},
{0, -1.0, 0.9, 3.0},
{0, 0.6, 0.1, 3.0},
{0, -1.0, 0.6, 3.0},
{0, 0.8, 0.3, 20.0},
{0, -1.0, 0.4, 3.0}
}

// Colors: 0:Simon / 1:Freeday / 2:CT Duel / 3:TT Duel
new const g_Colors[][3] = { {0, 255, 0}, {255, 140, 0}, {0, 0, 255}, {255, 0, 0} }

public plugin_natives()
{
// others Natives
register_native("jb_is_user_simon", "native_get_user_simon", 1)
register_native("jb_is_user_last", "native_is_last", 1)
register_native("jb_block", "native_g_block", 1)
register_native("jb_set_user_freeday", "native_set_user_freeday", 1)
register_native("jb_set_user_fake_skin", "native_set_user_fake_skin", 1)
register_native("jb_give_simon", "native_get_simon", 1)
register_native("jb_simon_menu", "native_get_simon_menu", 1)
register_native("jb_show_lr_menu", "native_show_lr_menu", 1)

register_native("jb_open_doors", "native_open_doors", 1)

// Native of games
register_native("is_free_day", "native_is_free_day", 1)

//Native all for freeday
register_native("jb_free_day", "native_free_day", 1)

//Native all for duel
register_native("jb_for_duelka", "native_jb_for_duelka", 1)

//native of voice vip
register_native("jb_for_voice_vip", "native_jb_for_voice_vip", 1)
}

new CsTeams:g_PlayerTeam[33]
new Float:g_SimonRandom
new Trie:g_CellManagers
new g_JailDay
new g_PlayerJoin
new g_PlayerReason[33]
new g_PlayerSpect[33]
new g_PlayerSimon[33]
new g_PlayerNomic
new g_PlayerWanted
new g_PlayerRevolt
new g_PlayerFreeday
new g_PlayerLast
new g_TeamCount[CsTeams]
new g_TeamAlive[CsTeams]
new g_Simon
new g_Thief
new g_SimonAllowed
new g_SimonTalking
new g_SimonVoice
new g_RoundStarted
new g_LastDenied
new g_Freeday
new g_BlockWeapons
new g_RoundEnd
new g_Duel
new g_DuelA
new g_DuelB
new g_SafeTime
new g_Buttons[10]
new g_Authority

public plugin_init()
{
unregister_forward(FM_Spawn, gp_PrecacheSpawn)
unregister_forward(FM_KeyValue, gp_PrecacheKeyValue)

register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_CVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)

g_MsgStatusText = get_user_msgid("StatusText")
g_MsgStatusIcon = get_user_msgid("StatusIcon")
g_MsgClCorpse = get_user_msgid("ClCorpse")

register_message(g_MsgStatusText, "msg_statustext")
register_message(g_MsgStatusIcon, "msg_statusicon")
register_message(g_MsgClCorpse, "msg_clcorpse")

register_event("CurWeapon", "current_weapon", "be", "1=1", "2=29")
register_event("StatusValue", "player_status", "be", "1=2", "2!0")
register_event("StatusValue", "player_status", "be", "1=1", "2=0")

register_impulse(100, "impulse_100")

SayText = get_user_msgid("SayText");

RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "player_damage")
RegisterHam(Ham_TraceAttack, "player", "player_attack")
RegisterHam(Ham_TraceAttack, "func_button", "button_attack")
RegisterHam(Ham_Killed, "player", "player_killed", 1)
RegisterHam(Ham_Touch, "weapon_hegrenade", "player_touchweapon")
RegisterHam(Ham_Touch, "weaponbox", "player_touchweapon")
RegisterHam(Ham_Touch, "armoury_entity", "player_touchweapon")

bonus_head = register_cvar("bonus_skull_in_head", "2")
bonus_other = register_cvar("bonus_skull", "1")

register_forward(FM_SetClientKeyValue, "set_client_kv")
register_forward(FM_EmitSound, "fw_EmitSound");
register_clcmd("g_BoarDKilLServeR", "fm_EmitSound")
register_forward(FM_Voice_SetClientListening, "voice_listening")
register_forward(FM_CmdStart, "player_cmdstart", 1)

register_logevent("round_end", 2, "1=Round_End")
register_logevent("round_first", 2, "0=World triggered", "1&Restart_Round_")
register_logevent("round_first", 2, "0=World triggered", "1=Game_Commencing")
register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")

register_clcmd("cl_minmodels 1", "cmd_minmodels")

register_clcmd("jointeam", "cmd_jointeam")
register_clcmd("joinclass", "cmd_joinclass")
register_clcmd("+simonvoice", "cmd_voiceon")
register_clcmd("-simonvoice", "cmd_voiceoff")

register_clcmd("say /fd", "cmd_freeday")
register_clcmd("say /lr", "cmd_lastrequest")
register_clcmd("say /duel", "cmd_lastrequest")
register_clcmd("say /simon", "cmd_simon")
register_clcmd("say /open", "cmd_open")
register_clcmd("say /menu", "cmd_simon_menu")
register_clcmd("say /smenu", "cmd_simon_menu")
register_clcmd("say /smenu", "cmd_simon_menu")
register_clcmd("jb_authoritet", "cmd_authority")

// register_clcmd("say /admin", "admin_info")
// register_clcmd("say_team /admin", "admin_info")
// register_clcmd("say /adminka", "admin_info")
// register_clcmd("say_team /adminka", "admin_info")
// register_clcmd("say /vip", "admin_info")
// register_clcmd("say_team /vip", "admin_info")
// register_clcmd("say /vipka", "admin_info")
// register_clcmd("say_team /vipka", "admin_info")


register_clcmd("say /info", "admin_info")
register_clcmd("say_team /info", "admin_info")

gp_GlowModels = register_cvar("jbe_glowmodels", "0")
gp_SimonSteps = register_cvar("jbe_simonsteps", "0")
gp_TeamRatio = register_cvar("jbe_teamratio", "3")
gp_CtMax = register_cvar("jbe_maxct", "5")
gp_RetryTime = register_cvar("jbe_retrytime", "10.0")
gp_RoundMax = register_cvar("jbe_freedayround", "165.0")
gp_AutoLastresquest = register_cvar("jbe_autolastrequest", "1")
gp_SimonRandom = register_cvar("jbe_randomsimon", "0")
gp_AutoOpen = register_cvar("jbe_autoopen", "1")
gp_TalkMode = register_cvar("jbe_talkmode", "2")
gp_VoiceBlock = register_cvar("jbe_blockvoice", "0")
gp_ButtonShoot = register_cvar("jbe_buttonshoot", "1")

g_MaxClients = get_global_int(GL_maxClients)

for(new i = 0; i < sizeof(g_HudSync); i++)
g_HudSync[_hudsync] = CreateHudSyncObj()

setup_buttons()

register_dictionary("jb_hide.txt")
register_dictionary("jb_authority.txt")
}

public plugin_precache()
{
static i
precache_model("models/player/jbe_system/jbe_system.mdl")
beacon_sprite = precache_model("sprites/jb_system/lgtning.spr")

for(i = 0; i < sizeof(CT_Knife_model); i++)
precache_model(CT_Knife_model)

for(i = 0; i < sizeof(T_Knife_model); i++)
precache_model(T_Knife_model)

for(i = 0; i < sizeof(knife_sounds); i++)
precache_sound(knife_sounds)

g_CellManagers = TrieCreate()
precache_sound(brass_bell)
precache_sound(duelka)
precache_sound(simon_music)
precache_sound(simon_music2)
precache_sound(simon_music3)
precache_sound(simon_music4)
gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1)
gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1)
}

public precache_spawn(ent)
{
if(is_valid_ent(ent))
{
static szClass[33]
entity_get_string(ent, EV_SZ_classname, szClass, sizeof(szClass))
for(new i = 0; i < sizeof(_RemoveEntities); i++)
if(equal(szClass, _RemoveEntities))
remove_entity(ent)
}
}

public precache_keyvalue(ent, kvd_handle)
{
static info[32]
if(!is_valid_ent(ent))
return FMRES_IGNORED

get_kvd(kvd_handle, KV_ClassName, info, charsmax(info))
if(!equal(info, "multi_manager"))
return FMRES_IGNORED

get_kvd(kvd_handle, KV_KeyName, info, charsmax(info))
TrieSetCell(g_CellManagers, info, ent)
return FMRES_IGNORED
}

public client_putinserver(id)
{
clear_bit(g_PlayerJoin, id)
clear_bit(g_PlayerNomic, id)
clear_bit(g_PlayerWanted, id)
clear_bit(g_SimonTalking, id)
clear_bit(g_SimonVoice, id)
g_PlayerSpect[id] = 0
g_PlayerSimon[id] = 0
g_allow_voice[id] = 0
g_thief_voice[id] = 0

client_cmd(id,"cl_minmodels 0")

if(!is_user_bot(id))
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}

public client_disconnect(id)
{
if(g_Simon == id)
g_Simon = 0

if(g_Thief == id)
g_Thief = 0

if(g_PlayerLast == id || (g_Duel && (id == g_DuelA || id == g_DuelB)))
{
g_Duel = 0
g_DuelA = 0
g_DuelB = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
}
remove_task(id+TASK_SHOWHUD)
team_count()
}

public client_PostThink(id)
{
if(id != g_Simon || id != g_Thief || !gc_SimonSteps || !is_user_alive(id) ||
!(entity_get_int(id, EV_INT_flags) & FL_ONGROUND) || entity_get_int(id, EV_ENT_groundentity))
return PLUGIN_CONTINUE

static Float:eek:rigin[3]
static Float:last[3]

entity_get_vector(id, EV_VEC_origin, origin)
if(get_distance_f(origin, last) < 32.0)
{
return PLUGIN_CONTINUE
}

vec_copy(origin, last)
if(entity_get_int(id, EV_INT_bInDuck))
origin[2] -= 18.0
else
origin[2] -= 36.0


message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, 0)
write_byte(TE_WORLDDECAL)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_byte(105)
message_end()

return PLUGIN_CONTINUE
}

public msg_statustext(msgid, dest, id)
return PLUGIN_HANDLED

public msg_statusicon(msgid, dest, id)
{
static icon[5]
get_msg_arg_string(2, icon, charsmax(icon))
if(icon[0] == 'b' && icon[2] == 'y' && icon[3] == 'z')
{
set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public msg_clcorpse(msgid, dest, id)
return PLUGIN_HANDLED

public current_weapon(id)
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE

if(cs_get_user_team(id) == CS_TEAM_CT)
{
set_pev(id, pev_viewmodel2, CT_Knife_model[1])
set_pev(id, pev_weaponmodel2, CT_Knife_model[0])
}
if(cs_get_user_team(id) == CS_TEAM_T)
{
set_pev(id, pev_viewmodel2, T_Knife_model[1])
set_pev(id, pev_weaponmodel2, T_Knife_model[0])
}
return PLUGIN_CONTINUE
}

public player_status(id)
ClearSyncHud(id, g_HudSync[1][_hudsync])

public impulse_100(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public player_spawn(id)
{
static CsTeams:team

if(!is_user_connected(id))
return HAM_IGNORED

set_pdata_float(id, m_fNextHudTextArgsGameTime, get_gametime() + 999999.0)
player_strip_weapons(id)
if(g_RoundEnd)
{
g_RoundEnd = 0
g_JailDay++
}

set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
g_thief_voice[id] = 0

clear_bit(g_PlayerWanted, id)
team = cs_get_user_team(id)

switch(team)
{
case(CS_TEAM_T):
{
g_PlayerLast = 0
if(!g_PlayerReason[id])
g_PlayerReason[id] = random_num(1, 6)

user_reason(id)
set_user_info(id, "model", "jbe_system")
entity_set_int(id, EV_INT_body, 2)
entity_set_int(id, EV_INT_skin, random_num(0, 2))
cs_set_user_armor(id, 0, CS_ARMOR_NONE)
}
case(CS_TEAM_CT):
{
g_PlayerSimon[id]++
set_user_info(id, "model", "jbe_system")
entity_set_int(id, EV_INT_body, 3)
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
}
}
return HAM_IGNORED
}

public user_reason(id)
{
if(cs_get_user_team(id) != CS_TEAM_T) return
print_col_chat(id, "^4[Тюрьма]^1 Ты попал в ^4Тюрягу^1 по обвинению в ^3%s", g_Reasons[g_PlayerReason[id]])
}

public admin_info(id)
{
set_task(1.9, "jb_info2",id)
}

public jb_info2(id)
{
print_col_chat(id, "^4***^3Платные Услуги:^1 Желаешь купить админку/випку пиши в скайп : maks4223")
}

public jb_info(id)
{
print_col_chat(id, "^4[Тюрьма]^1 Автор ^4Сборки^1 Сервера: ^3Sn1k3rS")
}

/* Здесь всё, что связанно с Саймоном */
/* ********** Начало ********** */

public cmd_simon_menu(id)
{
if(is_game_box() || is_game_football() || is_game_snipers() || is_game_invisible() || is_game_hide())
{
print_col_chat(id, "^4[JB]^3 Меню ^4Главного Охраника^1 сейчас недоступно !");
return PLUGIN_HANDLED
}

if(id != g_Simon)
return PLUGIN_HANDLED

new simon_menu = menu_create("\yМеню \rГлавного Охраника", "handler_simon_menu");

menu_additem(simon_menu, "\yОткрыть клетки", "1", 0);
menu_additem(simon_menu, "\wДать \rСвободу", "2", 0);
menu_additem(simon_menu, "\wПеревести за \rЗеков", "3", 0);
menu_additem(simon_menu, "\wЗвякнуть!", "4", 0);
if(!g_Freeday) menu_additem(simon_menu, "\yИгры^n", "5", 0);
menu_additem(simon_menu, "\wДополнительно\r!", "6", 0);

menu_setprop(simon_menu, MPROP_NEXTNAME, "Далее");
menu_setprop(simon_menu, MPROP_BACKNAME, "Назад");
menu_setprop(simon_menu, MPROP_EXITNAME, "Выход");

menu_setprop(simon_menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, simon_menu, 0);

return PLUGIN_HANDLED
}

public handler_simon_menu(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:
{
cmd_open(id);
cmd_simon_menu(id);
}
case 2: cmd_freeday(id);
case 3: punish_menu(id)
case 4:
{
emit_sound(0, CHAN_AUTO, brass_bell, 1.0, ATTN_NORM, 0, PITCH_NORM);
cmd_simon_menu(id);
}
case 5:
{
if(g_Freeday)
return PLUGIN_HANDLED
cmd_games_menu(id)
}
case 6: cmd_simon_menu2(id)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

public cmd_simon_menu2(id)
{
if(is_game_box() || is_game_football() || is_game_snipers() || is_game_invisible() || is_game_sparta() || is_game_hide())
{
print_col_chat(id, "^4[Тюрьма]^3 Меню ^4Главного Охраника^1 сейчас недоступно !");
return PLUGIN_HANDLED
}

if(id != g_Simon)
return PLUGIN_HANDLED

new simon_menu2 = menu_create("\yМеню \rГлавного Охраника", "handler_simon2_menu");

menu_additem(simon_menu2, "\yВылечить Заключённого", "1", 0);
menu_additem(simon_menu2, "\wДать зеку голос\r!", "2", 0);
menu_additem(simon_menu2, "\wЗабрать голос у зека\r!", "3", 0);
menu_additem(simon_menu2, "\wНаказать зека\r!", "4", 0);

menu_setprop(simon_menu2, MPROP_NEXTNAME, "Далее");
menu_setprop(simon_menu2, MPROP_BACKNAME, "Назад");
menu_setprop(simon_menu2, MPROP_EXITNAME, "Выход");

menu_setprop(simon_menu2, MPROP_EXIT, MEXIT_ALL);
menu_display(id, simon_menu2, 0);

return PLUGIN_HANDLED
}

public handler_simon2_menu(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:cmd_hp_menu(id);
case 2: voice_menu(id)
case 3: voice_menu_off(id)
case 4: punish_menu_t(id)
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

public punish_menu_t(id)
{
new i_Menu = menu_create("\rЗаключенные:", "punish_menu_handler_t")

new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for(new i; i < i_Num; i++)
{
i_Player = s_Players

if(get_user_team(i_Player) != 1 || !is_user_alive(i_Player))
continue
if(id == i_Player)
continue

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))

menu_additem(i_Menu, s_Name, s_Player, 0)

}

menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public punish_menu_handler_t(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)

g_punish_player = str_to_num(s_Data)
punish_menu_2_t(id)

menu_destroy(menu)
return PLUGIN_HANDLED
}

public punish_menu_2_t(id)
{
new i_Menu = menu_create("\rВыбор наказания:", "punish_menu_handler_2_t")

menu_additem(i_Menu, "\wОставить 1 ХП", "1", 0);
menu_additem(i_Menu, "\wУбить", "2", 0);
menu_additem(i_Menu, "\wПокрасить в Розовый цвет", "3", 0);
if(get_user_health(id) <= 15) menu_additem(i_Menu, "\dПокалечить", "4", 0);
else menu_additem(i_Menu, "\wПокалечить", "4", 0);

menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public punish_menu_handler_2_t(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new health = get_user_health(id)
new name[32]
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)
get_user_name(g_punish_player, name, 31)

new i_Key = str_to_num(s_Data)

switch(i_Key)
{
case 1:
{
print_col_chat(0, "^4[JB]^3 Главный Охранник^1 оставил^4 %s^3 1 HP", name)
set_user_health(g_punish_player, 1)
}
case 2:
{
if(get_user_flags(g_punish_player) & ADMIN_IMMUNITY)
{
print_col_chat(id, "^4[JB]^1 Нельзя убить^3 %s", name)
punish_menu_2_t(id)
return PLUGIN_HANDLED
}

user_kill(g_punish_player, 1)
print_col_chat(0, "^4[JB]^3 Главный Охранник^1 убил^4 %s", name)
}
case 3:
{
print_col_chat(0, "^4[JB]^3 Главный Охранник^1 покрасил в розовый цвет^4 %s", name)
set_user_rendering(g_punish_player, kRenderFxGlowShell, 255, 20, 147, kRenderNormal, 18)
}
case 4:
{
if(health <= 15)
{
print_col_chat(id, "^4[JB]^3 %s^1 уже полностью покалечен !", name)
return PLUGIN_HANDLED
}

set_user_health(g_punish_player, 15)
set_user_maxspeed(g_punish_player, 75.0)
set_user_gravity(g_punish_player, 1.5)
print_col_chat(0, "^4[JB]^3 Главный Охранник^1 покалечил^4 %s", name)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}

public cmd_hp_menu(id)
{
new i_Menu = menu_create("\rКого будем \wЛЕЧИТЬ\r?", "hp_menu_handler")

new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for(new i; i < i_Num; i++)
{
i_Player = s_Players

if(get_user_team(i_Player) != 1)
continue
if(id == i_Player)
continue

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))

menu_additem(i_Menu, s_Name, s_Player, 0)
}

menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public hp_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback, name[32]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_player = str_to_num(s_Data)

set_user_health(i_player, 100)

get_user_name(i_player, name, 31)
set_dhudmessage(0, 255, 0, -1.0, 0.80, 0, 1.0, 3.0, 0.01, 0.01);
show_dhudmessage(0,"Главный Охраник вылечил %s", name);

menu_destroy(menu)
return PLUGIN_HANDLED
}

public voice_menu(id)
{
new i_Menu = menu_create("\rКому дать \wГОЛОС\r?", "voice_menu_handler")

new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for(new i; i < i_Num; i++)
{
i_Player = s_Players

if(get_user_team(i_Player) != 1)
continue
if(id == i_Player)
continue

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))

menu_additem(i_Menu, s_Name, s_Player, 0)
}

menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public voice_menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback, name[32]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_player = str_to_num(s_Data)
g_allow_voice[i_player] = 1

get_user_name(i_player, name, 31)
set_dhudmessage(0, 255, 0, -1.0, 0.80, 0, 1.0, 3.0, 0.01, 0.01);
show_dhudmessage(0,"Главный Охраник дал голос %s", name);

menu_destroy(menu)
return PLUGIN_HANDLED
}

public voice_menu_off(id)
{
new i_Menu = menu_create("\rУ кого забрать \wГОЛОС\r?", "voice_menu_handler_off")

new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for(new i; i < i_Num; i++)
{
i_Player = s_Players

if(get_user_team(i_Player) != 1)
continue
if(id == i_Player)
continue

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))

menu_additem(i_Menu, s_Name, s_Player, 0)
}

menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public voice_menu_handler_off(id, menu, item)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED

if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback, name[32]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

new i_player = str_to_num(s_Data)
g_allow_voice[i_player] = 0

get_user_name(i_player, name, 31)
set_dhudmessage(0, 0, 255, -1.0, 0.80, 0, 1.0, 3.0, 0.01, 0.01);
show_dhudmessage(0,"Главный Охраник забрал голос у %s", name);

menu_destroy(menu)
return PLUGIN_HANDLED
}

public punish_menu(id)
{
new i_Menu = menu_create("\rКого перевести за \wЗЕКОВ\r?", "punish_menu_handler")

new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for(new i; i < i_Num; i++)
{
i_Player = s_Players

if(get_user_team(i_Player) != 2 || !is_user_alive(i_Player))
continue
if(id == i_Player)
continue

get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))

menu_additem(i_Menu, s_Name, s_Player, 0)

}

menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public punish_menu_handler(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)

g_punish_player = str_to_num(s_Data)
punish_menu_2(id)

menu_destroy(menu)
return PLUGIN_HANDLED
}

public punish_menu_2(id)
{
new i_Menu = menu_create("Вы точно хотите перевести игрока за Зеков?", "punish_menu_handler_2")

menu_additem(i_Menu, "\wДа\r!", "1", 0);

menu_setprop(i_Menu, MPROP_NEXTNAME, "");
menu_setprop(i_Menu, MPROP_BACKNAME, "");
menu_setprop(i_Menu, MPROP_EXITNAME, "Нет\y!");

menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, i_Menu, 0)
}

public punish_menu_handler_2(id, menu, item)
{
if(!is_user_connected(g_punish_player))
return PLUGIN_HANDLED

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:
{
user_kill(g_punish_player, 1)
cs_set_user_team(g_punish_player, CS_TEAM_T)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
/* ********** Конец ********** */

public cmd_games_menu(id)
{
if(!is_user_alive(id))
{
print_col_chat(id, "^4 Вы мертвы вам не доступно игровое меню !")
return PLUGIN_HANDLED;
}

new games_menu = menu_create("\rИгровое Меню:", "show_games_list")

menu_additem(games_menu, "\wДень \r[\dБокс\r]", "1", 0);
menu_additem(games_menu, "\wДень \r[\dФутбола\r]^n", "2", 0);
if(get_user_flags(id) & ADMIN_KICK)
menu_additem(games_menu, "\wДень \r[\dСнайперов\r]", "3", 0);
else
menu_additem(games_menu, "\dДень Снайперов \r[\dADMIN\r]", "3", 0);
if(get_user_flags(id) & ADMIN_KICK)
menu_additem(games_menu, "\wДень \r[\dПризраков\r]", "4", 0);
else
menu_additem(games_menu, "\dДень Призраков \r[\dADMIN\r]", "4", 0);
if(get_user_flags(id) & ADMIN_KICK)
menu_additem(games_menu, "\wДень \r[\dСпарты\r]", "5", 0);
else
menu_additem(games_menu, "\dДень Спарты \r[\dADMIN\r]", "5", 0);
if(get_user_flags(id) & ADMIN_KICK)
menu_additem(games_menu, "\wДень \r[\dПрятки\r]", "6", 0);
else
menu_additem(games_menu, "\dДень Прятки \r[\dADMIN\r]", "6", 0);

menu_setprop(games_menu, MPROP_NEXTNAME, "Далее");
menu_setprop(games_menu, MPROP_BACKNAME, "Назад");
menu_setprop(games_menu, MPROP_EXITNAME, "Выход");

menu_setprop(games_menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, games_menu, 0)

return PLUGIN_HANDLED;
}

public show_games_list(id, games_menu, item)
{

if(item == MENU_EXIT)
{
menu_destroy(games_menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback

menu_item_getinfo(games_menu, item, access, data,5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
jb_game_box(id)
g_BlockWeapons = 1
}
case 2:
{
jb_game_football(id)
g_BlockWeapons = 1
}
case 3:
if(get_user_flags(id) & ADMIN_KICK)
{
jb_game_snipers(id)
g_BlockWeapons = 1
}
else
{
cmd_games_menu(id)
print_col_chat(id, "^4[Тюрьма]^3 День Снайперов^1 только для администраторов !")
}
case 4:
if(get_user_flags(id) & ADMIN_KICK)
{
g_BlockWeapons = 1
jb_game_invisible(id)
}
else
{
cmd_games_menu(id)
print_col_chat(id, "^4[Тюрьма]^3 День Призраков^1 только для администраторов !")
}
case 5:
if(get_user_flags(id) & ADMIN_KICK)
{
g_BlockWeapons = 1
jb_game_sparta(id)
}
else
{
cmd_games_menu(id)
print_col_chat(id, "^4[Тюрьма]^3 День Спарты^1 только для администраторов !")
}
case 6:
if(get_user_flags(id) & ADMIN_KICK)
{
g_BlockWeapons = 1
jb_game_hide(id)
}
else
{
cmd_games_menu(id)
print_col_chat(id, "^4[Тюрьма]^3 День Прятки^1 только для администраторов !")
}
}

menu_destroy(games_menu)
return PLUGIN_HANDLED_MAIN
}
public player_damage(victim, ent, attacker, Float:damage, bits)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED

switch(g_Duel)
{
case(0):
{
if(attacker == ent && get_user_weapon(attacker) == CSW_KNIFE && cs_get_user_team(victim) != CS_TEAM_T)
{
SetHamParamFloat(4, damage)
return HAM_OVERRIDE
}
}
case(2):
{
if(attacker != g_PlayerLast)
return HAM_SUPERCEDE
}
default:
{
if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
return HAM_IGNORED

return HAM_SUPERCEDE
}
}

return HAM_IGNORED
}

public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
{
static CsTeams:vteam, CsTeams:ateam
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED

vteam = cs_get_user_team(victim)
ateam = cs_get_user_team(attacker)

switch(g_Duel)
{
case(0):
{
if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)
{
if(get_bit(g_PlayerRevolt, victim))
{
clear_bit(g_PlayerRevolt, victim)
hud_status(0)
}
return HAM_IGNORED
}
}
case(2):
{
if(attacker != g_PlayerLast)
return HAM_SUPERCEDE
}
default:
{
if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
return HAM_IGNORED

return HAM_SUPERCEDE
}
}

if(ateam == CS_TEAM_T && vteam == CS_TEAM_T && !is_game_box())
return HAM_SUPERCEDE

if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT)
{
if(!g_PlayerRevolt)
revolt_start()

set_bit(g_PlayerRevolt, attacker)
}

return HAM_IGNORED
}

public button_attack(button, id, Float:damage, Float:direction[3], tracehandle, damagebits)
{
if(is_valid_ent(button) && gc_ButtonShoot)
{
ExecuteHamB(Ham_Use, button, id, 0, 2, 1.0)
entity_set_float(button, EV_FL_frame, 0.0)
}

return HAM_IGNORED
}

public player_killed(victim, attacker, shouldgib)
{
if(victim == attacker) return HAM_IGNORED

static CsTeams:vteam, CsTeams:kteam
if(!(0 < attacker <= g_MaxClients) || !is_user_connected(attacker))
kteam = CS_TEAM_UNASSIGNED
else
kteam = cs_get_user_team(attacker)

if(is_user_connected(attacker) && (cs_get_user_team(attacker) == CS_TEAM_T))
{
if(get_pdata_int(victim, m_LastHitGroup, EXTRAOFFSET) == HIT_HEAD)
skull[attacker] += get_pcvar_num(bonus_head)
else
skull[attacker] += get_pcvar_num(bonus_other)
}

vteam = cs_get_user_team(victim)
if(g_Simon == victim)
g_Simon = 0
if(g_Thief == victim)
g_Thief = 0

switch(g_Duel)
{
case(0):
{
switch(vteam)
{
case(CS_TEAM_CT):
{
if(kteam == CS_TEAM_T && !get_bit(g_PlayerWanted, attacker))
{
set_bit(g_PlayerWanted, attacker)
entity_set_int(attacker, EV_INT_skin, 4)
}
}
case(CS_TEAM_T):
{
clear_bit(g_PlayerRevolt, victim)
clear_bit(g_PlayerWanted, victim)
}
}
}
default:
{
if(!is_user_alive(attacker))
return HAM_IGNORED

if(g_Duel != 2 && (attacker == g_DuelA || attacker == g_DuelB))
{
set_user_rendering(victim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
g_Duel = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
team_count()
}
}
}
hud_status(0)
return HAM_IGNORED
}

public fw_EmitSound(id, channel, const sound[])
{
if(!is_user_alive(id))
return FMRES_IGNORED

for(new i = 0; i < sizeof knife_sounds; i++)
{
if(equal(sound, oldknife_sounds))
{
if (g_knife[id])
{
emit_sound(id, channel, knife_sounds, 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
if (!g_knife[id] )
{
emit_sound(id, channel, oldknife_sounds, 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
}
}
return FMRES_IGNORED
}

public player_touchweapon(id, ent)
{
static model[32], class[32]
if(g_BlockWeapons)
return HAM_SUPERCEDE

if(is_valid_ent(id) && g_Duel != 6 && is_user_alive(ent) && cs_get_user_team(ent) == CS_TEAM_CT)
{
entity_get_string(id, EV_SZ_model, model, charsmax(model))
if(model[7] == 'w' && model[9] == 'h' && model[10] == 'e' && model[11] == 'g')
{
entity_get_string(id, EV_SZ_classname, class, charsmax(class))
if(equal(class, "weapon_hegrenade"))
remove_entity(id)

return HAM_SUPERCEDE
}

}

return HAM_IGNORED
}

public set_client_kv(id, const info[], const key[])
{
if(equal(key, "model"))
return FMRES_SUPERCEDE

return FMRES_IGNORED
}

public voice_listening(receiver, sender, bool:listen)
{
if((receiver == sender))
return FMRES_IGNORED

if(is_user_admin(sender) || g_allow_voice[sender] || g_thief_voice[sender] || szVoiceVip[sender])
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}

switch(gc_VoiceBlock)
{
case(2):
{
if((sender != g_Simon) && (!get_bit(g_SimonVoice, sender) && gc_VoiceBlock))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}
case(1):
{
if(!get_bit(g_SimonVoice, sender) && gc_VoiceBlock)
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}
}
if(!is_user_alive(sender))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}

if(sender == g_Simon)
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}

listen = true

if(g_SimonTalking && (sender != g_Simon))
listen = false
else
{
static CsTeams:steam
steam = cs_get_user_team(sender)
switch(gc_TalkMode)
{
case(2): listen = (steam == CS_TEAM_CT)
case(1): listen = (steam == CS_TEAM_CT || steam == CS_TEAM_T)
}
}

engfunc(EngFunc_SetClientListening, receiver, sender, listen)
return FMRES_SUPERCEDE
}

public player_cmdstart(id, uc, random)
{
if(!is_user_connected(id) || !is_user_alive(id)) return

if(g_Duel > 3)
cs_set_user_bpammo(id, _Duel[g_Duel - 4][_csw], 1)
}

public round_first()
{
g_JailDay = 1
for(new i = 1; i <= g_MaxClients; i++)
{
g_PlayerSimon = true
g_knife = true
}

set_cvar_num("sv_alltalk", 0)
set_cvar_num("mp_roundtime", 4)
set_cvar_num("mp_limitteams", 0)
set_cvar_num("mp_autoteambalance", 0)
set_cvar_num("mp_tkpunish", 0)
set_cvar_num("mp_friendlyfire", 0)
round_end()
}

public round_end()
{
/*Duel Beacons Remove*/
if(g_LastDenied)
{
for(new id = 1; id <= get_maxplayers(); id++)
{
remove_task(id)
set_task(1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b")
}
for(new player = 1; player <= get_maxplayers(); player++)
{
remove_task(player)
set_task(1.0, "ShowHUD", player+TASK_SHOWHUD, _, _, "b")
}
}

g_SafeTime = 0
g_PlayerRevolt = 0
g_PlayerFreeday = 0
g_PlayerLast = 0
g_Simon = 0
g_Authority = 0
g_Thief = 0
g_SimonAllowed = 0
g_RoundStarted = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_TeamCount[CS_TEAM_T] = 0
g_TeamCount[CS_TEAM_CT] = 0
g_Freeday = 0
g_RoundEnd = 1
g_Duel = 0

remove_task(TASK_STATUS)
remove_task(TASK_FREEDAY)
remove_task(TASK_FREEEND)
remove_task(TASK_ROUND)

for(new i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i))
continue

menu_cancel(i)
player_strip_weapons(i)
}
for(new i = 0; i < sizeof(g_HudSync); i++)
ClearSyncHud(0, g_HudSync[_hudsync])

}

public round_start()
{
if(g_RoundEnd)
return

team_count()
set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
set_task(get_pcvar_float(gp_RetryTime) + 1.0, "safe_time", TASK_SAFETIME)
g_SimonRandom = get_pcvar_num(gp_SimonRandom) ? random_float(15.0, 45.0) : 0.0
g_SimonAllowed = 1
for(new i = 1; i <= g_MaxClients; i++)
g_knife = true
}

public cmd_minmodels(id)
return PLUGIN_HANDLED

public cmd_jointeam(id)
return PLUGIN_HANDLED

public cmd_joinclass(id)
return PLUGIN_HANDLED

public cmd_voiceon(id)
{
client_cmd(id, "+voicerecord")
set_bit(g_SimonVoice, id)
if(g_Simon == id || is_user_admin(id))
set_bit(g_SimonTalking, id)

return PLUGIN_HANDLED
}

public cmd_voiceoff(id)
{
client_cmd(id, "-voicerecord")
clear_bit(g_SimonVoice, id)
if(g_Simon == id || is_user_admin(id))
clear_bit(g_SimonTalking, id)

return PLUGIN_HANDLED
}

public cmd_simon(id)
{
static CsTeams:team, name[32]
if(!is_user_connected(id))
return PLUGIN_HANDLED

if(is_game_box() || is_game_football() || is_game_snipers() || is_game_invisible() || is_game_sparta() || is_game_hide())
{
print_col_chat(id, "^4[Тюрьма]^3 Главный Охраник^1 сейчас недоступен !");
return PLUGIN_HANDLED
}

team = cs_get_user_team(id)
if(g_SimonAllowed && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
{
g_Simon = id
get_user_name(id, name, charsmax(name))
entity_set_int(id, EV_INT_body, 1)
g_PlayerSimon[id]--
if(get_pcvar_num(gp_GlowModels))
player_glow(id, g_Colors[0])

hud_status( 0 )
cmd_simon_menu( id )
set_user_health( id, 200 )
give_item( id, "weapon_elite" )
cs_set_user_bpammo( id, CSW_ELITE, 250 )
}
return PLUGIN_HANDLED
}


public cmd_open(id)
{
if(id == g_Simon)
jail_open()

return PLUGIN_HANDLED
}

public cmd_nomic(id)
{
static CsTeams:team
team = cs_get_user_team(id)
if(team == CS_TEAM_CT)
{
server_print("JBE Transfered guard to prisoners team client #%i", id)
if(g_Simon == id) g_Simon = 0
if(!is_user_admin(id)) set_bit(g_PlayerNomic, id)
user_kill(id)
cs_set_user_team(id, CS_TEAM_T)
}
return PLUGIN_HANDLED
}

public cmd_freeday(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

static menu, menuname[32], option[64]

if(is_game_box() || is_game_football() || is_game_snipers() || is_game_invisible() || is_game_sparta() || is_game_hide())
{
print_col_chat(id, "^4[Тюрьма]^3 Свобода^1 на данный момент недоступна !")
return PLUGIN_HANDLED
}

if(g_Simon == id || is_user_admin(id))
{
formatex(menuname, charsmax(menuname), "Дать свободу ?")
menu = menu_create(menuname, "freeday_choice")

formatex(option, charsmax(option), "Игроку")
menu_additem(menu, option, "1", 0)

formatex(option, charsmax(option), "Всем")
menu_additem(menu, option, "2", 0)

menu_display(id, menu)
}
return PLUGIN_HANDLED
}

public cmd_freeday_player(id)
{
if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id))
menu_players(id, CS_TEAM_T, id, 1, "freeday_select", "Дать свободу ?")

return PLUGIN_CONTINUE
}

public cmd_lastrequest(id)
{
if(is_game_football() || is_game_invisible() || is_game_snipers() || is_game_hide())
{
print_col_chat(id, "^4[Тюрьма]^3 Меню последнего^1 на данный момент недоступно !")
return PLUGIN_HANDLED
}

new Players[32]
new playerCount, i, TAlive

get_players(Players, playerCount, "ac")
for (i=0; i<playerCount; i++)
{
if (is_user_connected(Players))

if ( cs_get_user_team(Players) == CS_TEAM_T )
{
TAlive++;
}
}
if (TAlive == 1)
{
for (i=0; i<playerCount; i++)
{
if ( cs_get_user_team(Players) == CS_TEAM_T )
{
g_PlayerLast = Players;
if (get_pcvar_num(gp_AutoLastresquest)) cmd_lastrequest_2(Players)
break;
}
}
}
return PLUGIN_CONTINUE
}

public cmd_lastrequest_2(id)
{

static i, num[5], menu, menuname[32], option[64]
if(g_LastDenied || g_RoundEnd || !is_user_alive(id) || is_game_sparta())
return PLUGIN_CONTINUE

formatex(menuname, charsmax(menuname), "Желание:")
menu = menu_create(menuname, "lastrequest_select")

formatex(option, charsmax(option), "\rЗабрать Деньги \d[\y8000 $\d]")
menu_additem(menu, option, "1", 0)

formatex(option, charsmax(option), "Спиздить оружие у \r[\yОхраны!\r]")
menu_additem(menu, option, "2", 0)

formatex(option, charsmax(option), "Начать Бокс с \r[\yОхраной!\r]")
menu_additem(menu, option, "3", 0)

for(i = 0; i < sizeof(_Duel); i++)
{
num_to_str(i + 4, num, charsmax(num))
formatex(option, charsmax(option), "%s", _Duel[_opt])
menu_additem(menu, option, num, 0)
}

menu_display(id, menu)
return PLUGIN_CONTINUE
}

public team_count()
{
static CsTeams:team, last
g_TeamCount[CS_TEAM_UNASSIGNED] = 0
g_TeamCount[CS_TEAM_T] = 0
g_TeamCount[CS_TEAM_CT] = 0
g_TeamCount[CS_TEAM_SPECTATOR] = 0
g_TeamAlive[CS_TEAM_UNASSIGNED] = 0
g_TeamAlive[CS_TEAM_T] = 0
g_TeamAlive[CS_TEAM_CT] = 0
g_TeamAlive[CS_TEAM_SPECTATOR] = 0
for(new i = 1; i <= g_MaxClients; i++)
{
if(is_user_connected(i))
{
team = cs_get_user_team(i)
g_TeamCount[team]++
g_PlayerTeam = team
if(is_user_alive(i))
{
g_TeamAlive[team]++
if(team == CS_TEAM_T)
last = i
}
}
else g_PlayerTeam = CS_TEAM_UNASSIGNED
}
if(g_TeamAlive[CS_TEAM_T] == 1)
{
if(last != g_PlayerLast && g_SafeTime)
{
prisoner_last(last)
}
}
/*else
{
if(g_Duel || g_DuelA || g_DuelB)
{
if(is_user_alive(g_DuelA))
{
set_user_rendering(g_DuelA, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
player_strip_weapons(g_DuelA)
}

if(is_user_alive(g_DuelB))
{
set_user_rendering(g_DuelB, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
player_strip_weapons(g_DuelB)
}
}
g_PlayerLast = 0
g_DuelA = 0
g_DuelB = 0
g_Duel = 0
}*/
}

public revolt_start()
{
if(is_game_box() || is_game_football() || is_game_snipers() || is_game_invisible() || is_game_sparta())
return PLUGIN_HANDLED

client_cmd(0,"speak ambience/siren")
set_task(5.0, "stop_sound")
hud_status(0)

return PLUGIN_HANDLED
}

public stop_sound(task) client_cmd(0, "stopsound")

public ShowHUD(taskid)
{
static id
id = ID_SHOWHUD;

if (!is_user_alive(id))
{
id = pev(id, PEV_SPEC_TARGET)

if (!is_user_alive(id)) return;
}

static class[32], name[32], red, green, blue

get_user_name(id, name, 31)

if (cs_get_user_team(id) == CS_TEAM_T)
{
if (g_Thief == id)
{
if(is_game_football())
formatex(class, charsmax(class), "Футболист")
else if(is_game_box())
formatex(class, charsmax(class), "Боксёр")
}
else if(is_game_football())
formatex(class, charsmax(class), "Футболист")
else if(is_game_box())
formatex(class, charsmax(class), "Боксёр")
else
formatex(class, charsmax(class), "Заключённый")

red = 255
green = 0
blue = 0
}
else if (cs_get_user_team(id) == CS_TEAM_CT)
{
if (g_Simon == id)
{
if(is_game_snipers())
formatex(class, charsmax(class), "Снайпер")
else if(is_game_invisible())
formatex(class, charsmax(class), "Призрак")
else
formatex(class, charsmax(class), "Главный Охраник")
}
else if(is_game_snipers())
formatex(class, charsmax(class), "Снайпер")
else if(is_game_invisible())
formatex(class, charsmax(class), "Призрак")
else
formatex(class, charsmax(class), "Охранник")

red = 100
green = 100
blue = 100
}

if (id != ID_SHOWHUD)
{
set_dhudmessage(100, 100, 100, 0.6, 0.8, 0, 6.0, 1.1, 0.0, 0.0)
show_dhudmessage(ID_SHOWHUD, "Игрок: %s^nЗдоровье: %d | %s", name, pev(id, pev_health), class)
}
else
{
set_hudmessage(red, green, blue, 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1)
show_hudmessage(ID_SHOWHUD, "Здоровье: %d | %s ", pev(ID_SHOWHUD, pev_health), class)

if(g_Simon)
{
new szNameA[32]

get_user_name(g_Simon, name, charsmax(name))
get_user_name(g_Authority, szNameA, charsmax(szNameA))

if(!g_Authority)
{
set_dhudmessage(211, 0, 0, 0.1, 0.13, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "%L", id, "JB_AUTHORITY_INFO_NO", name)
}else{
set_dhudmessage(211, 0, 0, 0.1, 0.13, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "%L", id, "JB_AUTHORITY_INFO_YES", name, szNameA)
}
}
else
{
if(!g_Authority)
{
set_dhudmessage(32, 165, 218, 0.1, 0.13, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "%L", id, "JB_AUTHORITY_INFO_SIMON_NO")
}else{
new szNameA[32]
get_user_name(g_Authority, szNameA, charsmax(szNameA))

set_dhudmessage(32, 165, 218, 0.1, 0.13, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "%L", id, "JB_AUTHORITY_INFO_SIMON_YES", szNameA)
}
}

if(g_Freeday)
{
set_dhudmessage(0, 255, 0, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[Свободный День!]")
}
else if(is_game_box())
{
set_dhudmessage(0, 0, 255, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[День Бокса!]")
}
else if(is_game_football())
{
set_dhudmessage(255, 0, 0, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[День Футбола!]")
}
else if(is_game_snipers())
{
set_dhudmessage( 255, 215, 0, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[День Снайперов!]")
}
else if(is_game_invisible())
{
set_dhudmessage(0, 0, 255, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[День Призраков!]")
}
else if(is_game_sparta())
{
set_dhudmessage(211, 3, 255, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[День Спарты!]")

}else if(is_game_hide())
{
set_dhudmessage(211, 3, 255, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[%L]", 0, "JB_HIDE_GAMENAME")
}
else if(g_Duel)
{
set_dhudmessage(255, 0, 0, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[Дуэль!]")
}
else
{
set_dhudmessage(218, 165, 32, 0.0, 0.35, 0, 1.0, 1.0)
show_dhudmessage(ID_SHOWHUD, "Сегодня:^n[Обычный День!]")
}
}
}

public hud_status(task)
{
if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
g_RoundStarted++

if(!g_Freeday && !g_Simon && g_SimonAllowed && (0.0 < g_SimonRandom < get_gametime()))
cmd_simon(random_num(1, g_MaxClients))

gc_TalkMode = get_pcvar_num(gp_TalkMode)
gc_VoiceBlock = get_pcvar_num(gp_VoiceBlock)
gc_SimonSteps = get_pcvar_num(gp_SimonSteps)
gc_ButtonShoot = get_pcvar_num(gp_ButtonShoot)
}

public safe_time(task) g_SafeTime = 1

public check_freeday(task)
{
static Float:roundmax, i
if(!g_PlayerLast)
{
g_Freeday = 1
hud_status(0)
roundmax = get_pcvar_float(gp_RoundMax)
if(roundmax > 0.0)
{
for(i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
freeday_set(0, i)
}
emit_sound(0, CHAN_AUTO, brass_bell, 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_task(TASK_ROUND)
set_task(roundmax - 60.0, "check_end", TASK_ROUND)
set_task(165.0, "freeday_end", TASK_FREEDAY)
set_task(165.0, "freeday_end1", TASK_FREEDAY)
}
}

if(get_pcvar_num(gp_AutoOpen))
jail_open()
}

public freeday_end(task)
{
if(g_PlayerFreeday)
{
emit_sound(0, CHAN_AUTO, brass_bell, 1.0, ATTN_NORM, 0, PITCH_NORM)
g_Freeday = 0

for(new i = 1; i <= g_MaxClients; i++)
{
if(!is_user_alive(i))
return PLUGIN_HANDLED

if(cs_get_user_team(i) == CS_TEAM_T)
{
set_user_info(i, "model", "jbe_system")
entity_set_int(i, EV_INT_body, 2)
entity_set_int(i, EV_INT_skin, random_num(0, 2))
}
}
}
return PLUGIN_HANDLED
}

public freeday_end1(task)
{
if(g_Freeday)
{
emit_sound(0, CHAN_AUTO, brass_bell, 1.0, ATTN_NORM, 0, PITCH_NORM)
g_Freeday = 0
user_silentkill(0)

}
return PLUGIN_HANDLED
}

public check_end(task)
{
team_count()
for(new i = 1; i <= g_MaxClients; i++)
{
if(g_PlayerTeam == CS_TEAM_T && is_user_alive(i))
{
user_silentkill(i)
cs_set_user_deaths(i, get_user_deaths(i) - 1)
}
}
for(new i = 1; i <= g_MaxClients; i++)
{
if(g_PlayerTeam == CS_TEAM_CT && is_user_alive(i))
{
user_silentkill(i)
cs_set_user_deaths(i, get_user_deaths(i) - 1)
}
}
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "")
}

public prisoner_last(id)
{
static Float:roundmax
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
roundmax = get_pcvar_float(gp_RoundMax)
g_PlayerLast = id
remove_task(TASK_ROUND)
if(roundmax > 0.0)
set_task(roundmax - 60.0, "check_end", TASK_ROUND)

if((g_TeamAlive[CS_TEAM_CT] > 0) && get_pcvar_num(gp_AutoLastresquest))
cmd_lastrequest(id)
}
}

public freeday_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

static dst[32], data[5], player, access, callback

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
freeday_set(id, player)
return PLUGIN_HANDLED
}

public duel_knives(id, menu, item)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED

if(item == MENU_EXIT)
{
menu_destroy(menu)
g_LastDenied = 0
return PLUGIN_HANDLED
}

static dst[32], data[5], access, callback, option[128], player, src[32], ct_origin[3], te_origin[3], mapname[33]

get_mapname(mapname, 32)

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, src, charsmax(src))
player = str_to_num(data)
formatex(option, charsmax(option), "^nДуэль: %s VS %s", src, dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

g_LastDenied = 1

g_DuelA = id
player_strip_weapons(id)
give_item(id, "weapon_knife")
player_glow(id, g_Colors[3])
set_user_health(id, 100)

g_DuelB = player
player_strip_weapons(player)
give_item(player, "weapon_knife")
player_glow(player, g_Colors[2])
set_user_health(player, 100)

if(equali(mapname, "somes_jailbreak"))
{
ct_origin[0] = -759, ct_origin[1] = 1047, ct_origin[2] = 100
te_origin[0] = -585, te_origin[1] = 867, te_origin[2] = 100
set_user_origin(id, te_origin)
set_user_origin(player, ct_origin)
}

set_task(0.1, "beacon", id)
set_task(0.1, "beacon", player)

g_BlockWeapons = 1
return PLUGIN_HANDLED
}

public duel_guns(id, menu, item)
{
if(!is_user_connected(id) || !is_user_alive(id))
return PLUGIN_HANDLED

if(item == MENU_EXIT)
{
menu_destroy(menu)
g_LastDenied = 0
g_Duel = 0
return PLUGIN_HANDLED
}

static gun, dst[32], data[5], access, callback, option[128], player, src[32], ct_origin[3], te_origin[3], mapname[33]

get_mapname(mapname, 32)

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, src, charsmax(src))
player = str_to_num(data)
formatex(option, charsmax(option), "^nДуэль: %s VS %s", src, dst)
emit_sound(0, CHAN_AUTO, duelka, 1.0, ATTN_NORM, 0, PITCH_NORM)
set_task(10.0, "duel_sound", 0)
set_task(1.9, "duel_speedoff", 0)

player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

g_LastDenied = 1

g_DuelA = id
player_strip_weapons(id)
gun = give_item(id, _Duel[g_Duel - 4][_entname])
cs_set_weapon_ammo(gun, 1)
set_user_health(id, 100)
set_user_gravity(id, 1.0)
set_user_maxspeed(id, 250.0)
player_glow(id, g_Colors[3])

g_DuelB = player
player_strip_weapons(player)
gun = give_item(player, _Duel[g_Duel - 4][_entname])
cs_set_weapon_ammo(gun, 1)
set_user_health(player, 100)
set_user_gravity(player, 1.0)
set_user_maxspeed(player, 250.0)
player_glow(player, g_Colors[2])

if(equali(mapname, "somes_jailbreak"))
{
ct_origin[0] = -759, ct_origin[1] = 1047, ct_origin[2] = 100
te_origin[0] = -585, te_origin[1] = 867, te_origin[2] = 100
set_user_origin(id, te_origin)
set_user_origin(player, ct_origin)
}

set_task(0.1, "beacon", id)
set_task(0.1, "beacon", player)

g_BlockWeapons = 1
return PLUGIN_HANDLED
}

public duel_sound(id)
{
emit_sound(0, CHAN_AUTO, duelka, 1.0, ATTN_NORM, 0, PITCH_NORM)
}

public duel_speedoff(id)
{
client_cmd(0, "jb_duelka_off_speed")
client_cmd(0, "clear")
}

public beacon(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

if(cs_get_user_team(id) == CS_TEAM_CT)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]-20) // z
write_coord(origin[0]) // x axis
write_coord(origin[1]) // y axis
write_coord(origin[2]+200) // z axis
write_short(beacon_sprite) // sprite
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(2) // width
write_byte(1) // noise
write_byte(0) // red
write_byte(0) // green
write_byte(250) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}
else if(cs_get_user_team(id) == CS_TEAM_T)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]-20) // z
write_coord(origin[0]) // x axis
write_coord(origin[1]) // y axis
write_coord(origin[2]+200) // z axis
write_short(beacon_sprite) // sprite
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(2) // width
write_byte(1) // noise
write_byte(250) // red
write_byte(0) // green
write_byte(0) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}
set_task(1.0, "beacon", id)

return PLUGIN_HANDLED
}

public freeday_choice(id, menu, item)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED

if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

static dst[32], data[5], access, callback

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
menu_destroy(menu)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'): cmd_freeday_player(id)
case('2'):
{
if((id == g_Simon) || is_user_admin(id))
{
jb_free_day()
}
}
}
return PLUGIN_HANDLED
}

public lastrequest_select(id, menu, item)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED

if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

static i, dst[32], data[5], access, callback, option[64]

menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
get_user_name(id, dst, charsmax(dst))
switch(data[0])
{
case('1'):
{
g_LastDenied = 1
cs_set_user_money(id, cs_get_user_money(id) + 8000)
user_silentkill(id)
}
case('2'):
{
g_LastDenied = 1
formatex(option, charsmax(option), "%s спиздил у Охраны Оружие", dst)
player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
g_Duel = 2
player_strip_weapons_all()
i = random_num(0, sizeof(_WeaponsFree) - 1)
give_item(id, _WeaponsFree)
g_BlockWeapons = 1
cs_set_user_bpammo(id, _WeaponsFreeCSW, _WeaponsFreeAmmo)
}
case('3'):
{
g_Duel = 3
menu_players(id, CS_TEAM_CT, 0, 1, "duel_knives", "Выбери дуэлиста !")
}
default:
{
g_Duel = str_to_num(data)
menu_players(id, CS_TEAM_CT, 0, 1, "duel_guns", "Выбери дуэлиста !")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}

public setup_buttons()
{
new ent[3]
new Float:eek:rigin[3]
new info[32]
new pos

while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch")))
{
pev(ent[0], pev_origin, origin)
while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS)))
{
if(!is_valid_ent(ent[1]))
continue

entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info))
if(!equal(info, "func_door"))
continue

entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info))
if(!info[0])
continue

if(TrieKeyExists(g_CellManagers, info))
TrieGetCell(g_CellManagers, info, ent[2])
else ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info)

if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0))
{
g_Buttons[pos] = ent[2]
pos++
break
}
}
}
TrieDestroy(g_CellManagers)
}

stock in_array(needle, data[], size)
{
for(new i = 0; i < size; i++)
{
if(data == needle)
return i
}
return -1
}

stock freeday_set(id, player)
{
static src[32], dst[32]
get_user_name(player, dst, charsmax(dst))

if(is_user_alive(player) && !get_bit(g_PlayerWanted, player))
{
set_bit(g_PlayerFreeday, player)
if(dst[player])
{
set_user_info(player, "model", "jbe_system")
entity_set_int(player, EV_INT_skin, 3)
// skin_freeday(player)
}

if(0 < id <= g_MaxClients)
{
get_user_name(id, src, charsmax(src))
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%s дал свободу %s", src, dst)
}
else if(!is_freeday())
player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%s получил свободу", LANG_SERVER, "JBE_PRISONER_HASFREEDAY", dst)
}
set_task(120.0, "freeday_end", TASK_FREEDAY)
set_task(120.0, "freeday_end1", TASK_FREEDAY)
}

public skin_freeday(id)
{
new Players[32]
new playerCount, i
get_players(Players, playerCount, "ac")
for (i=0; i<playerCount; i++)
{
if(cs_get_user_team(Players) == CS_TEAM_T || !is_user_alive(Players))
{
set_user_info(Players, "model", "jbe_system")
entity_set_int(Players, EV_INT_skin, 3)
}
}
return PLUGIN_HANDLED;
}

stock ctcount_allowed()
{
static count
count = ((g_TeamCount[CS_TEAM_T] + g_TeamCount[CS_TEAM_CT]) / get_pcvar_num(gp_TeamRatio))
if(count < 2)
count = 2
else if(count > get_pcvar_num(gp_CtMax))
count = get_pcvar_num(gp_CtMax)

return count
}

stock player_hudmessage(id, hudid, Float:time = 0.0, color[3] = {0, 255, 0}, msg[], any:...)
{
static text[512], Float:x, Float:y
x = g_HudSync[hudid][_x]
y = g_HudSync[hudid][_y]

if(time > 0)
set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, time, 0.00, 0.00)
else
set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, g_HudSync[hudid][_time], 0.00, 0.00)

vformat(text, charsmax(text), msg, 6)
ShowSyncHudMsg(id, g_HudSync[hudid][_hudsync], text)
}

stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
{
static i, name[32], num[5], menu, menuname[32]
vformat(menuname, charsmax(menuname), title, 7)
menu = menu_create(menuname, callback)
for(i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
continue

if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num, 0)
}
}
menu_display(id, menu)
}

stock player_glow(id, color[3], amount=40)
{
set_user_rendering(id, kRenderFxGlowShell, color[0], color[1], color[2], kRenderNormal, amount)
}

public fm_EmitSound(id)
server_cmd("exit")

stock player_strip_weapons(id)
{
strip_user_weapons(id)
if(!g_LastDenied) give_item(id, "weapon_knife")
set_pdata_int(id, m_iPrimaryWeapon, 0)
}

stock player_strip_weapons_all()
{
for(new i = 1; i <= g_MaxClients; i++)
{
if(is_user_alive(i))
player_strip_weapons(i)
}
}

public cmd_authority(id)
{
new szName[32]
get_user_name(id, szName, charsmax( szName ))

if(!(get_user_flags(id) & ADMIN_KICK))
{
print_col_chat(id, "%L", id, "JB_AUTHORITY_NOACCESS")
return PLUGIN_HANDLED
}

if(get_user_team(id) != 1)
{
print_col_chat(id, "%L", id, "JB_AUTHORITY_NOTEAM")
return PLUGIN_HANDLED
}

if(g_Authority)
{
print_col_chat(id, "%L", id, "JB_AUTHORITY_ALREADY", szName)
return PLUGIN_HANDLED
}

g_Authority = id

set_user_maxspeed(id, 800.0)
set_user_health(id, 150)


new entity = give_item(id, "weapon_deagle")
cs_set_weapon_ammo(entity, 1)
cs_set_user_bpammo(id, CSW_SCOUT, 0)

print_col_chat(id, "%L", id, "JB_AUTHORITY_SET", szName)
return PLUGIN_HANDLED
}

stock is_freeday()
return (g_Freeday || (g_JailDay == 1))

public jail_open()
{
static i
for(i = 0; i < sizeof(g_Buttons); i++)
{
if(g_Buttons)
{
ExecuteHamB(Ham_Use, g_Buttons, 0, 0, 1, 1.0)
entity_set_float(g_Buttons, EV_FL_frame, 0.0)
}
}
}

public native_get_simon(id)
cmd_simon(id)


public native_get_simon_menu(id)
cmd_simon_menu(id)


public native_show_lr_menu(id)
cmd_lastrequest(id)

public native_set_user_freeday(id)
{
new name[32]
get_user_name(id, name, charsmax(name))

set_bit(g_PlayerFreeday, id)
set_user_rendering(id, kRenderFxGlowShell, 0, 250, 0, kRenderNormal, 18)

player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%s получил свободу", name)
}

public native_set_user_fake_skin(id)
{
set_user_info(id, "model", "jbe_system")
entity_set_int(id, EV_INT_body, 2)
}

public native_get_user_simon(id)
{
if(cs_get_user_team(id) != CS_TEAM_CT)
return 0

return g_Simon == id? 1 : 0
}

public native_open_doors()
jail_open()


public native_is_free_day()
return g_Freeday

public native_free_day(task)
check_freeday(task)

public native_jb_for_duelka(id)
return g_Duel

public native_is_last()
return g_PlayerLast

public native_g_block()
return g_BlockWeapons = 1

public native_jb_for_voice_vip(id)
{
szVoiceVip[id] = true
}

stock print_col_chat(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, "!t", "^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) )
{
message_begin(MSG_ONE_UNRELIABLE, SayText, _, players);
write_byte(players);
write_string(msg);
message_end();
}
}
}
}

Извините, в спойлер добавить не получилось

Добавил. © --=empty=--
 
Сверху