AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   JB Extreme - Edit (https://forums.alliedmods.net/showthread.php?t=153135)

m_pro_m 03-19-2011 08:13

JB Extreme - Edit
 
Hi, i edited JailBreak Extreme and i dont have any errors in it.

But when i put it into server, it doesnt working

Please try it and help me !
Code:

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
 
#define PLUGIN_NAME        "JailBreak Extreme"
#define PLUGIN_AUTHOR        "JoRoPiTo"
#define PLUGIN_VERSION        "1.9"
#define PLUGIN_CVAR        "jbextreme"

#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 TEAM_MENU                "#Team_Select_Spect"
#define TEAM_MENU2        "#Team_Select_Spect"
#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 Keyssmenu (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6) // Keys: 1234567
#define Keyszbrane (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9) // Keys: 12340
#define Keysbox (1<<0)|(1<<1)|(1<<9) // Keys: 120
#define Keysmic (1<<0)|(1<<1)|(1<<9) // Keys: 120
#define Keysmody (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9) // Keys: 1234560
#define Keysmatrix (1<<0)|(1<<1) // Keys: 12
#define Keysinvis (1<<0) // Keys: 1
#define Keysdopln (1<<0) // Keys: 1
#define Keysprestrelka (1<<0)|(1<<1)|(1<<2)|(1<<3) // Keys: 1234
 
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_CrowbarMax
new gp_CrowbarMul
new gp_TeamRatio
new gp_CtMax
new gp_BoxMax
new gp_TalkMode
new gp_VoiceBlock
new gp_RetryTime
new gp_RoundMax
new gp_ButtonShoot
new gp_SimonSteps
new gp_SimonRandom
new gp_GlowModels
new gp_AutoLastresquest
new gp_LastRequest
new gp_Motd
new gp_SpectRounds
new gp_NosimonRounds
new gp_AutoOpen
new gp_TeamChange
new gMicOn = 0
new g_MaxClients
new g_MsgStatusText
new g_MsgStatusIcon
new g_MsgVGUIMenu
new g_MsgShowMenu
new g_MsgClCorpse
new g_MsgMOTD

new gc_TalkMode
new gc_VoiceBlock
new gc_SimonSteps
new gc_ButtonShoot
new Float:gc_CrowbarMul
new Speed[33]
new Speed2[33]
new Speed3[33]
new Speed4[33]
new eMod
new eModLimit
new eModSound

// Precache
new const _FistModels[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" }
new const _CrowbarModels[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" }
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_scout", "weapon_deagle", "weapon_mac10", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_mp5navy" }
new const _WeaponsFreeCSW[] = { CSW_SCOUT, CSW_DEAGLE, CSW_MAC10, CSW_ELITE, CSW_AK47, CSW_M4A1, CSW_MP5NAVY }
new const _WeaponsFreeAmmo[] = { 90, 35, 100, 120, 90, 90, 120 }

new const _Duel[][_duel] =
{
        { "Deagle", CSW_DEAGLE, "weapon_deagle", "JBE_MENU_LASTREQ_OPT4", "JBE_MENU_LASTREQ_SEL4" },
        { "Scout", CSW_SCOUT, "weapon_scout", "JBE_MENU_LASTREQ_OPT5", "JBE_MENU_LASTREQ_SEL5" },
        { "Grenades", CSW_HEGRENADE, "weapon_hegrenade", "JBE_MENU_LASTREQ_OPT6", "JBE_MENU_LASTREQ_SEL6" },
        { "Awp", CSW_AWP, "weapon_awp", "JBE_MENU_LASTREQ_OPT7", "JBE_MENU_LASTREQ_SEL7" }
}


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

// 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 Float:g_SimonRandom
new Trie:g_CellManagers
new g_HelpText[512]
new g_JailDay
new g_PlayerJoin
new g_PlayerReason[33]
new g_PlayerSpect[33]
new g_PlayerSimon[33]
new g_PlayerNomic
new g_PlayerWanted
new g_PlayerCrowbar
new g_PlayerRevolt
new g_PlayerHelp
new g_PlayerFreeday
new g_PlayerLast
new g_FreedayAuto
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_BlockWeapons
new g_RoundEnd
new g_Duel
new g_DuelA
new g_DuelB
new g_SafeTime
new g_Buttons[10]
 
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_menucmd(register_menuid("prestrelka"), Keysprestrelka, "Pressedprestrelka")
        register_menucmd(register_menuid("dopln"), Keysdopln, "Presseddopln")
        register_menucmd(register_menuid("invis"), Keysinvis, "Pressedinvis")
        register_menucmd(register_menuid("matrix"), Keysmatrix, "Pressedmatrix")
        register_menucmd(register_menuid("mody"), Keysmody, "Pressedmody")
        register_menucmd(register_menuid("mic"), Keysmic, "Pressedmic")
        register_menucmd(register_menuid("box"), Keysbox, "Pressedbox")
        register_menucmd(register_menuid("zbrane"), Keyszbrane, "Pressedzbrane")
        register_menucmd(register_menuid("smenu"), Keyssmenu, "Pressedsmenu")
       
        register_dictionary("jbextreme.txt")

        g_MsgStatusText = get_user_msgid("StatusText")
        g_MsgStatusIcon = get_user_msgid("StatusIcon")
        g_MsgVGUIMenu = get_user_msgid("VGUIMenu")
        g_MsgShowMenu = get_user_msgid("ShowMenu")
        g_MsgMOTD = get_user_msgid("MOTD")
        g_MsgClCorpse = get_user_msgid("ClCorpse")

        register_message(g_MsgStatusText, "msg_statustext")
        register_message(g_MsgStatusIcon, "msg_statusicon")
        register_message(g_MsgVGUIMenu, "msg_vguimenu")
        register_message(g_MsgShowMenu, "msg_showmenu")
        register_message(g_MsgMOTD, "msg_motd")
        register_message(g_MsgClCorpse, "msg_clcorpse")

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

        register_impulse(100, "impulse_100")

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

        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_menucmd(register_menuid(TEAM_MENU), 51, "team_select")
        register_menucmd(register_menuid(TEAM_MENU2), 51, "team_select")

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

       
       
        register_clcmd("say /lr", "cmd_lastrequest")
        register_clcmd("say pp", "cmd_lastrequest")
        register_clcmd("say /pp", "cmd_lastrequest")
        register_clcmd("say /duel", "cmd_lastrequest")
        register_clcmd("say /simon", "cmd_simon")
        register_clcmd("say /nomic", "cmd_nomic")
        register_clcmd("say /mikrofon", "cmd_nomic")
        register_clcmd("say /help", "cmd_help")
        register_clcmd("say /smenu", "ShowmSmenu")
        register_clcmd("say /pravidla", "cmd_rules")
        register_clcmd("say /menu", "cmd_rules")


        register_clcmd("jbe_freeday", "adm_freeday", ADMIN_KICK)
        register_concmd("jbe_nomic", "adm_nomic", ADMIN_KICK)
        register_concmd("jbe_open", "adm_open", ADMIN_KICK)
        register_concmd("jbe_box", "adm_box", ADMIN_KICK)
 
        gp_GlowModels = register_cvar("jbe_glowmodels", "1")
        gp_SimonSteps = register_cvar("jbe_simonsteps", "0")
        gp_CrowbarMul = register_cvar("jbe_crowbarmultiplier", "25.0")
        gp_CrowbarMax = register_cvar("jbe_maxcrowbar", "1")
        gp_TeamRatio = register_cvar("jbe_teamratio", "3")
        gp_TeamChange = register_cvar("jbe_teamchange", "1") // 0-disable team change for tt / 1-enable team change
        gp_CtMax = register_cvar("jbe_maxct", "6")
        gp_BoxMax = register_cvar("jbe_boxmax", "30")
        gp_RetryTime = register_cvar("jbe_retrytime", "10.0")
        gp_RoundMax = register_cvar("jbe_freedayround", "240.0")
        gp_AutoLastresquest = register_cvar("jbe_autolastrequest", "1")
        gp_LastRequest = register_cvar("jbe_lastrequest", "1")
        gp_Motd = register_cvar("jbe_motd", "1")
        gp_SpectRounds = register_cvar("jbe_spectrounds", "3")
        gp_NosimonRounds = register_cvar("jbe_nosimonrounds", "7")
        gp_SimonRandom = register_cvar("jbe_randomsimon", "0")
        gp_AutoOpen = register_cvar("jbe_autoopen", "1")
        gp_TalkMode = register_cvar("jbe_talkmode", "2")        // 0-alltak / 1-tt talk / 2-tt no talk
        gp_VoiceBlock = register_cvar("jbe_blockvoice", "2")        // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon
        gp_ButtonShoot = register_cvar("jbe_buttonshoot", "1")        // 0-standard / 1-func_button shoots!
 
        g_MaxClients = get_global_int(GL_maxClients)
 
        for(new i = 0; i < sizeof(g_HudSync); i++)
                g_HudSync[i][_hudsync] = CreateHudSyncObj()

        formatex(g_HelpText, charsmax(g_HelpText), "%L^n^n%L^n^n%L^n^n%L",
                        LANG_SERVER, "JBE_HELP_TITLE",
                        LANG_SERVER, "JBE_HELP_BINDS",
                        LANG_SERVER, "JBE_HELP_GUARD_CMDS",
                        LANG_SERVER, "JBE_HELP_PRISONER_CMDS")

        setup_buttons()
}
 
public plugin_precache()
{
        static i
        precache_model("models/player/eGdozorca/eGdozorcaT.mdl")
        precache_model("models/player/eGdozorca/eGdozorca.mdl")
        precache_model("models/player/eGvezen/eGvezen.mdl")
        precache_model("models/player/eGsimon/eGsimon.mdl")
        precache_model("models/player/eGmatrixT/eGmatrixT.mdl")
        precache_model("models/player/eGmatrixT2/eGmatrixT2.mdl")
 
        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(_FistSounds); i++)
                precache_sound(_FistSounds[i])

        precache_sound("jbextreme/brass_bell_C.wav")
       
        precache_sound("eGamaJB/poplach.wav")
        precache_sound("eGamaJB/duel.wav")
        precache_sound("eGamaJB/prestrelka.wav")
        precache_sound("eGamaJB/scout.wav")
        precache_sound("eGamaJB/matrix.wav")
        precache_sound("eGamaJB/schovka.wav")
        precache_sound("eGamaJB/nahanacka.wav")
        precache_sound("eGamaJB/invisible.wav")
        precache_sound("eGamaJB/zombie.wav")

        g_CellManagers = TrieCreate()
        gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1)
        gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1)
}

public precache_spawn(ent)
{
        if(is_valid_ent(ent))
        {
                static szClass[33]
                entity_get_string(ent, EV_SZ_classname, szClass, sizeof(szClass))
                for(new i = 0; i < sizeof(_RemoveEntities); i++)
                        if(equal(szClass, _RemoveEntities[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_PlayerNomic, id)
        clear_bit(g_PlayerWanted, id)
        clear_bit(g_SimonTalking, id)
        clear_bit(g_SimonVoice, id)
        g_PlayerSpect[id] = 0
        g_PlayerSimon[id] = 0
}

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, "JBE_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
        }
        team_count()
}

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_vguimenu(msgid, dest, id)
{
        static msgarg1
        static CsTeams:team

        msgarg1 = get_msg_arg_int(1)
        if(msgarg1 == 2)
        {
                team = cs_get_user_team(id)
                if((team == CS_TEAM_T) && !is_user_admin(id) && (is_user_alive(id) || !get_pcvar_num(gp_TeamChange)))
                {
                        client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
                        return PLUGIN_HANDLED
                }
                show_menu(id, 51, TEAM_MENU, -1)
                return PLUGIN_HANDLED
        }

        return PLUGIN_CONTINUE
}

public msg_showmenu(msgid, dest, id)
{
        static msgarg1, roundloop
        static CsTeams:team
        msgarg1 = get_msg_arg_int(1)

        if(msgarg1 != 531 && msgarg1 != 563)
                return PLUGIN_CONTINUE

        roundloop = floatround(get_pcvar_float(gp_RetryTime) / 2)
        team = cs_get_user_team(id)

        if(team == CS_TEAM_T)
        {
                if(!is_user_admin(id) && (is_user_alive(id) || (g_RoundStarted >= roundloop) || !get_pcvar_num(gp_TeamChange)))
                {
                        client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
                        return PLUGIN_HANDLED
                }
                else
                {
                        show_menu(id, 51, TEAM_MENU, -1)
                        return PLUGIN_HANDLED
                }
        }
        else
        {
                show_menu(id, 51, TEAM_MENU, -1)
                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
        {
                set_pev(id, pev_viewmodel2, _FistModels[1])
                set_pev(id, pev_weaponmodel2, _FistModels[0])
        }
        if(Speed[id])
        {
        set_user_maxspeed(id, 450.0)
        }
                                       
        if(Speed2[id])
        {
        set_user_maxspeed(id, 500.0)
        }
        if(Speed3[id])
        {
        set_user_maxspeed(id, 400.0)
        }
        if(Speed4[id])
        {
        set_user_maxspeed(id, 600)
        }
       
        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):
                {
                        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) ? "JBE_PRISONER_STATUS" : "JBE_GUARD_STATUS", name, health)
                }
        }
       
        return PLUGIN_HANDLED
}

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

        return PLUGIN_CONTINUE
}

public player_spawn(id)
{
        gMicOn = 0
       
        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)

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

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


                        set_user_info(id, "model", "eGvezen")
               
                        if(is_freeday() || 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))
                        }

                        if(g_CrowbarCount < get_pcvar_num(gp_CrowbarMax))
                        {
                                if(random_num(0, g_MaxClients) > (g_MaxClients / 2))
                                {
                                        g_CrowbarCount++
                                        set_bit(g_PlayerCrowbar, id)
                                }
                        }
                        cs_set_user_armor(id, 0, CS_ARMOR_NONE)
                }
                case(CS_TEAM_CT):
                {
                        g_PlayerSimon[id]++
                        set_user_info(id, "model", "eGdozorca")
                       
                        cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
                }
        }
        first_join(id)
        return HAM_IGNORED
}

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

        switch(g_Duel)
        {
                case(0):
                {
                        if(attacker == ent && get_user_weapon(attacker) == CSW_KNIFE && get_bit(g_PlayerCrowbar, attacker) && cs_get_user_team(victim) != CS_TEAM_T)
                        {
                                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
                }
                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)
        {
                if(!g_PlayerRevolt)
                        revolt_start()

                set_bit(g_PlayerRevolt, attacker)
        }

        return HAM_IGNORED
}

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

        return HAM_IGNORED
}

public player_killed(victim, attacker, shouldgib)
{
        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)
        if(g_Simon == victim)
        {
                g_Simon = 0
                ClearSyncHud(0, g_HudSync[2][_hudsync])
                player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_KILLED")
        }

        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
                                team_count()
                        }
                }
        }
        hud_status(0)
        return HAM_IGNORED
}

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

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

                        return HAM_SUPERCEDE
                }

        }

        return HAM_IGNORED
}

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

        return FMRES_IGNORED
}

public sound_emit(id, channel, sample[])
{
        if(is_user_alive(id) && 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'):
                        {
                                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)
                        }
                }
                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
        }
        if(gMicOn && is_user_alive(sender))
        {
                engfunc(EngFunc_SetClientListening, receiver, sender, true)
                return FMRES_SUPERCEDE
        }

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

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

        listen = true

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

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

public player_cmdstart(id, uc, random)
{
        if(g_Duel > 3)
        {
                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()
}

public round_end()
{
        static CsTeams:team
        static maxnosimon, spectrounds
        g_SafeTime = 0
        g_PlayerRevolt = 0
        g_PlayerFreeday = 0
        g_PlayerLast = 0
        g_BoxStarted = 0
        g_CrowbarCount = 0
        g_Simon = 0
        g_SimonAllowed = 0
        g_RoundStarted = 0
        g_LastDenied = 0
        g_BlockWeapons = 0
        g_TeamCount[CS_TEAM_T] = 0
        g_TeamCount[CS_TEAM_CT] = 0
        g_Freeday = 0
        g_FreedayNext = (random_num(0,99) >= 95)
        g_RoundEnd = 1
        g_Duel = 0
        gMicOn = 0
        eMod = 0
        eModSound = 0

        remove_task(TASK_STATUS)
        remove_task(TASK_FREEDAY)
        remove_task(TASK_FREEEND)
        remove_task(TASK_ROUND)
        maxnosimon = get_pcvar_num(gp_NosimonRounds)
        spectrounds = get_pcvar_num(gp_SpectRounds)
        for(new i = 1; i <= g_MaxClients; i++)
        {
                if(!is_user_connected(i))
                        continue

                menu_cancel(i)
                team = cs_get_user_team(i)
                player_strip_weapons(i)
                switch(team)
                {
                        case(CS_TEAM_CT):
                        {
                                if(g_PlayerSimon[i] > maxnosimon)
                                {
                                        cmd_nomic(i)
                                }
                        }
                        case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED):
                        {
                                g_PlayerSpect[i]++
                                if(g_PlayerSpect[i] > spectrounds)
                                {
                                        client_cmd(i, "disconnect")
                                        server_print("JBE Disconnected spectator client #%i", i)
                                }
                                else
                                {
                                        show_menu(i, 51, TEAM_MENU, -1)
                                }
                        }
                }
        }
        for(new i = 0; i < sizeof(g_HudSync); i++)
                ClearSyncHud(0, g_HudSync[i][_hudsync])

}

public round_start()
{
        if(g_RoundEnd)
                return

        team_count()
        if(!g_Simon && is_freeday())
        {
                g_Freeday = 1
                emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                check_freeday(TASK_FREEDAY)
        }
        else
        {
                set_task(60.0, "check_freeday", TASK_FREEDAY)
        }
        set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
        set_task(get_pcvar_float(gp_RetryTime) + 1.0, "safe_time", TASK_SAFETIME)
        set_task(120.0, "freeday_end", TASK_FREEDAY)
        g_SimonRandom = get_pcvar_num(gp_SimonRandom) ? random_float(15.0, 45.0) : 0.0
        g_SimonAllowed = 1
        g_FreedayNext = 0
}

public cmd_jointeam(id)
{
        return PLUGIN_HANDLED
}

public cmd_joinclass(id)
{
        return PLUGIN_HANDLED
}

public cmd_voiceon(id)
{
        client_cmd(id, "+voicerecord")
        set_bit(g_SimonVoice, id)
        if(g_Simon == id || is_user_admin(id) || gMicOn)
                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) || gMicOn)
                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 && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
        {
                g_Simon = id
                get_user_name(id, name, charsmax(name))
                set_user_info(id, "model", "eGsimon")
                g_PlayerSimon[id]--
                if(get_pcvar_num(gp_GlowModels))
                        player_glow(id, g_Colors[0])
                Showsmenu(id)
                hud_status(0)
        }
        return PLUGIN_HANDLED
}


public cmd_nomic(id)
{
        static CsTeams:team
        team = cs_get_user_team(id)
        if(team == CS_TEAM_CT)
        {
                server_print("JBE Transfered guard to prisoners team client #%i", id)
                if(g_Simon == id)
                {
                        g_Simon = 0
                        player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_TRANSFERED")
                }
                if(!is_user_admin(id))
                        set_bit(g_PlayerNomic, id)

                cs_set_user_team(id, CS_TEAM_T)
                set_user_info(id, "model", "eGvezen")
                spawn(id)
        }
        return PLUGIN_HANDLED
}

public cmd_box(id)
{
        static i
        if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
        {
                if(g_TeamAlive[CS_TEAM_T] <= get_pcvar_num(gp_BoxMax) && g_TeamAlive[CS_TEAM_T] > 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, "JBE_GUARD_BOX")
                }
                else
                {
                        player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_CANTBOX")
                }
        }
        return PLUGIN_HANDLED
}

public cmd_stopbox(id)
{
        static i
        if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
        {
                if(g_TeamAlive[CS_TEAM_T] <= get_pcvar_num(gp_BoxMax) && g_TeamAlive[CS_TEAM_T] > 1)
                {
                        for(i = 1; i <= g_MaxClients; i++)
                                if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
                                       

                        set_cvar_num("mp_tkpunish", 0)
                        set_cvar_num("mp_friendlyfire", 0)
                        g_BoxStarted = 1
                        player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_STOPBOX")
                }
               
        }
        return PLUGIN_HANDLED
}



public cmd_help(id)
{
        if(id > g_MaxClients)
                id -= TASK_HELP

        remove_task(TASK_HELP + id)
        switch(get_bit(g_PlayerHelp, id))
        {
                case(0):
                {
                        set_bit(g_PlayerHelp, id)
                        player_hudmessage(id, 7, 15.0, {230, 100, 10}, "%s", g_HelpText)
                        set_task(15.0, "cmd_help", TASK_HELP + id)
                }
                default:
                {
                        clear_bit(g_PlayerHelp, id)
                        ClearSyncHud(id, g_HudSync[7][_hudsync])
                }
        }
}

public cmd_freeday(id)
{
        static menu, menuname[32], option[64]
        if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id)))
        {
                formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
                menu = menu_create(menuname, "freeday_choice")

                formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_PLAYER")
                menu_additem(menu, option, "1", 0)

                formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_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, "JBE_MENU_FREEDAY")

        return PLUGIN_CONTINUE
}

public cmd_lastrequest(id)
{
        static i, num[5], menu, menuname[32], option[64]
        if(!get_pcvar_num(gp_LastRequest) || g_LastDenied || id != g_PlayerLast || g_RoundEnd || !is_user_alive(id))
                return PLUGIN_CONTINUE

        formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_LASTREQ")
        menu = menu_create(menuname, "lastrequest_select")

        formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT1")
        menu_additem(menu, option, "1", 0)

        formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT2")
        menu_additem(menu, option, "2", 0)

        formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_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)
        }
       
        for(new j = 0; j < g_MaxClients; j++)
        {
                        set_user_rendering(j, kRenderFxNone, 0,0,0, kRenderTransAlpha, 0)
                        if(j == g_Simon)
                        {
                                set_user_info(j, "model", "eGdozorca")
                                g_Simon = 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_nomic(id)
{
        static player, user[32]
        if(id == 0 || is_user_admin(id))
        {
                read_argv(1, user, charsmax(user))
                player = cmd_target(id, user, 3)
                if(is_user_connected(player))
                {
                        cmd_nomic(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 team_select(id, key)
{
        static CsTeams:team, roundloop, admin

        roundloop = get_pcvar_num(gp_RetryTime) / 2
        team = cs_get_user_team(id)
        admin = is_user_admin(id)
        team_count()

        if(!admin && (team == CS_TEAM_UNASSIGNED) && (g_RoundStarted >= roundloop) && g_TeamCount[CS_TEAM_CT] && g_TeamCount[CS_TEAM_T] && !is_user_alive(id))
        {
                team_join(id, CS_TEAM_SPECTATOR)
                client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTJOIN")
                return PLUGIN_HANDLED
        }


        switch(key)
        {
                case(0):
                {
                        if(team == CS_TEAM_T)
                                return PLUGIN_HANDLED

                        g_PlayerReason[id] = random_num(1, 6)

                        team_join(id, CS_TEAM_T)
                }
                case(1):
                {
                        if(team == CS_TEAM_CT || (!admin && get_bit(g_PlayerNomic, id)))
                                return PLUGIN_HANDLED

                        if(g_TeamCount[CS_TEAM_CT] < ctcount_allowed() || admin)
                                team_join(id, CS_TEAM_CT)
                        else
                                client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CTFULL")
                }
                case(5):
                {
                        user_silentkill(id)
                        team_join(id, CS_TEAM_SPECTATOR)
                }
        }
        return PLUGIN_HANDLED
}

public team_join(id, CsTeams:team)
{
        static restore, vgui, msgblock

        restore = get_pdata_int(id, m_iVGUI)
        vgui = restore & (1<<0)
        if(vgui)
                set_pdata_int(id, m_iVGUI, restore & ~(1<<0))

        switch(team)
        {
                case CS_TEAM_SPECTATOR:
                {
                        msgblock = get_msg_block(g_MsgShowMenu)
                        set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
                        dllfunc(DLLFunc_ClientPutInServer, id)
                        set_msg_block(g_MsgShowMenu, msgblock)
                        set_pdata_int(id, m_fGameHUDInitialized, 1)
                        engclient_cmd(id, "jointeam", "6")
                }
                case CS_TEAM_T, CS_TEAM_CT:
                {
                        msgblock = get_msg_block(g_MsgShowMenu)
                        set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
                        engclient_cmd(id, "jointeam", (team == CS_TEAM_CT) ? "2" : "1")
                        engclient_cmd(id, "joinclass", "1")
                        set_msg_block(g_MsgShowMenu, msgblock)
                        g_PlayerSpect[id] = 0
                }
        }
       
        if(vgui)
                set_pdata_int(id, m_iVGUI, restore)
}

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

                        if(is_user_alive(g_DuelB))
                        {
                                set_user_rendering(g_DuelB, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
                                player_strip_weapons(g_DuelB)
                        }

                }
                g_PlayerLast = 0
                g_DuelA = 0
                g_DuelB = 0
                g_Duel = 0
        }
}

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

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

public hud_status(task)
{
        static i, n
        new name[32], szStatus[64], wanted[1024]
 
        if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
                g_RoundStarted++

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

        n = 0
        formatex(wanted, charsmax(wanted), "%L", LANG_SERVER, "JBE_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)
                }
        }

        team_count()
        formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T])
        message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
        write_byte(0)
        write_string(szStatus)
        message_end()

        if(g_Simon)
        {
                get_user_name(g_Simon, name, charsmax(name))
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_SIMON_FOLLOW", name)
        }
        else if(g_Freeday)
        {
                player_hudmessage(0, 2, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_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, "JBE_PRISONER_REVOLT")

        player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_DAY", g_JailDay)

        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)

}

public safe_time(task)
{
        g_SafeTime = 1
}

public check_freeday(task)
{
        static Float:roundmax, i
        if(!g_Simon && !g_PlayerLast)
        {
                g_Freeday = 1
                hud_status(0)
                roundmax = get_pcvar_float(gp_RoundMax)
                if(roundmax > 0.0)
                {
                        for(i = 1; i <= g_MaxClients; i++)
                        {
                                if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
                                        freeday_set(0, i)
                        }
                        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
                        remove_task(TASK_ROUND)
                        set_task(roundmax - 60.0, "check_end", TASK_ROUND)
                }
        }

        if(get_pcvar_num(gp_AutoOpen))
                jail_open()
}

public freeday_end(task)
{
        if(g_Freeday || g_PlayerFreeday)
        {
                emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDFREEDAY")
                for(new i = 0; i < g_MaxClients; i++)
                {
                        if( i != g_Simon)
                        set_user_rendering(i, kRenderFxNone, 0,0,0, kRenderTransAlpha, 0)
                }
        }
}

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

public prisoner_last(id)
{
        static name[32], Float:roundmax
        if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
        {
                roundmax = get_pcvar_float(gp_RoundMax)
                get_user_name(id, name, charsmax(name))
                g_PlayerLast = id
                player_hudmessage(0, 6, 5.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_LAST", name)
                remove_task(TASK_ROUND)
                if(roundmax > 0.0)
                {
                        player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
                        set_task(roundmax - 60.0, "check_end", TASK_ROUND)
                }
                if((g_TeamAlive[CS_TEAM_CT] > 0) && get_pcvar_num(gp_AutoLastresquest))
                        cmd_lastrequest(id)
        }
}

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

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

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

public duel_knives(id, menu, item)
{
        if(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, "JBE_MENU_LASTREQ_SEL3", src, LANG_SERVER, "JBE_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)
        g_BlockWeapons = 1
        return PLUGIN_HANDLED
}

public duel_guns(id, menu, item)
{
        if(item == MENU_EXIT)
        {
                menu_destroy(menu)
                g_LastDenied = 0
                g_Duel = 0
                return PLUGIN_HANDLED
        }

        static gun, dst[32], data[5], access, callback, option[128], player, src[32]

        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, "JBE_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)

        g_DuelA = id
        clear_bit(g_PlayerCrowbar, id)
        player_strip_weapons(id)
        gun = give_item(id, _Duel[g_Duel - 4][_entname])
        cs_set_weapon_ammo(gun, 1)
        set_user_health(id, 100)
        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])

        g_BlockWeapons = 1
        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)
                                check_freeday(TASK_FREEDAY)
                        }
                }
        }
        return PLUGIN_HANDLED
}

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

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

        menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
        get_user_name(id, dst, charsmax(dst))
        switch(data[0])
        {
                case('1'):
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL1", dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)
                        set_bit(g_FreedayAuto, id)
                        user_silentkill(id)
                }
                case('2'):
                {
                        formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_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])
                        g_BlockWeapons = 1
                        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, "JBE_MENU_DUEL")
                }
                default:
                {
                        g_Duel = str_to_num(data)
                        menu_players(id, CS_TEAM_CT, 0, 1, "duel_guns", "%L", LANG_SERVER, "JBE_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, "JBE_GUARD_FREEDAYGIVE", src, dst)
                }
                else if(!is_freeday())
                {
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_PRISONER_HASFREEDAY", dst)
                }
        }
}

stock first_join(id)
{
        if(!get_bit(g_PlayerJoin, id))
        {
                set_bit(g_PlayerJoin, id)
                clear_bit(g_PlayerHelp, id)
                set_task(5.0, "cmd_help", TASK_HELP + id)
        }
}

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

        return count
}

stock player_hudmessage(id, hudid, Float:time = 0.0, color[3] = {0, 255, 0}, msg[], any:...)
{
        static text[512], Float:x, Float:y
        x = g_HudSync[hudid][_x]
        y = g_HudSync[hudid][_y]
       
        if(time > 0)
                set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, time, 0.00, 0.00)
        else
                set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, g_HudSync[hudid][_time], 0.00, 0.00)

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

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

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

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

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

stock is_freeday()
{
        return (g_FreedayNext || g_Freeday || (g_JailDay == 1))
}

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 Showsmenu(id) {
        show_menu(id, Keyssmenu, "\ySimon Menu (/\wsimon)\y^n-----------------------^n1. \wVybrat Zbran^n\y2. \wVybrat VD^n\y3. \wOtvorit cely^n\y4. \wBox Menu^n\y5. \wMic Menu^n\y6. \wHerne Mody^n\y7.\rZvon", -1, "smenu") // Display menu
}

public Pressedsmenu(id, key) {
        /* Menu:
        * Simon Menu (/simon)
        * -----------------------
        * 1. Vybrat Zbran
        * 2. Vybrat VD
        * 3. Otvorit cely
        * 4. Box Menu
        * 5. Mic Menu
        * 6. Herne Mody
        */

        switch (key) {
                case 0: { // 1
                        Showzbrane(id)
                }
                case 1: { // 2
                        cmd_freeday_player(id)
                }
                case 2: { // 3
                        jail_open()
                        Showsmenu(id)
                }
                case 3: { // 4
                        Showbox(id)
                }
                case 4: { // 5
                        Showmic(id)
                }
                case 5: { // 6
                if(!eMod || !eModLimit)
                        Showmody(id)
                }
                case 6: { // 7
                        emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_c.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                }
        }
}


public Showzbrane(id) {
        show_menu(id, Keyszbrane, "\yVybrat Zbran (/\wsimon)\y^n-----------------------^n1. \wM4a1 ^n\y2. \wAK47^n\y3. \wAWP^n\y4. \wMP5^n\y^n0. \wNazad^n", -1, "zbrane") // Display menu
}

public Pressedzbrane(id, key) {
        /* Menu:
        * Vybrat Zbran (/simon)
        * -----------------------
        * 1. M4a1
        * 2. AK47
        * 3. AWP
        * 4. MP5
        *
        * 0. Nazad
        */

        switch (key) {
                case 0: { // 1
                        player_strip_weapons(id)
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 1: { // 2
                        player_strip_weapons(id)
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 2: { // 3
                        player_strip_weapons(id)
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 3: { // 4
                        player_strip_weapons(id)
                        give_item(id, "weapon_mp5navy")
                        give_item(id, "weapon_mp5navy")
                        give_item(id, "weapon_mp5navy")
                        give_item(id, "weapon_mp5navy")
                        give_item(id, "weapon_mp5navy")
                        give_item(id, "weapon_mp5")
                        give_item(id, "weapon_mp5")
                        give_item(id, "weapon_mp5")
                        give_item(id, "weapon_mp5")
                        give_item(id, "weapon_mp5")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 9: { // 0
                        Showsmenu(id)
                }
        }
}

public Showbox(id) {
        show_menu(id, Keysbox, "\yBox Menu (/\wsimon)\y^n-----------------------^n1. \wZapnut Box^n\y2. \wVypnut Box^n\y^n0. \wNazad^n", -1, "box") // Display menu
}

public Pressedbox(id, key) {
        /* Menu:
        * Box Menu (/simon)
        * -----------------------
        * 1. Zapnut Box
        * 2. Vypnut Box
        *
        * 0. Nazad
        */

        switch (key) {
                case 0: { // 1
                        cmd_box(id)
                        Showsmenu(id)
                }
                case 1: { // 2
                        cmd_stopbox(id)
                        Showsmenu(id)
                }
                case 9: { // 0
                        Showsmenu(id)
                }
        }
}

public Showmic(id) {
        show_menu(id, Keysmic, "\yMikrofon Menu (/\wsimon)\y^n-----------------------^n1. \wZapnut Mikrofony^n\y2. \wVypnut Mikrofony^n\y^n0. \wNazad^n", -1, "mic") // Display menu
}

public Pressedmic(id, key) {
        /* Menu:
        * Mikrofon Menu (/simon)
        * -----------------------
        * 1. Zapnut Mikrofony
        * 2. Vypnut Mikrofony
        *
        * 0. Nazad
        */

        switch (key) {
                case 0: { // 1
                        gMicOn = 1
                        Showmic(id)
                        player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_MIC_ON")
                       
                }
                case 1: { // 2
                        gMicOn = 0
                        Showmic(id)
                        player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_MIC_OFF")
                }
                case 9: { // 0
                        Showsmenu(id)
                }
        }
}

public Showmody(id) {
        show_menu(id, Keysmody, "\yHerne Mody (/\wsimon)\y^n-----------------------^n1. \wPrestrelka^n\y2. \wScout^n\y3. \wMatrix^n\y4. \wSchovka^n\y5. \wNahanacka^n\y6. \wInvisible^n\y^n0. \wNazad^n", -1, "mody") // Display menu
}

public Pressedmody(id, key) {
        /* Menu:
        * Herne Mody (/simon)
        * -----------------------
        * 1. Prestrelka
        * 2. Scout
        * 3. Matrix
        * 4. Schovka
        * 5. Nahanacka
        * 6. Invisible
        *
        * 0. Nazad
        */

        switch (key) {
                case 0: { // 1
                        g_BlockWeapons = 1
                        set_task(1.0, "Showprestrelka", 0)
                        eMod = 1
                        eModLimit = 1
                        eModSound = 1
                        set_task(5.0, "mod_utek")
                }
                case 1: { // 2
                        g_BlockWeapons = 1
                        strip_user_weapons(0)
                        new players[32], count;
                        get_players(players, count, "a");
 
                        for (new i; i < count; i++)
                        {
                               
                        give_item(players[i], "weapon_knife");
                        give_item(players[i], "weapon_scout");
                        give_item(players[i], "weapon_scout");
                        give_item(players[i], "weapon_scout");
                        give_item(players[i], "weapon_scout");
                        eModSound = 2
                        eMod = 1
                        eModLimit = 1
                        player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_MOD_SCOUT")
                        }
                      }
                case 2: { // 3
                        g_BlockWeapons = 1
                        strip_user_weapons(0)
                        new players[32], count;
                        get_players(players, count, "a");
 
                        for (new i; i < count; i++)
                        {
                        give_item(players[i], "weapon_knife");
                        give_item(players[i], "weapon_deagle");
                        give_item(players[i], "weapon_deagle");
                        give_item(players[i], "weapon_deagle");
                        give_item(players[i], "weapon_deagle");
                        give_item(players[i], "weapon_deagle");
                        give_item(players[i], "weapon_deagle");
                        give_item(players[i], "weapon_deagle");
                       
                        if(cs_get_user_team(i) == CS_TEAM_CT)
                        {
                                set_user_info(i, "model", "eGsimon")
                                set_user_rendering(0, kRenderFxNone, 0,0,0, kRenderTransAlpha,0)
                                set_user_maxspeed(i, 400)
                                set_user_health(i, 500)
                                Speed3[i] = 1
                               
                        }
                        }
                        emit_sound(0, CHAN_AUTO, "eGamaJB/matrix.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        set_task(1.0, "Showmatrix", 0)
                        eMod = 1
                        eModLimit = 1
                       
                       
                }
                case 3: { // 4
                       
                }
                case 4: { // 5
                        for(new i = 0; i < g_MaxClients; i++)
                        {
                        if(cs_get_user_team(i) == CS_TEAM_T)
                        {
                                set_task(1.0, "Showdopln", i)
                        }
                        if(cs_get_user_team(i) == CS_TEAM_CT)
                        {
                                set_user_maxspeed(i, 600)
                                Speed4[i] = 1
                        }
                        }
                }
                case 5: { // 6
                        g_BlockWeapons = 1
                        for(new i = 0; i < g_MaxClients; i++)
                        {
                        if(cs_get_user_team(i) == CS_TEAM_T)
                        {
                                set_user_rendering(i,kRenderFxNone,0,0,0,kRenderNormal,0)
                        }
                        if(cs_get_user_team(i) == CS_TEAM_CT)
                        {
                                Showinvis(i)
                        }
                        }
                }
                case 9: { // 0
                        Showsmenu(id)
                }
        }
}

public mod_utek(id)
{
        if(id == g_Simon)
                                {
                                set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0)
                                set_user_info(id, "model", "eGdozorca")
                                }
        switch(eModSound)
        {
                case 1:
                        emit_sound(0, CHAN_AUTO, "eGamaJB/prestrelka.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                case 2:
                        emit_sound(0, CHAN_AUTO, "eGamaJB/scout.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
        jail_open()
}
public Showmatrix(id) {
        if(cs_get_user_team(id) == CS_TEAM_T)
        show_menu(id, Keysmatrix, "\yMatrix^n-----------------------^n1. \wNeo    (Health+)^n\y2. \wCasper (Speed+)^n\y^n", -1, "matrix") // Display menu
}

public Pressedmatrix(id, key) {
        /* Menu:
        * Matrix
        * -----------------------
        * 1. Neo    (Health+)
        * 2. Trinity (Speed+)
        *
        */

        switch (key) {
                case 0: { // 1
                        set_user_info(id, "model", "eGmatrixT")
                        set_user_health(id, 300)
                        set_user_gravity(id, 0.3)
                        set_user_maxspeed(id, 450)
                        Speed[id] = 1
                        Showdopln(id)
                }
                case 1: { // 2
                        set_user_info(id, "model", "eGmatrixT2")
                        set_user_health(id, 200)
                        set_user_gravity(id, 0.4)
                        set_user_maxspeed(id, 500)
                        Speed2[id] = 1
                        Showdopln(id)
                       
                }
        }
}


public Showinvis(id) {
        show_menu(id, Keysinvis, "\yInvisible^n-----------------------^n1. \wDoplnit municiu^n\y^n^n", -1, "invis") // Display menu
}

public Pressedinvis(id, key) {
        /* Menu:
        * Invisible
        * -----------------------
        * 1. Doplnit municiu
        *
        *
        */

        switch (key) {
                case 0: { // 1
                        if(eMod)
                        {
                        player_strip_weapons(id)
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        Showinvis(id)
                        }
                }
        }
}

public Showdopln(id) {
        show_menu(id, Keysdopln, "\yDeagle^n-----------------------^n1. \wDoplnit municiu^n\y^n^n", -1, "dopln") // Display menu
}

public Presseddopln(id, key) {
        /* Menu:
        * Matrix
        * -----------------------
        * 1. Doplnit municiu
        *
        *
        */

        switch (key) {
                case 0: { // 1
                                if(eMod)
                        {
                        player_strip_weapons(id)
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        Showdopln(id)
                        }
                }
        }
}

public Showprestrelka(id) {
        show_menu(id, Keysprestrelka, "\yPrestrelka^n-----------------------^n1. \wM4a1^n\y2. \wAk47^n\y3. \wAWP^n\y4. \wScout^n\y^n^n", -1, "prestrelka") // Display menu
}

public Pressedprestrelka(id, key) {
        /* Menu:
        * Prestrelka
        * -----------------------
        * 1. M4a1
        * 2. Ak47
        * 3. AWP
        * 4. Scout
        *
        *
        */

        switch (key) {
                case 0: { // 1
                        player_strip_weapons(id)
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                        give_item(id, "weapon_m4a1")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 1: { // 2
                        player_strip_weapons(id)
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                        give_item(id, "weapon_ak47")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 2: { // 3
                        player_strip_weapons(id)
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                        give_item(id, "weapon_awp")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
                case 3: { // 4
                        player_strip_weapons(id)
                        give_item(id, "weapon_scout")
                        give_item(id, "weapon_scout")
                        give_item(id, "weapon_scout")
                        give_item(id, "weapon_scout")
                        give_item(id, "weapon_scout")
                        give_item(id, "weapon_scout")
                       
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                        give_item(id, "weapon_deagle")
                }
        }
}

public cmd_rules(id)
{
        show_motd(id, "pravidla.html", "eGama JailBreak")
}

Sorry for my bad English ! Thank you.

hornet 03-20-2011 11:05

Re: JB Extreme - Edit
 
Is the server crashing? If so chances are all the sounds and models that are precached in plugin_precache() are not on your server.

TiQo 03-22-2011 11:15

Re: JB Extreme - Edit
 
yes, crashing

m_pro_m 03-22-2011 15:06

Re: JB Extreme - Edit
 
TIQo - NO !

Server doesnt crashing !
When I upload this plugin, I change map and then :
Server is running normal but plugin ... it is load only ... 1/2 :D I dont know how i can say it ... its not normal !!!


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

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