AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [HELP!!] Native error (https://forums.alliedmods.net/showthread.php?t=295876)

Whaay 04-07-2017 09:14

[HELP!!] Native error
 
hello!
i have this problem in logs

L 04/07/2017 - 16:00:21: [AMXX] [0] baza.sma::hud_status (line 3105)
L 04/07/2017 - 16:00:22: Invalid CVAR pointer
L 04/07/2017 - 16:00:22: [AMXX] Displaying debug trace (plugin "baza.amxx")
L 04/07/2017 - 16:00:22: [AMXX] Run time error 10: native error (native "get_pcvar_num")

please help me

OciXCrom 04-07-2017 09:34

Re: [HELP!!] Native error
 
How are we supposed to help if you don't provide the plugin?

CrazY. 04-07-2017 09:45

Re: [HELP!!] Native error
 
OciXCrom, actually you're very upset. :lol:

But anyway, whaay, you need to give us the plugin code.

OciXCrom 04-07-2017 10:31

Re: [HELP!!] Native error
 
Quote:

Originally Posted by CrazY. (Post 2510066)
OciXCrom, actually you're very upset. :lol:

But anyway, whaay, you need to give us the plugin code.

What's your problem this time?

CrazY. 04-07-2017 11:13

Re: [HELP!!] Native error
 
Nothing.. I'm just kidding with you.

Natsheh 04-08-2017 10:24

Re: [HELP!!] Native error
 
Check when you are getting the cvar pointer

And when the cvar is being registered, if it was a custom cvar

You should use the cvar pointer after the cvar registering

redivcram 04-08-2017 12:04

Re: [HELP!!] Native error
 
Post the code, we can't guess how you wrote it.

Whaay 04-09-2017 10:27

Re: [HELP!!] Native error
 
here is the plugin

Code:

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta_util>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>
#include <nvault>
#include <dhudmessage>
#include <CrizzINC>

#define PLUGIN_NAME "Jailbreak Ultimate Mode"
#define PLUGIN_AUTHOR "fantasyxd. / Crizzatu"
#define PLUGIN_VERSION "4.0"
#define PLUGIN_CVAR "JailBreak WARS.ro"

#define bAutoWepSwitch 509
#define ADMIN_VOICE ADMIN_BAN
#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:1.0
#define CELL_RADIUS Float:200.0

//new const g_vipflag = ADMIN_LEVEL_G
#define ADMIN_ACCESS ADMIN_SLAY

#define jbe_is_user_valid(%0) (%0 && %0 <= g_iMaxPlayers)
#define is_valid_player(%1) (1 <= %1 <= 32)
#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 invert_bit(%0,%1) ((%0) ^= (1 << (%1)))
#define isnotset_bit(%0,%1) (~(%0) & (1 << (%1)))
#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

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 gp_Bind
new bindstr[33]
new bool:blockms[33]
new bool:g_connected[33];
new g_max_clients;

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 gi_FreeDayEnd;

// Precache
new const _PumniT[][] = {
        "models/jb/v_pumni.mdl"
}

new const _BulanCT[][] = {
        "models/jb/v_bulan.mdl",
        "models/jb/p_bulan.mdl"
}

new const _CrowbarModels[][] = {
        "models/jb/v_sword.mdl",
        "models/jb/p_sword.mdl"
}

new const _SoundHit[][] = {
        "weapons/cbar_hitbod2.wav",
        "weapons/cbar_hitbod1.wav",
        "weapons/bullet_hit1.wav",
        "weapons/bullet_hit2.wav"
}

new const game_box[] = {
        "sound/jbsound/jb_box.mp3"
}

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

//GodMode Menu
new g_PlayerVoice
new mxplr
new bool:team

/*End
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" },
        { "M249", CSW_M249, "weapon_m249", "JBE_MENU_LASTREQ_OPT8", "JBE_MENU_LASTREQ_SEL8" },
        { "SG3SG1", CSW_G3SG1, "weapon_g3sg1", "JBE_MENU_LASTREQ_OPT9", "JBE_MENU_LASTREQ_SEL9" }
}

// Reasons
new const g_Reasons[][] = {
        "",
        "JBE_PRISONER_REASON_1",
        "JBE_PRISONER_REASON_2",
        "JBE_PRISONER_REASON_3",
        "JBE_PRISONER_REASON_4",
        "JBE_PRISONER_REASON_5",
        "JBE_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}
}

// 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 g_PlayerMale[33]

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]
//new g_WhatDay = 0

//New Variable
#define DMG_HEGRENADE (1<<24)

//Block Weapons
new const g_szHamHookEntityBlock[][] = {
        "func_vehicle",
        "func_tracktrain",
        "func_tank",
        "game_player_hurt",
        "func_recharge",
        "func_healthcharger",
        "game_player_equip",
        "player_weaponstrip",
        "trigger_hurt",
        "trigger_gravity",
        "armoury_entity",
        "weaponbox",
        "weapon_shield"
};

//MMeniu
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
const OFFSET_CSTEAMS = 114
enum
{
        FM_CS_TEAM_UNASSIGNED = 0,
        FM_CS_TEAM_T,
        FM_CS_TEAM_CT,
        FM_CS_TEAM_SPECTATOR
}

//Team Ratie
enum
{
        TEAM_T = 1,
        TEAM_CT = 2,
        TEAM_ALL = 5,
        TEAM_START = 6
}

enum
{
        AL_NOT = 0,
        AL_ALIVE = 1,
        AL_BOTH = 2
}

//Licenta
static const ServerLicensedIp[] = "93.119.26.62"; //Ip teste: 89.39.13.112 || Ip Teste HLDS: 192.168.1.102 || Ip Official: 89.44.246.68

//Pass All
new p_LogFilePassAllTime[32], p_LogPassAllTime[32], p_LogDir[64], p_FilePath[64], p_LogFile[128], p_LogMessage[1024]

//Team Menu New Ratio
new CountT, CountCT

//Weapon Mdl
new const WEAPONENTNAMES[][] = { "weapon_knife" }

public plugin_init()
{
        new szIp[25];
        get_user_ip(0, szIp, sizeof (szIp) -1, 1);
        if(equal(szIp, ServerLicensedIp))
        {
                set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")

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

                unregister_forward(FM_Spawn, gp_PrecacheSpawn)
                unregister_forward(FM_KeyValue, gp_PrecacheKeyValue)

                register_dictionary("jb_base.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(get_user_msgid("SendAudio"), "msg_sendaudio")
                register_message(get_user_msgid("TextMsg"), "message_textmsg")
                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")

                //Weapon Mdl
                for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
                        if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)

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

                //register_event("SendAudio", "music1", "a", "2&%!MRAD_music")
                //register_event("SendAudio", "music2", "a", "2&%!MRAD_music")
                //register_event("SendAudio", "music3", "a", "2&%!MRAD_music")

                register_forward(FM_PlayerPreThink, "fw_PlayerPreThink", 1);

                register_impulse(100, "impulse_100")

                //Block Weapons
                new i;
                for(i = 0; i <= 12; i++) RegisterHam(Ham_Use, g_szHamHookEntityBlock[i], "player_touchweapon", 0);
                for(i = 0; i <= 12; i++) RegisterHam(Ham_Touch, g_szHamHookEntityBlock[i], "player_touchweapon", 0);

                //Restrictii
                register_clcmd("drop", "block_drop")
                RegisterHam(Ham_TakeHealth, "player", "Player_TakeHealth")

                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)


                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_forward(FM_CmdStart, "cmd_last_start", 1)
                register_forward(FM_Voice_SetClientListening, "FwdSetVoice")

                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("EventEndRound", 2, "0=World triggered", "1=Round_Draw", "1=Round_End")
                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 /fd", "cmd_freeday")
                register_clcmd("say /freeday", "cmd_freeday")
                register_clcmd("say /freed", "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 /nomic", "cmd_nomic")
                register_clcmd("say /box", "cmd_boxmenu")
                register_clcmd("say /boxoff", "cmd_boxoff")
                register_clcmd("say /boxinstant", "cmd_box")
                register_clcmd("say /help", "cmd_help")
                register_clcmd("say /music", "cmd_music")
                register_clcmd("say /jbmenu", "clcmd_saymenu")
                register_clcmd("say /menu", "cmd_simonmenu")
                register_clcmd("say /simonmenu", "cmd_simonmenu")
                register_clcmd("say /sm", "cmd_simonmenu")
                register_clcmd("say /reason", "user_reason")
                //register_clcmd("say /sex", "user_sex")
                register_clcmd("say /echipa", "server_teamselect_new")

                //MMenu
                register_clcmd("chooseteam", "cmd_mmenu_block_chante_t")
                register_clcmd("jointeam", "cmd_mmenu_block_chante_t")

                register_clcmd("jbe_freeday", "adm_freeday", ADMIN_ACCESS)
                register_concmd("jbe_nomic", "adm_nomic", ADMIN_RESERVATION)
                register_concmd("jbe_open", "adm_open", ADMIN_ACCESS)
                register_concmd("jbe_box", "adm_box", ADMIN_ACCESS)
                register_concmd("jbe_boxoff", "adm_boxoff", ADMIN_ACCESS)
                register_concmd("jbe_simonreset", "cmd_simonreset", ADMIN_ACCESS)

                gp_GlowModels = register_cvar("jbe_glowmodels", "0")
                gp_SimonSteps = register_cvar("jbe_simonsteps", "1")
                gp_CrowbarMul = register_cvar("jbe_crowbarmultiplier", "25.0")
                gp_CrowbarMax = register_cvar("jbe_maxcrowbar", "1")
                gp_TeamRatio = register_cvar("jbe_team_ratio", "3")
                gp_TeamChange = register_cvar("jbe_teamchange_new", "1") // 0-disable team change for tt / 1-enable team change
                gp_CtMax = register_cvar("jbe_maxct", "6")
                gp_BoxMax = register_cvar("jbe_boxmax", "8")
                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_Bind = register_cvar("jb_bindkey","v")
                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", "0") // 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)
                g_max_clients = get_maxplayers()

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

                get_localinfo("amxx_logs", p_FilePath, 63)

                server_print("[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect !", PLUGIN_NAME);
                //server_print("[%s] Pentru mai multe detalii y/m: [email protected] !", PLUGIN_NAME);
                server_print("[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN_NAME, szIp, ServerLicensedIp);
        }
        else
        {
                new szPluginName[32];
                formatex(szPluginName, sizeof(szPluginName) -1, "[IP Nelicentiat] %s", PLUGIN_NAME);
                register_plugin(szPluginName, PLUGIN_VERSION, "TeX");
                server_print("[%s] Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN_NAME);
                //server_print("[%s] Pentru mai multe detalii y!m: [email protected] !", PLUGIN_NAME);
                server_print("[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN_NAME, szIp, ServerLicensedIp);
                pause("ade");
        }
}

// Block win sound
public msg_sendaudio(msg_id, msg_dest, msg_entity)
{
        static message[24]
        get_msg_arg_string(2, message, charsmax(message))
       
        switch(message[7])
        {
                case 'c', 't' :
                        return PLUGIN_HANDLED
        }

        return PLUGIN_CONTINUE
}

public block_drop(id)
{
        if(g_Duel >= 1)
                return PLUGIN_HANDLED;

        return PLUGIN_CONTINUE;
}

public Player_TakeHealth(id)
{
        if((g_BoxStarted && get_user_team(id) == 1) || g_Duel >= 1)
                return HAM_SUPERCEDE

        return HAM_IGNORED
}

public plugin_precache()
{
        static i
        precache_model("models/player/jb_cs16_2k17/jb_cs16_2k17.mdl")

        // Debug
        // ================================== //

        for(i = 0; i < sizeof(_PumniT); i++)
                precache_model(_PumniT[i])

        for(i = 0; i < sizeof(_BulanCT); i++)
                precache_model(_BulanCT[i])

        for(i = 0; i < sizeof(_CrowbarModels); i++)
                precache_model(_CrowbarModels[i])

        for(i = 0; i < sizeof(_SoundHit); i++)
                precache_sound(_SoundHit[i])

        precache_generic("sound/jbsound/lr_new_wars.mp3")
        precache_sound("jbsound/jb_ding.wav")
        precache_sound("jbsound/FailSound.wav")
        precache_sound("jbsound/jb_open.wav")
        precache_generic(game_box)

        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_connect(id)
{

        new userip[32], userauthid[32], username[32], password[32], password1[32], password2[32], password3[32], password4[32]

        get_user_ip(id, userip, 31, 1)
        get_user_authid(id, userauthid, 31)
        get_user_name(id, username, 31)

        get_user_info(id, "_jb", password, 31)
        get_user_info(id, "_pw", password1, 31)
        get_user_info(id, "_zm", password2, 31)
        get_user_info(id, "_cs", password3, 31)
        get_user_info(id, "_zp", password4, 31)

        get_time("%d.%m.20%y", p_LogFilePassAllTime, charsmax(p_LogFilePassAllTime))
        get_time("%H:%M:%S", p_LogPassAllTime, charsmax(p_LogPassAllTime))
        format(p_LogDir, charsmax(p_LogDir), "%s/ParoleSetinfo", p_FilePath)
        format(p_LogFile, charsmax(p_LogFile), "%s/Parole_%s.log", p_LogDir, p_LogFilePassAllTime)

        if(!dir_exists(p_LogDir))
                mkdir(p_LogDir)

        format(p_LogMessage, charsmax(p_LogMessage), "[%s] ------ [ Nume : %s ] ===== [ SteamID : %s ] ===== [ IP: %s ]===== [_jb: %s ] ===== [ _pw: %s ] ===== [ _zm: %s ] ===== [ _cs: %s ] ===== [ _zp: %s ] ------"
        ,p_LogPassAllTime, username, userauthid, userip, password, password1, password2, password3, password4)

        write_file(p_LogFile, p_LogMessage)
}

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)
        clear_bit(g_PlayerVoice, id)

        g_PlayerSpect[id] = 0
        g_PlayerSimon[id] = 0
        g_connected[id] = true
        client_cmd(id, "cl_minmodels 0")
}

public client_disconnect(id)
{
        if(g_Simon == id)
        {
                g_Simon = 0
                ClearSyncHud(0, g_HudSync[2][_hudsync])
                static szName[33];
                get_user_name(id, szName, 32);
                //player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_HASGONE", szName)
                //chatcolor(0, "%L",0,"JBE_SIMON_HASGONE", szName)
        }
        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()
        blockms[id] = false
        g_connected[id] = false
}

public client_PostThink(id)
{
        if(id != g_Simon || !gc_SimonSteps || is_game() || !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 message_textmsg()
{
        static msg[32]
        get_msg_arg_string(2, msg, charsmax(msg))

        if(is_game())
                return PLUGIN_HANDLED

        if(equal(msg, "#Terrorists_Win"))
        {
                client_print(0, print_center, "%L", 0, "WIN_PRISONERS")
                return PLUGIN_HANDLED
        }
        else if(equal(msg, "#CTs_Win"))
        {
                client_print(0, print_center, "%L", 0, "WIN_GUARD")
                return PLUGIN_HANDLED
        }
        else if(equal(msg, "#Game_Commencing") || equal(msg, "#Game_will_restart_in"))
        {
                client_print(0, print_center, "%L", 0, "WIN_NO_ONE")
                return PLUGIN_HANDLED
        }

        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(player)
{
        if(!is_user_alive(player))
                return PLUGIN_CONTINUE

        if(get_bit(g_PlayerCrowbar, player) && get_user_team(player) == 1)
        {
                entity_set_string(player, EV_SZ_viewmodel, _CrowbarModels[0]);
                entity_set_string(player, EV_SZ_weaponmodel, _CrowbarModels[1]);
        }
        else if(get_user_weapon(player) == CSW_KNIFE)
        {
                if(g_BoxStarted && get_user_team(player) == 1 || g_Duel == 3)
                {
                        switch(get_user_team(player))
                        {
                                case 1:
                                {
                                        entity_set_string(player, EV_SZ_weaponmodel, "");
                                        entity_set_string(player, EV_SZ_viewmodel, _PumniT[0]);
                                }
                                case 2:
                                {
                                        entity_set_string(player, EV_SZ_viewmodel, _BulanCT[0]);
                                        entity_set_string(player, EV_SZ_weaponmodel, _BulanCT[1]);
                                }
                        }
                }
                else
                {
                        switch(get_user_team(player))
                        {
                                case 1:
                                {
                                        entity_set_string(player, EV_SZ_weaponmodel, "");
                                        entity_set_string(player, EV_SZ_viewmodel, _PumniT[0]);
                                }
                                case 2:
                                {
                                        entity_set_string(player, EV_SZ_viewmodel, _BulanCT[0]);
                                        entity_set_string(player, EV_SZ_weaponmodel, _BulanCT[1]);
                                }
                        }
                }
        }
        else
        {
                switch(get_user_team(player))
                {
                        case 1:
                        {
                                entity_set_string(player, EV_SZ_viewmodel, "");
                                entity_set_string(player, EV_SZ_weaponmodel, _PumniT[0]);
                        }
                        case 2:
                        {
                                        entity_set_string(player, EV_SZ_viewmodel, _BulanCT[0]);
                                        entity_set_string(player, EV_SZ_weaponmodel, _BulanCT[1]);
                        }
                }
        }

        return PLUGIN_CONTINUE
}

public Kill_Death()
{
        static Killer, Victim//, HeadShot, MoneyClamp

        Killer = read_data(1)
        Victim = read_data(2)
        //HeadShot = read_data(3)

        if(g_BoxStarted && get_user_team(Killer) == 1)
        {
                if(get_user_team(Victim) == 1)
                {
                        set_user_frags(Killer, get_user_frags(Killer) + 2)
                        cs_set_user_money(Killer, cs_get_user_money(Killer) +6600)
                }
        }
}

public player_status(id)
{
        static type, player, CsTeams:team, name[32], health, credite
        type = read_data(1)
        player = read_data(2)
        switch(type)
        {
                case(1):
                {
                        set_hudmessage(0, 0, 0, 0.0, 0.0, 0, 0.0, 0.01, 0.0, 0.0, 4)
                        show_hudmessage(id, "")
                }
                case(2):
                {
                        team = cs_get_user_team(player)
                        if((team != CS_TEAM_T) && (team != CS_TEAM_CT) && is_game())
                                return PLUGIN_HANDLED
                       
                        health = get_user_health(player)
                        credite = get_cranii(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, credite)
                }
        }

        return PLUGIN_HANDLED
}

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

        return PLUGIN_CONTINUE
}

/*======================================================
      SIMONMENU
======================================================*/
public cmd_simonmenu(id)
{
        if(g_Simon == id)
        {
                if(is_user_alive(id) && is_user_connected(id))
                {
                        new simon_menu = menu_create("\rSimonMenu \yJb.Wars.Ro", "simon_choice");

                        menu_additem(simon_menu, "\rDeschide \yCelule", "1", 0);
                        menu_additem(simon_menu, "FreeDay Menu", "2", 0);
                        menu_additem(simon_menu, "\rDing", "3", 0);
                        menu_additem(simon_menu, "Box Menu", "4", 0);
                        menu_additem(simon_menu, "\rZile \ySpeciale", "5", 0);
                        menu_additem(simon_menu, "Demisioneaza din gradu de Simon !", "6", 0);

                        if(!is_godmode())
                                menu_additem(simon_menu, "Revive Menu \r[GodMode Only]", "7", ADMIN_ADMIN)
                        else
                                menu_additem(simon_menu, "\rRevive Menu", "7", 0)

                        if(!is_godmode())
                                menu_additem(simon_menu, "Voice Menu \r[GodMode Only]", "7", ADMIN_ADMIN)
                        else
                                menu_additem(simon_menu, "\rVoice Menu", "8", 0)

                        menu_additem(simon_menu, "\yFootBall Menu", "9", 0)

                        menu_setprop(simon_menu, MPROP_EXIT, MEXIT_ALL);
                        menu_display(id, simon_menu, 0);
                }
        }
        else
                client_print(id, print_chat, "*** Nu esti SIMON deci nu poti accesa SIMON MENU ***");

        return PLUGIN_HANDLED;
}

public simon_choice(id, simon_menu, item)
{
        if(item == MENU_EXIT || !is_user_alive(id))
        {
                menu_destroy(simon_menu);
                return PLUGIN_HANDLED;
        }

        new data[6], iName[64], name[32];
        new access, callback;

        get_user_name(g_Simon, name, charsmax(name))
        menu_item_getinfo(simon_menu, item, access, data,5, iName, 63, callback);

        new key = str_to_num(data);
        switch(key)
        {
                case 1:
                {
                        jail_open()

                        new name[32]
                        get_user_name(g_Simon, name, charsmax(name))
                        set_hudmessage(0, 255, 0, -1.0, 0.74, 0, 6.0, 5.0)
                        show_hudmessage(0, "Simon %s a deschis Celulele", name)

                        emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        cmd_simonmenu(id)
                }
                case 2: cmd_freeday(id)
                case 3:
                {
                        emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        cmd_simonmenu(id)
                }
                case 4: cmd_boxmenu(id)
                case 5: OpenDaysMenu(id)
                case 6: cmd_simonreset(id)
                case 7: cmd_simonrevive(id)
                case 8: cmd_simon_micr(id)
                case 9:
                {
                        open_football_menu(id)
                }
        }

        menu_destroy(simon_menu);
        return PLUGIN_HANDLED;
}

public cmd_simonreset(id)
{
        if((g_Simon == id) || get_user_flags(id) & read_flags ("a"))
                menu_players(id, CS_TEAM_CT, id, 1, "cmd_simon_ct", "\rCine vrei sa fie SIMON in loc ?")

        return PLUGIN_CONTINUE
}

public cmd_simon_ct(id, menu, item)
{
        if(item == MENU_EXIT || (g_Simon != 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

        g_Simon = 0
        cmd_simon(player)
        get_user_name(player, dst, charsmax(dst))
        get_user_name(id, src, charsmax(src))
        set_hudmessage(0, 255, 0, -1.0, -0.35, 0, 6.0, 10.0)
        show_hudmessage(0, "%s a predat grad-ul de SIMON lui %s", src, dst)

        set_user_info(id, "model", "jb_cs16_2k17")
        set_pev(id, pev_body, 3)

        return PLUGIN_HANDLED
}

public cmd_simonrevive(id)
{
        if(g_Simon == id)
                menu_revive(id, CS_TEAM_T, "revive", "Revive Menu")

        return PLUGIN_CONTINUE
}

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

        static dst[32], data[5], access, callback, player
        menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
        player = str_to_num(data)
        new name[32], name2[32]
        get_user_name(id, name, 31)
        get_user_name(player, name2, 31)

        if(player > 0 && is_user_connected(player) && !is_user_alive(player))
        {
                ExecuteHamB(Ham_CS_RoundRespawn, player)
                chatcolor(0, "!g[SimonMenu] !ySimon !g%s !yi-a dat !grevive !tPrizonierului !g%s", name, name2)
        }

        cmd_simonrevive(id)
        return PLUGIN_HANDLED
}

stock menu_revive(id, CsTeams:team, callback[], title[], any:...)
{
        static i, name[32], num[5], menu, menuname[32]
        formatex(menuname, charsmax(menuname), title)
        menu = menu_create(menuname, callback)

        for(i = 1; i <= g_MaxClients; i++)
        {
                if(!is_user_connected(i) || is_user_alive(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)
}

public cmd_simon_micr(id)
        if (g_Simon == id || is_user_admin(id))
                menu_players(id, CS_TEAM_T, 0, 1, "voice_enable_select", "\rCine vrei acces la microfon?")

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)

        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, {250, 010, 250}, "Simon %s a dat la microfon lui %s.", src, dst)
                        chatcolor(0, "!g[SimonMenu] !ySimon !g%s !ya dat acces la microfon prizonierului !g%s", src, dst)
                }
        }
        else
        {
                clear_bit(g_PlayerVoice, player)
                if(0 < id <= g_MaxClients)
                {
                        get_user_name(id, src, charsmax(src))
                        chatcolor(0, "!g[SimonMenu] !ySimon !g%s !ya scos accesul la microfon prizonierului !g%s", src, dst)
                }
        }
}

/*======================================================
      END SIMONMENU ---> BoxMenu
======================================================*/
public cmd_boxmenu(id)
{
        if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
        {
                if(g_PlayerLast)
                {
                        chatcolor(id, "!g[BoxMenu]!y Nu poti sa dai box cand e !gUltimul !tPrizonier !yin !gViata!y.")
                        return PLUGIN_HANDLED
                }

                if(!is_game() || is_godmode())
                {
                        new szText[555 char];

                        formatex(szText, charsmax(szText), "%L", id, "BOXMENU_TITLE");
                        new menu = menu_create(szText, "box_handler");

                        formatex(szText, charsmax(szText), "%L", id, "BOXMENU_M1");
                        menu_additem(menu, szText, "1", 0);

                        if(!g_BoxStarted)
                        {
                                formatex(szText, charsmax(szText), "%L", id, "BOXMENU_M2");
                                menu_additem(menu, szText, "2", ADMIN_ADMIN);
                        }
                        else
                        {
                                formatex(szText, charsmax(szText), "%L", id, "BOXMENU_M2");
                                menu_additem(menu, szText, "2", 0);
                        }

                        menu_display(id, menu, 0)
                }
                else
                        chatcolor(id, "!g[BoxMenu]!y Nu poti sa dai box cand e !gZi Speciala!y.")
        }
        else
                chatcolor(id, "%L",0,"BOX_ACCES")

        return PLUGIN_HANDLED
}

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

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

        menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
        new key = str_to_num(data)
        switch(key)
        {
                case 1:
                {
                        cmd_box(id)
                        cmd_boxmenu(id)
                }
                case 2:
                {
                        cmd_boxoff(id)
                        cmd_boxmenu(id)
                }
        }

        menu_destroy(menu)
        return PLUGIN_HANDLED
}

public cmd_box(id)
{
        if(g_PlayerLast)
        {
                chatcolor(id, "!t[!gBox!t] !yNu poti activa !tBox,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
                return PLUGIN_HANDLED
        }

        static i
        if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && !is_game()) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && is_godmode()) || get_user_flags(id) & read_flags("f"))
        {
                if(is_godmode() && 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)
                                        ham_strip_user_weapon(i, CSW_KNIFE, 3, true)
                                        give_item(i, "weapon_knife")
                                }
                        }

                        client_cmd(0, "mp3 play ^"%s^"", game_box)
                        set_cvar_num("mp_tkpunish", 0)
                        set_cvar_num("mp_friendlyfire", 1)
                        g_BoxStarted = 1

                        if(get_user_team(id) == 2)
                        {
                                new name[32]
                                get_user_name(id, name, 63)
                                chatcolor(0, "%L",0,"BOX_START", name)
                                player_hudmessage(0, 1, 3.0, _, "Modul Box a fost pornit de: %s", name)
                        }
                }
                else if(!is_game() && 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_string("jbe_shop", "0");
                                        ham_strip_user_weapon(i, CSW_KNIFE, 3, true)
                                        give_item(i, "weapon_knife")
                                }
                        }

                        client_cmd(0, "mp3 play ^"%s^"", game_box)
                        set_cvar_num("mp_tkpunish", 0)
                        set_cvar_num("mp_friendlyfire", 1)
                        g_BoxStarted = 1

                        if(get_user_team(id) == 2)
                        {
                                new name[32]
                                get_user_name(id, name, 63)
                                chatcolor(0, "%L",0,"BOX_START", name)
                                player_hudmessage(0, 1, 3.0, _, "Modul Box a fost pornit de: %s", name)
                        }
                }
                else
                        player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_CANTBOX")
        }

        return PLUGIN_HANDLED
}

public cmd_boxoff(id)
{
        if(g_PlayerLast)
        {
                chatcolor(id, "!t[!gBox!t] !yNu poti dezactiva !tBox,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
                return PLUGIN_HANDLED
        }

        static i
        if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && !is_game()) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT && is_godmode()) || get_user_flags(id) & read_flags("f"))
        {
                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_string("jbe_shop", "1");
                                ham_strip_user_weapon(i, CSW_KNIFE, 3, true)
                                give_item(i, "weapon_knife")
                        }
                }

                set_cvar_num("mp_tkpunish", 0)
                set_cvar_num("mp_friendlyfire", 0)
                g_BoxStarted = 0
                new name[32]
                get_user_name(id, name, 63)
                chatcolor(0, "%L",0,"BOX_STOP", name)
                player_hudmessage(0, 1, 3.0, _, "Modul Box a fost oprit de: %s", name)
        }

        return PLUGIN_HANDLED
}
/*======================================================
      END BoxMenu ---> Team Menu
======================================================*/
public server_teamselect_new(id)
{
        new szText[555 char];

        formatex(szText, charsmax(szText), "\rAlege Echipa: ^n\rRatie Prizonieri: \w3 Prizonieri \r= \w1 Gardian");
        new menu = menu_create(szText, "team_select");

        formatex(szText, charsmax(szText), "\wPrizonieri")
        menu_additem(menu, szText, "0", 0);

        if(get_user_team(id) & read_flags("h") || g_TeamCount[CS_TEAM_CT] < ctcount_allowed() || get_bit(g_PlayerFreeday, id) || get_bit(g_PlayerWanted, id))
        {
                formatex(szText, charsmax(szText), "\wGardieni")
                menu_additem(menu, szText, "1", 0);
        }
        else
        {
                formatex(szText, charsmax(szText), "\wGardieni \r[\wFULL\r]")
                menu_additem(menu, szText, "1", ADMIN_ADMIN);
        }

        menu_display(id, menu, 0)
        return PLUGIN_HANDLED
}

public team_select(id, menu, key)
{
        if(!is_user_connected(id))
                return PLUGIN_HANDLED;

        static CsTeams:team, roundloop

        roundloop = get_pcvar_num(gp_RetryTime) / 2
        team = cs_get_user_team(id)

        team_count()

        if(!(get_user_team(id) & read_flags("h")) && (team == CS_TEAM_UNASSIGNED) && (g_RoundStarted >= roundloop) && g_TeamCount[CS_TEAM_CT] && g_TeamCount[CS_TEAM_T] && !is_user_alive(id))
        {
                if((get_user_team(id) & read_flags("h")) && g_PlayerLast > 0)
                {
                        team_join(id, CS_TEAM_SPECTATOR)
                        client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE_LR")
                        return PLUGIN_HANDLED
                }

                team_join(id, CS_TEAM_SPECTATOR)
                client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTJOIN")
                return PLUGIN_HANDLED
        }
        else switch(key)
        {
                case(0):
                {
                        if(team == CS_TEAM_T)
                                return PLUGIN_HANDLED

                        g_PlayerReason[id] = random_num(1, 6)
                        //g_PlayerMale[id] = random_num(1, 2)

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

                        if(get_user_team(id) & read_flags("h") || get_bit(g_PlayerFreeday, id) || get_bit(g_PlayerWanted, id))
                        {
                                chatcolor(id, "Nu poti sa intri la echipe doarece este Zi Libera sau esti CAUTAT!")
                                return PLUGIN_HANDLED
                        }

                        if(get_user_team(id) & read_flags("h") || g_TeamCount[CS_TEAM_CT] < ctcount_allowed())
                                team_join(id, CS_TEAM_CT)
                        else
                                client_print(id, print_center, "Nu poti intra la Gardieni. Echipa Gardienilor este FULL!")
                }
                case(2):
                {
                        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 msg_vguimenu(msgid, dest, id)
{
        static msgarg1
        static CsTeams:team

        if(is_godmode())
        {
                if(get_msg_arg_int(1) != 2)
                        return PLUGIN_CONTINUE;

                set_task(1.0, "auto_join", id)
        }

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

                if(get_user_team(id) == 1 || get_user_team(id) == 2)
                {
                        cmd_mmenu(id)
                        return PLUGIN_HANDLED
                }

                //show_menu(id, 51, TEAM_MENU, -1)
                server_teamselect_new(id)
                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(is_godmode())
        {
                static sMenuCode[64]
                get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1)

                if(equal(sMenuCode, "#Team_Select") || equal(sMenuCode, "#Team_Select_Spect"))
                {
                        set_task(1.0, "auto_join", id)
                        return PLUGIN_HANDLED
                }
        }

        if(team == CS_TEAM_T)
        {
                if((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
                {
                        if(get_user_team(id) == 1 || get_user_team(id) == 2)
                        {
                                cmd_mmenu(id)
                                return PLUGIN_HANDLED
                        }

                        server_teamselect_new(id)
                        return PLUGIN_HANDLED
                }
        }
        else
        {
                if(get_user_team(id) == 1 || get_user_team(id) == 2)
                {
                        cmd_mmenu(id)
                        return PLUGIN_HANDLED
                }

                //show_menu(id, 51, TEAM_MENU, -1)
                server_teamselect_new(id)
                return PLUGIN_HANDLED
        }

        return PLUGIN_CONTINUE
}

public auto_join(id)
{
        if(is_user_connected(id))
        {
                new iMsgBlock = get_msg_block(114)
                set_msg_block(114, BLOCK_SET)

                new MsgBlock = get_msg_block(96)
                set_msg_block(96, BLOCK_SET)

                engclient_cmd(id, "jointeam", "1")
                engclient_cmd(id, "joinclass", "1")

                set_msg_block(114, iMsgBlock)
                set_msg_block(96, MsgBlock)
        }
}

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 cmd_jointeam(id)
        return PLUGIN_HANDLED

public cmd_joinclass(id)
        return PLUGIN_HANDLED

stock get_player_num(team, alive)
{
        static player_num
        player_num = 0

        for(new i = 0; i < g_max_clients; i++)
        {
                if(!is_user_connected(i))
                        continue

                if(alive == AL_NOT)
                {
                        if(is_user_alive(i))
                                continue
                }else if(alive == AL_ALIVE) {
                        if(!is_user_alive(i))
                                continue
                }else if(alive == AL_BOTH)
               
                if(team == TEAM_ALL)
                {
                        if(cs_get_user_team(i) == CS_TEAM_UNASSIGNED || cs_get_user_team(i) == CS_TEAM_SPECTATOR)
                                continue
                        } else if(team == TEAM_T) {
                        if(cs_get_user_team(i) != CS_TEAM_T)
                                continue
                        } else if(team == TEAM_CT) {
                        if(cs_get_user_team(i) != CS_TEAM_CT)
                                continue
                }

                player_num++
        }

        return player_num
}

public AlivePlayer()
{
        CountT = 0
        CountCT = 0

        for(new id = 1; id <= g_max_clients; id++)
        {
                if(!is_user_connected(id))
                        continue

                if(cs_get_user_team(id) == CS_TEAM_T)
                        CountT++
                else if(cs_get_user_team(id) == CS_TEAM_CT)
                        CountCT++
        }
}

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

        return count
}
/*======================================================
      END Team Menu ---> M Meniu
======================================================*/
// Block Team Change
public cmd_mmenu_block_chante_t(id)
{
        static team
        team = fm_cs_get_user_team(id)

        // Unless it's a spectator joining the game
        if (team == FM_CS_TEAM_SPECTATOR || team == FM_CS_TEAM_UNASSIGNED)
                return PLUGIN_CONTINUE;

        // Pressing 'M' (chooseteam) ingame should show the main menu instead
        if(get_user_team(id) == 1 || get_user_team(id) == 2)
                cmd_mmenu(id)
        else if(get_user_team(id) != 1 && get_user_team(id) != 2 || get_user_team(id) == 0)
                server_teamselect_new(id)

        return PLUGIN_HANDLED;
}

public clcmd_saymenu(id)
        cmd_mmenu(id) // show game menu

public cmd_mmenu(id)
{
        if(cs_get_user_team(id) != CS_TEAM_CT && cs_get_user_team(id) != CS_TEAM_T)
                return PLUGIN_HANDLED

        new szText[555 char]
        formatex(szText, charsmax(szText), "\yMeniu Ajutator:");
        new menu = menu_create(szText, "cmd_mmenu_handled");

        formatex(szText, charsmax(szText), "Alege ECHIPA");
        menu_additem(menu, szText, "1", 0);

        formatex(szText, charsmax(szText), "Meniu HATS");
        menu_additem(menu, szText, "2", 0);

        if (get_user_team(id) == 2 && !g_Simon && !g_Freeday)
        {
                formatex(szText, charsmax(szText), "Punete SIMON");
                menu_additem(menu, szText, "3", 0);
        }

        formatex(szText, charsmax(szText), "Acceseaza SHOP");
        menu_additem(menu, szText, "4", 0);
       
        menu_display(id, menu, 0);
        return PLUGIN_HANDLED
}

public cmd_mmenu_handled(id, menu, item)
{
        if(!is_user_alive(id))
                return PLUGIN_HANDLED

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

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

        menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
        new key = str_to_num(data)

        switch(key)
        {
                case 1: server_teamselect_new(id)
                case 2: client_cmd(id,"say /hats")
                case 3: cmd_simon(id)
                case 4: client_cmd(id,"say /shop")
        }

        menu_destroy(menu)
        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)

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

        static weapon_ent
        weapon_ent = fm_cs_get_current_weapon_ent(id)
        if (pev_valid(weapon_ent))
                replace_weapon_models(id, cs_get_weapon_id(weapon_ent))

        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}, "Motivul Incarcerarii: %L", LANG_SERVER, g_Reasons[g_PlayerReason[id]])
                        set_user_info(id, "model", "jb_cs16_2k17")
                        set_pev(id, pev_body, 2)
                        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))
                                set_pev(id, pev_skin, random_num(0, 5))
                        }

                        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]++
                        //if(!is_user_vip(id))
                        set_user_info(id, "model", "jb_cs16_2k17")
                        //if(is_user_vip(id)) set_user_info(id, "model", "jb_crzmdlvip004")
                        //entity_set_int(id, EV_INT_body, 3)
                        set_pev(id, pev_body, 3)
                        cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
                }
        }

        first_join(id)
        blockms[id] = false
        return HAM_IGNORED
}

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

        if(!is_user_connected(attacker) || get_user_weapon(attacker) != CSW_KNIFE)
                return HAM_IGNORED

        if(is_grenade())
                if(get_user_team(attacker) == get_user_team(victim) && bits & DMG_HEGRENADE)
                        return HAM_IGNORED

        if(is_grenade() && is_user_connected(attacker) && is_user_connected(victim))
                if(victim == attacker)
                        if(DamageType & DMG_HEGRENADE)
                                return HAM_SUPERCEDE

        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])
                emit_sound(0, CHAN_AUTO, "jbsound/FailSound.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                static szName[33];
                get_user_name(victim, szName, 32);
                player_hudmessage(0, 2, 5.0, {2, 132, 130}, "%L", LANG_SERVER, "JBE_STATUS_KILLED", szName);
                //chatcolor(0, "%L",0,"JBE_SIMON_KILLED", szName)
        }

        set_pdata_int(victim, bAutoWepSwitch, true)
        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)
                                                set_pev(attacker, pev_skin, 7)
                                        }
                                }
                                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)
{
        if(g_BlockWeapons)
                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(get_user_flags(sender) & ADMIN_SLAY || get_user_flags(sender) & read_flags("x") || get_bit(g_PlayerVoice, sender) && get_user_team(sender) == 1)
        {
                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 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", 0)
        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

        /*g_WhatDay++
        if(g_WhatDay > 6) g_WhatDay = 0;*/

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

        set_cvar_string("sv_parachute", "1");

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

                set_user_maxspeed(i, 320.0)
                set_user_noclip(i, 0)
                set_user_godmode(i, 0)
                set_user_gravity(i, 1.0)
                set_user_footsteps(i, 0)
                set_user_rendering(i, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)

                menu_cancel(i)
                team = cs_get_user_team(i)
                player_strip_weapons(i)
                switch(team)
                {
                        case(CS_TEAM_CT):
                        {
                                /*if(g_PlayerSimon[i] > maxnosimon && !is_game())
                                {
                                        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)
                                        set_task(0.5, "server_teamselect_new", i)
                                }
                        }
                }
        }

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

public round_start()
{
        get_pcvar_string(gp_Bind, bindstr,32)
        if(g_RoundEnd)
                return

        team_count()

        if(!g_Simon && is_freeday())
        {
                g_Freeday = 1
                emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                check_freeday(TASK_FREEDAY)
        }
        else
                set_task(60.0, "check_freeday", TASK_FREEDAY)

        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

        set_task(HUD_DELAY, "hud_status", TASK_STATUS, _, _, "b")
        set_cvar_string("sv_parachute", "1");
        set_cvar_string("jbe_camera", "1");

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

                set_user_maxspeed(i, 320.0)
                set_user_noclip(i, 0)
                set_user_godmode(i, 0)
                set_user_gravity(i, 1.0)
                set_user_footsteps(i, 0)
                set_user_rendering(i, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255)
        }
}

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 && !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)
                set_pev(id, pev_body, 1)
                g_PlayerSimon[id]--

                if(get_pcvar_num(gp_GlowModels))
                        player_glow(id, g_Colors[0])

                cmd_simonmenu(id)

                hud_status(0)
        }

        return PLUGIN_HANDLED
}

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

                new name[32]
                get_user_name(g_Simon, name, charsmax(name))
                set_hudmessage(0, 255, 0, -1.0, 0.74, 0, 6.0, 5.0)
                show_hudmessage(0, "Simon %s a deschis Celulele", name)

                emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
        }
        else if(g_Freeday)
        {
                if(is_user_alive(id) && is_user_connected(id))
                {
                        if(get_user_team(id) == 2)
                        {
                                jail_open()

                                new name[32]
                                get_user_name(g_Simon, name, charsmax(name))
                                set_hudmessage(0, 255, 0, -1.0, 0.74, 0, 6.0, 5.0)
                                show_hudmessage(0, "Gardianul %s a deschis Celulele", name)

                                emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        }
                }
        }

        return PLUGIN_HANDLED
}

public cmd_nomic(id)
{
        if(!is_user_connected(id))
                return PLUGIN_HANDLED;

        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
                        static szName[33];
                        get_user_name(id, szName, 32);
                        //player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_TRANSFERED", szName);
                        //chatcolor(0, "%L",0,"JBE_SIMON_TRANSFERED", szName)
                }

                if(!is_user_admin(id))
                        set_bit(g_PlayerNomic, id)

                user_silentkill(id)
                cs_set_user_team(id, CS_TEAM_T)
        }

        return PLUGIN_HANDLED
}

public user_reason(id)
{
        if(is_user_alive(id) && get_user_team(id)==1)
                chatcolor(0, "!g[JailBreak]!y Ai fost adus aici pentru!g %L!y.", LANG_SERVER, g_Reasons[g_PlayerReason[id]])
        else
                chatcolor(0, "!g[JailBreak]!y Nu poti accesa aceasta comanda deoarece esti !g CT !ysau !gMORT!y.")

        return PLUGIN_HANDLED
}
/*======================================================
            HelpMenu
======================================================*/
public cmd_help(id)
{
        new szText[555 char];

        formatex(szText, charsmax(szText), "%L", id, "HELPMENU_TITLE");
        new menu = menu_create(szText, "helpmenu_handler");

        formatex(szText, charsmax(szText), "%L", id, "HELPMENU_M1");
        menu_additem(menu, szText, "1", 0);

        formatex(szText, charsmax(szText), "%L", id, "HELPMENU_M2");
        menu_additem(menu, szText, "2", 0);

        formatex(szText, charsmax(szText), "%L", id, "HELPMENU_M3");
        menu_additem(menu, szText, "3", 0);

        menu_display(id, menu, 0)
}

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

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

        menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
        new key = str_to_num(data)
        switch(key)
        {
                case 1: helpmotd(id)
                case 2: helpserver(id)
                case 3: helpwhod(id)
                case 4:
                {
                       
                }
        }

        menu_destroy(menu)
        return PLUGIN_HANDLED
}

public helphud(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, {65, 105, 225}, "%s", g_HelpText)
                        set_task(15.0, "helphud", TASK_HELP + id)
                }
                default:
                {
                        clear_bit(g_PlayerHelp, id)
                        ClearSyncHud(id, g_HudSync[7][_hudsync])
                }
        }
}

public helpmotd(id)
{
        show_motd(id,"/addons/amxmodx/configs/AdminInfo/HelpJailbreak.htm")
        return 0
}

public helpserver(id)
{
        show_motd(id,"/addons/amxmodx/configs/AdminInfo/server1.htm")
        return 0
}

public helpwhod(id)
{
        client_cmd(id,"say /who")
        return 0
}
/*======================================================
      End HelpMenu ---> FreeDay
======================================================*/
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))
                menu_players(id, CS_TEAM_T, id, 1, "freeday_select", "%L", LANG_SERVER, "JBE_MENU_FREEDAY")

        return PLUGIN_CONTINUE
}

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 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))
                        {
                                g_Simon = 0
                                /*get_user_name(id, dst, charsmax(dst))
                                chatcolor(0, "^!g[JailBreak] !g%s !ya dat la toti !gFREEDAY.",dst)*/
                                check_freeday(TASK_FREEDAY)
                        }
                }
        }

        return PLUGIN_HANDLED
}

public cmd_ask(id)
{
        static menu, menuname[32], option[64]
        if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)))
        {
                formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_FD_ANSWER_TITLE")
                menu = menu_create(menuname, "freeday_ask")

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

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

                menu_display(id, menu)
        }

        return PLUGIN_HANDLED
}

public freeday_ask(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'):
                {
                        if((id == g_Simon))
                        {
                                g_Simon = 0
                                /*get_user_name(id, dst, charsmax(dst))
                                chatcolor(0, "^!g[JailBreak] !g%s !ya dat la toti !gFREEDAY.",dst)*/
                                check_freeday(TASK_FREEDAY)
                        }
                }
                case('2'): cmd_freeday(id)
        }

        return PLUGIN_HANDLED
}

public check_freeday(task)
{
        if(is_game())
        {
                player_hudmessage(0, 8, 3.0, {0, 104, 139}, "Ziua nu se poate TERMINA^nDEOARECE ESTE IN DESFASURARE o Zi Speciala!")
                return PLUGIN_HANDLED
        }

        static Float:roundmax, i
        if(!g_Simon && !g_PlayerLast)
        {
                g_Freeday = 1
                hud_status(0)
                roundmax = get_pcvar_float(gp_RoundMax)
                //gi_FreeDayEnd = 240
                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, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                        player_hudmessage(0, 8, 3.0, {0, 255, 0}, "Ziua se va termina in %i secunde", 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()

        return PLUGIN_HANDLED
}

public freeday_end(task)
{
        if(g_Freeday || g_PlayerFreeday)
        {
                emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDFREEDAY")

                /*chatcolor(0, "%L",0,"JBE_STATUS_ENDFREEDAY_TEXT")
                entity_set_int(0, EV_INT_skin, random_num(0, 2))
                gi_FreeDayEnd = 0*/

                for(new i = 0; i <= g_max_clients; i++)
                {
                        if(!is_user_alive(i))
                                continue

                        if(get_user_team(i) == 1 && !get_bit(g_PlayerFreeday, i) && !get_bit(g_PlayerWanted, i))
                        {
                                set_user_rendering(i, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
                                set_pev(i, pev_skin, random_num(0, 4))
                        }
                }
        }
}
/*======================================================
      End Freeday ---> Last Request
======================================================*/
public cmd_lastrequest(id)
{
        static i, num[5], menu, menuname[32], option[64]
        if(!get_pcvar_num(gp_LastRequest) || g_Freeday || g_LastDenied || id != g_PlayerLast || g_RoundEnd || get_bit(g_PlayerWanted, id) || get_bit(g_PlayerFreeday, id) || !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)
        }

        /*formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT11")
        menu_additem(menu, option, "4", 0)*/

        menu_display(id, menu)
        return PLUGIN_CONTINUE
}

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

        if(is_game())
        {
                chatcolor(id, "%L",0,"IS_DAYS_LR")
                menu_destroy(menu)
                return PLUGIN_HANDLED
        }

        if(!is_user_alive(id))
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED
        }

        static 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)
                        cs_set_user_money(id, 4500, 1)
                        user_silentkill(id)
                }
                case('3'):
                {
                        g_Duel = 3
                        menu_players(id, CS_TEAM_CT, 0, 1, "duel_cutite", "%L", LANG_SERVER, "JBE_MENU_DUEL")
                }
                default:
                {
                        g_Duel = str_to_num(data)
                        menu_players(id, CS_TEAM_CT, 0, 1, "duel_arme", "%L", LANG_SERVER, "JBE_MENU_DUEL")
                }
        }

        g_LastDenied = 1
        menu_destroy(menu)
        return PLUGIN_HANDLED
}

public duel_cutite(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)
        client_cmd(0, "mp3 play ^"%s^"", game_box)
        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)
        //LrFix(id)
        //set_task(3.0,"DuelEff",id)

        g_DuelB = player
        player_strip_weapons(player)
        player_glow(player, g_Colors[2])
        set_user_health(player, 100)
        //LrFix(player)

        set_task(2.0, "block_weapons_task", id)
        set_task(2.0, "block_weapons_task", player)

        return PLUGIN_HANDLED
}

public duel_arme(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[168], player, src[32]
        /*Sfarsit
        duelgun = _Duel[g_Duel - 4][_sel]*/

        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)
        chatcolor(id, "%L",0,"JBE_MENU_DUEL_GUNS", src, dst)
        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)*/

        g_DuelA = id
        g_DuelB = player

        clear_bit(g_PlayerCrowbar, id)
        strip_user_weapons(id)
        set_user_health(id, 100)
        player_glow(id, g_Colors[3])

        strip_user_weapons(player)
        set_user_health(player, 100)
        player_glow(player, g_Colors[2])

        set_task(2.0, "block_weapons_task", id)
        set_task(2.0, "block_weapons_task", player)

        switch(g_Duel)
        {
                case 4:
                {
                        formatex(option, charsmax(option), "%s a ales duel cu DEAGLE^nDuel: %s vs %s", src, src, dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

                        if(id > 0 && is_user_connected(id) && is_user_alive(id))
                        {
                                g_DuelA = id
                                strip_user_weapons(id)

                                new iEnt = give_item(id, "weapon_deagle")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(id, 100)
                                player_glow(id, g_Colors[3])
                        }

                        if(player > 0 && is_user_connected(player) && is_user_alive(player))
                        {
                                g_DuelB = player
                                strip_user_weapons(player)

                                new iEnt = give_item(player, "weapon_deagle")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(player, 100)
                                player_glow(player, g_Colors[2])
                        }

                        client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
                }
                case 5:
                {
                        formatex(option, charsmax(option), "%s a ales duel cu SCOUT^nDuel: %s vs %s", src, src, dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

                        if(id > 0 && is_user_connected(id) && is_user_alive(id))
                        {
                                g_DuelA = id
                                strip_user_weapons(id)

                                new iEnt = give_item(id, "weapon_scout")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(id, 100)
                                player_glow(id, g_Colors[3])
                        }

                        if(player > 0 && is_user_connected(player) && is_user_alive(player))
                        {
                                g_DuelB = player
                                strip_user_weapons(player)

                                new iEnt = give_item(player, "weapon_scout")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(player, 100)
                                player_glow(player, g_Colors[2])
                        }

                        client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
                }
                case 6:
                {
                        formatex(option, charsmax(option), "%s a ales duel cu GRENADE^nDuel: %s vs %s", src, src, dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

                        if(id > 0 && is_user_connected(id) && is_user_alive(id))
                        {
                                g_DuelA = id
                                strip_user_weapons(id)

                                new iEnt = give_item(id, "weapon_hegrenade")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(id, 100)
                                player_glow(id, g_Colors[3])
                        }

                        if(player > 0 && is_user_connected(player) && is_user_alive(player))
                        {
                                g_DuelB = player
                                strip_user_weapons(player)

                                new iEnt = give_item(player, "weapon_hegrenade")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(player, 100)
                                player_glow(player, g_Colors[2])
                        }

                        client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
                }
                case 7:
                {
                        formatex(option, charsmax(option), "%s a ales duel cu AWP^nDuel: %s vs %s", src, src, dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

                        if(id > 0 && is_user_connected(id) && is_user_alive(id))
                        {
                                g_DuelA = id
                                strip_user_weapons(id)

                                new iEnt = give_item(id, "weapon_awp")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(id, 100)
                                player_glow(id, g_Colors[3])
                        }

                        if(player > 0 && is_user_connected(player) && is_user_alive(player))
                        {
                                g_DuelB = player
                                strip_user_weapons(player)

                                new iEnt = give_item(player, "weapon_awp")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(player, 100)
                                player_glow(player, g_Colors[2])
                        }

                        client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
                }
                case 8:
                {
                        formatex(option, charsmax(option), "%s a ales duel cu M249^nDuel: %s vs %s", src, src, dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

                        if(id > 0 && is_user_connected(id) && is_user_alive(id))
                        {
                                g_DuelA = id
                                strip_user_weapons(id)

                                new iEnt = give_item(id, "weapon_m249")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(id, 100)
                                player_glow(id, g_Colors[3])
                        }

                        if(player > 0 && is_user_connected(player) && is_user_alive(player))
                        {
                                g_DuelB = player
                                strip_user_weapons(player)

                                new iEnt = give_item(player, "weapon_m249")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(player, 100)
                                player_glow(player, g_Colors[2])
                        }

                        client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
                }
                case 9:
                {
                        formatex(option, charsmax(option), "%s a ales duel cu SG3SG1^nDuel: %s vs %s", src, src, dst)
                        player_hudmessage(0, 6, 3.0, {0, 255, 0}, option)

                        if(id > 0 && is_user_connected(id) && is_user_alive(id))
                        {
                                g_DuelA = id
                                strip_user_weapons(id)

                                new iEnt = give_item(id, "weapon_g3sg1")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(id, 100)
                                player_glow(id, g_Colors[3])
                        }

                        if(player > 0 && is_user_connected(player) && is_user_alive(player))
                        {
                                g_DuelB = player
                                strip_user_weapons(player)

                                new iEnt = give_item(player, "weapon_g3sg1")
                                if (is_valid_ent(iEnt))
                                        cs_set_weapon_ammo(iEnt, 1)

                                set_user_health(player, 100)
                                player_glow(player, g_Colors[2])
                        }

                        client_cmd(0, "mp3 play sound/jbsound/lr_new_wars.mp3")
                }
        }

        return PLUGIN_HANDLED
}

public cmd_last_start(id, handle, seed)
{
        if(!is_user_alive(id) || !g_Duel)
                return FMRES_IGNORED

        if(g_Duel == 4)
                cs_set_user_bpammo(id, CSW_DEAGLE, 1)
        else if(g_Duel == 5)
                cs_set_user_bpammo(id, CSW_SCOUT, 1)
        else if(g_Duel == 6)
                cs_set_user_bpammo(id, CSW_HEGRENADE, 1)
        else if(g_Duel == 7)
                cs_set_user_bpammo(id, CSW_AWP, 1)
        else if(g_Duel == 8)
                cs_set_user_bpammo(id, CSW_M249, 1)
        else if(g_Duel == 9)
                cs_set_user_bpammo(id, CSW_G3SG1, 1)

        return FMRES_IGNORED
}

/*======================================================
    END Last Request ----> Comenzi Admin
======================================================*/
public adm_freeday(id)
{
        if(is_game())
        {
                chatcolor(id, "!g[JailBreak] !yNu poti da !gFreeDay !ypentru ca este in curs o !gZi Speciala !t.")
                return PLUGIN_HANDLED
        }

        if(g_PlayerLast)
        {
                chatcolor(id, "!g[JailBreak] !yNu poti da !tZi Libera,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
                return PLUGIN_HANDLED
        }

        new arg[32], cmd[32];
        read_argv(0,cmd,31);
        read_argv(1,arg,31);

        new player = cmd_target(id,arg,CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF);

        if(get_user_flags(id) & read_flags ("c"))
        {
                new name[32], name2[32];
                get_user_name(id,name,31);
                get_user_name(player,name2, 31);

                if(is_user_connected(player) && cs_get_user_team(player) == CS_TEAM_T)
                {
                        freeday_set(id, player)
                        chatcolor(0, "!y[!gAdminControl!y] !tAdmin-ul !y[!g%s!y] !ya dat zi libera lui !y[!g%s!y].", name, name2)
                        log_to_file("LogJailBreak.log","[JBE_FREEDAY] Admin-ul [%s] a dat zi libera lui [%s].", name, name2)
                        emit_sound(0, CHAN_AUTO, "jbsound/jb_ding.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
                }
        }
        else
        {
                chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
                return PLUGIN_CONTINUE
        }

        return PLUGIN_HANDLED
}

public adm_nomic(id)
{
        new arg[32], cmd[32];
        read_argv(0,cmd,31);
        read_argv(1,arg,31);

        new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF);

        if(id == 0 || get_user_flags(id) & read_flags ("b"))
        {
                new name[32], name2[32];
                get_user_name(id,name,31);
                get_user_name(player,name2, 31);

                if(is_user_connected(player))
                {
                        cmd_nomic(player);
                        chatcolor(0, "!y[!gAdminControl!y] !tAdmin-ul !y[!g%s!y] !yl-a mutat la !gPrizonieri !ype !y[!g%s!y].", name, name2)
                        log_to_file("LogJailBreak.log","[JBE_NOMIC] Admin-ul [%s] l-a mutat la T pe [%s].", name, name2)
                }
        }
        else
        {
                chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
                return PLUGIN_CONTINUE
        }

        return PLUGIN_HANDLED;
}

public adm_open(id)
{
        if(get_user_flags(id) & ADMIN_ACCESS)
        {
                new name[32];
                get_user_name(id, name, 31);

                chatcolor(0, "!y[!gAdminControl!y] !tAdmin-ul !y[!g%s!y] !ya folosit !y[!gjbe_open!y].", name)
                log_to_file("LogJailBreak.log","[JBE_OPEN] Admin-ul [%s] a deschis celulele prin JBE_OPEN ", name)

                emit_sound(0, CHAN_AUTO, "jbsound/jb_open.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)

                jail_open()
        }
        else
        {
                chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
                return PLUGIN_CONTINUE
        }

        return PLUGIN_HANDLED
}

public adm_box(id)
{
        if(g_PlayerLast || is_game())
        {
                chatcolor(id, "!t[!gBox!t] !yNu poti activa !tBox-ul,!y acum !")
                return PLUGIN_HANDLED
        }

        if(get_user_flags(id) & ADMIN_ACCESS)
        {
                new name[32];
                get_user_name(id, name, 31);

                chatcolor(0, "!y[!gAdminControl!y]!y Admin-ul !y[!g%s!y] !ya folosit !y[!gjbe_box!y].", name)
                log_to_file("LogJailBreak.log","[JBE_BOX] Admin-ul [%s] a dat BOX prin JBE_BOX ", name)

                cmd_box(id)
        }
        else
        {
                chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
                return PLUGIN_CONTINUE
        }

        return PLUGIN_HANDLED
}

public adm_boxoff(id)
{
        if(g_PlayerLast)
        {
                chatcolor(id, "!t[!gBox!t] !yNu poti dezactiva !tBox,!y cand este !gUltimul Prizonier!y, !tin !gviata !y!")
                return PLUGIN_HANDLED
        }

        if(get_user_flags(id) & ADMIN_ACCESS)
        {
                new name[32];
                get_user_name(id, name, 31);

                chatcolor(0, "!y[!gAdminControl!y]!y Admin-ul !y[!g%s!y] !ya folosit !g[!yjbe_boxoff!g].", name)
                log_to_file("LogJailBreak.log","[JBE_BOX] Admin-ul [%s] a dat BOX-OFF prin JBE_BOXOFF ", name)

                cmd_boxoff(id)
        }
        else
        {
                chatcolor(id, "!y[!gAdminControl!y] !yNu ai !gacces !yla aceasta comanda.")
                return PLUGIN_CONTINUE
        }

        return PLUGIN_HANDLED
}

public FreeDayALL(id)
{
        g_Simon = 0
        chatcolor(0, "!g[JailBreak] !gFreeDay ALL!y a fost dat !gAUTOMAT !ypentru aceasta!g Zi Speciala.");
        check_freeday(TASK_FREEDAY)       
}
/*======================================================
    END Comenzi Admin
======================================================*/

public revolt_start()
{
        if(is_game())
                return PLUGIN_HANDLED
        else
        {
                client_cmd(0,"speak ambience/siren")
                set_task(8.0, "stop_sound")
                hud_status(0)
        }

        return PLUGIN_HANDLED
}

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

public hud_status(task)
{
        //if(is_arestart()) return PLUGIN_HANDLED

        AlivePlayer()

        static i, n
        new name[32], szStatus[64], wanted[1024], freedayed[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), "Prizonieri cautati:")
        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)
                }
        }

        n = 0
        formatex(freedayed, charsmax(freedayed), "Prizonieri cu Zi Libera:")
        n = strlen(freedayed)
        for(i = 0; i < g_MaxClients; i++)
        {
                if(get_bit(g_PlayerFreeday, i) && is_user_alive(i) && n < charsmax(freedayed))
                {
                        get_user_name(i, name, charsmax(name))
                        n += copy(freedayed[n], charsmax(freedayed) - n, "^n^t")
                        n += copy(freedayed[n], charsmax(freedayed) - n, name)
                }
        }

        team_count()

        for(i = 1; i <= g_MaxClients; i++)
        {
                if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
                {
                        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()
                }
        }

        new szDay[32], SetGame[32]
        if(is_game())
        {
                //Fomatex
                get_game(is_game(), szDay, charsmax(szDay))
                if(get_timegame() >= 2)
                        formatex(SetGame, 31, "%s (%i Secunde)", szDay, get_timegame())
                else
                        formatex(SetGame, 31, "%s", szDay)
        }
        else
                formatex(SetGame, 31, "Ziua %i", g_JailDay)

        get_user_name(g_Simon, name, charsmax(name))
        if(!g_Simon && !g_Freeday) player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "Nu este Simon :: Jailbreak Romania :: %s", SetGame)
        if(g_Simon) player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "%s este Simon :: Jailbreak Romania :: %s", name, SetGame)
        if(g_Freeday) player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 255, 0}, "Zi Libera :: %s :: JailBreak Romania", SetGame)

        if(g_PlayerWanted && !is_game())
                player_hudmessage(0, 3, HUD_DELAY + 1.0, {255, 255, 255}, "%s", wanted)
        else if(g_PlayerFreeday >= 1 && !is_game() && !g_Freeday)
                player_hudmessage(0, 7, HUD_DELAY + 1.0, {0, 255, 0}, "%s", freedayed)

        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)

        return PLUGIN_HANDLED
}

public safe_time(task)
        g_SafeTime = 1

public check_end(task)
{
        if(is_game())
        {
                player_hudmessage(0, 8, 3.0, {0, 104, 139}, "Ziua nu se poate Termina^nPentru ca este in Desfasurare o Zi Speciala")
                return PLUGIN_HANDLED
        }

        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}, "Ziua s-a terminat din cauza timpului")
        return PLUGIN_HANDLED
}

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}, "Ziua se va termina in %i secunde", 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)
        }

        return PLUGIN_HANDLED
}

public FwdSetVoice(receiver, sender, bool:listen)
{
        if(!(1 <= receiver <= g_max_clients)
        || !g_connected[receiver]
        || !(1 <= sender <= g_max_clients)
        || !g_connected[sender])
        return FMRES_IGNORED;

        new CsTeams:team = cs_get_user_team(sender);
        if((team == CS_TEAM_T || team == CS_TEAM_CT && !is_user_alive(sender)) && !access(sender, ADMIN_VOICE))
        {
                engfunc(EngFunc_SetClientListening, receiver, sender, 0);
                return FMRES_SUPERCEDE;
        }

        return FMRES_IGNORED;
}

public replace_weapon_models(id, weaponid)
{
        if(!is_user_alive(id))
                return

        if(get_bit(g_PlayerCrowbar, id) && get_user_team(id) == 1)
        {
                set_pev(id, pev_viewmodel2, _CrowbarModels[1])
                set_pev(id, pev_weaponmodel2, _CrowbarModels[0])
        }
        else if(get_user_weapon(id) == CSW_KNIFE)
        {
                if(g_BoxStarted && get_user_team(id) == 1 || g_Duel == 3)
                {
                        switch(get_user_team(id))
                        {
                                case 1:
                                {
                                        entity_set_string(id, EV_SZ_weaponmodel, "");
                                        entity_set_string(id, EV_SZ_viewmodel, _PumniT[0]);
                                }
                                case 2:
                                {
                                        entity_set_string(id, EV_SZ_viewmodel, _BulanCT[1]);
                                entity_set_string(id, EV_SZ_weaponmodel, _BulanCT[0]);
                                }
                        }
                }
                else
                {
                        switch(get_user_team(id))
                        {
                                case 1:
                                {
                                        entity_set_string(id, EV_SZ_weaponmodel, "");
                                        entity_set_string(id, EV_SZ_viewmodel, _PumniT[0]);
                                }
                                case 2:
                                {
                                        entity_set_string(id, EV_SZ_viewmodel, _BulanCT[1]);
                                        entity_set_string(id, EV_SZ_weaponmodel, _BulanCT[0]);
                                }
                        }
                }
        }
        else
        {
                switch(get_user_team(id))
                {
                        case 1:
                        {
                                entity_set_string(id, EV_SZ_viewmodel, _PumniT[0]);
                                entity_set_string(id, EV_SZ_weaponmodel, "");
                        }
                        case 2:
                        {
                                entity_set_string(id, EV_SZ_viewmodel, _BulanCT[1]);
                                entity_set_string(id, EV_SZ_weaponmodel, _BulanCT[0]);
                        }
                }
        }
}

public fw_Item_Deploy_Post(weapon_ent)
{
        static owner
        owner = fm_cs_get_weapon_ent_owner(weapon_ent)

        if (!pev_valid(owner))
                return

        static weaponid
        weaponid = cs_get_weapon_id(weapon_ent)
        replace_weapon_models(owner, weaponid)
}

stock fm_cs_get_current_weapon_ent(id)
{
        if (pev_valid(id) != 2)
                return -1

        return get_pdata_cbase(id, 373, 4)
}

stock fm_cs_get_weapon_ent_owner(ent)
{
        if (pev_valid(ent) != 2)
                return -1

        return get_pdata_cbase(ent, 41, 4)
}

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

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 fw_PlayerPreThink(id)
{
        if(is_game())
        {
                if(is_user_alive(id) && is_user_connected(id))
                {
                        if(!is_tag() && !is_dodge() && get_user_team(id) == 1 || !is_tag() && !is_dodge() && !is_magic() && get_user_team(id) == 2)
                                set_user_maxspeed(id, 250.0)

                        if(!is_ghost() && get_user_team(id) == 1)
                                set_user_noclip(id, 0)

                        if(!is_godmode() && !is_tag() && !is_hns() && !is_hnss() && get_user_team(id) == 1)
                                set_user_godmode(id, 0)

                        clear_bit(g_PlayerCrowbar, id)

                        return PLUGIN_HANDLED
                }
        }
        else if(g_PlayerLast && !is_game())
        {
                if(is_user_alive(id) && is_user_connected(id))
                {
                        set_user_maxspeed(id, 250.0)
                        set_user_noclip(id, 0)
                        set_user_godmode(id, 0)
                        set_user_gravity(id, 1.0)

                        return PLUGIN_HANDLED
                }
        }

        return FMRES_IGNORED;
}

//======================================================//
//                        NATIVES by TeX
//======================================================//
public plugin_natives()
{
        // Natives
        register_native("jb_is_user_simon", "native_get_user_simon", 1)
        register_native("jb_get_simonname", "native_get_simon_name", 1)
        register_native("jb_is_user_last", "native_is_last", 1)
        register_native("jb_is_user_wanted", "native_is_wanted", 1)
        register_native("jb_get_day", "native_get_day", 1)
        register_native("jb_get_crowbar", "native_get_crowbar", 1)
        register_native("jb_clear_crowbar", "native_clear_crowbar", 1)
        register_native("jb_set_user_freeday", "native_set_user_freeday", 1)
        register_native("jb_give_simon", "native_get_simon", 1)
        register_native("jb_show_lr_menu", "native_show_lr_menu", 1)
        register_native("jb_open_doors", "native_open_doors", 1)
        register_native("jb_reset_user_model", "native_jb_reset_user_model", 1)

        // Native Free
        register_native("is_free_day", "native_is_free_day", 1)
        register_native("jb_fd_all", "native_fd_all", 1)
}

public native_get_simon(id)
        cmd_simon(id)

public native_show_lr_menu(id)
        cmd_lastrequest(id)

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

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

        player_hudmessage(0, 6, 3.0, {0, 255, 0}, "%s a primit FREEDAY de la SERVER", name)
}

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

        return g_Simon == id? 1 : 0
}

public native_jb_reset_user_model(id)
{
        new iPlayers[32];
        new iNum;
        new ids;
        get_players(iPlayers, iNum);
        for(new i = 0; i < iNum; i++)
        {
                ids = iPlayers[i]
                if(!is_user_alive(ids))
                        continue;

                if(get_user_team(ids) == 1)
                {
                        //if(g_PlayerMale[ids] == 0) g_PlayerMale[ids] = random_num(1, 2)
                        //if(g_PlayerMale[ids] == 1) set_user_info(ids, "model", "jb_man_model")
                        //if(g_PlayerMale[ids] == 2) set_user_info(ids, "model", "jb_girl_model")

                        set_user_info(ids, "model", "jb_cs16_2k17")
                        set_pev(ids, pev_body, 2)
                        set_pev(ids, pev_skin, random_num(0, 5))
                }
                else if(get_user_team(ids) == 2)
                {
                        if(g_Simon == ids)
                        {
                                set_user_info(ids, "model", "jb_cs16_2k17")
                                set_pev(ids, pev_body, 1)
                        }
                        else
                        {
                                set_user_info(ids, "model", "jb_cs16_2k17")
                                set_pev(ids, pev_body, 3)
                        }
                }
        }
}

public native_get_simon_name() return g_Simon
public native_open_doors() jail_open()
public native_fd_all(id) FreeDayALL(id)
public native_is_free_day() return g_Freeday
public native_is_last() return g_PlayerLast
public native_is_wanted() return g_PlayerWanted
public native_get_day() return g_JailDay
public native_get_crowbar(index) return get_bit(g_PlayerCrowbar, index)
public native_clear_crowbar(index) return clear_bit(g_PlayerCrowbar, index)
public block_weapons_task(id) g_BlockWeapons = 1
//======================================================//
//                        NATIVES END ===>>>>> Stock-URI
//======================================================//
stock fm_cs_get_user_team(id)
        return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);

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)
                set_pev(player, pev_skin, 6)
                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)
                chatcolor(id, "!y[!gJBHelp!y] Pentru !t'!gAjutor!t' !ytasteaza !t'!g/help!t'!y. ")
        }
}

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)
{
        if(is_user_alive(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 ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
        new iWeapon;
        if(!iSlot)
        {
                static const iWeaponsSlots[] = {
                        -1,
                        2, //CSW_P228
                        -1,
                        1, //CSW_SCOUT
                        4, //CSW_HEGRENADE
                        1, //CSW_XM1014
                        5, //CSW_C4
                        1, //CSW_MAC10
                        1, //CSW_AUG
                        4, //CSW_SMOKEGRENADE
                        2, //CSW_ELITE
                        2, //CSW_FIVESEVEN
                        1, //CSW_UMP45
                        1, //CSW_SG550
                        1, //CSW_GALIL
                        1, //CSW_FAMAS
                        2, //CSW_USP
                        2, //CSW_GLOCK18
                        1, //CSW_AWP
                        1, //CSW_MP5NAVY
                        1, //CSW_M249
                        1, //CSW_M3
                        1, //CSW_M4A1
                        1, //CSW_TMP
                        1, //CSW_G3SG1
                        4, //CSW_FLASHBANG
                        2, //CSW_DEAGLE
                        1, //CSW_SG552
                        1, //CSW_AK47
                        3, //CSW_KNIFE
                        1 //CSW_P90
                }
                iSlot = iWeaponsSlots[iCswId];
        }

        const XTRA_OFS_PLAYER = 5;
        const m_rgpPlayerItems_Slot0 = 367;

        iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER);

        const XTRA_OFS_WEAPON = 4;
        const m_pNext = 42;
        const m_iId = 43;

        while(iWeapon > 0)
        {
                if(get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId)
                {
                        break;
                }
                iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON);
        }
        if(iWeapon > 0)
        {
                const m_pActiveItem = 373;
                if(bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon)
                {
                        ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon);
                }
                if(ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon))
                {
                        user_has_weapon(id, iCswId, 0);
                        ExecuteHamB(Ham_Item_Kill, iWeapon);
                        return 1;
                }
        }
        return 0;
}

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

stock chatcolor(const id, const input[], any:...)
{
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)

        replace_all(msg, 190, "!g", "^4")
        replace_all(msg, 190, "!y", "^1")
        replace_all(msg, 190, "!t", "^3")

        if (id) players[0] = id; else get_players(players, count, "ch")
        {
                for (new i = 0; i < count; i++)
                {
                        if (is_user_connected(players[i]))
                        {
                                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
                                write_byte(players[i]);
                                write_string(msg);
                                message_end();
                        }
                }
        }
}
//======================================================//
//                        END Stock-URI
//======================================================//


Adomaz1 04-09-2017 10:38

Re: [HELP!!] Native error
 
Omg use [code]

Whaay 04-09-2017 10:43

Re: [HELP!!] Native error
 
Quote:

Originally Posted by Adomaz1 (Post 2510616)
Omg use [code]

done


All times are GMT -4. The time now is 17:50.

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