AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   ujbm Help pleasee! (https://forums.alliedmods.net/showthread.php?t=208579)

oxygen935 02-15-2013 07:09

ujbm Help pleasee!
 
hey everyone, i have some problems with the ultimate jailbreak manager!,

my code is:
Code:


#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>
#include <fun>
#include <cstrike>

#define PLUGIN_NAME        "[UJBM] Main"
#define PLUGIN_AUTHOR        "R_O_O_T"
#define PLUGIN_VERSION        "1.0"
#define PLUGIN_CVAR        "Ultimate JailBreak Manager"

#define TASK_STATUS        2487000
#define TASK_FREEDAY        2487100
#define TASK_ROUND        2487200
#define TASK_HELP        2487300
#define TASK_SAFETIME        2487400
#define TASK_FREEEND        2487500
#define TASK_GIVEITEMS        2487600
#define TEAM_MENU        "#Team_Select_Spect"
#define TEAM_MENU2        "#Team_Select"
#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])

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

#define FLASHCOST        12000
#define HECOST        12000
#define SMOKECOST        10000
#define SHIELDCOST        16000
#define FDCOST        12000
#define CROWBARCOST        16000
#define CTDEAGLECOST 1000
#define CTFLASHCOST 3000
#define HPCOST 4000
#define NVGCOST 1500
#define CTSMOKECOST 3000
#define FLASHLIGHTCOST 2000

#define ALIEN_RED 180
#define ALIEN_GREEN 240
#define ALIEN_BLUE 140


#define OFFSET_TEAM                114
#define OFFSET_PAINSHOCK 108
#define OFFSET_LINUX 5
#define Keyscl_min (1<<0)|(1<<1) // Keys: 12

enum ( += 100 )
{
TASK_DANCEDAY
}

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_CrowbarMul
new gp_BoxMax
new gp_TalkMode
new gp_VoiceBlock
new gp_RetryTime
new gp_FDLength
new gp_ButtonShoot
new gp_SimonSteps
new gp_GlowModels
new gp_AutoLastresquest
new gp_LastRequest
new gp_NoGame
new gp_Motd
new gp_TShop
new gp_CTShop
new gp_GameHP
new gp_Games
new gp_ShowColor
new gp_Effects
new gp_ShowFD
new gp_ShowWanted
new g_MaxClients
new g_MsgStatusText
new g_MsgStatusIcon
new g_MsgClCorpse
new g_MsgMOTD
new gc_TalkMode
new gc_VoiceBlock
new gc_SimonSteps
new gc_ButtonShoot
new gp_Help
new Float:gc_CrowbarMul

// Precache

new const _FistModels[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" }
new const _CrowbarModels[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" , "models/w_crowbar.mdl" }
new const _RpgModels[][] = { "models/p_rpg.mdl", "models/v_rpg.mdl" , "models/w_rpg.mdl", "models/rpgrocket.mdl" }
new const _RpgSounds[][] = { "weapons/rocketfire1.wav", "weapons/explode3.wav", "weapons/rocket1.wav" }

new SpriteExplosion
new const _FistSounds[][] = { "weapons/cbar_hitbod2.wav", "weapons/cbar_hitbod1.wav", "weapons/bullet_hit1.wav", "weapons/bullet_hit2.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_m4a1", "weapon_deagle", "weapon_g3sg1", "weapon_elite", "weapon_ak47", "weapon_mp5navy", "weapon_m3" }
new const _WeaponsFreeCSW[] = { CSW_M4A1, CSW_DEAGLE, CSW_G3SG1, CSW_ELITE, CSW_AK47, CSW_MP5NAVY, CSW_M3 }
new const _WeaponsFreeAmmo[] = { 999, 999, 999, 999, 999, 999, 999, 999 }

new const _Duel[][_duel] =
{
{ "Deagle", CSW_DEAGLE, "weapon_deagle", "UJBM_MENU_LASTREQ_OPT4", "UJBM_MENU_LASTREQ_SEL4" },
{ "Grenades", CSW_FLASHBANG, "weapon_flashbang", "UJBM_MENU_LASTREQ_OPT5", "UJBM_MENU_LASTREQ_SEL5" }, //rpg!!!
///rpg
{ "Grenades", CSW_HEGRENADE, "weapon_hegrenade", "UJBM_MENU_LASTREQ_OPT6", "UJBM_MENU_LASTREQ_SEL6" },
{ "m249", CSW_M249, "weapon_m249", "UJBM_MENU_LASTREQ_OPT8", "UJBM_MENU_LASTREQ_SEL8" },
{ "Awp", CSW_AWP, "weapon_awp", "UJBM_MENU_LASTREQ_OPT7", "UJBM_MENU_LASTREQ_SEL7" }
}


// Reasons
new const g_Reasons[][] =  {
"",
"UJBM_PRISONER_REASON_1",
"UJBM_PRISONER_REASON_2",
"UJBM_PRISONER_REASON_3",
"UJBM_PRISONER_REASON_4",
"UJBM_PRISONER_REASON_5",
"UJBM_PRISONER_REASON_6"
}

// HudSync: 0=ttinfo / 1=info / 2=simon / 3=ctinfo / 4=player / 5=day / 6=center / 7=help / 8=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},
{0,  0.1,  0.5,  2.0},
{0,  -1.0,  0.55,  2.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} }


//new CsTeams:g_PlayerTeam[33]
new Trie:g_CellManagers
new g_JailDay
new g_PlayerJoin
new g_PlayerReason[33]
new g_PlayerSpect[33]
new g_PlayerSimon[33]

new g_PlayerZMHands
new g_PlayerFist
new g_PlayerWanted
new g_PlayerCrowbar
new g_PlayerVoice
new g_PlayerRevolt
new g_PlayerHelp
new g_PlayerFreeday
new g_PlayerLast

new g_NoShowShop = 0
/*new g_FreedayNext*/
//new g_TeamCount[CsTeams]
//new g_TeamAlive[CsTeams]
new g_BoxStarted
/*new g_CrowbarCount*/
new g_Simon
new g_SimonAllowed
new g_SimonTalking
new g_SimonVoice
new g_RoundStarted
new g_LastDenied
new g_Freeday
new g_RoundEnd
new m_iTrail
new g_Duel
new g_DuelA
new g_DuelB
new g_Buttons[10]
new g_GameMode = 1
new g_nogamerounds
new gmsgSetFOV
new gp_Bind
new g_BackToCT = 0
new g_Fonarik = 0
new CTallowed[31]
new Tallowed[31]
new bindstr[33]
new g_iMsgSayText

new gmsgBombDrop

new const g_szZombieHands1[ ]        = "models/gaming-power/zm_claws.mdl";
new spacesound[ ]                = "jailbreak/spacesound.wav";
new zombiemusic[ ]                = "jailbreak/zombiemusic.wav";
new hnssound[ ]                        = "jailbreak/letmegiveyoumore.wav";
new warsound[ ]                        = "jailbreak/warsound.wav";
new dancesound[ ]                = "sound/jailbreak/tomorrowland.wav";


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)

register_dictionary("ujbm.txt")

g_MsgStatusText = get_user_msgid("StatusText")
g_MsgStatusIcon = get_user_msgid("StatusIcon")
g_MsgMOTD = get_user_msgid("MOTD")
g_MsgClCorpse = get_user_msgid("ClCorpse")
gmsgBombDrop  = get_user_msgid("BombDrop")
new Copyright[10] = PLUGIN_AUTHOR;

register_touch("crowbar", "worldspawn",        "cr_bar_snd")


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


register_event("CurWeapon", "current_weapon", "be", "1=1", "2=29")
register_event("CurWeapon", "current_weapon_fl", "be", "1=1", "2=25")
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")


register_forward(FM_Touch, "crowbar_touch")

RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_flashbang", "rpg_pre")
//RegisterHam(Ham_Weapon_WeaponIdle, "weapon_flashbang", "rpg_idle")
RegisterHam(Ham_Weapon_Reload, "weapon_flashbang", "rpg_reload")

register_touch("rpg_missile", "worldspawn",        "rocket_touch")
register_touch("rpg_missile", "player",                "rocket_touch")


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_Item_PreFrame, "player", "player_maxspeed", 1 );

register_forward(FM_SetClientKeyValue, "set_client_kv")
register_forward(FM_EmitSound, "sound_emit")
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("drop","drop",0,"")
register_clcmd("+simonvoice", "cmd_voiceon")
register_clcmd("-simonvoice", "cmd_voiceoff")

//register_clcmd("say /voice", "cmd_simon_micr")       
//register_clcmd("say /micr", "cmd_simon_micr")       
register_clcmd("say /shop", "cmd_shop")
register_clcmd("say /fd", "cmd_freeday")
register_clcmd("say /menu", "cmd_simonmenu")



register_clcmd("say /freeday", "cmd_freeday")
register_clcmd("say /day", "cmd_freeday")
register_clcmd("say /lr", "cmd_lastrequest")
register_clcmd("say /lastrequest", "cmd_lastrequest")
register_clcmd("say /duel", "cmd_lastrequest")
register_clcmd("say /simon", "cmd_simon")
//register_clcmd("say /open", "cmd_open")

register_clcmd("say /help", "cmd_help")

//register_clcmd("say /lr1", "cmd_lastrequest1")
///kids protection

if (Copyright[6] != 'T' || Copyright[2] != 'O' || Copyright[0] != 'R' ||  Copyright[4] != 'O' ) return PLUGIN_HANDLED
///kids protection
gp_GlowModels = register_cvar("jb_glowmodels", "0")
gp_SimonSteps = register_cvar("jb_simonsteps", "1")
gp_CrowbarMul = register_cvar("jb_crowbarmultiplier", "25.0")

gp_BoxMax = register_cvar("jb_boxmax", "6")
gp_RetryTime = register_cvar("jb_retrytime", "10.0")

gp_AutoLastresquest = register_cvar("jb_autolastrequest", "1")
gp_LastRequest = register_cvar("jb_lastrequest", "1")
gp_Motd = register_cvar("jb_motd", "1")
gp_TalkMode = register_cvar("jb_talkmode", "2")        // 0-alltak / 1-tt talk / 2-tt no talk
gp_VoiceBlock = register_cvar("jb_blockvoice", "0")        // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon
gp_ButtonShoot = register_cvar("jb_buttonshoot", "1")        // 0-standard / 1-func_button shoots!
gp_NoGame = register_cvar("jb_nogamerounds", "10")
gp_TShop = register_cvar("jb_tshop", "abcdefg")
gp_CTShop = register_cvar("jb_ctshop", "abcdef")
gp_Games = register_cvar("jb_games", "abcdef")
gp_Bind = register_cvar("jb_bindkey","v")
gp_Help = register_cvar("jb_autohelp","2")
gp_FDLength = register_cvar("jb_fdlen","120.0")
gp_GameHP = register_cvar("jb_hpmultiplier","200")
gp_ShowColor = register_cvar("jb_hud_showcolor","1")
gp_ShowFD = register_cvar("jb_hud_showfd","1")
gp_ShowWanted = register_cvar("jb_hud_show_wanted","1")
gp_Effects= register_cvar("jb_game_effects","2")


g_MaxClients = get_global_int(GL_maxClients)

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


gmsgSetFOV = get_user_msgid( "SetFOV" )
g_iMsgSayText = get_user_msgid("SayText");


set_task(320.0, "help_trollface", _, _, _, "b")


setup_buttons()
return PLUGIN_CONTINUE
}


public plugin_precache()
{
static i
precache_model("models/player/ujbm_v1/ujbm_v1.mdl")
//precache_model("models/player/bond/bond.mdl")
//precache_model("models/player/bond/bondT.mdl")

precache_model(g_szZombieHands1)
precache_sound(spacesound)               
precache_sound(zombiemusic)
precache_sound(warsound)       
precache_sound(hnssound)
precache_generic(dancesound)       


for(i = 0; i < sizeof(_FistModels); i++)
        precache_model(_FistModels[i])
       
for(i = 0; i < sizeof(_CrowbarModels); i++)
                precache_model(_CrowbarModels[i])
       
for(i = 0; i < sizeof(_RpgModels); i++)
                precache_model(_RpgModels[i])
       
       
for(i = 0; i < sizeof(_FistSounds); i++)
                precache_sound(_FistSounds[i])
       
for(i = 0; i < sizeof(_RpgSounds); i++)
                precache_sound(_RpgSounds[i])
       
SpriteExplosion = precache_model("sprites/fexplo1.spr")       
m_iTrail = precache_model("sprites/smoke.spr")
       
precache_sound("alien_alarm.wav")
precache_sound("jbextreme/nm_goodbadugly.wav")
precache_sound("jbextreme/brass_bell_C.wav")
precache_sound("ambience/the_horror2.wav")
precache_sound("debris/metal2.wav")
precache_sound("items/gunpickup2.wav")
precache_sound("weapons/cbar_hit1.wav")
precache_sound("weapons/cbar_miss1.wav")
       
       
       
g_CellManagers = TrieCreate()
gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1)
gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1)
}

public plugin_natives()
{
        register_library("ujbm");
        register_native ("get_simon", "_get_simon",0)
        register_native ("get_gamemode", "_get_gamemode",0)
        register_native ("get_fd", "_get_fd",0)
        register_native ("get_wanted", "_get_wanted",0)
        register_native ("get_last", "_get_last",0)
}

public _get_simon(iPlugin, iParams)
{
        return g_Simon;


public _get_last(iPlugin, iParams)
{
        return g_PlayerLast;


public _get_gamemode(iPlugin, iParams)
{
        return g_GameMode;


public bool:_get_fd(iPlugin, iParams)
{
        new id = get_param(1);
        if (get_bit(g_PlayerFreeday, id))return true;
        return false;



public bool:_get_wanted(iPlugin, iParams)
{
        new id = get_param(1);
        if (get_bit(g_PlayerWanted, id))return true;
        return false;




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[i]))
                        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_PlayerHelp, id)
        clear_bit(g_PlayerCrowbar, id)
        clear_bit(g_PlayerWanted, id)
        clear_bit(g_SimonTalking, id)
        clear_bit(g_SimonVoice, id)
        g_PlayerSpect[id] = 0
        g_PlayerSimon[id] = 0
       
        first_join(id)
       
}


public client_disconnect(id)
{
        if(g_Simon == id)
        {
                g_Simon = 0
                ClearSyncHud(0, g_HudSync[2][_hudsync])
                player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "UJBM_SIMON_HASGONE")
        }
        else 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
        }
       
}

public client_PostThink(id)
{
        if(id != g_Simon || !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:origin[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_motd(msgid, dest, id)
{
        if(get_pcvar_num(gp_Motd))
                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(get_bit(g_PlayerCrowbar, id))
        {
                set_pev(id, pev_viewmodel2, _CrowbarModels[1])
                set_pev(id, pev_weaponmodel2, _CrowbarModels[0])
        }
        else if(get_bit(g_PlayerZMHands, id))
        {
                set_pev(id, pev_viewmodel2, g_szZombieHands1)
        }
        else if(get_bit(g_PlayerFist, id))
        {
                set_pev(id, pev_viewmodel2, _FistModels[1])
                set_pev(id, pev_weaponmodel2, _FistModels[0])
        }
        return PLUGIN_CONTINUE
}

public player_status(id)
{
       
        static type, player, CsTeams:team, name[32], health
        type = read_data(1)
        player = read_data(2)
        switch(type)
        {
                case(1):
                {
                        ClearSyncHud(id, g_HudSync[1][_hudsync])
                }
                case(2):
                {
                        if (player == g_Simon) return PLUGIN_HANDLED
                        team = cs_get_user_team(player)
                        if((team != CS_TEAM_T) && (team != CS_TEAM_CT))
                                return PLUGIN_HANDLED
                       
                        health = get_user_health(player)
                        get_user_name(player, name, charsmax(name))
                        player_hudmessage(id, 4, 2.0, {0, 255, 0}, "%L", LANG_SERVER,
                        (team == CS_TEAM_T) ? "UJBM_PRISONER_STATUS" : "UJBM_GUARD_STATUS", name, health)
                }
        }
       
        return PLUGIN_HANDLED
}

public impulse_100(id)
{
        if(!get_bit(g_Fonarik,id))
                return PLUGIN_HANDLED
       
        return PLUGIN_CONTINUE
}






public  player_maxspeed(id)
{
       
        if(!is_user_connected(id))
                return HAM_IGNORED
       
        switch (g_GameMode)
        {
                case 3:
                {
                        if (cs_get_user_team(id) == CS_TEAM_T) set_user_maxspeed(id ,310.0)
                }
                case  4:
                {
                       
                        if (g_Simon == id) set_user_maxspeed(id ,450.0)
                       
                }
                case  5:
                {
                       
                        if (g_Simon == id) set_user_maxspeed(id ,320.0)
                       
                }
               
                default:
        {
                set_user_maxspeed(id ,250.0)
               
        }
}
        return PLUGIN_HANDLED

}





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)
       
        set_user_footsteps( id, 0 );
       
        set_user_gravity( id );       
       
        clear_bit(g_PlayerWanted, id)
        team = cs_get_user_team(id)
       
        if (!get_bit(g_NoShowShop,id)) cmd_shop(id)
       
        set_user_godmode(id, 0)
        clear_bit(g_PlayerCrowbar, id)
        clear_bit(g_PlayerZMHands, id)
        set_bit(g_PlayerFist,id)
       
        switch(team)
        {
                case(CS_TEAM_T):
                {
                        g_PlayerLast = 0
                        if(!g_PlayerReason[id])
                                g_PlayerReason[id] = random_num(1, 6)
                       
                        player_hudmessage(id, 0, 5.0, {255, 0, 255}, "%L %L", LANG_SERVER, "UJBM_PRISONER_REASON",
                        LANG_SERVER, g_Reasons[g_PlayerReason[id]])
                       
                       
                        //client_infochanged(id)
                        entity_set_int(id, EV_INT_body, 2)
                        if (g_GameMode == 0)
                        {
                                entity_set_int(id, EV_INT_skin, 3)
                        }  else
                        /*if(get_bit(g_FreedayAuto, id))
                {                       
                        freeday_set(0, id)
                        clear_bit(g_FreedayAuto, id)
                }
                else*/
        {
                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", "ujbm_v1")
        entity_set_int(id, EV_INT_body, 3)
        cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
       
        new r = random_num(1,3)
        switch (r)
        {
                case 1:
                {
                        set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 6.0)
                        show_hudmessage(id, "%L", LANG_SERVER, "UJBM_WARN_FK")
                }
                case 2:
                {
                        set_hudmessage(0, 255, 0, -1.0, 0.60, 0, 6.0, 6.0)
                        show_hudmessage(id, "%L", LANG_SERVER, "UJBM_WARN_RULES")
                }
                default:
        {
                set_hudmessage(0, 212, 255, -1.0, 0.80, 0, 6.0, 6.0)
                show_hudmessage(id, "%L", LANG_SERVER, "UJBM_WARN_MICR")
        }
}

}
}




        if (g_GameMode == 4 || g_GameMode == 5)
{
       
if (cs_get_user_team(id) == CS_TEAM_CT)
{

set_bit(g_BackToCT, id)
cs_set_user_team2(id, CS_TEAM_T)
}

new j = 0;                       
strip_user_weapons(id)
j = random_num(0, sizeof(_WeaponsFree) - 1)       
give_item(id, "weapon_knife")
give_item(id, _WeaponsFree[j])
cs_set_user_bpammo(id, _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])

}


        return HAM_IGNORED
}

public task_inviz()
{
/*
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, g_Simon)
write_short(~0)
write_short(~0)
write_short(0x0004) // stay faded
write_byte(ALIEN_RED)
write_byte(ALIEN_GREEN)
write_byte(ALIEN_BLUE)
write_byte(100)
message_end()
g_Faded = 1*/
set_user_rendering(g_Simon, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 )       
}

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

if ((g_GameMode  ==  5 )&& (g_Simon  ==  attacker) )
{
set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 )
/*
if (g_Faded)
{
        message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, g_Simon)
        write_short(1<<10)
        write_short(1<<10)
        write_short(0x0000) // fade out
        write_byte(ALIEN_RED)
        write_byte(ALIEN_GREEN)
        write_byte(ALIEN_BLUE)
        write_byte(100)
        message_end()
}
g_Faded = 0*/
remove_task(7447)
set_task(3.1, "task_inviz",7447);
}
/*
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 && get_bit(g_PlayerCrowbar, attacker) )
                {
                        SetHamParamFloat(4, damage * gc_CrowbarMul)
                        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_damage2(victim, ent, attacker, Float:damage, bits)
{
        if (victim == attacker || !is_user_connected(attacker))
                return HAM_IGNORED;
       
        //if ((g_GameMode  ==  4 )&& (g_Simon  ==  victim) )  set_pdata_float(victim, OFFSET_PAINSHOCK, 1.0, OFFSET_LINUX)
        /*
        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 && get_bit(g_PlayerCrowbar, attacker) )
                        {
                                SetHamParamFloat(4, damage * gc_CrowbarMul)
                                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)
       
        if(ateam == CS_TEAM_CT && vteam == CS_TEAM_CT)
                return HAM_SUPERCEDE
       
        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
                }
                case(5):
                {
                       
                }
                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 && !g_BoxStarted)
                return HAM_SUPERCEDE
       
        if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT &&g_GameMode <=1)
        {
                if(!g_PlayerRevolt)
                        revolt_start()
               
                set_bit(g_PlayerRevolt, attacker)
                clear_bit(g_PlayerFreeday, 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 task_last()
{
        new Players[32]
        new playerCount, i, TAlive
       
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
                if (is_user_connected(Players[i]))
                       
                if ( cs_get_user_team(Players[i]) == CS_TEAM_T )
                {
                        TAlive++;
                }
        }       
        if (TAlive == 1)
        {
               
                for (i=0; i<playerCount; i++)
                {
                        if ( cs_get_user_team(Players[i]) == CS_TEAM_T )
                        {
                                g_PlayerLast = Players[i];
                                if (get_pcvar_num(gp_AutoLastresquest)) cmd_lastrequest(Players[i])
                                break;
                        }
                }
               
        }
        return PLUGIN_CONTINUE
}

public player_killed(victim, attacker, shouldgib)
{
        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)
       
        vteam = cs_get_user_team(victim)
       
       
       
        switch (g_GameMode)
        {
                case 2:
                       
               
        {
               
               
                if (vteam == CS_TEAM_T && kteam == CS_TEAM_CT && is_user_connected(attacker))
                        give_item(attacker, "ammo_buckshot")
                }
               
                case 4:
                {
                       
                        if (victim == g_Simon) cs_set_user_money(attacker, 16000)
                        else if (attacker == g_Simon) set_user_health(g_Simon, get_user_health(g_Simon) + 100)
                        }
                case 5:
                {
                       
                        if (victim == g_Simon) cs_set_user_money(attacker, 16000)
                        else if (attacker == g_Simon) set_user_health(g_Simon, get_user_health(g_Simon) + 100)
                        }
                default:
        {
               
                if (vteam == CS_TEAM_T)
                {
                        remove_task(677365)
                        set_task(2.1, "task_last", 677365)
                }
               
               
               
                if(g_Simon == victim)
                {
                        g_Simon = 0
                        ClearSyncHud(0, g_HudSync[2][_hudsync])
                        player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "UJBM_SIMON_KILLED")
                       
                       
                        if (vteam == CS_TEAM_CT && kteam == CS_TEAM_T && is_user_connected(attacker))
                                if (victim == g_Simon)
                                        cs_set_user_money(attacker, cs_get_user_money(attacker) + 3500)
                                else cs_set_user_money(attacker, cs_get_user_money(attacker) + 500)
                                else  if (vteam == CS_TEAM_T && kteam == CS_TEAM_T && is_user_connected(attacker)) cs_set_user_money(attacker, cs_get_user_money(attacker) + 200)
                        }
                       
                if (get_bit(g_PlayerCrowbar,victim))
                        {
                                spawn_crowbar(victim)
                                clear_bit(g_PlayerCrowbar, victim)
                        }
                       
                       
                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(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
                                        if (g_Duel == 5)
                                        {
                                                player_strip_weapons(attacker)
                                                give_item(attacker,"weapon_knife")
                                        }
                                       
                                       
                                }
                        }
                }
               
               
                hud_status(0)
        }
}
        return HAM_IGNORED
}



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

public sound_emit(id, channel, sample[])
{
        if(is_user_alive(id) )
        {
               
                if (equal(sample, "weapons/knife_", 14))
                       
               
                switch(sample[17])
                {
                        case('b'):
                        {
                                emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        }
                        case('w'):
                        {
                                if (get_bit(g_PlayerCrowbar,id))
                                        emit_sound(id, CHAN_WEAPON, "weapons/cbar_hit1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
                                else
                                        emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
                        }
                        case('1', '2'):
                        {
                                emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM)
                        }
                       
                        case('s'):
                        {
                                if (get_bit(g_PlayerCrowbar,id))
                                        emit_sound(id, CHAN_WEAPON, "weapons/cbar_miss1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        }
                }
               
               
               
               
                return FMRES_SUPERCEDE
               
               
               
        }
        return FMRES_IGNORED
}

public voice_listening(receiver, sender, bool:listen)
{
        if((receiver == sender))
                return FMRES_IGNORED
       
        if(is_user_admin(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
        }
       
        if(get_bit(g_PlayerVoice, sender))
        {
                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(g_Duel > 3)
        {
                if (_Duel[g_Duel - 4][_csw] != CSW_M249)        cs_set_user_bpammo(id, _Duel[g_Duel - 4][_csw], 1)
        }
}

public round_first()
{
       
        g_JailDay = 0
        for(new i = 1; i <= g_MaxClients; i++)
        {
                g_PlayerSimon[i] = 0
               
        }
       
        set_cvar_num("sv_alltalk", 1)
        set_cvar_num("mp_roundtime", 2)
        set_cvar_num("mp_limitteams", 0)
        set_cvar_num("mp_autoteambalance", 0)
        set_cvar_num("mp_tkpunish", 0)
        set_cvar_num("mp_friendlyfire", 1)
        round_end()
        g_GameMode = 1       
}

public round_end()
{
        server_cmd("jb_unblock_weapons")
        g_PlayerRevolt = 0
        g_PlayerFreeday = 0
        /*  g_PlayerVoice = 0*/
        g_PlayerLast = 0
        g_BoxStarted = 0
        /*g_CrowbarCount = 0*/
        g_Simon = 0
        g_SimonAllowed = 0
        g_RoundStarted = 0
        g_LastDenied = 0
       
       
        new Ent = -1
        while((Ent = find_ent_by_class(Ent, "rpg_off")))
        {
                remove_entity(Ent)
        }
        g_Freeday = 0
        /*g_FreedayNext = (random_num(0,99) >= 95)*/
        g_RoundEnd = 1
        g_Duel = 0
        g_Fonarik = 0
       
       
       
        remove_task(TASK_STATUS)
        remove_task(TASK_FREEDAY)
        remove_task(TASK_FREEEND)
        remove_task(TASK_ROUND)
        remove_task(TASK_GIVEITEMS)
        remove_task(TASK_DANCEDAY)
       
        client_cmd( 0, "mp3 stop" );
        client_cmd( 0, "stopsound" );
        server_cmd("sv_gravity 800")
        set_lights("m")
       
       
        for(new i = 0; i < sizeof(g_HudSync); i++)
                ClearSyncHud(0, g_HudSync[i][_hudsync])
       
        if (g_GameMode > 1)
        {
               
                set_lights("#OFF");
                fog(false)
               
                new Players[32]       
               
                new playerCount, i
                get_players(Players, playerCount, "c")
                for (i=0; i<playerCount; i++)
                {
                        if (is_user_connected(Players[i]))
                        {
                                if (get_bit(g_BackToCT, Players[i])) cs_set_user_team2(Players[i], CS_TEAM_CT)       
                                //client_infochanged(Players[i])
                                set_user_maxspeed(Players[i], 250.0)
                                menu_cancel(Players[i])
                                player_strip_weapons(Players[i])
                        }
                       
                }
                /*if (g_Faded)
        {
                message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, g_Simon)
                write_short(1<<10)
                write_short(1<<10)
                write_short(0x0000) // fade out
                write_byte(ALIEN_RED)
                write_byte(ALIEN_GREEN)
                write_byte(ALIEN_BLUE)
                write_byte(100)
                message_end()
        }*/
                remove_task(7447)
                remove_task(666)
                g_BackToCT = 0
}
        g_GameMode = 1


}

public SimonAllowed()
{
g_SimonAllowed = 1
}
public round_start()
{
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)
gc_CrowbarMul = get_pcvar_float(gp_CrowbarMul)
get_pcvar_string(gp_TShop, Tallowed,31)
get_pcvar_string(gp_CTShop, CTallowed,31)
get_pcvar_string(gp_Bind, bindstr,32)
g_GameMode = 1
g_SimonAllowed = 0
/*g_FreedayNext = 0*/

g_nogamerounds++

new ent = -1
while((ent = find_ent_by_class(ent, "crowbar")))
{
if (is_valid_ent(ent)) remove_entity(ent)
}



if(g_RoundEnd)
        return
       
set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
set_task(random_float(2.0,5.0), "SimonAllowed")
player_hudmessage(0, 5, 5.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_DAY", g_JailDay)

}



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
       
        team = cs_get_user_team(id)
        if(g_SimonAllowed != 0 && !g_Freeday && 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])
                give_item(id, "weapon_p228")
                give_item(id, "ammo_357sig")
                give_item(id, "ammo_357sig")
                give_item(id, "ammo_357sig")
                give_item(id, "ammo_357sig")
                cmd_simonmenu(id)
                hud_status(0)
        }
        return PLUGIN_HANDLED
}

public cmd_open(id)
{
        if(id == g_Simon || id == is_user_admin(id))
                jail_open()
       
        return PLUGIN_HANDLED
}



public cmd_box(id)
{
       
        if((id == g_Simon || is_user_admin(id)) && g_GameMode == 1)
        {
                new Players[32]
                new playerCount, i, TAlive
               
                get_players(Players, playerCount, "ac")
                for (i=0; i<playerCount; i++)
                {
                        if (is_user_connected(Players[i]))
                               
                        if ( cs_get_user_team(Players[i]) == CS_TEAM_T )
                        {
                                TAlive++;
                        }
                }
               
                if(TAlive<= get_pcvar_num(gp_BoxMax) && TAlive > 1)
                {
                        for(i = 1; i <= g_MaxClients; i++)
                                if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
                                set_user_health(i, 100)
                       
                        set_cvar_num("mp_tkpunish", 0)
                        set_cvar_num("mp_friendlyfire", 1)
                        g_BoxStarted = 1
                        player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "UJBM_GUARD_BOX")
                }
                else
                {
                        player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "UJBM_GUARD_CANTBOX")
                }
        }
        return PLUGIN_HANDLED
}


public cmd_help(id)
{
        if(id > g_MaxClients)
                id -= TASK_HELP
       
        remove_task(TASK_HELP + id)
       
       
       
        show_motd(id,"jb_help.txt","Ultimate Jail Break Manager");
       
       
       
}

public cmd_minmodels(id)
{
        if(id > g_MaxClients)
                id -= TASK_HELP
       
        remove_task(TASK_HELP + id)
       
       
       
        query_client_cvar(id, "cl_minmodels", "cvar_result_func");
       
       
       
}








public cmd_freeday(id)
{
       
        if (g_GameMode == 1)
        {
                static menu, menuname[32], option[64]
                if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id))
                {
                        formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "UJBM_MENU_FREEDAY")
                        menu = menu_create(menuname, "freeday_choice")
                       
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_FREEDAY_PLAYER")
                        menu_additem(menu, option, "1", 0)
                       
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_FREEDAY_ALL")
                        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", "%L", LANG_SERVER, "UJBM_MENU_FREEDAY")
       
        return PLUGIN_CONTINUE
}


public cmd_punish(id)
{
        if((id  == g_Simon) || is_user_admin(id) )
                menu_players(id, CS_TEAM_CT, id, 1, "cmd_punish_ct", "%L", LANG_SERVER, "UJBM_MENU_PUNISH")
       
        return PLUGIN_CONTINUE
}



public cmd_lastrequest(id)
{
       
        static i, num[5], menu, menuname[32], option[64]
        if (!is_user_alive(g_PlayerLast)) task_last();
        if(!get_pcvar_num(gp_LastRequest) || g_Freeday || g_LastDenied || g_PlayerLast !=id || !is_user_alive(id) || g_GameMode >= 2)
                return PLUGIN_CONTINUE
       
       
        formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "UJBM_MENU_LASTREQ")
        menu = menu_create(menuname, "lastrequest_select")
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_LASTREQ_OPT1")
        menu_additem(menu, option, "1", 0)
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_LASTREQ_OPT2")
        menu_additem(menu, option, "2", 0)
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_LASTREQ_OPT3")
        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), "%L", LANG_SERVER, _Duel[i][_opt])
                menu_additem(menu, option, num, 0)
        }
       
       
        menu_display(id, menu)
        return PLUGIN_CONTINUE
}

public adm_freeday(id)
{
        static player, user[32]
        if(!is_user_admin(id))
                return PLUGIN_CONTINUE
       
        read_argv(1, user, charsmax(user))
        player = cmd_target(id, user, 2)
        if(is_user_connected(player) && cs_get_user_team(player) == CS_TEAM_T)
        {
                freeday_set(id, player)
        }
        return PLUGIN_HANDLED
}


public adm_open(id)
{
        if(!is_user_admin(id))
                return PLUGIN_CONTINUE
       
        jail_open()
        return PLUGIN_HANDLED
}

public adm_box(id)
{
        if(!is_user_admin(id))
                return PLUGIN_CONTINUE
       
        cmd_box(-1)
        return PLUGIN_HANDLED
}






public revolt_start()
{
        client_cmd(0,"speak ambience/siren")
        set_task(8.0, "stop_sound")
        hud_status(0)
}

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


public show_color(id)
{
        new n = 0;
        if (id == 0)
        {
               
                /*new name[32], szStatus[64]*/
               
                new Players[32]
                new playerCount, i
                get_players(Players, playerCount, "ac")
                for (i=0; i<playerCount; i++)
                {
                        if (is_user_connected(Players[i]))
                                if ( cs_get_user_team(Players[i]) == CS_TEAM_T && is_user_alive(Players[i]))
                        {
                                n=entity_get_int(Players[i], EV_INT_skin);
                                switch (n)
                                {
                                        case 0:
                                        {
                                               
                                                player_hudmessage(Players[i], 10, HUD_DELAY + 1.0, {200, 100, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_ORANGE")
                                        }
                                       
                                        case 1:
                                        {
                                               
                                                player_hudmessage(Players[i], 10, HUD_DELAY + 1.0, {255, 255, 255}, "%L", LANG_SERVER,        "UJBM__COLOR_WHITE")
                                        }
                                       
                                        case 2:
                                        {
                                                player_hudmessage(Players[i], 10, HUD_DELAY + 1.0, {150, 200, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_YELLOW")
                                        }
                                       
                                        case 3:
                                        {
                                                player_hudmessage(Players[i], 10, HUD_DELAY + 1.0, {0, 200, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_GREEN")
                                        }
                                       
                                        case 4:
                                        {
                                               
                                                player_hudmessage(Players[i], 10, HUD_DELAY + 1.0, {200, 0, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_RED")
                                        }
                                }
                               
                        }
                }
        }
        else
               
{
        n=entity_get_int(id, EV_INT_skin);
        switch (n)
        {
                case 0:
                {
                       
                        player_hudmessage(id, 10, HUD_DELAY + 1.0, {200, 100, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_ORANGE")
                }
               
                case 1:
                {
                       
                        player_hudmessage(id, 10, HUD_DELAY + 1.0, {255, 255, 255}, "%L", LANG_SERVER,        "UJBM__COLOR_WHITE")
                }
               
                case 2:
                {
                        player_hudmessage(id, 10, HUD_DELAY + 1.0, {150, 200, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_YELLOW")
                }
               
                case 3:
                {
                        player_hudmessage(id, 10, HUD_DELAY + 1.0, {0, 200, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_GREEN")
                }
               
                case 4:
                {
                       
                        player_hudmessage(id, 10, HUD_DELAY + 1.0, {200, 0, 0}, "%L", LANG_SERVER,        "UJBM__COLOR_RED")
                }
        }       
       
}
}


stock show_count()
{
new Players[32]
new playerCount, i,TAlive,TAll
new szStatus[64]
get_players(Players, playerCount, "c")
for (i=0; i<playerCount; i++)
{
        if (is_user_connected(Players[i]))
               
                if ( cs_get_user_team(Players[i]) == CS_TEAM_T)
                {
                        TAll++;
                        if (is_user_alive(Players[i])) TAlive++;
                }
        }
       
       
       
formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "UJBM_STATUS", TAlive,TAll)
message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
write_byte(0)
write_string(szStatus)
message_end()
}



public hud_status(task)
{
        static i, n
        new name[32], szStatus[64], wanted[512], fdlist[512]
       
       
       
       
        if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
                g_RoundStarted++
       
       
       
       
       
       
       
        switch (g_GameMode)
               
{
       
       
        case 0:
        {
                show_count()
               
                n = 0
                formatex(wanted, charsmax(wanted), "%L", LANG_SERVER, "UJBM_PRISONER_WANTED")
                n = strlen(wanted)
                for(i = 0; i < g_MaxClients; i++)
                {
                       
                        if(get_bit(g_PlayerWanted, i) && is_user_alive(i) && n < charsmax(wanted))
                        {
                                get_user_name(i, name, charsmax(name))
                                n += copy(wanted[n], charsmax(wanted) - n, "^n^t")
                                n += copy(wanted[n], charsmax(wanted) - n, name)
                        }
                }
               
               
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_FREEDAY")
                if(g_PlayerWanted)
                        player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%s", wanted)
                        else if(g_PlayerRevolt)
                                player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%L", LANG_SERVER, "UJBM_PRISONER_REVOLT")
                       
                }
               
               
                case 1:
                       
        {
                show_count()
                if (get_pcvar_num (gp_ShowColor) == 1) show_color(0)
               
                if (get_pcvar_num (gp_ShowFD) == 1)
                {
                        n = 0
                        formatex(fdlist, charsmax(fdlist), "%L", LANG_SERVER, "UJBM_FREEDAY_SINGLE")
                        n = strlen(fdlist)
                        for(i = 0; i < g_MaxClients; i++)
                        {
                                if(get_bit(g_PlayerFreeday, i) && is_user_alive(i) && n < charsmax(fdlist))
                                {
                                        get_user_name(i, name, charsmax(name))
                                        n += copy(fdlist[n], charsmax(fdlist) - n, "^n^t")
                                        n += copy(fdlist[n], charsmax(fdlist) - n, name)
                                }
                               
                        }
                        if(g_PlayerFreeday)               
                                player_hudmessage(0, 9, HUD_DELAY + 1.0, {0, 255, 0}, "%s", fdlist)       
                               
                        }
                       
                       
                       
                if (get_pcvar_num (gp_ShowWanted) == 1)
                        {       
                                n = 0
                                formatex(wanted, charsmax(wanted), "%L", LANG_SERVER, "UJBM_PRISONER_WANTED")
                                n = strlen(wanted)
                                for(i = 0; i < g_MaxClients; i++)
                                {
                                        if(get_bit(g_PlayerWanted, i) && is_user_alive(i) && n < charsmax(wanted))
                                        {
                                                get_user_name(i, name, charsmax(name))
                                                n += copy(wanted[n], charsmax(wanted) - n, "^n^t")
                                                n += copy(wanted[n], charsmax(wanted) - n, name)
                                        }
                                }
                                if(g_PlayerWanted)
                                        player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%s", wanted)
                               
                        }
                if(!g_Simon && g_SimonAllowed )
                        {
                                cmd_simon(random_num(1, g_MaxClients))
                        }
                        else  if (g_Simon  != 0)
                {
                       
                        get_user_name(g_Simon, name, charsmax(name))
                        player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_SIMON_FOLLOW", name)
                }
               
                if(g_PlayerRevolt)
                        player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 25, 50}, "%L", LANG_SERVER, "UJBM_PRISONER_REVOLT")
                       
                       
                       
                }
               
                case 2:
                       
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_ZOMBIEDAY")
        }
       
        case 3:
               
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_HNS")
        }
       
        case 4:
        {
                get_user_name(g_Simon, name, charsmax(name))
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_ALIENDAY", name)
                formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "UJBM_STATUS_ALIENHP", get_user_health(g_Simon))
                message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
                write_byte(0)
                write_string(szStatus)
                message_end()
        }
       
        case 5:
        {
                get_user_name(g_Simon, name, charsmax(name))
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_ALIENDAY", name)
                formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "UJBM_STATUS_ALIENHP", get_user_health(g_Simon))
                message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
                write_byte(0)
                write_string(szStatus)
                message_end()
        }
       
        case 6:
        {
                get_user_name(g_Simon, name, charsmax(name))
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_GORDONDAY")
                formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "UJBM_STATUS_GORDONHP", get_user_health(g_Simon))
                message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
                write_byte(0)
                write_string(szStatus)
                message_end()
        }
       
        case 7:       
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_AWPDAY")
        }
       
        case 8:       
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_GODDAY")
        }
       
        case 9:       
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_RIOTDAY")
        }
       
        case 10:       
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_SPACEDAY")
        }
       
        case 11:       
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_DANCEDAY")
        }
       
       
}








}





public prisoner_last(id)
{
static name[32], Float:roundmax


if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T && g_GameMode <= 1)
{
       
        get_user_name(id, name, charsmax(name))
        g_PlayerLast = id
        player_hudmessage(0, 6, 5.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_PRISONER_LAST", name)
        remove_task(TASK_ROUND)
        if(roundmax > 0.0)
        {
                player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_STATUS_ENDTIMER", floatround(roundmax - 60.0))
                set_task(roundmax - 60.0, "check_end", TASK_ROUND)
        }
       
        static i
        new Players[32]
        new playerCount, CTAlive
       
       
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
                if (is_user_connected(Players[i]))
                       
                        if ( cs_get_user_team(Players[i]) == CS_TEAM_CT )
                        {
                                CTAlive++;
                        }
                }
               
               
        if((CTAlive> 0) && get_pcvar_num(gp_AutoLastresquest) && (g_GameMode == 1))
                        cmd_lastrequest(id)
        }
        else if (g_GameMode == 2)
        {
                set_user_health(id, 1000)
                player_glow(id, g_Colors[3])
                set_user_maxspeed(id, 275.0)
        }
}

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(item == MENU_EXIT)
        {
                menu_destroy(menu)
                g_LastDenied = 0
                return PLUGIN_HANDLED
        }
       
        static dst[32], data[5], access, callback, option[128], player, src[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), "%L^n%L", LANG_SERVER, "UJBM_MENU_LASTREQ_SEL3", src, LANG_SERVER, "UJBM_MENU_DUEL_SEL", src, dst)
        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
       
        g_DuelA = id
        clear_bit(g_PlayerCrowbar, id)
        player_strip_weapons(id)
        player_glow(id, g_Colors[3])
        set_user_health(id, 100)
       
        g_DuelB = player
        player_strip_weapons(player)
        player_glow(player, g_Colors[2])
        set_user_health(player, 100)
        server_cmd("jb_unblock_teams")
        return PLUGIN_HANDLED
}

public duel_guns(id, menu, item)
{
        if(item == MENU_EXIT || g_PlayerLast != id)
        {
                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]
       
        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), "%L^n%L", LANG_SERVER, _Duel[g_Duel - 4][_sel], src, LANG_SERVER, "UJBM_MENU_DUEL_SEL", src, dst)
        emit_sound(0, CHAN_AUTO, "jbextreme/nm_goodbadugly.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
       
       
       
       
        switch (_Duel[g_Duel - 4][_csw])
        {
                case  CSW_M249:
                {
                        g_DuelA = id
                        player_strip_weapons(id)
                        gun = give_item(id, _Duel[g_Duel - 4][_entname])
                        cs_set_weapon_ammo(gun, 2000)
                        cs_set_user_bpammo(id,CSW_M249,0)
                        set_user_health(id, 2000)
                        entity_set_int(id, EV_INT_body, 4)
                        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, 2000)
                        set_user_health(player, 2000)
                        cs_set_user_bpammo(player,CSW_M249,0)
                        entity_set_int(player, EV_INT_body, 4)
                        player_glow(player, g_Colors[2])
                }
               
                case  CSW_FLASHBANG:
                {
                        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, 2000)
                        entity_set_int(id, EV_INT_body, 4)
                        player_glow(id, g_Colors[3])
                       
                        current_weapon_fl(id)
                       
                        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, 2000)
                        entity_set_int(player, EV_INT_body, 4)
                        player_glow(player, g_Colors[2])
                        current_weapon_fl(player)
                }
               
               
               
                default:
        {
                player_strip_weapons(id)
                g_DuelA = id
                gun = give_item(id, _Duel[g_Duel - 4][_entname])
                cs_set_weapon_ammo(gun, 1)
                set_user_health(id, 100)
                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)
                player_glow(player, g_Colors[2])
        }
}
        server_cmd("jb_block_weapons")
        return PLUGIN_HANDLED
}

public freeday_choice(id, menu, item)
{
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))
                {
                        g_Simon = 0
                       
                        get_user_name(id, dst, charsmax(dst))
                        client_print(0, print_console, "%s gives freeday for everyone", dst)
                        server_print("JBE Client %i gives freeday for everyone", id)
                       
                        g_GameMode = 0
                       
                        g_Simon = 0       
                        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        hud_status(0)
                        g_PlayerFreeday = 0
                       
                        jail_open()
                       
                       
                        new Players[32]
                        new playerCount, i
                        get_players(Players, playerCount, "ac")
                        for (i=0; i<playerCount; i++)
                        {
                                entity_set_int(Players[i], EV_INT_skin, 3)
                        }
                       
                       
                       
                       
                       
                        new Float:FDLEN = get_pcvar_float(gp_FDLength)
                        if (FDLEN < 20.0) FDLEN = 99999.0
                        set_task(FDLEN, "task_freeday_end",TASK_FREEEND)
                }
        }
}
return PLUGIN_HANDLED
}

public lastrequest_select(id, menu, item)
{
if(item == MENU_EXIT || g_PlayerLast != id)
{
        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'):
        {
                cs_set_user_money(id,16000,1)
                user_silentkill(id)
        }
        case('2'):
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_LASTREQ_SEL2", 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[i])
                server_cmd("jb_block_weapons")
                cs_set_user_bpammo(id, _WeaponsFreeCSW[i], _WeaponsFreeAmmo[i])
        }
        case('3'):
        {
                g_Duel = 3
                menu_players(id, CS_TEAM_CT, 0, 1, "duel_knives", "%L", LANG_SERVER, "UJBM_MENU_DUEL")
        }
        default:
{
        g_Duel = str_to_num(data)
        menu_players(id, CS_TEAM_CT, 0, 1, "duel_guns", "%L", LANG_SERVER, "UJBM_MENU_DUEL")
}
}
g_LastDenied = 1
menu_destroy(menu)
return PLUGIN_HANDLED
}

public setup_buttons()
{
new ent[3]
new Float:origin[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[i] == 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)
                entity_set_int(player, EV_INT_skin, 3)
                if(get_pcvar_num(gp_GlowModels))
                        player_glow(player, g_Colors[1])
               
                if(0 < id <= g_MaxClients)
                {
                        get_user_name(id, src, charsmax(src))
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_GUARD_FREEDAYGIVE", src, dst)
                }
                else if(g_GameMode == 1)
                {
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_PRISONER_HASFREEDAY", dst)
                }
        }
}

stock first_join(id)
{
        if (get_bit(g_PlayerJoin, id)) return PLUGIN_CONTINUE
       
        switch (get_pcvar_num(gp_Help))
        {
                case 1:{
                        set_task(5.0, "cmd_help", TASK_HELP + id)
                }
                case 2:{
                        if (!is_user_admin(id))       
                                set_task(5.0, "cmd_help", TASK_HELP + id)
                }
        }
       
       
        set_task(20.0, "cmd_minmodels", TASK_HELP + id)
        set_bit(g_PlayerJoin, id)
        clear_bit(g_PlayerHelp, id)
       
        return PLUGIN_CONTINUE
}


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)
}

stock player_strip_weapons(id)
{
        strip_user_weapons(id)
        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 jail_open()
{
        static i
        for(i = 0; i < sizeof(g_Buttons); i++)
        {
                if(g_Buttons[i])
                {
                        ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0)
                        entity_set_float(g_Buttons[i], EV_FL_frame, 0.0)
                }
        }
}



public fog(bool:on)
       
{
if (on)
{
        message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
        write_byte(random_num(180,244))  // R
        write_byte(1)  // G
        write_byte(1)  // B
        write_byte(10) // SD
        write_byte(41)  // ED
        write_byte(95)  // D1
        write_byte(59)  // D2
        message_end()       
       
}
else
{
        message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
        write_byte(0)  // R
        write_byte(0)  // G
        write_byte(0)  // B
        write_byte(0) // SD
        write_byte(0)  // ED
        write_byte(0)  // D1
        write_byte(0)  // D2
        message_end()
}


}


public client_infochanged(id)
{
if (is_user_connected(id))
{
        if (g_GameMode != 6 && id != g_Simon)  set_user_info(id, "model", "ujbm_v1")
}

     
}

public cvar_result_func(id, const cvar[], const value[])
{
 
  if (value[0] != '0') Showcl_min(id)
 
}



public cmd_zmday(id)
{
if (is_user_admin(id)) cmd_game_zombie()       
}


public cmd_game_zombie()
{
jail_open()
g_GameMode = 2
g_BoxStarted = 0
server_cmd("jb_block_weapons")
g_Simon = 0
g_nogamerounds = 0

new Players[32]
new playerCount, i
get_players(Players, playerCount, "ac")
for (i=0; i<playerCount; i++)
{
        if (is_user_connected(Players[i]))
                if ( cs_get_user_team(Players[i]) == CS_TEAM_T)
                {
                        player_strip_weapons(Players[i])
                        set_user_maxspeed(Players[i], 200.0)
                        set_user_health(Players[i], 800)
                        give_item(Players[i], "item_assaultsuit")
                       
                        cs_set_user_nvg (Players[i],true);
                        //engclient_cmd(Players[i], "nightvision")
                       
                        entity_set_int(Players[i], EV_INT_body, 4)
                       
                        set_bit(g_PlayerZMHands, Players[i])
                        clear_bit(g_PlayerFist, Players[i])
                        clear_bit(g_PlayerCrowbar, Players[i])
                        player_glow(Players[i], g_Colors[1])
                } else
                if (cs_get_user_team(Players[i]) == CS_TEAM_CT)
                {
                        strip_user_weapons(Players[i])
                        give_item(Players[i], "weapon_m3")
                        give_item(Players[i], "weapon_hegrenade")
                        give_item(Players[i], "weapon_flashbang")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        give_item(Players[i], "ammo_buckshot")
                        set_user_health(Players[i], 100)
                        set_user_maxspeed(Players[i], 250.0)
                        set_bit(g_Fonarik, Players[i])
                        client_cmd(Players[i], "impulse 100")
                        player_glow(Players[i], g_Colors[2])
                }
        }
       
       
       
       
       
       
       
emit_sound(0, CHAN_AUTO, "ambience/the_horror2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
new effect = get_pcvar_num (gp_Effects)
if (effect > 0)
{
set_lights("b")
if (effect > 1) fog(true)
}

client_cmd( 0, "spk ^"%s^"", zombiemusic );
player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_ZM")
       
       
       
return PLUGIN_CONTINUE
}

public cmd_game_godday()
{
        jail_open()
        g_GameMode = 8
        g_BoxStarted = 0
        server_cmd("jb_block_weapons")
        g_Simon = 0
        g_nogamerounds = 0
       
        new j = 0
       
        new players[32], num, player;
        get_players( players, num, "a" );
       
        for( new i = 0; i < num; i++ )
        {
                player = players[i];
                strip_user_weapons(player)       
                give_item(player, "weapon_knife")
               
                switch( cs_get_user_team( player ) )
                {
                        case CS_TEAM_CT:
                        {
                                god_menu(player)
                               
                        }
                       
                        case CS_TEAM_T:
                        {
                                set_user_health( player, 600 );
                               
                                j = random_num(0, sizeof(_WeaponsFree) - 1)
                               
                                give_item(player, _WeaponsFree[j])
                                cs_set_user_bpammo(player, _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])
                        }
                }
               
        }
       
        player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_GODDAY")       
}

public ShowWeaponMenu(id)
{
new menu = menu_create( "Choose Your Weapon:",  "Weapon_MenuHandler" );
menu_additem( menu, "M4a1 + Usp", "1", 0 );
menu_additem( menu, "AK-47 + Glock", "2", 0 );
menu_additem( menu, "AUG", "3", 0 );
menu_additem( menu, "AWP + Deagle", "4", 0 )
menu_additem( menu, "MP5 + Scout", "5", 0 );
menu_additem( menu, "M249 + Elites", "6", 0);
menu_display( id, menu, 0 );
}

public Weapon_MenuHandler( id, menu, item )
{
        if( !is_user_alive( id ) )
        return PLUGIN_HANDLED;
       
        if( item == MENU_EXIT )
        {
                client_print(id,print_chat, "[Gaming-Power] You don't choose a weapon..Good for you!!")
               
                return PLUGIN_HANDLED;
        }
       
        if( !is_user_alive( id ) )
                return PLUGIN_HANDLED;
       
        new data[6], szName[64];
        new access, callback;
       
        menu_item_getinfo( menu, item, access, data, 5, szName, 63, callback );
       
        new key = str_to_num( data );
       
        player_strip_weapons(id)
       
        switch( key )
        {
                case 1:
                {
                        give_item( id, "weapon_m4a1" );
                        cs_set_user_bpammo( id, CSW_M4A1, 100 );
                        give_item( id, "weapon_usp" );
                        cs_set_user_bpammo( id, CSW_USP, 50 );
                }
               
                case 2:
                {
                        give_item( id, "weapon_ak47" );
                        cs_set_user_bpammo( id, CSW_AK47, 100 );
                        give_item( id, "weapon_glock18" );
                        cs_set_user_bpammo( id, CSW_GLOCK18, 80 );
                }
               
                case 3:
                {
                        give_item( id, "weapon_aug" );
                        cs_set_user_bpammo( id, CSW_AUG, 200 );
                }
               
                case 4:
                {
                        give_item( id, "weapon_awp" );
                        cs_set_user_bpammo( id, CSW_AWP, 100 );
                        give_item( id, "weapon_deagle" );
                        cs_set_user_bpammo( id, CSW_DEAGLE, 25 );
                }
               
                case 5:
                {
                        give_item( id, "weapon_mp5navy" );
                        cs_set_user_bpammo( id, CSW_MP5NAVY, 160 );
                        give_item( id, "weapon_scout" );
                        cs_set_user_bpammo( id, CSW_SCOUT, 90 );
                }
               
                case 6:
                {
                        give_item( id, "weapon_m249" );
                        cs_set_user_bpammo( id, CSW_M249, 300 );
                        give_item( id, "weapon_elite" );
                        cs_set_user_bpammo( id, CSW_ELITE, 100 );
                }
        }
       
        give_item( id, "weapon_hegrenade" );
       
        return PLUGIN_HANDLED;
}

public DanceMenu(id)
{
        new menu2 = menu_create( "Choose Your Optical:",  "Optical_MenuHandler" );
        menu_additem( menu2, "Flashlight", "1" );
        menu_additem( menu2, "Nightvision", "2" );
        menu_display( id, menu2, 0 );
}

public Optical_MenuHandler( id, menu2, item )
{
        if( !is_user_alive( id ) )
                return PLUGIN_HANDLED;
       
        if( !is_user_alive( id ) )
                return PLUGIN_HANDLED;
       
        new data[6], szName[64];
        new access, callback;
       
        menu_item_getinfo( menu2, item, access, data, 5, szName, 63, callback );
       
        new key = str_to_num( data );
       
        player_strip_weapons(id)
       
        switch( key )
        {
                case 1:
                {
                        set_bit(g_Fonarik, id)
                        client_cmd(id, "impulse 100")
                }
               
                case 2:
                {
                        cs_set_user_nvg (id,true);
                        engclient_cmd(id, "nightvision")
                }
        }
       
        return PLUGIN_HANDLED;
}

public cmd_game_danceday()
{
        jail_open()
        g_GameMode = 11
        g_BoxStarted = 0
        server_cmd("jb_block_weapons")
        g_Simon = 0
        g_nogamerounds = 0
       
        new players[32], num, player;
        get_players( players, num, "a" );
       
        for( new i = 0; i < num; i++ )
        {
                player = players[i];
                strip_user_weapons(player)       
                give_item(player, "weapon_knife")
                set_lights("b")
               
                switch( cs_get_user_team( player ) )
                {
                        case CS_TEAM_CT:
                        {
                                set_user_godmode( player, 1);
                                DanceMenu(player)
                        }
                       
                        case CS_TEAM_T:
                        {
                                set_user_health( player, 100 );
                        }
                }
               
        }
       
        set_task( 0.1, "Dance", TASK_DANCEDAY, _, _, "b" );
        client_cmd( 0, "spk ^"%s^"", dancesound );
        player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_DANCEDAY")
}

public Dance()
{
        new players[32], num, player;
        get_players( players, num, "a" );
       
        for( new i = 0; i < num; i++ )
        {
                player = players[i];
               
                if(cs_get_user_team(player) == CS_TEAM_T)
                {
                        set_user_rendering( player, kRenderFxGlowShell, random_num( 0,256 ), random_num( 0,256 ), random_num( 0,256 ), kRenderNormal, 25 );
                }
                else
                        return PLUGIN_HANDLED;
               
        }
       
        return PLUGIN_HANDLED;
}

public god_menu(id)
{
        new godmenu = menu_create("\rGods DAY !!!:", "sub_godday_menu")
       
        menu_additem(godmenu, "\wZeus \r[3000HP + All Grenades + Deagle + Sniper]", "1", 0);
        menu_additem(godmenu, "\wGod Of War \r[1000HP + Deagle+Mp5+M249+Awp]", "2", 0);
        menu_additem(godmenu, "\wJupiter \r[m4a1+ 2000HP + Knife]", "3", 0);
        menu_additem(godmenu, "\wLove God \r[5000HP + Knife + Glock]", "4", 0);
       
        menu_setprop(godmenu, MPROP_EXIT, MEXIT_ALL);
        menu_display(id, godmenu, 0);
}
public sub_godday_menu(id, godmenu, item)
{
        if (item == MENU_EXIT)
        {
                menu_destroy(godmenu);
                return PLUGIN_HANDLED;
        }
       
        new data[6], szName[64];
        new access, callback;
       
        menu_item_getinfo(godmenu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
       
        new Key = str_to_num(data);
       
        switch (Key)
        {
                case 1:
                {
                        GOD1(id)
                }
                case 2:
                {
                        GOD2(id)
                }
                case 3:
                {
                        GOD3(id)
                }
                case 4:
                {
                        GOD4(id)
                }
        }
        menu_destroy(godmenu);
        return PLUGIN_HANDLED;
}

public GOD1(id)
{
        fm_strip_user_weapons(id)
        fm_set_user_health(id, 3000)
        fm_give_item(id, "weapon_flashbang")
        fm_give_item(id, "weapon_hegrenade")
        fm_give_item(id, "weapon_smokegrenade")
        fm_give_item(id, "weapon_deagle")
        fm_give_item(id, "weapon_awp")
       
        cs_set_user_bpammo(id, CSW_FLASHBANG, 999)
        cs_set_user_bpammo(id, CSW_HEGRENADE, 999)
        cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 999)
        cs_set_user_bpammo(id, CSW_DEAGLE, 9999)
        cs_set_user_bpammo(id, CSW_AWP, 9999)
}

public GOD2(id)
{
        fm_strip_user_weapons(id)
        fm_set_user_health(id, 1000)
        fm_give_item(id,"weapon_deagle")                 
        fm_give_item(id,"weapon_mp5navy")
        fm_give_item(id,"weapon_awp")           
        fm_give_item(id,"weapon_m249")
       
        cs_set_user_bpammo(id, CSW_DEAGLE, 9999)
        cs_set_user_bpammo(id, CSW_MP5NAVY, 9999)
        cs_set_user_bpammo(id, CSW_AWP, 9999)
        cs_set_user_bpammo(id, CSW_M249, 9999)
}

public GOD3(id)
{
        fm_strip_user_weapons(id)
        fm_set_user_health(id, 2000)
        fm_give_item(id, "weapon_m4a1")
        fm_give_item(id, "weapon_knife")
       
        cs_set_user_bpammo(id, CSW_M4A1, 9999)
}

public GOD4(id)
{
        fm_set_user_health(id, 5000)
        fm_give_item(id, "weapon_glock18")
        fm_give_item(id, "weapon_knife")
        cs_set_user_bpammo(id, CSW_GLOCK18, 9999)
}

public cmd_game_awpday()
{
jail_open()
g_GameMode = 7
g_BoxStarted = 0
server_cmd("jb_block_weapons")
g_Simon = 0
g_nogamerounds = 0

new players[32], num, player;
get_players( players, num, "a" );

for( new i = 0; i < num; i++ )
{
        player = players[i];
        strip_user_weapons(player)       
        give_item(player, "weapon_knife")
       
        switch( cs_get_user_team( player ) )
        {
                case CS_TEAM_CT:
                {
                        set_user_health( player, 350 );
                        set_user_armor( player, 100 );
                        give_item( player, "weapon_awp" );
                        cs_set_user_bpammo( player, CSW_AWP, 50 );
                       
                }
               
                case CS_TEAM_T:
                {
                        set_user_health( player, 100 );
                        set_user_armor( player, 100 );
                        give_item( player, "weapon_awp" );
                        cs_set_user_bpammo( player, CSW_AWP, 20 );
                }
        }
       
}

server_cmd( "sv_gravity 300" );
player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_AWPDAY")
}

public cmd_game_riotday()
{
        jail_open()
        g_GameMode = 9
        g_BoxStarted = 0
        server_cmd("jb_block_weapons")
        g_Simon = 0
        g_nogamerounds = 0
       
        new j = 0
       
        new players[32], num, player;
        get_players( players, num, "a" );
       
        for( new i = 0; i < num; i++ )
        {
                player = players[i];
                strip_user_weapons(player)       
                give_item(player, "weapon_knife")
               
                set_user_health( player, 100 );
               
                switch( cs_get_user_team( player ) )
                {
                        case CS_TEAM_CT:
                        {
                                ShowWeaponMenu(player)
                               
                        }
                       
                        case CS_TEAM_T:
                        {
                                j = random_num(0, sizeof(_WeaponsFree) - 1)
                               
                                give_item(player, _WeaponsFree[j])
                                cs_set_user_bpammo(player, _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])
                        }
                }
               
        }
       
        client_cmd( 0, "spk ^"%s^"", warsound)
        player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_RIOTDAY")
}

public cmd_game_space()
{
        jail_open()
        g_GameMode = 10
        g_BoxStarted = 0
        server_cmd("jb_block_weapons")
        g_Simon = 0
        g_nogamerounds = 0
       
        new players[ 32 ], num, player;
        get_players( players, num, "a" );
       
        for( new i = 0; i < num; i++ )
        {
                player = players[ i ];
                player_strip_weapons( player );
                set_user_rendering( player );
                set_user_footsteps( player, 0 );
                set_user_gravity( player );
                set_user_health(player, 100);
               
                if( cs_get_user_team( player ) == CS_TEAM_CT )
                {
                        give_item( player, "weapon_awp" );
                        cs_set_user_bpammo( player, CSW_AWP, 200 );
                }
               
                else
                {
                        give_item( player, "weapon_scout" );
                        cs_set_user_bpammo( player, CSW_SCOUT, 200 );
                }
               
        }
        server_cmd( "sv_gravity 300" );
        client_cmd( 0, "spk ^"%s^"", spacesound );
        player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_SPACEDAY")
}

public cmd_hns_start()
{
        server_cmd("jb_unblock_weapons")
        new Players[32]
        new playerCount, i
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
                if (cs_get_user_team(Players[i]) == CS_TEAM_T)
                {
                        give_item(Players[i], "weapon_knife")
                        current_weapon(Players[i])
                        give_item(Players[i], "weapon_flashbang")
                        give_item(Players[i], "weapon_smokegrenade")
                        set_user_maxspeed(Players[i], 300.0)
                        set_user_health(Players[i], 100)
                }
                else
                {
                        give_item(Players[i], "weapon_knife")
                        current_weapon(Players[i])
                        give_item(Players[i], "weapon_smokegrenade")
                        set_bit(g_Fonarik, Players[i])
                        client_cmd(Players[i], "impulse 100")
                       
                       
                        new j = random_num(0, sizeof(_WeaponsFree) - 1)
                       
                        give_item(Players[i], _WeaponsFree[j])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])
                        /// give two random guns
                       
                        new n = random_num(0, sizeof(_WeaponsFree) - 1)
                        while (n == j) {
                                n = random_num(0, sizeof(_WeaponsFree) - 1)
                        }
                       
                        give_item(Players[i], _WeaponsFree[n])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[n], _WeaponsFreeAmmo[n])
                }
        }
        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
       
        client_cmd( 0, "spk ^"%s^"", hnssound );
        new sz_msg[256];
        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_HNS_START")
        client_print(0, print_center , sz_msg)
       
        return PLUGIN_CONTINUE
}



public  cmd_game_hns()
{
       
        g_nogamerounds = 0
        g_BoxStarted = 0
        jail_open()
        g_GameMode = 3
        g_SimonAllowed = 0
        g_Simon = 0
       
       
        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_MENU_GAME_TEXT_HNS")
       
       
        set_lights("b");
        server_cmd("jb_block_weapons")
       
       
        new Players[32]
        new playerCount, i
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
                strip_user_weapons(Players[i])
        }
        set_task(30.0,"cmd_hns_start",TASK_GIVEITEMS)
       
        return PLUGIN_CONTINUE
}


public cmd_shop(id)
       
{


static roundloop
roundloop = floatround(get_pcvar_float(gp_RetryTime) / 2)

if(!is_user_alive(id) ||  g_GameMode >= 2 || (g_RoundStarted >= roundloop)) return PLUGIN_CONTINUE


static menu, menuname[32], option[64]
if(cs_get_user_team(id) == CS_TEAM_T)
{
       
        if (strlen(Tallowed) <= 0 ) return PLUGIN_CONTINUE
       
        formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "UJBM_MENU_SHOP")
        menu = menu_create(menuname, "shop_choice_T")
       
        if (containi(Tallowed,"a") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_CROWBAR",CROWBARCOST)
                menu_additem(menu, option, "1", 0)
        }
       
        if (containi(Tallowed,"b") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_FLASHBANG", FLASHCOST)
                menu_additem(menu, option, "2", 0)
        }
       
        if (containi(Tallowed,"c") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_SMOKE", SMOKECOST)
                menu_additem(menu, option, "3", 0)
        }
       
        if (containi(Tallowed,"d") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_HE", HECOST)
                menu_additem(menu, option, "4", 0)
        }
       
        if (containi(Tallowed,"e") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_SHIELD",SHIELDCOST)
                menu_additem(menu, option, "5", 0)
        }
       
        if (containi(Tallowed,"f") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_FD", FDCOST)
                menu_additem(menu, option, "6", 0)
        }
       
        if (containi(Tallowed,"g") >= 0)
        {
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_FLASHLIGHT", FLASHLIGHTCOST)
                menu_additem(menu, option, "7", 0)
        }
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_NOSHOW")
        menu_additem(menu, option, "8", 0)
       
       
        menu_display(id, menu)
}
else
        if(cs_get_user_team(id) == CS_TEAM_CT)
        {
               
                if (strlen(CTallowed) <= 0 ) return PLUGIN_CONTINUE
               
                formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "UJBM_MENU_SHOP")
                menu = menu_create(menuname, "shop_choice_CT")
               
                if (containi(CTallowed,"a") >= 0)
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_DEAGLE", CTDEAGLECOST)
                        menu_additem(menu, option, "1", 0)
                }
               
                if (containi(CTallowed,"b") >= 0)
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_FLASHBANG_CT", CTFLASHCOST)
                        menu_additem(menu, option, "2", 0)
                }
               
                if (containi(CTallowed,"c") >= 0)
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_SMOKE_CT",CTSMOKECOST)
                        menu_additem(menu, option, "3", 0)
                }
               
                if (containi(CTallowed,"d") >= 0)
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_HP",HPCOST)
                        menu_additem(menu, option, "4", 0)
                }
               
                if (containi(CTallowed,"e") >= 0)
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_NVG",NVGCOST)
                        menu_additem(menu, option, "5", 0)
                }
               
                if (containi(CTallowed,"f") >= 0)
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_FLASHLIGHT",FLASHLIGHTCOST)
                        menu_additem(menu, option, "6", 0)
                }
               
                formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_MENU_SHOP_NOSHOW")
                menu_additem(menu, option, "7", 0)
               
               
                menu_display(id, menu)
               
        }
return PLUGIN_HANDLED
}


public shop_choice_T(id, menu, item)
{
        if(item == MENU_EXIT || !is_user_alive(id) ||  g_GameMode >= 2 )
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED
        }
       
        static dst[32], data[5], access, callback
        new money = cs_get_user_money (id);
        new sz_msg[256];
        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('2'):
                {
                        if (money >= FLASHCOST)
                        {
                                cs_set_user_money (id, money - FLASHCOST, 0)
                                give_item(id, "weapon_flashbang")
                        }
                       
                        else
                               
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
       
        case('4'):
        {
                if (money >= HECOST)
                {
                        cs_set_user_money (id, money - HECOST, 0)
                        give_item(id, "weapon_hegrenade")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('3'):
        {
                if (money >= SMOKECOST)
                {
                        cs_set_user_money (id, money - SMOKECOST, 0)
                        give_item(id, "weapon_smokegrenade")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('5'):
        {
                if (money >= SHIELDCOST)
                {
                        cs_set_user_money (id, money - SHIELDCOST, 0)
                        give_item(id, "weapon_shield")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }       
       
       
        case('1'):
        {
                if (money >= CROWBARCOST)
                {
                        cs_set_user_money (id, money - CROWBARCOST, 0)
                        set_bit(g_PlayerCrowbar, id)
                        current_weapon(id)
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }       
       
        case('6'):
        {
                if (money >= FDCOST)
                {
                        cs_set_user_money (id, money - FDCOST, 0)
                        freeday_set(0, id)
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }       
       
        case('7'):
        {
               
                if (money >= FLASHLIGHTCOST)
                {
                        cs_set_user_money (id, money - FLASHLIGHTCOST, 0)
                        set_bit(g_Fonarik, id)
                        client_cmd(id, "impulse 100")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
               
               
               
        }       
       
        case('8'):
        {
                set_bit(g_NoShowShop, id)
                formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_SHOWHOW")
                client_print(id, print_center , sz_msg)
               
        }       
       
       
       
       
       
       
       
}
        return PLUGIN_HANDLED
}


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

static dst[32], data[5], access, callback
new money = cs_get_user_money (id);
new sz_msg[256];

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'):
        {
                if (money >= CTDEAGLECOST)
                {
                        cs_set_user_money (id, money - CTDEAGLECOST, 0)
                        give_item(id, "weapon_deagle")
                        give_item(id, "ammo_50ae")
                        give_item(id, "ammo_50ae")
                        give_item(id, "ammo_50ae")
                        give_item(id, "ammo_50ae")
                        give_item(id, "ammo_50ae")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('2'):
        {
                if (money >= CTFLASHCOST)
                {
                        cs_set_user_money (id, money - CTFLASHCOST, 0)
                        give_item(id, "weapon_flashbang")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('3'):
        {
                if (money >= CTSMOKECOST)
                {
                        cs_set_user_money (id, money - CTSMOKECOST, 0)
                        give_item(id, "weapon_smokegrenade")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('4'):
        {
                if (money >= HPCOST)
                {
                        cs_set_user_money (id, money - HPCOST, 0)
                        set_user_health(id, 150)
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('5'):
        {
                if (money >= NVGCOST)
                {
                        cs_set_user_money (id, money - NVGCOST, 0)
                        cs_set_user_nvg (id,true);
                        engclient_cmd(id, "nightvision")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
        }
       
        case('6'):
        {
                if (money >= FLASHLIGHTCOST)
                {
                        cs_set_user_money (id, money - FLASHLIGHTCOST, 0)
                        set_bit(g_Fonarik, id)
                        client_cmd(id, "impulse 100")
                }
               
                else
                       
                {
                        formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_NOT_ENOUGH")
                        client_print(id, print_center , sz_msg)
                }
               
               
        }               
       
        case('7'):
        {
                set_bit(g_NoShowShop, id)
                formatex(sz_msg, charsmax(sz_msg), "^x03%L", LANG_SERVER, "UJBM_MENU_SHOP_SHOWHOW")
                client_print(id, print_center , sz_msg)
               
        }
       
       
}
if (!get_bit(g_NoShowShop, id)) cmd_shop(id)
return PLUGIN_HANDLED
}







/*
public cmd_football(id)
{
if (g_Simon == id || is_user_admin(id))
{
        player_hudmessage(0, 1, 8.0, _, "%L", LANG_SERVER, "UJBM_FOOTBALL")
        new n = 0;
        new name[32], szStatus[64]
       
        new bool:orange = true
        new Players[32]
       
        new playerCount, i
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
               
                if ( cs_get_user_team(Players[i]) == CS_TEAM_T && is_user_alive(Players[i]) && !get_bit(g_PlayerFreeday, id))
                {
                        if (orange)
                        {               
                                entity_set_int(Players[i], EV_INT_skin, 0)
                                orange=false;
                        }
                        else
                        {
                                entity_set_int(Players[i], EV_INT_skin, 1)
                                orange=true;
                        }
                       
                }
        }
        new origin[3]
        get_user_origin(id,origin)  // Gets the current location the player is at
       
       
        set_task( 5.0 , "teleport" , 0 , origin , 4 );
       
       
        return PLUGIN_HANDLED
}
}

*/



public enable_player_voice(id, player)
{
static src[32], dst[32]
get_user_name(player, dst, charsmax(dst))


if (!get_bit(g_PlayerVoice, player))
       
{
        set_bit(g_PlayerVoice, player)
        if(0 < id <= g_MaxClients)
        {
                get_user_name(id, src, charsmax(src))
                player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_GUARD_VOICEENABLED", src, dst)
        }
}

else
       
{
        clear_bit(g_PlayerVoice, player)
        if(0 < id <= g_MaxClients)
        {
                get_user_name(id, src, charsmax(src))
                player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_GUARD_VOICEDISABLED", src, dst)
        }               
       
}



}



public voice_enable_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)
enable_player_voice(id, player)       
cmd_simonmenu(id)
return PLUGIN_HANDLED
}
public cmd_simon_micr(id)
{
if (g_Simon == id || is_user_admin(id))
{
        menu_players(id, CS_TEAM_T, 0, 1, "voice_enable_select", "%L", LANG_SERVER, "UJBM_MENU_VOICE")
       
}
}


public  na2team(id) {

if (g_Simon == id || is_user_admin(id))
{
       
        new s = get_pcvar_num (gp_ShowColor)
        new playerCount, i
        new Players[32]
        new bool:orange = true
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
               
                if ( cs_get_user_team(Players[i]) == CS_TEAM_T && is_user_alive(Players[i]) && !get_bit(g_PlayerFreeday, Players[i]) && !get_bit(g_PlayerWanted, Players[i]))
                {
                        if (orange)
                        {               
                                entity_set_int(Players[i], EV_INT_skin, 0)
                                orange=false;
                                if (s == 1) show_color(Players[i])
                        }
                        else
                        {
                                entity_set_int(Players[i], EV_INT_skin, 1)
                                orange=true;
                                if (s == 1) show_color(Players[i])
                        }
                       
                }
        }
       
       
}
return PLUGIN_HANDLED
}


bool:GameAllowed()

{
if (g_GameMode > 1 || g_nogamerounds < get_pcvar_num(gp_NoGame))
return false       

return true;

}






public  cmd_simonmenu(id)
{


if (g_Simon == id || is_user_admin(id))
{
        static menu, menuname[32], option[64]
       
        formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "UJBM_MENU_SIMONMENU")
        menu = menu_create(menuname, "simon_choice")
       
       
        formatex(option, charsmax(option), "\r%L\w", LANG_SERVER, "UJBM_MENU_SIMONMENU_OPEN")
        menu_additem(menu, option, "1", 0)
       
       
        formatex(option, charsmax(option), "\g%L\w", LANG_SERVER, "UJBM_MENU_SIMONMENU_FD")
        menu_additem(menu, option, "2", 0)
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_SIMON_GAMES")
        menu_additem(menu, option, "3", 0)
       
        formatex(option, charsmax(option), "\y%L\w", LANG_SERVER, "UJBM_MENU_SIMONMENU_GONG")
        menu_additem(menu, option, "4", 0)
       
        formatex(option, charsmax(option), "%L",LANG_SERVER, "UJBM_MENU_BIND",bindstr)
        menu_additem(menu, option, "5", 0)
       
        menu_display(id, menu)
       
       
}
return PLUGIN_HANDLED
}


public cmd_simongamesmenu(id)
{
        new gamemenu = menu_create("\r[\yG\waming\r-\yP\wower\r] Games\r:", "simon_gameschoice");
        menu_additem(gamemenu, "Alien\y(\rInvisible\y)", "1", 0);
        menu_additem(gamemenu, "Zombie Day", "2", 0);
        menu_additem(gamemenu, "Hide'n'Seek Day", "3", 0);
        menu_additem(gamemenu, "Alien\y(\rUsual\y)", "4", 0);
        menu_additem(gamemenu, "Box", "5", 0);
        menu_additem(gamemenu, "Awp Day", "6", 0);
        menu_additem(gamemenu, "Space Day", "7", 0);
        menu_additem(gamemenu, "God Day", "8", 0);
        menu_additem(gamemenu, "Dance Day", "9", 0);
        menu_additem(gamemenu, "Riot Day", "10", 0);
        menu_setprop(gamemenu, MPROP_EXIT, MEXIT_ALL );
        menu_display(id, gamemenu, 0);
}

public simon_gameschoice(id, gamemenu, item)
{
if(item == MENU_EXIT || g_GameMode > 1)
{
        menu_destroy(gamemenu)
        cmd_simonmenu(id)
        return PLUGIN_HANDLED
}

new data[6], szName[64];
new access, callback;

menu_item_getinfo( gamemenu, item, access, data, 5, szName, 63, callback );

new key = str_to_num( data );

switch( key )
{
        case 1:
        {
               
                if (GameAllowed() || is_user_admin(id)) cmd_game_alien2()
        }
       
        case 2:
        {
                if (GameAllowed() || is_user_admin(id))cmd_game_zombie()
        }
       
        case 3:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_hns()
        }
       
        case 4:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_alien()
        }
       
        case 5:
        {
                if (id == g_Simon || is_user_admin(id)) cmd_box(id)
        }
       
        case 6:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_awpday()
        }
       
        case 7:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_space()
        }
       
        case 8:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_godday()
        }
       
        case 9:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_danceday()
        }
       
        case 10:
        {
                if (GameAllowed() || is_user_admin(id)) cmd_game_riotday()
        }
}
menu_destroy(gamemenu);
return PLUGIN_HANDLED;
}


public  football_choice(id, menu, item)
{
if(item == MENU_EXIT || (g_Simon != id && !is_user_admin(id)))
{
        menu_destroy(menu)
        cmd_simonmenu(id)
        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)

switch(data[0])
{
       
        case('1'):
        {
               
                if (g_Simon == id || is_user_admin(id)) server_cmd("jb_football")
        }
        case('2'):
        {
               
                if (g_Simon == id || is_user_admin(id)) server_cmd("jb_spawnball")
        }
       
}
cmd_footballmenu(id)
return PLUGIN_HANDLED;
}



public cmd_footballmenu(id)

{
if ((g_Simon == id || is_user_admin(id)) && g_GameMode <= 1)
{
        static menu, menuname[32], option[64]
        formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "UJBM_FOOTBALL")
        menu = menu_create(menuname, "football_choice")
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_FOOTBALL_START")
        menu_additem(menu, option, "1", 0)
       
        formatex(option, charsmax(option), "%L", LANG_SERVER, "UJBM_FOOTBALL_BALLSPAWN")
        menu_additem(menu, option, "2", 0)
       
        menu_display(id, menu)
}



return PLUGIN_HANDLED

}

stock cs_set_user_team2(index, {CsTeams,_}:team, update = 1)
{
if (index == g_Simon)
{
g_Simon = 0
hud_status(0)
}
set_pdata_int(index, OFFSET_TEAM, _:team)
set_pev(index, pev_team, _:team)

if(update)
{
static _msg_teaminfo; if(!_msg_teaminfo) _msg_teaminfo = get_user_msgid("TeamInfo")
static teaminfo[][] = { "UNASSIGNED", "TERRORIST", "CT", "SPECTATOR" }

message_begin(MSG_ALL, _msg_teaminfo)
write_byte(index)
write_string(teaminfo[_:team])
message_end()
}
return 1
}









public  simon_choice(id, menu, item)
{
if(item == MENU_EXIT || !(id == g_Simon || is_user_admin(id)) )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new szName[32]
get_user_name(id, szName, charsmax(szName)) 

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'):
{
        jail_open()
        cmd_simonmenu(id)
        client_print(0, print_chat, "[Gaming-Power] '%s' has opened the cells.", szName)
       
}
case('2'): cmd_freeday(id)
                case('3'): {
                        cmd_simongamesmenu(id)
                }
                case('4'):{
                        if(g_Simon == 1)
                        {
                                emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                                cmd_simonmenu(id)
                        }
                        else if(g_Simon == 0)
                        {
                                client_print(id, print_chat, "[Gaming-Power] Only simon have access to this.", szName)
                        }
                }
                case('5'): {
                        client_cmd(id,"bind ^"%s^" ^"say /menu^"", bindstr)
                }
        }
       
return PLUGIN_HANDLED
}



public  cmd_game_alien()
{
        if (g_Simon == 0) return PLUGIN_HANDLED
       
        g_BoxStarted = 0
        g_nogamerounds = 0
        jail_open()
        g_GameMode = 4
        server_cmd("jb_block_weapons")
        hud_status(0)
        new j = 0
        new Players[32]
        new playerCount, i
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
                if ( g_Simon != Players[i])
                {
                        if (cs_get_user_team(Players[i]) == CS_TEAM_CT)
                        {
                                set_bit(g_BackToCT, Players[i])
                                cs_set_user_team2(Players[i], CS_TEAM_T)
                        }                       
                        strip_user_weapons(Players[i])
                       
                        j = random_num(0, sizeof(_WeaponsFree) - 1)
                       
                        give_item(Players[i], "weapon_knife")
                        give_item(Players[i], _WeaponsFree[j])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])
                }
                else
                {
                        set_user_maxspeed(Players[i], 400.0)
                        strip_user_weapons(Players[i])
                        entity_set_int(Players[i], EV_INT_body, 5)
                        set_user_health(Players[i], 130*playerCount)
                        give_item(Players[i], "item_assaultsuit")
                        give_item(Players[i], "item_longjump")
                        give_item(Players[i], "weapon_knife")
                        set_bit(g_PlayerCrowbar, Players[i])
                        current_weapon(Players[i])
                       
                }
               
               
        }
       
        new effect = get_pcvar_num (gp_Effects)
        if (effect > 0)
        {
                set_lights("b")
                if (effect > 1) fog(true)
        }
        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        return PLUGIN_HANDLED
}




public radar_alien()
{
        new origin[3]
        get_user_origin(g_Simon,origin)
       
        message_begin(MSG_ALL, gmsgBombDrop, {0,0,0}, 0)
        write_coord(origin[0])        //X Coordinate
        write_coord(origin[1])        //Y Coordinate
        write_coord(origin[2])        //Z Coordinate
        write_byte(0)                        //?? This byte seems to always be 0...so, w/e
        message_end()       
}


public give_items_alien()
{
       
        give_item(g_Simon, "item_assaultsuit")
        give_item(g_Simon, "item_longjump")
        give_item(g_Simon, "weapon_knife")
        set_bit(g_PlayerCrowbar, g_Simon)
        current_weapon(g_Simon)
       
}





public  cmd_game_alien2()
{
        if (g_Simon == 0) return PLUGIN_HANDLED
        g_nogamerounds = 0
        g_BoxStarted = 0
        jail_open()
        g_GameMode = 5
        server_cmd("jb_block_weapons")
        server_cmd("jb_block_teams")
        hud_status(0)
       
        new Players[32]
        new playerCount, i
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
               
                strip_user_weapons(Players[i])
                if ( g_Simon != Players[i])
                {
                        if (cs_get_user_team(Players[i]) == CS_TEAM_CT)
                        {
                                set_bit(g_BackToCT, Players[i])
                                cs_set_user_team2(Players[i], CS_TEAM_T)
                        }
                        give_item(Players[i], "weapon_knife")
                        new j = random_num(0, sizeof(_WeaponsFree) - 1)
                       
                        give_item(Players[i], _WeaponsFree[j])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])
                        /// give two random guns
                       
                        new n = random_num(0, sizeof(_WeaponsFree) - 1)
                        while (n == j) {
                                n = random_num(0, sizeof(_WeaponsFree) - 1)
                        }
                       
                        give_item(Players[i], _WeaponsFree[n])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[n], _WeaponsFreeAmmo[n])
                }
               
        }
        set_user_rendering(g_Simon, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 )
        message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, g_Simon)
        write_short(~0)
        write_short(~0)
        write_short(0x0004) // stay faded
        write_byte(ALIEN_RED)
        write_byte(ALIEN_GREEN)
        write_byte(ALIEN_BLUE)
        write_byte(100)
        message_end()
        set_user_maxspeed(g_Simon, 320.0)
        entity_set_int(g_Simon, EV_INT_body, 5)
        new hp = get_pcvar_num(gp_GameHP)
        if (hp < 20) hp = 200
       
        set_user_health(g_Simon, hp*playerCount)
        set_task(20.0, "give_items_alien", TASK_GIVEITEMS)
       
        set_lights("z")
        emit_sound(0, CHAN_VOICE, "alien_alarm.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
        set_task(2.5, "radar_alien", 666, _, _, "b")
        set_task(5.0, "stop_sound")
       
        return PLUGIN_HANDLED
}



public  cmd_game_gordon()
{
        if (g_Simon == 0) return PLUGIN_HANDLED
        g_nogamerounds = 0
        g_BoxStarted = 0
        jail_open()
        g_GameMode = 6
        server_cmd("jb_block_weapons")
        server_cmd("jb_block_teams")
        hud_status(0)
       
        new Players[32]
        new playerCount, i
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
                strip_user_weapons(Players[i])
                if ( g_Simon != Players[i])
                {
                        if (cs_get_user_team(Players[i]) == CS_TEAM_CT)
                        {
                                set_bit(g_BackToCT, Players[i])
                                cs_set_user_team2(Players[i], CS_TEAM_T)
                        }
                        give_item(Players[i], "weapon_knife")
                        new j = random_num(0, sizeof(_WeaponsFree) - 1)
                       
                        give_item(Players[i], _WeaponsFree[j])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[j], _WeaponsFreeAmmo[j])
                        /// give two random guns
                       
                        new n = random_num(0, sizeof(_WeaponsFree) - 1)
                        while (n == j) {
                                n = random_num(0, sizeof(_WeaponsFree) - 1)
                        }
                       
                        give_item(Players[i], _WeaponsFree[n])
                        cs_set_user_bpammo(Players[i], _WeaponsFreeCSW[n], _WeaponsFreeAmmo[n])
                }
               
        }
       
        //entity_set_int(g_Simon, EV_INT_body, 1)
        //entity_set_int(g_Simon, EV_INT_skin, 0)
        //client_cmd(g_Simon,"model gordon");
        set_user_info(g_Simon, "model", "gordon")
        /*        entity_set_int(g_Simon, EV_INT_skin, 0)
        entity_set_int(g_Simon, EV_INT_body, 1)
        entity_set_int(g_Simon, EV_INT_fixangle, 1);
        entity_set_int(g_Simon, EV_INT_playerclass, 1);
        */
       
       
       
        new hp = get_pcvar_num(gp_GameHP)
        if (hp < 20) hp = 200
       
        set_user_maxspeed(g_Simon, 320.0)
        set_user_health(g_Simon,  hp*playerCount)
        set_task(5.0, "give_items_gordon", TASK_GIVEITEMS)
       
        set_lights("z")
        emit_sound(0, CHAN_VOICE, "alien_alarm.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
        set_task(5.0, "stop_sound")
       
        return PLUGIN_HANDLED
}

public give_items_gordon()
{
        //give_item(g_Simon, "weapon_knife")
        give_item(g_Simon, "weapon_flashbang")
        current_weapon_fl(g_Simon)
}



public  cmd_punish_ct(id, menu, item)
{
       
        if(item == MENU_EXIT ||( g_Simon != id &&!is_user_admin(id)))
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED
        }
       
        static dst[32],src[32], data[5], player, access, callback
        menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
        player = str_to_num(data)
        if (g_Simon == player) return PLUGIN_CONTINUE
        set_bit(g_BackToCT,player)
        cs_set_user_team2(player, CS_TEAM_T)
       
        strip_user_weapons(player)
        give_item(player, "weapon_knife")
        current_weapon(player)
        get_user_name(player, dst, charsmax(dst))
        get_user_name(id, src, charsmax(src))
        player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "UJBM_SIMON_PUNISH", src, dst,dst)
       
       
       
       
       
       
       
        return PLUGIN_HANDLED
}



public chooseteamfunc(id)
{
        if (g_GameMode == 4 || g_GameMode == 5) return PLUGIN_HANDLED;
        return PLUGIN_CONTINUE
}


public drop(id)
{
        if (get_bit(g_PlayerCrowbar,id) && (get_user_weapon(id) == CSW_KNIFE))
        {
                clear_bit(g_PlayerCrowbar, id)
                current_weapon(id)
                spawn_crowbar(id)
                return PLUGIN_HANDLED
        }
       
        return PLUGIN_CONTINUE       
}


public spawn_crowbar(id)
{
        new  ent
        new Float:where[3]
       
        ent = create_entity("info_target")
        set_pev(ent, pev_classname, "crowbar")
        set_pev(ent, pev_solid, SOLID_TRIGGER)
        set_pev(ent, pev_movetype, MOVETYPE_BOUNCE)
        entity_set_model(ent, "models/w_crowbar.mdl")
        pev(id, pev_origin, where)
        where[2] += 50.0;
        where[0] += random_float(-20.0, 20.0)
        where[1] += random_float(-20.0, 20.0)
        entity_set_origin(ent, where)
        where[0] = 0.0
        where[2] = 0.0
        where[1] = random_float(0.0, 180.0)
        entity_set_vector(ent, EV_VEC_angles, where)
        velocity_by_aim(id, 200, where)
        entity_set_vector(ent,EV_VEC_velocity,where)
       
       
        return PLUGIN_HANDLED
}


public cr_bar_snd(id, world)
       
{
new Float:v[3]
new Float:volume
entity_get_vector(id, EV_VEC_velocity, v)

v[0] = (v[0] * 0.45)
v[1] = (v[1] * 0.45)
v[2] = (v[2] * 0.45)
entity_set_vector(id, EV_VEC_velocity, v)
volume = get_speed(id) * 0.005;
if (volume > 1.0) volume = 1.0
if (volume > 0.1) emit_sound(id, CHAN_AUTO, "debris/metal2.wav", volume, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_CONTINUE       
}


public crowbar_touch(ent, player)
{
static touch_class[32]

if (!pev_valid(ent))
        return FMRES_IGNORED
pev(ent, pev_classname, touch_class, 31)
       
if (!is_user_alive(player) || is_user_bot(player) || cs_get_user_team(player) == CS_TEAM_CT)
                return FMRES_IGNORED
       
if (equal(touch_class, "crowbar") && g_GameMode <= 3 && !get_bit(g_PlayerCrowbar, player))
        {
                set_bit(g_PlayerCrowbar, player)
                remove_entity(ent)
                if (get_user_weapon(player) == CSW_KNIFE) current_weapon(player)
                emit_sound(player, CHAN_AUTO, "items/gunpickup2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                return FMRES_SUPERCEDE
        }
return FMRES_IGNORED
}


public task_freeday_end()
{
        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        g_GameMode = 1
        set_hudmessage(0, 255, 0, -1.0, 0.35, 0, 6.0, 15.0)
        show_hudmessage(0, "%L", LANG_SERVER, "UJBM_STATUS_ENDFREEDAY")
        new playerCount, i
        new Players[32]
        get_players(Players, playerCount, "ac")
        for (i=0; i<playerCount; i++)
        {
               
                if ( cs_get_user_team(Players[i]) == CS_TEAM_T && is_user_alive(Players[i]) && !get_bit(g_PlayerFreeday, Players[i]) && !get_bit(g_PlayerWanted, Players[i]))
                {
                       
                        entity_set_int(Players[i], EV_INT_skin, random_num(0,2))
                        if (get_pcvar_num (gp_ShowColor) == 1 ) show_color(Players[i])       
                }
        }
       
       
       
        return PLUGIN_CONTINUE
}


/*

public death_event()
{
       
        new id = read_data(2)
        if (g_Simon == id && g_GameMode == 5)
        {
                message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
                write_short(1<<10)
                write_short(1<<10)
                write_short(0x0000) // fade out
                write_byte(ALIEN_RED)
                write_byte(ALIEN_GREEN)
                write_byte(ALIEN_BLUE)
                write_byte(100)
                message_end()
        }
        return PLUGIN_CONTINUE
}
*/



public rocket_touch(id, world)
{
       
       
       
        new Float:location[3]
        new players[32]
        new playercount
        //stop_sound(0)
        entity_get_vector(id,EV_VEC_origin,location)
        emit_sound(id, CHAN_WEAPON, _RpgSounds[2], 0.0, 0.0, SND_STOP, PITCH_NORM)       
        explode(location, SpriteExplosion, 30, 10, 0)
       
        get_players(players,playercount,"a")
       
        for (new i=0; i<playercount; i++)
        {
                new Float:playerlocation[3]
                new Float:resultdistance
               
                pev(players[i], pev_origin, playerlocation)
               
                resultdistance = get_distance_f(playerlocation,location)
               
                if(resultdistance < 450.0)
                {
                        fakedamage(players[i],"RPG",(1000.0 - (2.0*resultdistance)),DMG_BLAST)
                       
                }
        }
       
        emit_sound(id, CHAN_AUTO, _RpgSounds[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
        remove_entity(id)
       
        return PLUGIN_CONTINUE       
}

public current_weapon_fl(id)
{
        if(!is_user_alive(id))
                return PLUGIN_CONTINUE
       
       
        if (g_Duel == 5 || (g_GameMode == 6 && id == g_Simon))
        {
                set_pev(id, pev_viewmodel2, _RpgModels[1])
                set_pev(id, pev_weaponmodel2, _RpgModels[0])       
        }       
       
       
        return PLUGIN_CONTINUE
}

public rpg_touch(id, world)
       
{
new Float:v[3]
new Float:volume
entity_get_vector(id, EV_VEC_velocity, v)

v[0] = (v[0] * 0.45)
v[1] = (v[1] * 0.45)
v[2] = (v[2] * 0.45)
entity_set_vector(id, EV_VEC_velocity, v)
volume = get_speed(id) * 0.005;
if (volume > 1.0) volume = 1.0
if (volume > 0.1) emit_sound(id, CHAN_AUTO, "debris/metal2.wav", volume, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_CONTINUE       
}






public explode(Float:startloc[3], spritename, scale, framerate, flags)
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(3) // TE_EXPLOSION
write_coord(floatround(startloc[0]))
write_coord(floatround(startloc[1]))
write_coord(floatround(startloc[2])) // start location
write_short(spritename) // spritename
write_byte(scale) // scale of sprite
write_byte(framerate) // framerate of sprite
write_byte(flags) // flags
message_end()
}




public rpg_pre(weapon)
{
if (!is_valid_ent(weapon)) return PLUGIN_CONTINUE
new id = entity_get_edict( weapon, EV_ENT_owner )
if (g_Duel == 5 || (g_GameMode == 6 && id == g_Simon))
{
        new  ent
        new Float:where[3]
        new gmsgShake = get_user_msgid("ScreenShake")
        message_begin(MSG_ONE, gmsgShake, {0,0,0}, id)
        write_short(255<< 14 ) //ammount
        write_short(1 << 14) //lasts this long
        write_short(255<< 14) //frequency
        message_end()
       
        ent = create_entity("info_target")
        set_pev(ent, pev_classname, "rpg_missile")
        set_pev(ent, pev_solid, SOLID_TRIGGER)
        set_pev(ent, pev_movetype, MOVETYPE_BOUNCE)
        entity_set_model(ent, "models/rpgrocket.mdl")
        pev(id, pev_origin, where)
        where[2] += 50.0;
        where[0] += random_float(-20.0, 20.0)
        where[1] += random_float(-20.0, 20.0)
        entity_set_origin(ent, where)
        entity_get_vector(id,EV_VEC_angles,where)
        //where[1] = random_float(0.0, 180.0)
        entity_set_vector(ent, EV_VEC_angles, where)
        velocity_by_aim(id, 700, where)
        //entity_set_edict(ent, EV_ENT_aiment, id );
        //where[2] += 200.0;
        entity_set_edict(ent,EV_ENT_owner,id)
        entity_set_vector(ent,EV_VEC_velocity,where)
        message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
        write_byte( TE_BEAMFOLLOW )
        write_short(ent) // entity
        write_short(m_iTrail)  // model
        write_byte( 10 )      // lifeffffff
        write_byte( 8 )        // width
       
        write_byte( 130)      // r, g, b
        write_byte( 130 )    // r, g, b
        write_byte( 130 )      // r, g, b
        write_byte( 196 )        // brightness
        message_end()
        emit_sound(id, CHAN_WEAPON, _RpgSounds[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
        emit_sound(ent, CHAN_WEAPON, _RpgSounds[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
       
        RegisterHamFromEntity(Ham_Think,ent,"fw_rocket_think")
        set_pev(ent, pev_nextthink, get_gametime()+0.25);
       
       
        set_pdata_float( weapon , 46 , 2.5, 4 );
        set_user_weaponanim(id, 2)
       
        //cs_set_weapon_ammo(gun, 2000)
        return HAM_SUPERCEDE
}


return HAM_IGNORED
}

stock set_user_weaponanim(id, anim)
{
entity_set_int(id, EV_INT_weaponanim, anim)
message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, id)
write_byte(anim)
write_byte(entity_get_int(id, EV_INT_body))
message_end()

/*
public rpg_idle(weapon)
{
if (g_Duel == 5)
{
        new id = entity_get_edict( weapon, EV_ENT_owner )
        //set_user_weaponanim(id, 0)
}
return HAM_IGNORED
}
*/
public rpg_reload(weapon)
{
if (g_Duel == 5)
{
        new id = entity_get_edict( weapon, EV_ENT_owner )
        set_user_weaponanim(id, 2)
}
return HAM_IGNORED
}


public cmd_lastrequest1(id)
{
g_Duel = 5       
g_DuelA = id
player_strip_weapons(id)
new gun = give_item(id, _Duel[g_Duel - 4][_entname])
cs_set_weapon_ammo(gun, 1)
set_user_health(id, 2000)
entity_set_int(id, EV_INT_body, 4)
player_glow(id, g_Colors[3])

current_weapon_fl(id)

}

public fw_rocket_think(ent)
{

entity_set_float(ent, EV_FL_nextthink, get_gametime() + 0.25)
new id = entity_get_edict( ent, EV_ENT_owner )
new Float:where[3]
entity_get_vector(id,EV_VEC_angles,where)
entity_set_vector(ent, EV_VEC_angles, where)
velocity_by_aim(id, 700, where)

entity_set_vector(ent,EV_VEC_velocity,where)

return PLUGIN_CONTINUE
}


public help_trollface()
{
new Msg[512];
format(Msg, 511, "%L",LANG_SERVER,"UJBM_HELP_CHAT");
client_print(0,print_chat,Msg)

format(Msg, 511, "^x01Powered by ^x03%s ^x01%s by ^x03%s and remaded by Larisaios",PLUGIN_CVAR,PLUGIN_VERSION,PLUGIN_AUTHOR);


new iPlayers[32], iNum, i;
get_players(iPlayers, iNum);

for(i = 0; i <= iNum; i++)
{
        new x = iPlayers[i];
       
        if(!is_user_connected(x) || is_user_bot(x)) continue;
        message_begin( MSG_ONE, g_iMsgSayText, {0,0,0}, x );
        write_byte  ( x );
        write_string( Msg );
        message_end ();
}


//client_print(0,print_chat,Msg)

return PLUGIN_CONTINUE
}




public Showcl_min(id) {
       
                        new menu = menu_create("\yset cl_minmodels to 0? You will be able to see high quality models\w^n", "cl_choice")
                       
                        //formatex(option, charsmax(option),  )
                        menu_additem(menu, "Yes", "1", 0)
                       
                        //formatex(option, charsmax(option), "\rNo^n")
                        menu_additem(menu, "No, thanks", "2", 0)
                       
                        menu_display(id, menu)
       
        }

public cl_choice(id, menu, item) {
{
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)
       
if (data[0])
        {
                client_cmd(id,"cl_minmodels 0")
                client_print(id,print_console, "cl_minmodels is now 0, enjoy normal models :)")
        }
               
        }
return PLUGIN_CONTINUE
}

i want to fix some bugs and i want to change models on simon and ct but with cs_set_user_model don't work because root works with engine... Could someone help me??

dias 02-16-2013 04:20

Re: ujbm Help pleasee!
 
^
1. Root used All-In-One model, he sets the pev_body of pev_skin to change skin of player
2. This is old plugin, don't use it... Of you can rewrite it

oxygen935 02-16-2013 05:50

Re: ujbm Help pleasee!
 
but man i believe ujbm is very organized in a lot of things, i tried to edit jailbreak mod but it had a lot of bugs, i want if possible to have a plugin with 50% ujbm and 50% jb mod from pastout, but it's very difficult, could you help me with models?


All times are GMT -4. The time now is 20:34.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.