Raised This Month: $ Target: $400
 0% 

[HELP!!] Native error


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Whaay
Junior Member
Join Date: Apr 2016
Old 04-07-2017 , 09:14   [HELP!!] Native error
Reply With Quote #1

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
Whaay is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 04-07-2017 , 09:34   Re: [HELP!!] Native error
Reply With Quote #2

How are we supposed to help if you don't provide the plugin?
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-07-2017 , 09:45   Re: [HELP!!] Native error
Reply With Quote #3

OciXCrom, actually you're very upset.

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









Last edited by CrazY.; 04-07-2017 at 09:46.
CrazY. is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 04-07-2017 , 10:31   Re: [HELP!!] Native error
Reply With Quote #4

Quote:
Originally Posted by CrazY. View Post
OciXCrom, actually you're very upset.

But anyway, whaay, you need to give us the plugin code.
What's your problem this time?
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-07-2017 , 11:13   Re: [HELP!!] Native error
Reply With Quote #5

Nothing.. I'm just kidding with you.
__________________








CrazY. is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 04-08-2017 , 10:24   Re: [HELP!!] Native error
Reply With Quote #6

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
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !


Last edited by Natsheh; 04-08-2017 at 10:26.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
redivcram
Veteran Member
Join Date: Jul 2014
Location: Serbia
Old 04-08-2017 , 12:04   Re: [HELP!!] Native error
Reply With Quote #7

Post the code, we can't guess how you wrote it.
redivcram is offline
Whaay
Junior Member
Join Date: Apr 2016
Old 04-09-2017 , 10:27   Re: [HELP!!] Native error
Reply With Quote #8

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

Last edited by Whaay; 04-09-2017 at 10:42.
Whaay is offline
Adomaz1
Senior Member
Join Date: Feb 2014
Old 04-09-2017 , 10:38   Re: [HELP!!] Native error
Reply With Quote #9

Omg use [code]
Adomaz1 is offline
Whaay
Junior Member
Join Date: Apr 2016
Old 04-09-2017 , 10:43   Re: [HELP!!] Native error
Reply With Quote #10

Quote:
Originally Posted by Adomaz1 View Post
Omg use [code]
done
Whaay is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


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


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