Грешка в главния плъгин на Furien mod

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
SkandaU
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 09 Яну 2017, 12:37
Се отблагодари: 45 пъти
Получена благодарност: 22 пъти

Грешка в главния плъгин на Furien mod

Мнение от SkandaU » 12 Яну 2019, 14:13

Това е грешката:

Код за потвърждение: Избери целия код

L 01/12/2019 - 14:08:14: [CSTRIKE] Model can not be empty
L 01/12/2019 - 14:08:14: [AMXX] Displaying debug trace (plugin "furien_mod.amxx", version "0.5.7")
L 01/12/2019 - 14:08:14: [AMXX] Run time error 10: native error (native "cs_set_user_model")
L 01/12/2019 - 14:08:14: [AMXX]    [0] furien_mod.sma::ham_Player_Spawn_Post (line 1517)
Това е базовия:

Код за потвърждение: Избери целия код

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

#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#define MAX_PLAYERS			32
#endif

#include <nvault>

#pragma dynamic				32768

#define PLUGIN				"Furien Mod v0.5.7"

#define XTRA_OFS_PLAYER 		5

#define Money_Amount			1
#define XTRA_OFS_PLAYER			5
#define m_iAccount			115
#define cs_set_money_value(%1,%2)	set_pdata_int(%1, m_iAccount, %2, XTRA_OFS_PLAYER)

#define EmitSnd(%1,%2)			emit_sound(%1, CHAN_ITEM, %2, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)

#define nvault_clear(%1) 		nvault_prune(%1, 0, get_systime() + 1)
#define isTeam(%0) 			(CS_TEAM_T <= cs_get_user_team(%0) <= CS_TEAM_CT)

#define TOTAL_KNIVES 			8
#define TOTAL_ITEMS 			8

#define IsPlayer(%1)			(FIRST_PLAYER <= %1 <= g_iMaxPlayers)
#define IsHeadShot(%1)			(get_pdata_int(%1,75) == HIT_HEAD)

#define ADMIN_VIP 			ADMIN_LEVEL_H
#define ADMIN_SVIP 			ADMIN_LEVEL_G

#define PISTOL_WEAPONS_BIT		(1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_DEAGLE|1<<CSW_P228|1<<CSW_FIVESEVEN|1<<CSW_ELITE)
#define SHOTGUN_WEAPONS_BIT		(1<<CSW_M3|1<<CSW_XM1014)
#define SUBMACHINE_WEAPONS_BIT		(1<<CSW_TMP|1<<CSW_MAC10|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90)
#define RIFLE_WEAPONS_BIT		(1<<CSW_FAMAS|1<<CSW_GALIL|1<<CSW_AK47|1<<CSW_SCOUT|1<<CSW_M4A1|1<<CSW_SG550|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1)
#define MACHINE_WEAPONS_BIT		(1<<CSW_M249)

#define PRIMARY_WEAPONS_BIT		(SHOTGUN_WEAPONS_BIT|SUBMACHINE_WEAPONS_BIT|RIFLE_WEAPONS_BIT|MACHINE_WEAPONS_BIT)
#define SECONDARY_WEAPONS_BIT		(PISTOL_WEAPONS_BIT)

#define IsPrimaryWeapon(%1)		((1<<%1) & PRIMARY_WEAPONS_BIT)
#define IsSecondaryWeapon(%1)		((1<<%1) & PISTOL_WEAPONS_BIT)

#define MODELSET_TASK 			100 
#define MODELCHANGE_DELAY 		0.6

const FIRST_PLAYER =			1
const USE_STOPPED =			0
const PDATA_SAFE =			2
const OFFSET_LINUX_WEAPONS =		4
const SUPERKNIFE_BOUGHT_MAX =		4
const PLAYER_JUMP =			6
const ACT_HOP =  			7
const m_pPlayer = 			41
const m_Activity = 			73
const m_IdealActivity =			74
const m_flNextAttack =			83
const m_flNextPrimaryAttack =		46
const m_afButtonPressed =		246
const m_pActiveItem =			373
const TASK_REMOVE_FREEZE =		200210
const TASK_REMOVE_RADAR =		200211
const TASK_HUD_SPECIAL_ITEM =		200222
const TASK_SHOW_RADAR =			200223
const TASK_REGEN =			200224
const TASK_HUD =			200225
const TASK_IMMOR =			200226
const TASK_RADAR =			200227
const TASK_SHOW_INFO =			200228
const TASK_SHOW_BEST_MONEY =		200229
const TASK_GRAB =			200230
const TASK_IMMOBILIZE =			200231
const TASK_C4 =				200232
const Ham:Ham_Player_ResetMaxSpeed =	Ham_Item_PreFrame
const DMG_NADE =			(1<<24)

new RoundsCount =			0
new iSuperKnifeCount =			0

new const SlowGun_Sounds[] =		"FurienEFFx/weapsounds/slowgun.wav"
new const SleepGun_Sounds[] =		"FurienEFFx/weapsounds/sleepgun.wav"
new const ItemBoughtSound[] =		"items/gunpickup2.wav"
new const SpecialItemBoughtSound[] =	"items/ammopickup1"
new const sleepgun[] =			"models/FurienEFFx/v_sleepgun.mdl"
new const p_sleepgun[] =			"models/FurienEFFx/p_sleepgun.mdl"
new const slowgun[] =			"models/FurienEFFx/v_slowgun.mdl"
new const p_slowgun[] =			"models/FurienEFFx/p_slowgun.mdl"
new const g_szClassname[] =		"invisibility"
new const g_szFolder[] = 		"FurienSettings"

enum _:g_szKnives
{
	KNIFE_DEFAULT,
	KNIFE_COMBAT,
	KNIFE_AXE,
	KNIFE_SILVER,
	KNIFE_HUNTER,
	KNIFE_SPIRIT,
	KNIFE_EPIC,
	KNIFE_CROWBAR,
	KNIFE_DEAD
}

enum _:g_szItems
{
	ITEM_NONE,
	ITEM_REGEN,
	ITEM_MULTI_JUMP,
	ITEM_NO_DAMAGE,
	ITEM_CONFUSED,
	ITEM_IMMORTALITY,
	ITEM_IMMOBILIZE,
	ITEM_WISE_EYE,
	ITEM_BUNNYHOP
}

new g_szItem[MAX_PLAYERS+1][g_szItems]
new g_szKnife[MAX_PLAYERS+1][g_szKnives]

enum AFPWSettings
{
	szPWeaponName[MAX_PLAYERS],
	iPWeaponCost,
	szPWeaponIndex[17],
	szPWeaponType,
	iPWeaponBpAmmo
}

new const AntiFurienPWeapons[][AFPWSettings] =
{
	{ "UMP^t^t^t^t^t    \r0$", 0, "weapon_ump45", CSW_UMP45, 250 },
	{ "M3^t^t^t^t^t^t    \r0$", 0, "weapon_m3", CSW_M3, 250 },
	{ "AWP^t^t^t^t    \r15$", 15, "weapon_awp", CSW_AWP,250 },
	{ "MP5^t^t^t^t^t   \r25$", 25, "weapon_mp5navy", CSW_MP5NAVY,250 },
	{ "AK47^t^t^t^t   \r35$", 35, "weapon_ak47", CSW_AK47, 250 },
	{ "M4A1^t^t^t^t   \r35$", 35, "weapon_m4a1", CSW_M4A1, 250 },
	{ "M249^t^t^t^t   \r99$", 99, "weapon_m249", CSW_M249, 250 },
	{ "\y[ExtraVIP] \wFAMAS \r60$", 60, "weapon_famas", CSW_FAMAS, 250 }	
}

enum AFSWSettings
{
	szSWeaponName[MAX_PLAYERS],
	iSWeaponCost,
	szSWeaponIndex[17],
	szSWeaponType,
	iSWeaponBpAmmo
}

new const AntiFurienSWeapons[][AFSWSettings] =
{
	{ "Glock ^t^t^t^t^t^t^t^t\dprice: \r0$", 0, "weapon_glock18", CSW_GLOCK18, 250 },
	{ "USP pistol ^t^t^t^t\dprice: \r5$", 5, "weapon_usp", CSW_USP, 250 },
	{ "FiveseveN  ^t^t^t\dprice: \r5$", 5, "weapon_fiveseven", CSW_FIVESEVEN, 250 },
	{ "Desert Eagle  ^t\dprice: \r15$", 15, "weapon_deagle", CSW_DEAGLE, 250 },
	{ "Elite Duals   ^t^t\dprice: \r20$", 20, "weapon_elite", CSW_ELITE, 250 }
}
		
enum
{	
	DeathMsg_KillerID = 1,
	DeathMsg_VictimID
}

enum WeapSett
{
	V_KNIFE_T,
	V_KNIFE_CT,
	V_M4A1,
	V_AK47,
	V_AWP,
	V_FAMAS,
	V_M249,
	V_MP5,
	V_UMP45,
	V_M3,
	V_C4,
	V_DEAGLE,
	V_USP,
	V_GLOCK18,
	V_ELITE,
	V_FIVESEVEN,
	V_HEGRENADE_V,
	V_HEGRENADE_P,
	V_HEGRENADE_W,
	V_FLASHBANG_V,
	V_FLASHBANG_P,
	V_FLASHBANG_W,
	V_SMOKEGRENADE_V,
	V_SMOKEGRENADE_P,
	V_SMOKEGRENADE_W
}

enum KillSett
{
	MONEY_MAX,
	MONEY_T_EVIP_KILL,
	MONEY_CT_EVIP_KILL,
	MONEY_T_VIP_KILL,
	MONEY_CT_VIP_KILL,
	MONEY_T_NORMAL_KILL,
	MONEY_CT_NORMAL_KILL,
}

enum PlayerModelSett
{
	FurienModel,
	AntiModel
}

new PlayersSkins[PlayerModelSett][32]
new KillSettings[KillSett]
new WeaponSkins[WeapSett][84]
    
new g_iNewMoney
new g_iMsgHookMoney

new Float:g_t_time
new iEnt

new const Knives[][] = 
{
	"models/FurienEFFx/knifes/p_knife_axe.mdl",
	"models/FurienEFFx/knifes/v_knife_axe.mdl",
	"models/FurienEFFx/knifes/p_knife_comba.mdl",
	"models/FurienEFFx/knifes/v_knife_comba.mdl",
	"models/FurienEFFx/knifes/p_knife_silver.mdl",
	"models/FurienEFFx/knifes/v_knife_silver.mdl",
	"models/FurienEFFx/knifes/p_knife_hunter.mdl",
	"models/FurienEFFx/knifes/v_knife_hunter.mdl",
	"models/FurienEFFx/knifes/v_knife_spirit.mdl",
	"models/FurienEFFx/knifes/p_knife_epic.mdl",
	"models/FurienEFFx/knifes/v_knife_epic.mdl", 
	"models/FurienEFFx/knifes/p_knife_aqr.mdl",
	"models/FurienEFFx/knifes/v_knife_aqr.mdl",
	"models/FurienEFFx/knifes/p_knife_dead.mdl",
	"models/FurienEFFx/knifes/v_knife_dead.mdl" 
}

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

new const oldknife_supersounds[][] = 
{
	"weapons/knife_deploy1.wav",
	"weapons/knife_hitwall1.wav",
	"weapons/knife_slash1.wav",
	"weapons/knife_slash2.wav",
	"weapons/knife_stab.wav"
}

new const SpiritSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_black.wav",
	"FurienEFFx/knifes/knife_hit1_black.wav",
	"FurienEFFx/knifes/knife_hit2_black.wav",
	"FurienEFFx/knifes/knife_hit1_black.wav",
	"FurienEFFx/knifes/knife_hit2_black.wav",
	"FurienEFFx/knifes/knife_hitwall1_black.wav",
	"FurienEFFx/knifes/knife_slash_black.wav",
	"FurienEFFx/knifes/knife_slash_black.wav",
	"FurienEFFx/knifes/knife_stab_black.wav"
}

new const EpicSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_combat.wav",
	"FurienEFFx/knifes/knife_hit1_combat.wav",
	"FurienEFFx/knifes/knife_hit2_combat.wav",
	"FurienEFFx/knifes/knife_hit3_combat.wav",
	"FurienEFFx/knifes/knife_hit4_combat.wav",
	"FurienEFFx/knifes/knife_hitwall1_combat.wav",
	"FurienEFFx/knifes/knife_slash_combat.wav",
	"FurienEFFx/knifes/knife_slash2_combat.wav",
	"FurienEFFx/knifes/knife_stab_combat.wav"
}

new const DeadSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_hunter.wav",
	"FurienEFFx/knifes/knife_hit1_black.wav",
	"FurienEFFx/knifes/knife_hit2_black.wav",
	"FurienEFFx/knifes/knife_hit1_black.wav",
	"FurienEFFx/knifes/knife_hit2_black.wav",
	"FurienEFFx/knifes/knife_hitwall1_axe.wav",
	"FurienEFFx/knifes/knife_slash1_hunter.wav",
	"FurienEFFx/knifes/knife_slash2_hunter.wav",
	"FurienEFFx/knifes/knife_stab_black.wav"
}

new const AxeSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_axe.wav", 
	"FurienEFFx/knifes/knife_hit1_axe.wav", 
	"FurienEFFx/knifes/knife_hit2_axe.wav",
	"FurienEFFx/knifes/knife_hit1_axe.wav", 
	"FurienEFFx/knifes/knife_hit2_axe.wav", 
	"FurienEFFx/knifes/knife_hitwall1_axe.wav",
	"FurienEFFx/knifes/knife_slash_axe.wav", 
	"FurienEFFx/knifes/knife_slash_axe.wav", 
	"FurienEFFx/knifes/knife_stab_axe.wav"
}
new const SilverSounds[][] = 
{
	"FurienEFFx/knifes/knife_deploy1_combat.wav",
	"FurienEFFx/knifes/knife_hit1_combat.wav",
	"FurienEFFx/knifes/knife_hit2_combat.wav",
	"FurienEFFx/knifes/knife_hit3_combat.wav",
	"FurienEFFx/knifes/knife_hit4_combat.wav",
	"FurienEFFx/knifes/knife_hitwall1_hunter.wav",
	"FurienEFFx/knifes/knife_slash_combat.wav",
	"FurienEFFx/knifes/knife_slash2_combat.wav",
	"FurienEFFx/knifes/knife_stab_combat.wav"
}

new const CombaSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_combat.wav", 
	"FurienEFFx/knifes/knife_hit1_combat.wav", 
	"FurienEFFx/knifes/knife_hit2_combat.wav",
	"FurienEFFx/knifes/knife_hit3_combat.wav", 
	"FurienEFFx/knifes/knife_hit4_combat.wav", 
	"FurienEFFx/knifes/knife_hitwall1_combat.wav",
	"FurienEFFx/knifes/knife_slash_combat.wav", 
	"FurienEFFx/knifes/knife_slash2_combat.wav", 
	"FurienEFFx/knifes/knife_stab_combat.wav"
}

new const HunterSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_hunter.wav", 
	"FurienEFFx/knifes/knife_hit1_hunter.wav", 
	"FurienEFFx/knifes/knife_hit1_hunter.wav",
	"FurienEFFx/knifes/knife_hit1_hunter.wav", 
	"FurienEFFx/knifes/knife_hit1_hunter.wav", 
	"FurienEFFx/knifes/knife_hitwall1_hunter.wav",
	"FurienEFFx/knifes/knife_slash1_hunter.wav", 
	"FurienEFFx/knifes/knife_slash2_hunter.wav", 
	"FurienEFFx/knifes/knife_stab_combat.wav"
}

new const SuperSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_hunter.wav", 
	"FurienEFFx/knifes/knife_hitwall1_hunter.wav",
	"FurienEFFx/knifes/knife_slash1_hunter.wav", 
	"FurienEFFx/knifes/knife_slash2_hunter.wav", 
	"FurienEFFx/knifes/knife_stab_super.wav"
}

new const CrowSounds[][] = 
{ 
	"FurienEFFx/knifes/knife_deploy1_axe.wav", 
	"FurienEFFx/knifes/knife_hit1_crow.wav", 
	"FurienEFFx/knifes/knife_hit2_crow.wav",
	"FurienEFFx/knifes/knife_hit1_crow.wav", 
	"FurienEFFx/knifes/knife_hit2_crow.wav", 
	"FurienEFFx/knifes/knife_hitwall_crow.wav",
	"FurienEFFx/knifes/knife_slash_crow.wav", 
	"FurienEFFx/knifes/knife_slash_crow.wav", 
	"FurienEFFx/knifes/knife_stab_crow.wav"
}

new const Kills_Sounds[][] = 
{
	"FurienEFFx/kills/firstkill.wav",
	"FurienEFFx/kills/doublekill.wav",
	"FurienEFFx/kills/triplekill.wav",
	"FurienEFFx/kills/multikill.wav",
	"FurienEFFx/kills/excellent.wav",
	"FurienEFFx/kills/monster.wav",
	"FurienEFFx/kills/gotit.wav",
	"FurienEFFx/kills/craz.wav",
	"FurienEFFx/kills/headshot.wav"
}

new const Kill_Messages[][] = 
{
	"",
	"FIRST KILL",
	"DOUBLE KILL",
	"TRIPLE KILL",
	"MULTI KILL",
	"EXCELLENT"
}

new const g_szTer_Sounds[][] = 
{
	"sound/FurienEFFx/round/twin1.wav",
	"sound/FurienEFFx/round/twin2.wav",
	"sound/FurienEFFx/round/twin3.wav",
	"sound/FurienEFFx/round/twin4.wav",
	"sound/FurienEFFx/round/twin5.wav",
	"sound/FurienEFFx/round/twin6.wav",
	"sound/FurienEFFx/round/twin7.wav",
	"sound/FurienEFFx/round/twin8.wav",
	"sound/FurienEFFx/round/twin9.wav"
}

new const g_szCt_Sounds[][] = 
{
	"sound/FurienEFFx/round/ctwin1.wav",
	"sound/FurienEFFx/round/ctwin2.wav",
	"sound/FurienEFFx/round/ctwin3.wav",
	"sound/FurienEFFx/round/ctwin4.wav",
	"sound/FurienEFFx/round/ctwin5.wav",
	"sound/FurienEFFx/round/ctwin6.wav",
	"sound/FurienEFFx/round/ctwin7.wav",
	"sound/FurienEFFx/round/ctwin8.wav",
	"sound/FurienEFFx/round/ctwin9.wav"
}

new const ModelsT[2][] = 
{
	"terror",
	"guerilla"
}

new const ModelsCT[2][] = 
{
	"urban",
	"gign"
}

new Float:g_models_targettime 
new Float:g_roundstarttime
new bool:RoundEnd

new const WEAPONENTNAMES[][] = 
{
	"", "weapon_p228", "","weapon_hegrenade", "weapon_c4", 
	"weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45",
	"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
	"weapon_m3", "weapon_m4a1","weapon_tmp", "weapon_flashbang", "weapon_deagle", 
	"weapon_ak47", "weapon_knife"
}

new const g_MusicList[][] = 
{	
	{"sound/FurienEFFx/furienrs/music1.wav"},
	{"sound/FurienEFFx/furienrs/music2.wav"},
	{"sound/FurienEFFx/furienrs/music3.wav"}
}

new msg_StatusIcon, msg_SayText, msg_TextMsg, msg_ClCorpse, msg_HostagePos, msg_HostageK, msg_SendAudio, msg_Money,msg_ScreenFade

new g_nVaultSaves

new bool:g_bRoundEnd, bool:g_bIsTrue, g_iMaxPlayers

enum HudSyncSettings
{
	hudSpecialItems,
	hudCTWin,
	hudTWin,
	hudC4Delay,
	hudAdv
}

enum MenuSettings
{
	MenuPrimary,
	MenuSecondary,
	MenuMessages,
	MenuAdminCmds
}

enum pCvarsSettings
{
	pCvarFurienGrav,
	pCvarFurienSpeed,
	pCvarGrabSpeed,
	pCvarPlantDelay,
	pCvarBombPlant,
	pCvarMinPlayers,
	pCvarBombDefuse,
	pCvarContact,
	pCvarPrefix,
	pCvarMotdLink,
	pCvarGameDescription
}

enum PrivatePlayerDatas
{
	bool:g_bIsConnected,
	bool:g_bSkinSelected,
	bool:g_bFreezedBySlowG,
	bool:g_bCantSay,
	bool:g_bSlashing,
	g_JumpCount,
	g_PlayerMoney,
	g_MyKillCount,
	iLastShoot,
	g_szName[MAX_PLAYERS],
	g_szAuthID[34]
}

enum EspecialItemsActivated
{
	bool:g_bActived_Immor,
	bool:g_bActived_GodMode,
	bool:g_bActived_Hit,
	bool:g_bActived_Speed,
	bool:g_bActived_Wallhang,
	bool:g_bActived_SetWallHang,
	bool:g_bActived_Hanged,
	bool:g_bActived_Radar
}

enum EspecialItems
{
	g_RG,
	g_MJ,
	g_ND,
	g_CO,
	g_IR,
	g_IB,
	g_WE,
	g_BH
}

enum ShopItems
{
	bool:g_SK,
	bool:g_Defuse,
	bool:g_SG,
	bool:g_HP,
	bool:g_HE,
	bool:g_Teleport,
	bool:slowgunitem,
	bool:slowgunset,
	bool:sleepgunitem,
	bool:sleepgunset
}

enum ConfigSettingsMenu
{
	bool:g_bFMenu,
	bool:g_bEffect,
	bool:g_b3D,
	bool:g_bSkins,
	bool:g_bStartSound,
}

enum UserFurienBases
{
	bool:g_bGravity,
	bool:g_bSpeed,
	bool:g_bWeapons
}

enum PlayerModelDatas
{
	g_HasCustomModel,
	g_Human,
	g_PlayerModel[MAX_PLAYERS]
}

new pCvars[pCvarsSettings]
new HudSync[HudSyncSettings]
new Menus[MenuSettings]

new PlayerModelData[MAX_PLAYERS+1][PlayerModelDatas]
new ConfigSettingMenu[MAX_PLAYERS+1][ConfigSettingsMenu]
new UserFurienBase[MAX_PLAYERS+1][UserFurienBases]
new ShopItem[MAX_PLAYERS+1][ShopItems]
new SpecialItem[MAX_PLAYERS+1][EspecialItems]
new SpecialItemActivated[MAX_PLAYERS+1][EspecialItemsActivated]
new PrivatePlayerData[MAX_PLAYERS+1][PrivatePlayerDatas]

new g_HoldingC4, g_RoundStartTime

new grab[MAX_PLAYERS+1]
new Float:grab_totaldis[MAX_PLAYERS+1]
new bool:g_Grab[MAX_PLAYERS+1]

new Float:g_fVecMins[MAX_PLAYERS+1][3]
new Float:g_fVecMaxs[MAX_PLAYERS+1][3]
new Float:g_fVecOrigin[MAX_PLAYERS+1][3]

new AdminIndex[MAX_PLAYERS+1]

new CVAR_color_Kill[3]

new iTimeLimit

public plugin_init()
{
	register_plugin(PLUGIN, "0.5.7", "EFFx/adamcszombie")
	
	msg_StatusIcon =	get_user_msgid("StatusIcon")
	msg_ScreenFade =	get_user_msgid("ScreenFade")
	msg_SayText =		get_user_msgid("SayText")
	msg_TextMsg =		get_user_msgid("TextMsg")
	msg_ClCorpse =		get_user_msgid("ClCorpse")
	msg_HostagePos =	get_user_msgid("HostagePos")
	msg_HostageK =		get_user_msgid("HostageK")
	msg_SendAudio =		get_user_msgid("SendAudio") 
	msg_Money =		get_user_msgid("Money")

	register_dictionary("furien_gamesites.txt")
	register_dictionary("common.txt")
	
	register_message(msg_StatusIcon, "message_StatusIcon")
	register_message(msg_ClCorpse, "message_ClCorpse")
	register_message(msg_SendAudio, "message_SendAudio") 
	
	RegisterHam(Ham_Spawn, "player", "ham_Player_Spawn_Post", 1)
	RegisterHam(Ham_TakeDamage, "player", "ham_Player_TakeDamage_Post", 0)
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwdPrimaryAttackKnifePre", 1)
	RegisterHam(Ham_Player_PostThink, "player", "ham_Player_PostThink_Post", 1)
	RegisterHam(Ham_Killed, "player", "ham_Player_Killed_Pre", 0)
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "ham_Player_ResetMaxSpeed_Post", 1)
	RegisterHam(Ham_Player_Jump, "player", "ham_Player_Jump_Pre", 0)
	RegisterHam(Ham_Touch, "func_wall", "ham_Touch_Pre", 0)
	RegisterHam(Ham_Touch, "func_breakable", "ham_Touch_Pre", 0)
	RegisterHam(Ham_Touch, "worldspawn", "ham_Touch_Pre", 0)
	RegisterHam(Ham_Touch, "armoury_entity", "TouchWeapons", 0)
	RegisterHam(Ham_Touch, "weapon_shield", "TouchWeapons", 0)
	RegisterHam(Ham_Touch, "weaponbox", "TouchWeapons", 0)
	RegisterHam(Ham_Use, "func_tank", "ham_UseStationary_Post", 1)
	RegisterHam(Ham_Use, "func_tankmortar", "ham_UseStationary_Post", 1)
	RegisterHam(Ham_Use, "func_tankrocket", "ham_UseStationary_Post", 1)
	RegisterHam(Ham_Use, "func_tanklaser", "ham_UseStationary_Post", 1)
	RegisterHam(Ham_Weapon_PrimaryAttack , "weapon_c4" , "ham_PrimaryAttack_C4")
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_tmp", "Fwd_PrimAttack", 0)
	
	for(new i = 1; i < sizeof WEAPONENTNAMES; i++)
		if(WEAPONENTNAMES[i][0]) 
			RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "ham_Item_Deploy_Post", 1)
	
	pCvars[pCvarPlantDelay] = register_cvar("amx_plant_delay" , "45")
	pCvars[pCvarGrabSpeed] = register_cvar("amx_grab_speed","5")
	pCvars[pCvarFurienGrav] = register_cvar("amx_furien_grav", "0.37")
	pCvars[pCvarFurienSpeed] = register_cvar("amx_furien_speed", "700.0")
	pCvars[pCvarMinPlayers] = register_cvar("amx_furien_minplayers", "5")
	pCvars[pCvarBombPlant] = register_cvar("amx_plant_bonus", "30")
	pCvars[pCvarBombDefuse] = register_cvar("amx_defuse_bonus", "30")
	pCvars[pCvarPrefix] = register_cvar("amx_furien_prefix", "[Furien v0.5.7]")
	pCvars[pCvarContact] = register_cvar("amx_contact", "No contact, put it in amx_contact cvar")
	pCvars[pCvarMotdLink] = register_cvar("amx_motd_info_link", "Link here")
	pCvars[pCvarGameDescription] = register_cvar("amx_game_description", "[Furien v0.5.7]")

	g_RoundStartTime = get_systime()
	
	iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
	
	if(pev_valid(iEnt))
	{
		set_pev(iEnt, pev_classname, g_szClassname)
		global_get(glb_time, g_t_time)
		set_pev(iEnt, pev_nextthink, g_t_time + 0.1)
		register_think(g_szClassname, "think_Invisibility")
	} 
	else 
	{
		set_task(0.1, "think_Invisibility", .flags="b")
	}
	
	Menus[MenuPrimary] = menu_create("Anti-Furien Menu \d|| \rPrimary", "Handler_Primary")
	Menus[MenuSecondary] = menu_create("Anti-Furien Menu \d|| \rPistols", "Handler_Secondary")
	
	menu_setprop(Menus[MenuPrimary], MPROP_PERPAGE, 0)
	
	for(new i;i < sizeof AntiFurienPWeapons;i++)
	{
		menu_additem(Menus[MenuPrimary], AntiFurienPWeapons[i][szPWeaponName])
	}
	
	for(new i;i < sizeof AntiFurienSWeapons;i++)
	{
		menu_additem(Menus[MenuSecondary], AntiFurienSWeapons[i][szSWeaponName])
	}
		
	register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
	register_forward(FM_PlaybackEvent, "fw_PlaybackEvent")	
	register_forward(FM_AddToFullPack, "AddToFullPack", 1)
	register_forward(FM_PlayerPreThink, "PreThink")
	register_forward(FM_GetGameDescription, "ForwardGameDescription")
	register_forward(FM_EmitSound, "EmitSound")
	register_forward(FM_CmdStart, "CmdStart")
	register_forward(FM_SetModel, "fw_SetModel")
	register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
	register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
	register_forward(FM_ClientKill, "Forward_ClientKill")
	
	register_event("CurWeapon", "SwitchToC4" , "be" , "1=1" , "2=6")
	register_event("CurWeapon", "SwitchToOther" , "be" , "1=1" , "2!6")
	register_event("SendAudio", "EVENT_CTWin", "a", "1=0", "2=%!MRAD_ctwin")
	register_event("SendAudio", "EVENT_TWin", "a", "1=0", "2=%!MRAD_terwin")
	register_event("DeathMsg", "eDeathMsg", "a")
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_logevent("BombPlanted", 3, "2=Planted_The_Bomb")
	register_logevent("BombDefused", 3, "2=Defused_The_Bomb")

	register_concmd("amx_restartdata","RestartData",ADMIN_IMMUNITY,"Restart all player's money and items.")
	
	register_logevent("Round_Start", 2, "1=Round_Start")
	register_logevent("Round_End", 2, "1=Round_End")
	
	iTimeLimit = get_cvar_pointer("mp_timelimit")
	
	register_clcmd("say", "handle_say")
	register_clcmd("say_team", "handle_say") 
	register_clcmd("+grab","grab_on")
	register_clcmd("-grab","grab_off")
	register_clcmd("amx_amenu","CmdAdminMenu")
	register_clcmd("/furien", "Open_FurMenu")
	
	for(new i; i < sizeof HudSync; i++)
		HudSync[HudSyncSettings:i] = CreateHudSyncObj()
	
	g_iMaxPlayers = get_maxplayers()

	LoadCvars()
	LoadDefaultCfgs()
} 

LoadCvars() 
{ 
	new szConfigFile[128]
     
	formatex(szConfigFile[get_configsdir(szConfigFile,charsmax(szConfigFile))],charsmax(szConfigFile),"/%s/furien_cvars.cfg", g_szFolder)

	if(file_exists(szConfigFile))
		server_cmd("exec %s",szConfigFile)
}

LoadDefaultCfgs() 
{ 
	new szConfigFile[128]
     
	formatex(szConfigFile[get_configsdir(szConfigFile,charsmax(szConfigFile))],charsmax(szConfigFile),"/%s/furien_default_cfgs.cfg", g_szFolder)

	if(file_exists(szConfigFile))
		server_cmd("exec %s",szConfigFile)
}

public plugin_precache()
{	
	precache_model(p_sleepgun)
	precache_model(p_slowgun)
	precache_model(slowgun)
	precache_model(sleepgun)
	
	precache_model("models/rpgrocket.mdl")
	
	for(new i=0; i < sizeof g_MusicList; i++)
		precache_generic(g_MusicList[i])
		
	new szFile[256]
	get_configsdir(szFile, charsmax(szFile))
	formatex(szFile, charsmax(szFile), "%s/%s/furien_settings.ini", szFile, g_szFolder)

	new iFile = fopen(szFile, "r")

	while (!feof(iFile))
	{
		new szBuffer[2056], Key[64], Value[256], ValueRight[256], ValueRight2[256]

		fgets(iFile, szBuffer, charsmax(szBuffer))
		trim(szBuffer)
		
		if (szBuffer[0] == EOS || szBuffer[0] == ';' || (szBuffer[0] == '/' && szBuffer[1] == '/'))
			continue

		strtok(szBuffer, Key, charsmax(Key), Value, charsmax(Value), '=')
		replace(Value, charsmax(Value), ",", "")
		
		trim(Key)
		trim(Value)
		trim(ValueRight)

		if(equal(Key, "MONEY_MAX")) 
		{
			if(Value[0])
			{
				KillSettings[MONEY_MAX] = str_to_num(Value)
			}
			else
			{
				KillSettings[MONEY_MAX] = 999999
			}
		}
		else if(equal(Key, "MONEY_EVIP_KILL"))	
		{
			parse(Value, Value, charsmax(Value), ValueRight, charsmax(ValueRight))

			if(Value[0])
			{
				KillSettings[MONEY_T_EVIP_KILL] = str_to_num(Value)
			}
			else
			{
				KillSettings[MONEY_T_EVIP_KILL] = 25
			}

			if(ValueRight[0])
			{
				KillSettings[MONEY_CT_EVIP_KILL] = str_to_num(ValueRight)
			}
			else
			{
				KillSettings[MONEY_CT_EVIP_KILL] = 20
		
			}
		}
		else if(equal(Key, "MONEY_VIP_KILL"))	
		{
			parse(Value, Value, charsmax(Value), ValueRight, charsmax(ValueRight))

			if(Value[0])
			{
				KillSettings[MONEY_T_VIP_KILL] = str_to_num(Value)
			}
			else
			{
				KillSettings[MONEY_T_VIP_KILL] = 20
			}

			if(ValueRight[0])
			{
				KillSettings[MONEY_CT_VIP_KILL] = str_to_num(ValueRight)
			}
			else
			{
				KillSettings[MONEY_CT_VIP_KILL] = 15
		
			}
		}
		else if(equal(Key, "MONEY_NORMAL_KILL"))	
		{
			parse(Value, Value, charsmax(Value), ValueRight, charsmax(ValueRight))

			if(Value[0])
			{
				KillSettings[MONEY_T_NORMAL_KILL] = str_to_num(Value)
			}
			else
			{
				KillSettings[MONEY_T_NORMAL_KILL] = 15
			}

			if(ValueRight[0])
			{
				KillSettings[MONEY_CT_NORMAL_KILL] = str_to_num(ValueRight)
			}
			else
			{
				KillSettings[MONEY_CT_NORMAL_KILL] = 10
		
			}
		}
		
		else if(equal(Key, "V_KNIFE"))
		{	
			if(Value[0] || ValueRight[0])
			{
				parse(Value, Value, charsmax(Value), ValueRight, charsmax(ValueRight))
				
				if(file_exists(Value))
				{
					copy(WeaponSkins[V_KNIFE_T], charsmax(WeaponSkins[]), Value)
					precache_model(Value)
				}
				
				if(file_exists(ValueRight))
				{
					copy(WeaponSkins[V_KNIFE_CT], charsmax(WeaponSkins[]), ValueRight)
					precache_model(ValueRight)
				}
			}
			else
			{
				if(!Value[0])		copy(WeaponSkins[V_KNIFE_T], charsmax(WeaponSkins[]), "models/v_knife.mdl")
				if(!ValueRight[0])	copy(WeaponSkins[V_KNIFE_CT], charsmax(WeaponSkins[]), "models/v_knife.mdl")
			}
		}
			
		else if(equal(Key, "V_HEGRENADE"))
		{		
			if(Value[0] || ValueRight[0] || ValueRight2[0])
			{
				parse
				(
					Value, 
					Value, charsmax(Value), 
					ValueRight, charsmax(ValueRight),
					ValueRight2, charsmax(ValueRight2)
				)
				
				replace(ValueRight, charsmax(ValueRight), ",", "")
				
				if(file_exists(Value) 
				|| file_exists(ValueRight)
				|| file_exists(ValueRight2))
				{
					copy(WeaponSkins[V_HEGRENADE_V], charsmax(WeaponSkins[]), Value)
					copy(WeaponSkins[V_HEGRENADE_P], charsmax(WeaponSkins[]), ValueRight)
					copy(WeaponSkins[V_HEGRENADE_W], charsmax(WeaponSkins[]), ValueRight2)
					
					precache_model(Value)
					precache_model(ValueRight)
					precache_model(ValueRight2)
				}
			}
		}
		
		else if(equal(Key, "V_FLASHBANG"))
		{
			if(Value[0] || ValueRight[0] || ValueRight2[0])
			{
				parse
				(
					Value, 
					Value, charsmax(Value), 
					ValueRight, charsmax(ValueRight),
					ValueRight2, charsmax(ValueRight2)
				)
				
				replace(ValueRight, charsmax(ValueRight), ",", "")
				
				if(file_exists(Value) 
				|| file_exists(ValueRight)
				|| file_exists(ValueRight2))
				{
					copy(WeaponSkins[V_FLASHBANG_V], charsmax(WeaponSkins[]), Value)
					copy(WeaponSkins[V_FLASHBANG_P], charsmax(WeaponSkins[]), ValueRight)
					copy(WeaponSkins[V_FLASHBANG_W], charsmax(WeaponSkins[]), ValueRight2)
					
					precache_model(Value)
					precache_model(ValueRight)
					precache_model(ValueRight2)
				}
			}
		}
		
		else if(equal(Key, "V_SMOKEGRENADE"))
		{		
			if(Value[0] || ValueRight[0] || ValueRight2[0])
			{
				parse
				(
					Value, 
					Value, charsmax(Value), 
					ValueRight, charsmax(ValueRight),
					ValueRight2, charsmax(ValueRight2)
				)
				
				replace(ValueRight, charsmax(ValueRight), ",", "")
				
				if(file_exists(Value) 
				|| file_exists(ValueRight)
				|| file_exists(ValueRight2))
				{
					copy(WeaponSkins[V_SMOKEGRENADE_V], charsmax(WeaponSkins[]), Value)
					copy(WeaponSkins[V_SMOKEGRENADE_P], charsmax(WeaponSkins[]), ValueRight)
					copy(WeaponSkins[V_SMOKEGRENADE_W], charsmax(WeaponSkins[]), ValueRight2)
					
					precache_model(Value)
					precache_model(ValueRight)
					precache_model(ValueRight2)
				}
			}
		}

		else if(equal(Key, "VIP_MODELS"))
		{
			if(Value[0] || ValueRight[0])
			{
				parse
				(
					Value, 
					Value, charsmax(Value), 
					ValueRight, charsmax(ValueRight)
				)
				
				replace(ValueRight, charsmax(ValueRight), ",", "")
				
				if(file_exists(Value) 
				|| file_exists(ValueRight))
				{
					copy(PlayersSkins[FurienModel], charsmax(PlayersSkins[]), Value)
					copy(PlayersSkins[AntiModel], charsmax(PlayersSkins[]), ValueRight)
					
					precache_model(Value)
					precache_model(ValueRight)
	
					formatex(Value, charsmax(Value), "models/player/%s/%sT.mdl", Value, Value)
					formatex(ValueRight, charsmax(ValueRight), "models/player/%s/%sT.mdl", ValueRight, ValueRight)
				
					if(file_exists(Value) 
					|| file_exists(ValueRight))
					{
						precache_model(Value)
						precache_model(ValueRight)
					}
				}
			}
		}
		
		if(file_exists(Value))
		{
			if(Value[0])
			{
				if(equal(Key, "V_M4A1"))
				{
					copy(WeaponSkins[V_M4A1], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_AK47"))
				{
					copy(WeaponSkins[V_AK47], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_AWP"))
				{
					copy(WeaponSkins[V_AWP], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_FAMAS"))
				{
					copy(WeaponSkins[V_FAMAS], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_M249"))
				{
					copy(WeaponSkins[V_M249], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_MP5"))
				{
					copy(WeaponSkins[V_MP5], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_UMP45"))
				{
					copy(WeaponSkins[V_UMP45], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_M3"))
				{
					copy(WeaponSkins[V_M3], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_C4"))
				{
					copy(WeaponSkins[V_C4], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_DEAGLE"))
				{
					copy(WeaponSkins[V_DEAGLE], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_GLOCK18"))
				{
					copy(WeaponSkins[V_GLOCK18], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_USP"))
				{
					copy(WeaponSkins[V_USP], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_ELITE"))
				{
					copy(WeaponSkins[V_ELITE], charsmax(WeaponSkins[]), Value)
				}
				else if(equal(Key, "V_FIVESEVEN"))
				{
					copy(WeaponSkins[V_FIVESEVEN], charsmax(WeaponSkins[]), Value)
				}
	
				precache_model(Value)
			}
		}
	}
	fclose(iFile)
	
	for(new i = 0; i < sizeof Knives; i++)
		precache_model(Knives[i])

	for(new i = 0; i < sizeof Kills_Sounds; i++)
		precache_sound(Kills_Sounds[i])
		
	for(new i = 0; i < sizeof g_szTer_Sounds; i++)
		precache_generic(g_szTer_Sounds[i])
		
	for(new i = 0; i < sizeof g_szCt_Sounds; i++)
		precache_generic(g_szCt_Sounds[i])
		
	for(new i = 0; i < sizeof CombaSounds; i++)
		precache_sound(CombaSounds[i])
		
	for(new i = 0; i < sizeof SilverSounds; i++)
		precache_sound(SilverSounds[i])
		
	for(new i = 0; i < sizeof EpicSounds; i++)
		precache_sound(EpicSounds[i])
		
	for(new i = 0; i < sizeof DeadSounds; i++)
		precache_sound(DeadSounds[i])
		
	for(new i = 0; i < sizeof SpiritSounds; i++)
		precache_sound(SpiritSounds[i])
		
	for(new i = 0; i < sizeof SuperSounds; i++)
		precache_sound(SuperSounds[i])
		
	for(new i = 0; i < sizeof AxeSounds ; i++)
		precache_sound(AxeSounds[i])
		
	for(new i = 0; i < sizeof HunterSounds; i++)
		precache_sound(HunterSounds[i])
		
	for(new i = 0; i < sizeof CrowSounds; i++)
		precache_sound(CrowSounds[i])
		
	precache_sound(SleepGun_Sounds)
	precache_sound(SlowGun_Sounds)
	precache_sound(ItemBoughtSound)
	precache_sound(SpecialItemBoughtSound)
}

public plugin_end()
{
	nvault_close(g_nVaultSaves)
}

public plugin_cfg()
{
	set_pcvar_num(iTimeLimit,0)
	
	g_nVaultSaves = nvault_open("fur_nvault")
	
	server_cmd("amx_pausecfg add ^"%s^"",PLUGIN)
	
	if(g_nVaultSaves == INVALID_HANDLE)
		set_fail_state("Error opening Furien nVault, file does not exist!")
}

public plugin_natives()
{
	register_library("furien_gs")

	register_native("fm_get_user_item", "_fm_get_user_item", 1)
	register_native("fm_set_user_item", "_fm_set_user_item", 1)
	register_native("fm_get_user_knife", "_fm_get_user_knife", 1)
	register_native("fm_set_user_knife", "_fm_set_user_knife", 1)
	register_native("set_user_money", "_fm_set_user_money")
	register_native("get_user_money", "_fm_get_user_money")
}

public _fm_get_user_item()
{
	return g_szItem[get_param(1)][TOTAL_ITEMS]
}

public _fm_set_user_item()
{
	g_szItem[get_param(1)][TOTAL_ITEMS] = get_param(2)
}

public _fm_get_user_knife()
{
	return g_szKnife[get_param(1)][TOTAL_KNIVES]
}

public _fm_set_user_knife()
{
	new id = get_param(1)

	g_szKnife[id][TOTAL_KNIVES] = get_param(2)
	
	new 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))
}

public _fm_set_user_money()
{
	new id = get_param(1)
	new iType = get_param(2)
	new iValue = get_param(3)

	switch(iType)
	{
		case 0:
		{
			PrivatePlayerData[id][g_PlayerMoney] += iValue
		}
		default:
		{
			PrivatePlayerData[id][g_PlayerMoney] -= iValue
		}
	}
	cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney], 1)
}

public _fm_get_user_money()
{
	return PrivatePlayerData[get_param(1)][g_PlayerMoney]
}

public Msg(id)
{
	client_print(id-2016, print_chat,"%L", id, "PLAYER_CONNECT_MSG")
}

public reset_score(id)
{	
	set_user_frags(id, 0)
	cs_set_user_deaths(id, 0)
	set_user_frags(id, 0)
	cs_set_user_deaths(id, 0)

	color_chat(id, "%L", id, "CHAT_SCORE_RESETED")
	return PLUGIN_HANDLED
}

public client_putinserver(id)
{
	if(is_user_bot(id))
		return
		
	PrivatePlayerData[id][g_bIsConnected] = true
	PrivatePlayerData[id][g_MyKillCount] = 0
	PrivatePlayerData[id][g_bCantSay] = true

	get_user_name(id,PrivatePlayerData[id][g_szName],charsmax(PrivatePlayerData[]))
	
	if(get_playersnum() >= 10)
	{
		set_pcvar_num(iTimeLimit,60)	
	}
	
	set_task(10.5,"Msg", id+2016)
	
	g_Grab[id] = false
	grab[id] = false
	
	SpecialItemActivated[id][g_bActived_Immor] = false
	SpecialItemActivated[id][g_bActived_GodMode] = false
	SpecialItemActivated[id][g_bActived_Hit] = false
	SpecialItemActivated[id][g_bActived_Speed] = false
	SpecialItemActivated[id][g_bActived_Radar] = false
	SpecialItemActivated[id][g_bActived_Wallhang] = false
	SpecialItemActivated[id][g_bActived_Hanged] = false
	
	ConfigSettingMenu[id][g_bFMenu] = true
	ConfigSettingMenu[id][g_bEffect] = true
	ConfigSettingMenu[id][g_bSkins] = true
	ConfigSettingMenu[id][g_bStartSound] = false
	ConfigSettingMenu[id][g_b3D] = false
	
	UserFurienBase[id][g_bGravity] = true
	UserFurienBase[id][g_bSpeed] = true
	
	g_szKnife[id][TOTAL_KNIVES] = KNIFE_DEFAULT

	LoadData(id)
}

public client_disconnect(id)
{
	PrivatePlayerData[id][g_bIsConnected] = false
	
	if(get_playersnum() <= 9)
	{
		set_pcvar_num(iTimeLimit,0)
	}
	
	if(task_exists(id+TASK_SHOW_RADAR))
		remove_task(id+TASK_SHOW_RADAR)
		
	if(task_exists(id+TASK_IMMOR))
		remove_task(id+TASK_IMMOR)
		
	if(task_exists(id+TASK_RADAR))
		remove_task(id+TASK_RADAR)
		
	if(task_exists(id+TASK_REMOVE_RADAR))
		remove_task(id+TASK_REMOVE_RADAR)
		
	if(task_exists(id+TASK_HUD_SPECIAL_ITEM))
		remove_task(id+TASK_HUD_SPECIAL_ITEM)
		
	if(task_exists(id+TASK_C4))
		remove_task(id+TASK_C4)

	SaveData(id)
}

public client_authorized(id)
{
	get_user_authid(id, PrivatePlayerData[id][g_szAuthID], charsmax(PrivatePlayerData[]))
}

public client_infochanged(id)
{
	get_user_info(id,"name",PrivatePlayerData[id][g_szName],charsmax(PrivatePlayerData[]))
}

public event_round_start()
{
	g_bRoundEnd = false
	g_roundstarttime = get_gametime()
}
public ham_Player_Spawn_Post(id)
{
	if(!is_user_alive(id))
		return HAM_IGNORED
		
	set_task(2.0,"ShowInfo",id+TASK_SHOW_INFO)
	set_task(2.5,"ShowBestMoney",id+TASK_SHOW_BEST_MONEY)

	static CsTeams:team; 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))
		
	set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
	
	PrivatePlayerData[id][g_MyKillCount] = 0
	PrivatePlayerData[id][g_bCantSay] = false
	PrivatePlayerData[id][g_bSlashing] = false
	PrivatePlayerData[id][g_bSkinSelected] = false
	
	SpecialItemActivated[id][g_bActived_Hanged] = false
	SpecialItemActivated[id][g_bActived_Immor] = false
	SpecialItemActivated[id][g_bActived_GodMode] = false
	SpecialItemActivated[id][g_bActived_Speed] = false
	SpecialItemActivated[id][g_bActived_Wallhang] = false
	SpecialItemActivated[id][g_bActived_Radar] = false
	
	UserFurienBase[id][g_bWeapons] = false
	
	ConfigSettingMenu[id][g_b3D] = false
	set_view(id,CAMERA_NONE)
	
	ShopItem[id][g_HE] = false
	ShopItem[id][g_HP] = false
	ShopItem[id][g_Defuse] = false
	ShopItem[id][g_SG] = false
	ShopItem[id][g_Teleport] = false
	ShopItem[id][g_SK] = false
	ShopItem[id][sleepgunitem] = false
	ShopItem[id][slowgunitem] = false

	remove_task(id+TASK_IMMOR)
	remove_task(id+TASK_RADAR)
	remove_task(id+TASK_SHOW_RADAR)

	strip_user_weapons(id)
	
	new iUserFlags = get_user_flags(id)
	
	switch(team)
	{
		case CS_TEAM_T:
		{
			if(g_szItem[id][TOTAL_ITEMS] == ITEM_IMMOBILIZE 
			|| g_szItem[id][TOTAL_ITEMS] == ITEM_WISE_EYE 
			|| g_szItem[id][TOTAL_ITEMS] == ITEM_BUNNYHOP)
			{
				g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
			}
			
			give_item(id, "weapon_knife")
			give_item(id, "weapon_hegrenade")
			
			set_user_armor(id,0)
			
			set_user_footsteps(id, 1)
				
			if(iUserFlags & ADMIN_SVIP)
			{
				new iGetUserHealth = pev(id, pev_health)
				fm_set_user_health(id, iGetUserHealth + 20)
					
				SpecialItemActivated[id][g_bActived_SetWallHang] = true
					
				give_item(id, "weapon_smokegrenade")
					
				if(get_playersnum() >= get_pcvar_num(pCvars[pCvarMinPlayers]))
				{	
					give_user_weapon(id, CSW_TMP, 10, 0)
					ShopItem[id][sleepgunset] = true
					ShopItem[id][slowgunset] = false
				}
			}
			else if(iUserFlags & ADMIN_VIP)
			{
				new iGetUserHealth = pev(id, pev_health)
				fm_set_user_health(id, iGetUserHealth + 10)
					
				give_item(id, "weapon_smokegrenade")
			}
			else
			{
				new szUserModel[15]
				cs_get_user_model(id, szUserModel, charsmax(szUserModel))

				if(equal(szUserModel, "arctic"))
				{
					cs_set_user_model(id,ModelsT[0])
				}
				else if(equal(szUserModel, "leet"))
				{
					cs_set_user_model(id,ModelsT[1])
				}
			}
				
			switch(g_szKnife[id][TOTAL_KNIVES])
			{
				case KNIFE_COMBAT:
				{
					fm_set_user_armor(id, pev(id, pev_armorvalue) + 10)
				}
				case KNIFE_AXE:
				{
					fm_set_user_health(id, pev(id, pev_health) + 20)
				}
				case KNIFE_SILVER:
				{
					fm_set_user_health(id, pev(id, pev_health) + 10)
				}
				case KNIFE_SPIRIT:
				{
					fm_set_user_health(id, pev(id, pev_health) + 5)
				}
				case KNIFE_CROWBAR:
				{
					fm_set_user_health(id, pev(id, pev_health) + 10)
				}
			}
			if(UserFurienBase[id][g_bGravity])
			{
				fm_set_user_grav(id, get_pcvar_float(_:pCvars[pCvarFurienGrav]))
			}
		}
		case CS_TEAM_CT:
		{		
			SpecialItemActivated[id][g_bActived_SetWallHang] = false
			
			if(g_szItem[id][TOTAL_ITEMS] == ITEM_NO_DAMAGE 
			|| g_szItem[id][TOTAL_ITEMS] == ITEM_CONFUSED 
			|| g_szItem[id][TOTAL_ITEMS] == ITEM_IMMORTALITY)
			{
				g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
			}
			
			if(iUserFlags & ADMIN_SVIP)
			{
				cs_set_user_armor(id,100,CsArmorType:2)
					
				if(get_playersnum() >= get_pcvar_num(pCvars[pCvarMinPlayers]))
				{
					give_user_weapon(id, CSW_TMP, 10, 0)
					ShopItem[id][slowgunset] = true
					ShopItem[id][sleepgunset] = false
				}
			}
			else if(iUserFlags & ADMIN_VIP)
			{
				cs_set_user_armor(id,50,CsArmorType:2)
			}
			else
			{

				new szUserModel[15]
				cs_get_user_model(id, szUserModel, charsmax(szUserModel))

				if(equal(szUserModel, "sas"))
				{
					cs_set_user_model(id,ModelsCT[0])
				}
				else if(equal(szUserModel, "gsg9"))
				{
					cs_set_user_model(id,ModelsCT[1])
				}
			}
			
			give_item(id, "weapon_knife")
			
			fm_set_user_grav(id, 1.0)
			set_user_footsteps(id, 0)
		}
	}
	
	client_cmd(id,"weapon_knife")
	Open_FurMenu(id)
	
	cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
		
	if((iUserFlags & ADMIN_SVIP) || (iUserFlags & ADMIN_VIP))
	{	
		if(team == CS_TEAM_T)
		{
			cs_set_user_model(id,!RoundEnd ? PlayersSkins[FurienModel] : PlayersSkins[AntiModel])
			PlayerModelData[id][g_Human] = true
		}
		
		else
		{
			cs_set_user_model(id,!RoundEnd ? PlayersSkins[AntiModel] : PlayersSkins[FurienModel])
			PlayerModelData[id][g_Human] = false
		}
    
		remove_task(id+MODELSET_TASK)
    
		copy(PlayerModelData[id][g_PlayerModel], charsmax(PlayerModelData[]), !PlayerModelData[id][g_Human] ? PlayersSkins[AntiModel] : PlayersSkins[FurienModel])
		
		new currentmodel[MAX_PLAYERS]
		fm_get_user_model(id, currentmodel, charsmax(currentmodel))
		
		if(!equal(currentmodel, PlayerModelData[id][g_PlayerModel]))
		{
			if(get_gametime() - g_roundstarttime < 5.0)
			{
				set_task(3.0 * MODELCHANGE_DELAY, "fm_user_model_update", id + MODELSET_TASK)
			}
			else
				fm_user_model_update(id + MODELSET_TASK)
		}
	}
	return HAM_IGNORED
}

public fw_SetClientKeyValue(id, const infobuffer[], const key[])
{   
	if(equal(key, "model"))
	{
		if(PlayerModelData[id][g_HasCustomModel])
			return FMRES_SUPERCEDE
	}
	return FMRES_IGNORED
}

public fw_ClientUserInfoChanged(id)
{
	if(!PlayerModelData[id][g_HasCustomModel])
		return FMRES_IGNORED
    
	static currentmodel[MAX_PLAYERS]
	fm_get_user_model(id, currentmodel, charsmax(currentmodel))
    
	if(!equal(currentmodel, PlayerModelData[id][g_PlayerModel]) && !task_exists(id + MODELSET_TASK))
		fm_set_user_model(id + MODELSET_TASK)
    
	return FMRES_IGNORED
}

public fm_user_model_update(taskid)
{
	static Float:current_time
	current_time = get_gametime()

	if(current_time - g_models_targettime >= MODELCHANGE_DELAY)
	{ 
		fm_set_user_model(taskid)
		g_models_targettime = current_time
	}
	else
	{
		set_task((g_models_targettime + MODELCHANGE_DELAY) - current_time, "fm_set_user_model", taskid)
		g_models_targettime = g_models_targettime + MODELCHANGE_DELAY
	}
}

public fm_set_user_model(player)
{
	player -= MODELSET_TASK
	
	RoundEnd = false
	
	engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", PlayerModelData[player][g_PlayerModel])

	PlayerModelData[player][g_HasCustomModel] = true
}

public Forward_ClientKill(id)
{
	if(!is_user_alive(id))
		return FMRES_IGNORED

	client_print(id, print_chat, "[AMXX] Don't even think about it!")
	client_print(id, print_console, "[AMXX] Don't even think about it!")
 	return FMRES_SUPERCEDE
}  

public ham_Player_TakeDamage_Post(iVictim, iInfictor, iAttacker, Float:fDamage, iDmgBits)
{
	if(!is_user_connected(iVictim) || !is_user_connected(iAttacker) || iVictim == iAttacker)
		return HAM_IGNORED
		
	new iWeapon = get_user_weapon(iAttacker)
	
	if(g_szItem[iVictim][TOTAL_ITEMS] == ITEM_IMMORTALITY)
	{
		SetHamReturnInteger(0)
		return HAM_SUPERCEDE
	}
	
	if(g_szItem[iAttacker][TOTAL_ITEMS] == ITEM_WISE_EYE)
	{
		if(!task_exists(iVictim))
		{
			SpecialItemActivated[iVictim][g_bActived_Hit] = true
			set_task(0.5, "Task_ResetModel", iVictim)
		}
	}
	
	switch(cs_get_user_team(iAttacker))
	{
		case CS_TEAM_T:
		{
			if(ShopItem[iAttacker][g_SK])
			{
				if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
				{
					SetHamParamFloat(4, 400.0)
				}
			}
			
			if(!ShopItem[iAttacker][g_SK])
			{
				switch(g_szKnife[iAttacker][TOTAL_KNIVES])
				{	
					case KNIFE_HUNTER:
					{
						if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
						{
							SetHamParamFloat(4, fDamage + 20)
						}
					}
					
					case KNIFE_SPIRIT:
					{
						if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
						{
							SetHamParamFloat(4, fDamage + 5)
						}
					}
					
					case KNIFE_CROWBAR:
					{
						if(iWeapon == CSW_KNIFE && iDmgBits != DMG_NADE)
						{
							SetHamParamFloat(4, fDamage + 10)
						}
					}
					case KNIFE_DEAD:
					{
						if(cs_get_user_team(iVictim) == CS_TEAM_CT && iDmgBits != DMG_NADE)
						{
							fm_set_user_health(iAttacker, pev(iAttacker, pev_health) + 2)
						}
					}
				}
			}
		
			if(IsPrimaryWeapon(iWeapon))
			{
				if(ShopItem[iAttacker][sleepgunset])
				{
					if(get_user_weapon(iAttacker) == CSW_TMP 
					&& cs_get_user_team(iAttacker) != cs_get_user_team(iVictim)
					&& iDmgBits != DMG_NADE)
					{
						SetHamParamFloat(4,0.0)

						client_print(iVictim, print_center,"%L", iVictim, "PLAYER_BLINDED", PrivatePlayerData[iAttacker][g_szName])
						client_print(iAttacker, print_center,"%L", iAttacker, "PLAYER_BLINDER",PrivatePlayerData[iVictim][g_szName])
		
						ScreenFade(iAttacker, 4500, 0, 0, 255, 255, 255, 75)
						
						new HoldTime = floatround(4096.0 * 3.0), FadeType = HoldTime
						ScreenFade(iVictim, HoldTime, FadeType, 4096, 0, 0, 0, 255)
					}
				}
			}
		}
		
		case CS_TEAM_CT:
		{
			switch(iWeapon)
			{
				case CSW_M3:
				{
					SetHamParamFloat(4, fDamage * 0.45)
				}
				case CSW_UMP45:
				{
					SetHamParamFloat(4, fDamage * 0.45)
				}
				case CSW_GLOCK18:
				{
					SetHamParamFloat(4, fDamage * 0.35)
				}
			}
			
			switch(g_szItem[iVictim][TOTAL_ITEMS])
			{
				case ITEM_NO_DAMAGE:
				{
					new random = random_num(1,5)
					if(random == 2)
						SetHamParamFloat(4, fDamage - fDamage)
				}
				case ITEM_CONFUSED:
				{
					if(PrivatePlayerData[iVictim][g_bSlashing])
					{
						if(IsPrimaryWeapon(iWeapon) || IsSecondaryWeapon(iWeapon))
						{
							SetHamParamFloat(4, fDamage * 0.5)
						}
					}
				}
			}
			
			if(g_szKnife[iVictim][TOTAL_KNIVES] == KNIFE_EPIC && !ShopItem[iVictim][g_SK])
			{
				if(IsPrimaryWeapon(iWeapon) || IsSecondaryWeapon(iWeapon))
				{
					new random = random_num(1,10)
					if(random == 5)
					{
						SetHamParamFloat(4, fDamage - fDamage)
					}
				}
			}
			if(g_szItem[iAttacker][TOTAL_ITEMS] == ITEM_IMMOBILIZE)
			{
				if(iDmgBits & DMG_BULLET || iDmgBits & DMG_NADE || iDmgBits & DMG_SLASH 
				&& cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))
				{
					new random = random_num(1,5)
					if(random == 2)
					{
						set_pev(iVictim, pev_flags, pev(iVictim, pev_flags) | FL_FROZEN)

						if(!task_exists(iVictim+TASK_IMMOBILIZE))
							set_task(3.0, "remove_frozen", iVictim+TASK_IMMOBILIZE)
					}
				}
			}
			if(IsPrimaryWeapon(iWeapon))
			{
				if(ShopItem[iAttacker][slowgunset])
				{
					if(get_user_weapon(iAttacker) == CSW_TMP 
					&& cs_get_user_team(iAttacker) != cs_get_user_team(iVictim)
					&& iDmgBits != DMG_NADE)
					{
						SetHamParamFloat(4,0.0)
			
						PrivatePlayerData[iVictim][g_bFreezedBySlowG] = true
			
						client_print(iVictim, print_center,"%L",iVictim, "PLAYER_FREEZED",PrivatePlayerData[iAttacker][g_szName])
						client_print(iAttacker, print_center,"%L", iAttacker, "PLAYER_FREEZER", PrivatePlayerData[iVictim][g_szName])
						
						ScreenFade(iAttacker, 4500, 0, 0, 255, 255, 255, 75)
			
						remove_task(TASK_REMOVE_FREEZE+iVictim)
						set_task(3.0,"task_remove_freeze",TASK_REMOVE_FREEZE+iVictim)
					}
				}
			}
		}
	}
	
	return HAM_IGNORED
}
public Fwd_PrimAttack(iEnt)
{
	new pPlayer = get_pdata_cbase(iEnt, 41, 4)

	set_pdata_float(iEnt, m_flNextPrimaryAttack, 3.0, 4)
	set_pdata_float(pPlayer, m_flNextAttack, 3.0)
}

public task_remove_freeze(taskid)
{
	new id = taskid-TASK_REMOVE_FREEZE
	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		fm_set_user_maxspeed(id, get_pcvar_float(_:pCvars[pCvarFurienSpeed]))
		set_user_gravity(id, get_pcvar_float(_:pCvars[pCvarFurienGrav]))
		
		PrivatePlayerData[id][g_bFreezedBySlowG] = false
	}
}

public fwdPrimaryAttackKnifePre(ent)
{
	new id = get_pdata_cbase(ent, m_pPlayer, OFFSET_LINUX_WEAPONS)
	
	if(!is_user_connected(id))
		return HAM_IGNORED
		
	if(g_szItem[id][TOTAL_ITEMS] == ITEM_CONFUSED)
		PrivatePlayerData[id][g_bSlashing] = true
		
	return HAM_IGNORED
}

public remove_frozen(iVictim)
{
	iVictim -= TASK_IMMOBILIZE

	set_pev(iVictim, pev_flags, pev(iVictim, pev_flags) & ~FL_FROZEN)
}
public EVENT_CTWin() 
{
	new iPlayers[MAX_PLAYERS], iNum, id
	get_players(iPlayers, iNum)
	for(new i;i < iNum;i++)
	{
		id = iPlayers[i]
		
		if(!ConfigSettingMenu[id][g_bStartSound])
		{
			client_cmd(id, "mp3 stop")
			new buffer = belo_random(sizeof g_szCt_Sounds)
			client_cmd(id, "mp3 play %s", g_szCt_Sounds[buffer])
		}

		if(isTeam(id))
		{
			cs_set_user_team(id, cs_get_user_team(id) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT)
			set_pev(id,pev_takedamage,DAMAGE_NO)
		}
	}

	if(!task_exists(TASK_HUD))
		set_task(0.1,"ShowHudAF",TASK_HUD, .flags = "a",.repeat = 36)

	RoundsCount = 0
	
	RoundEnd = true
}
public EVENT_TWin()
{
	RoundsCount++

	new iPlayers[MAX_PLAYERS], iNum, id
	get_players(iPlayers, iNum)
	for(new i;i < iNum;i++)
	{
		id = iPlayers[i]
		
		if(!ConfigSettingMenu[id][g_bStartSound])
		{
			client_cmd(id, "mp3 stop")
			new buffer = belo_random(sizeof g_szTer_Sounds)
			client_cmd(id, "mp3 play %s", g_szTer_Sounds[buffer])
		}
	
		if(RoundsCount >= 3)
		{
			if(isTeam(id))
			{
				cs_set_user_team(id, cs_get_user_team(id) == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT)
				set_pev(id,pev_takedamage,DAMAGE_NO)
			}
		}
	}

	if(!task_exists(TASK_HUD))
		set_task(0.1,"ShowHudF",TASK_HUD, .flags = "a",.repeat = 36)

	RoundEnd = true
}

public ShowHudAF()
{
	if(g_bIsTrue)
	{
		g_bIsTrue = false
		set_hudmessage(0, 255, 0, -1.0, 0.26, 0, 0.1, 0.2, 0.0, 0.0, 0)
	}
	else
	{
		g_bIsTrue = true
		set_hudmessage(0, 100, 255, -1.0, 0.26, 0, 0.1, 0.2, 0.0, 0.0, 0)
	}
	
	ShowSyncHudMsg(0,HudSync[hudCTWin],"%L", LANG_PLAYER, "HUD_CT_WIN_MESSAGE")
}
public ShowHudF()
{
	new szHud[60]
	
	if(g_bIsTrue)
	{
		g_bIsTrue = false
		set_hudmessage(255, 20, 255, -1.0, 0.26, 0, 0.1, 0.2, 0.0, 0.0, 0)
	}
	else
	{
		g_bIsTrue = true
		set_hudmessage(255, 255, 20, -1.0, 0.26, 0, 0.1, 0.2, 0.0, 0.0, 0)
	}
	switch(RoundsCount)
	{
		case 1, 2:	formatex(szHud,charsmax(szHud),"%L", LANG_PLAYER, "HUD_T_WIN_MESSAGE",RoundsCount)
		case 3:		formatex(szHud,charsmax(szHud),"%L", LANG_PLAYER, "HUD_T_WIN_SWITCH_MESSAGE")
	}
	ShowSyncHudMsg(0,HudSync[hudTWin],szHud)
}

public ham_Player_Killed_Pre(iVictim, iKiller, iShouldGib)
{
	if(!is_user_connected(iVictim) || !is_user_connected(iKiller) || iVictim == iKiller)
		return HAM_IGNORED
	
	if(task_exists(iVictim+TASK_RADAR))
		remove_task(iVictim+TASK_RADAR)
		
	if(task_exists(iVictim+TASK_IMMOR))
		remove_task(iVictim+TASK_IMMOR)
		
	if(task_exists(iVictim+TASK_REGEN))
		remove_task(iVictim+TASK_REGEN)
		
	if(task_exists(iVictim+TASK_REMOVE_FREEZE))
		remove_task(iVictim+TASK_REMOVE_FREEZE)
		
	if(task_exists(iVictim+TASK_SHOW_RADAR))
		remove_task(iVictim+TASK_SHOW_RADAR)

	if(task_exists(iVictim+TASK_IMMOBILIZE))
		remove_task(iVictim+TASK_IMMOBILIZE)
	
	if(task_exists(iVictim+TASK_C4))
		remove_task(iVictim+TASK_C4)
		
	set_task(0.2, "HUD", iVictim+TASK_HUD_SPECIAL_ITEM, .flags = "b")
		
	ShopItem[iVictim][g_SK] = false

	SpecialItemActivated[iVictim][g_bActived_Radar] = false
	SpecialItemActivated[iVictim][g_bActived_Wallhang] = false
	SpecialItemActivated[iVictim][g_bActived_Hanged] = false
		
	static KillText[50], KillTextCT[50]

	if(ConfigSettingMenu[iKiller][g_bEffect])
	{
		new CsTeams:userTeam = cs_get_user_team(iKiller), R, G, B

		PrivatePlayerData[iKiller][g_MyKillCount]++
			
		if(userTeam == CS_TEAM_CT)
		{
			if(IsHeadShot(iVictim) || PrivatePlayerData[iKiller][g_MyKillCount] == 6)
			{
				if(IsHeadShot(iVictim))
				{
					formatex(KillTextCT, charsmax(KillTextCT), "HEAD SHOT")
					client_cmd(iKiller, "spk %s", Kills_Sounds[8])
				}
				
				else
				{
					formatex(KillTextCT, charsmax(KillTextCT), "!!! CRAZY %s !!!",PrivatePlayerData[iKiller][g_szName])
					client_cmd(iKiller, "spk %s", Kills_Sounds[7])
				}
				
				R = 0, G = 100, B = 255
				
				set_dhudmessage(R, G, B, -1.0, IsHeadShot(iVictim) ? 0.10 : 0.30, 0, 3.0, IsHeadShot(iVictim) ? 1.0 : 4.0)
				show_dhudmessage(0,KillTextCT)
			}
			
			CVAR_color_Kill[0] = 000
			CVAR_color_Kill[1] = 100
			CVAR_color_Kill[2] = 200
						
			ScreenFade(iKiller, (400 * 14), 0, 0, CVAR_color_Kill[0], CVAR_color_Kill[1], CVAR_color_Kill[2], 75)
		}
		else
		{
			R = 110, G = 15, B = 15
			
			client_cmd(iKiller, "spk %s", Kills_Sounds[PrivatePlayerData[iKiller][g_MyKillCount] - 1])

			switch(PrivatePlayerData[iKiller][g_MyKillCount])
			{
				case 1..5:	formatex(KillText, sizeof(KillText), "%s",Kill_Messages[PrivatePlayerData[iKiller][g_MyKillCount]])
				case 6:		formatex(KillText, sizeof(KillText), "!!! %s MONSTER KILL !!!",PrivatePlayerData[iKiller][g_szName])
				case 7..16:	formatex(KillText, sizeof(KillText), "GOT IT")
			}
			
			set_dhudmessage(R, G, B, -1.0, (PrivatePlayerData[iKiller][g_MyKillCount] < 6) ? 0.30 : 0.10, 0, 3.0, (PrivatePlayerData[iKiller][g_MyKillCount] < 6) ? 1.0 : 4.0)
			show_dhudmessage(0,KillText)
			
			CVAR_color_Kill[0] = 200
			CVAR_color_Kill[1] = 000
			CVAR_color_Kill[2] = 000
						
			ScreenFade(iKiller, (400 * 14), 0, 0, CVAR_color_Kill[0], CVAR_color_Kill[1], CVAR_color_Kill[2], 75)
		}
	}
	return HAM_IGNORED
}

public eDeathMsg()
{
	new iKiller = read_data(DeathMsg_KillerID)
	
	if(is_user_connected(iKiller))
	{
		new iVictim = read_data(DeathMsg_VictimID)
		if(iVictim != iKiller)
		{
			new iUserFlags = get_user_flags(iKiller)
			static CsTeams:team; team = cs_get_user_team(iKiller)
			
			if(get_playersnum() >= get_pcvar_num(pCvars[pCvarMinPlayers]))
			{
				if(iUserFlags & ADMIN_SVIP)
				{
					PrivatePlayerData[iKiller][g_PlayerMoney] += team == CS_TEAM_T ? KillSettings[MONEY_T_EVIP_KILL] : KillSettings[MONEY_CT_EVIP_KILL]

					set_user_health(iKiller, get_user_health(iKiller) + 3)

				}
				else if(iUserFlags & ADMIN_VIP)
				{
					PrivatePlayerData[iKiller][g_PlayerMoney] += team == CS_TEAM_T ? KillSettings[MONEY_T_VIP_KILL] : KillSettings[MONEY_CT_VIP_KILL]
					
					set_user_health(iKiller, get_user_health(iKiller) + 2)
				}
				else
				{
					PrivatePlayerData[iKiller][g_PlayerMoney] += team == CS_TEAM_T ? KillSettings[MONEY_T_NORMAL_KILL] : KillSettings[MONEY_CT_NORMAL_KILL]
				}
				
				g_iNewMoney = clamp
				(
					PrivatePlayerData[iKiller][g_PlayerMoney], 
					0,
					KillSettings[MONEY_MAX]
				)
				g_iMsgHookMoney = register_message(msg_Money, "Message_Money")
			}	
			else
			{
				color_chat(iKiller, "%L",iKiller, "CHAT_MIN_PLAYERS_MESSAGE", get_pcvar_num(pCvars[pCvarMinPlayers]))
			}
		}
	}
}

public Message_Money(iMsgId, iMsgDest, id)
{
	unregister_message(msg_Money, g_iMsgHookMoney)
	cs_set_money_value(id, g_iNewMoney)
	set_msg_arg_int(Money_Amount, ARG_LONG, g_iNewMoney)
}

public ham_Player_ResetMaxSpeed_Post(id)
{
	if(!is_user_alive(id))
	{
		return HAM_IGNORED
	}
	
	switch(cs_get_user_team(id))
	{
		case CS_TEAM_T:
		{
			if(PrivatePlayerData[id][g_bFreezedBySlowG])
			{
				fm_set_user_maxspeed(id, 100.0)
			}
			else
			{
				if(fm_get_user_speed(id) != 1.0)
				{
					if(UserFurienBase[id][g_bSpeed])
					{
						fm_set_user_speed(id, get_pcvar_float(_:pCvars[pCvarFurienSpeed]))
					}
				}
			}
		}
		
		case CS_TEAM_CT:
		{
			if(SpecialItemActivated[id][g_bActived_Speed])
			{
				fm_set_user_speed(id, 420.0)
			}
		}
	}
	
	return HAM_IGNORED
}

public ham_Player_PostThink_Post(id)
{
	if(!IsPlayer(id))
		return HAM_IGNORED
		
	if(g_szItem[id][TOTAL_ITEMS] == ITEM_BUNNYHOP)
	{
		if(pev(id, pev_button) & IN_JUMP)
		{
			new flags = pev(id, pev_flags)
			
			if(flags & FL_WATERJUMP)
				return HAM_IGNORED
				
			if(pev(id, pev_waterlevel) >= 2)
				return HAM_IGNORED
				
			if(!(flags & FL_ONGROUND))
				return HAM_IGNORED
				
			static Float:velocity[3]
			pev(id, pev_velocity, velocity)
			velocity[2] += 250.0
			set_pev(id, pev_velocity, velocity)
			
			set_pev(id, pev_gaitsequence, 6)
		}
	}
	
	if(SpecialItemActivated[id][g_bActived_SetWallHang] && SpecialItemActivated[id][g_bActived_Hanged])
	{
		engfunc(EngFunc_SetSize, id, g_fVecMins[id], g_fVecMaxs[id])
		engfunc(EngFunc_SetOrigin, id, g_fVecOrigin[id])
		set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
		set_pdata_float(id, m_flNextAttack, 1.0, XTRA_OFS_PLAYER)
	}
	
	return HAM_IGNORED
}

public ham_Player_Jump_Pre(id)
{
	static afButtonPressed; afButtonPressed = get_pdata_int(id, m_afButtonPressed)
	
	if(g_bRoundEnd || !SpecialItemActivated[id][g_bActived_SetWallHang] || !SpecialItemActivated[id][g_bActived_Hanged] || !is_user_alive(id))
	{
		return HAM_IGNORED
	}
	
	if((pev(id, pev_flags) & FL_WATERJUMP) || pev(id, pev_waterlevel) >= 2)
	{
		return HAM_IGNORED
	}
	
	if(~afButtonPressed & IN_JUMP)
	{
		return HAM_IGNORED
	}
	
	SpecialItemActivated[id][g_bActived_Hanged] = false
	
	new Float:fVecVelocity[3]
	velocity_by_aim(id, 600, fVecVelocity)
	set_pev(id, pev_velocity, fVecVelocity)
	set_user_velocity(id, fVecVelocity)
	
	set_pdata_int(id, m_Activity, ACT_HOP)
	set_pdata_int(id, m_IdealActivity, ACT_HOP)
	set_pev(id, pev_gaitsequence, PLAYER_JUMP)
	set_pev(id, pev_frame, 0.0)
	set_pdata_int(id, m_afButtonPressed, afButtonPressed & ~IN_JUMP)
	
	return HAM_SUPERCEDE
}

public ham_Touch_Pre(iEnt, id)
{
	if(!g_bRoundEnd
	&& IsPlayer(id)
	&& SpecialItemActivated[id][g_bActived_SetWallHang]
	&& !SpecialItemActivated[id][g_bActived_Hanged]
	&& is_user_alive(id)
	&& pev(id, pev_button) & IN_USE
	&& ~(pev(id, pev_flags) & FL_ONGROUND))
	{
		SpecialItemActivated[id][g_bActived_Hanged] = true
		pev(id, pev_mins, g_fVecMins[id])
		pev(id, pev_maxs, g_fVecMaxs[id])
		pev(id, pev_origin, g_fVecOrigin[id])
	}
}

public TouchWeapons(iWeapon, id)
{
	if(!is_user_connected(id))
		return HAM_IGNORED
		
	new Model[MAX_PLAYERS]
	pev(iWeapon, pev_model, Model, charsmax(Model))
	
	if(cs_get_user_team(id) == CS_TEAM_T)
	{	
		if(containi(Model, "w_backpack") != -1)
			return HAM_IGNORED
			
		return HAM_SUPERCEDE
	}
	return HAM_IGNORED
}

public SwitchToC4(id)
{		
	new iDelay = get_pcvar_num(pCvars[pCvarPlantDelay])
	
	if(!(g_HoldingC4 & (1<<(id & 31))) && ((get_systime() - g_RoundStartTime) < iDelay))
	{
		set_task(1.0, "ShowHUD", id + TASK_C4, .flags="a", .repeat=(iDelay - (get_systime() - g_RoundStartTime)) - 1) 
		g_HoldingC4 |= (1 << (id & 31))
	}
}

public SwitchToOther(id)
{
	if(g_HoldingC4 & (1<<(id & 31)))
	{
		ClearSyncHud(id, HudSync[hudC4Delay])
		remove_task(id + TASK_C4)
		g_HoldingC4 &= ~(1<<(id & 31))
	}
}

public ShowHUD(id)
{
	id -= TASK_C4
	
	if(is_user_alive(id)
	&& cs_get_user_team(id) == CS_TEAM_T
	&& get_user_weapon(id) & CSW_C4)
	{
		new szHud[40]
	
		formatex(szHud, charsmax(szHud),"%L",id, !is_plugin_loaded("C4_plant_delay") ? "MESSAGE_C4" : "HUD_C4_PLANT_DELAY_MESSAGE", get_pcvar_num(pCvars[pCvarPlantDelay]) - (get_systime() - g_RoundStartTime))
		set_hudmessage(220, 80, 000, -1.0, 0.16, 0, 1.0, 1.0)
		ShowSyncHudMsg(id, HudSync[hudC4Delay],szHud)
	}
}

public ham_PrimaryAttack_C4(iEnt) 
{    
	return ((get_systime() - g_RoundStartTime) <= get_pcvar_num(pCvars[pCvarPlantDelay])) ? HAM_SUPERCEDE : HAM_IGNORED
}

public ham_UseStationary_Post(entity, caller, activator, use_type)
{
	if(use_type == USE_STOPPED && is_user_connected(caller))
		replace_weapon_models(caller, get_user_weapon(caller))
}

public ham_Item_Deploy_Post(weapon_ent)
{
	static id; id = fm_cs_get_weapon_ent_owner(weapon_ent)
	
	if(!pev_valid(id))
		return
		
	static weaponid; weaponid = cs_get_weapon_id(weapon_ent)
	replace_weapon_models(id, weaponid)
}

public fw_SetModel(ent, const model[])
{
	if(!pev_valid(ent))
		return FMRES_IGNORED
	
	new id = pev(ent, pev_owner)
	
	if(equal(model,"models/w_tmp.mdl"))
	{
		dllfunc(DLLFunc_Think, ent)
		return FMRES_SUPERCEDE
	}
	else if(equal(model,"models/w_backpack.mdl"))
	{
		static Float:RenderColor[3] 

		RenderColor[0] = 255.0
		RenderColor[1] = 0.0
		RenderColor[2] = 0.0

		set_pev(ent, pev_renderfx, kRenderFxGlowShell)
		set_pev(ent, pev_rendercolor, RenderColor)
		set_pev(ent, pev_rendermode, kRenderNormal)
		set_pev(ent, pev_renderamt, 200.0)
	}
	else if(equal(model, "models/w_smokegrenade.mdl"))
	{
		engfunc(EngFunc_SetModel, ent, WeaponSkins[V_SMOKEGRENADE_W])
		return FMRES_SUPERCEDE
	}
	
	if(ConfigSettingMenu[id][g_bSkins])
	{
		if(equal(model, "models/w_hegrenade.mdl"))
		{
			engfunc(EngFunc_SetModel, ent, WeaponSkins[V_HEGRENADE_W])
			return FMRES_SUPERCEDE
		}
		
		else if(equal(model, "models/w_flashbang.mdl"))
		{
			engfunc(EngFunc_SetModel, ent, WeaponSkins[V_FLASHBANG_W])
			return FMRES_SUPERCEDE
		}
	}
	return FMRES_IGNORED
}

public HUD(id)
{    
	id -= TASK_HUD_SPECIAL_ITEM
			
	new target = entity_get_int(id, EV_INT_iuser2)
	if(!target)
		return

	new szItemsName[20]
	switch(g_szItem[target][TOTAL_ITEMS])
	{ 
		case ITEM_NONE:		formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_NONE")
		case ITEM_REGEN:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_REGEN")
		case ITEM_MULTI_JUMP:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_MJ")
		case ITEM_NO_DAMAGE:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_PROTECTION")
		case ITEM_CONFUSED:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_CAMOUFLAGE")
		case ITEM_IMMORTALITY:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_IMMORTALITY")
		case ITEM_IMMOBILIZE:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_FROST_CLIP")
		case ITEM_WISE_EYE:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_SMART_EYE")
		case ITEM_BUNNYHOP:	formatex(szItemsName, charsmax(szItemsName), "%L", id, "HUD_ITEM_BUNNYHOP")
	}
			
	set_hudmessage(150, 50, 35, -1.0, 0.95, 0, 1.0, 0.1)
	ShowSyncHudMsg(id,HudSync[hudSpecialItems], "%L", id, "HUD_SPECTATING_MESSAGE", PrivatePlayerData[target][g_PlayerMoney], get_user_armor(target) , szItemsName)
} 

public AddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)
{
	if(!is_user_connected(host) || !is_user_connected(ent) && !is_user_alive(host) || !is_user_alive(ent))
		return FMRES_IGNORED
		
	if(player)
	{
		static CsTeams:team; team = cs_get_user_team(ent)
		static CsTeams:teamhost; teamhost = cs_get_user_team(host)
		
		if(g_szItem[host][TOTAL_ITEMS] == ITEM_WISE_EYE)
		{
			if(team == CS_TEAM_T && team != teamhost)
			{
				if(SpecialItemActivated[ent][g_bActived_Hit])
				{
					set_es(es_handle, ES_RenderFx, kRenderFxDistort)
					set_es(es_handle, ES_RenderColor, {0, 0, 0})
					set_es(es_handle, ES_RenderMode, kRenderTransAdd)
					set_es(es_handle, ES_RenderAmt, 127)
				}
			}
		}
		
		if(team == CS_TEAM_T && team == teamhost)
		{
			new iWeapon = get_user_weapon(ent)
			
			if(iWeapon == CSW_TMP || iWeapon == CSW_SMOKEGRENADE || iWeapon == CSW_KNIFE)
			{
				new iSpeed, Float:fVecVelocity[3]
				entity_get_vector(ent, EV_VEC_velocity, fVecVelocity)
				iSpeed = floatround(vector_length(fVecVelocity))

				if(iSpeed < 10)
				{
					set_es(es_handle, ES_RenderFx, kRenderFxDistort)
					set_es(es_handle, ES_RenderColor, { 0, 0, 0 })
					set_es(es_handle, ES_RenderMode, kRenderTransAdd)
					set_es(es_handle, ES_RenderAmt, 127)
					
					new HoldTime = floatround(4096.0 * 0.3, floatround_round), HoldType = HoldTime
					ScreenFade(ent, HoldTime, HoldType, 4096, 0, 0, 0, 70)
				}
			}
		}
	}
	
	return FMRES_IGNORED
}

public think_Invisibility(Ent)
{
	if(Ent != iEnt)
		return FMRES_IGNORED
		
	g_t_time += 0.1
	entity_set_float(Ent, EV_FL_nextthink, g_t_time)
	
	new iWeapon[MAX_PLAYERS+1]
	new bool:isWithAvaliableWeapons[MAX_PLAYERS+1]

	new iPlayers[MAX_PLAYERS], iNum, id
	get_players(iPlayers, iNum, "ae", "TERRORIST")
	for(new i;i < iNum;i++)
	{
		id = iPlayers[i]
		
		iWeapon[id] = get_user_weapon(id)
		isWithAvaliableWeapons[id] = bool:(iWeapon[id] == CSW_KNIFE || iWeapon[id] == CSW_SMOKEGRENADE || iWeapon[id] == CSW_TMP)
			
		if(!SpecialItemActivated[id][g_bActived_Hanged])
		{
			if(isWithAvaliableWeapons[id])
			{
				new Float:fVec[3], iSpeed
				entity_get_vector(id, EV_VEC_velocity, fVec)
				iSpeed = floatround(vector_length(fVec))
						
				if(iSpeed < 255)
				{
					set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, get_user_flags(id) & ADMIN_SVIP ? (iSpeed / 2) : iSpeed) 
				}
				else 
				{
					set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
				}
			} 
			else 
			{
				set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
			}
		}
		else
		{
			if(isWithAvaliableWeapons[id])
			{
				set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0)
			}
			else
			{
				set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
			}
		}
	}
	return FMRES_IGNORED
}

public PreThink(id)
{
	if(is_user_alive(id) && ShopItem[id][g_SK])
	{
		new iTemp, iWepId, iButton
		iWepId = get_user_weapon(id, iTemp, iTemp)
		iButton = pev(id, pev_button)
		
		if(iWepId == CSW_KNIFE)
		{
			if(iButton & IN_ATTACK)
			{
				iButton = (iButton & ~IN_ATTACK) | IN_ATTACK2
				set_pev(id, pev_button, iButton)
			}
		}
	}
	
	return PLUGIN_HANDLED
}

public ForwardGameDescription()
{
	new szGameDescription[20]
	get_pcvar_string(pCvars[pCvarGameDescription], szGameDescription, charsmax(szGameDescription))

	forward_return(FMV_STRING, szGameDescription)
	return FMRES_SUPERCEDE
}

public EmitSound(id, channel, sample[])
{
	new i
	
	if(is_user_connected(id) && is_user_alive(id))
	{
		static CsTeams:team; team = cs_get_user_team(id)
		
		switch(team)
		{
			case CS_TEAM_T:
			{
				if(ConfigSettingMenu[id][g_bSkins])
				{
					if(!ShopItem[id][g_SK])
					{
						switch(g_szKnife[id][TOTAL_KNIVES])
						{
							case KNIFE_COMBAT:
							{
								for(i = 0; i < sizeof CombaSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, CombaSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}
							case KNIFE_EPIC:
							{
								for(i = 0; i < sizeof EpicSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, EpicSounds[i])
										return FMRES_SUPERCEDE;
									}
								}
							}
							case KNIFE_SPIRIT:
							{
								for(i = 0; i < sizeof SpiritSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, SpiritSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}		
							case KNIFE_DEAD:
							{
								for(i = 0; i < sizeof DeadSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, DeadSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}
							case KNIFE_AXE:
							{
								for(i = 0; i < sizeof AxeSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, AxeSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}
							case KNIFE_HUNTER:
							{
								for(i = 0; i < sizeof HunterSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, HunterSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}				
							case KNIFE_SILVER:
							{
								for(i = 0; i < sizeof SilverSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, SilverSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}
							case KNIFE_CROWBAR:
							{
								for(i = 0; i < sizeof CrowSounds; i++)
								{
									if(equal(sample, oldknife_sounds[i]))
									{
										EmitSnd(id, CrowSounds[i])
										return FMRES_SUPERCEDE
									}
								}
							}
						}
					}
				}
				else
				{
					if(ShopItem[id][g_SK])
					{
						for(i = 0; i < sizeof SuperSounds; i++)
						{
							if(equal(sample, oldknife_supersounds[i]))
							{
								EmitSnd(id, SuperSounds[i])
								return FMRES_SUPERCEDE
							}
						}
					}
				}
			}
		}
	}
	
	return FMRES_HANDLED
}

public CmdStart(id, uc_handle)
{
	if(!is_user_alive(id))
		return FMRES_IGNORED
		
	new flags = pev(id, pev_flags)
	
	if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && PrivatePlayerData[id][g_JumpCount])
	{
		PrivatePlayerData[id][g_JumpCount]--
		new Float:velocity[3]
		pev(id, pev_velocity, velocity)
		velocity[2] = random_float(265.0,285.0)
		set_pev(id, pev_velocity, velocity)
	}
	else if(flags & FL_ONGROUND)
	{
		PrivatePlayerData[id][g_JumpCount] = (g_szItem[id][TOTAL_ITEMS] == ITEM_MULTI_JUMP) ? 2 : 1
	}
	
	return FMRES_IGNORED
}

public Round_Start()
{
	if(RoundsCount >= 3)
		RoundsCount = 0
	
	g_RoundStartTime = get_systime()
	g_HoldingC4 = 0
}
public ShowInfo(id)
{
	id -= TASK_SHOW_INFO
	
	color_chat(id, "%L", id, "CHAT_SPAWN_FIRST_MESSAGE")
}
public ShowBestMoney(id)
{	
	id -= TASK_SHOW_BEST_MONEY

	new iPenize, iBestPlayer, iBestPenez = 1000
	
	new iPlayers[MAX_PLAYERS], iNum, iPlayer
	get_players(iPlayers, iNum)

	if(iNum <= 4)
		return

	for(new i;i < iNum;i++)
	{
		iPlayer = iPlayers[i]

		if(~get_user_flags(iPlayer) & ADMIN_SVIP)
		{
			iPenize = PrivatePlayerData[iPlayer][g_PlayerMoney]
				
			if(iPenize > iBestPenez)
			{
				iBestPlayer = iPlayer
				iBestPenez = iPenize
			}
		}
	}
	
	if(iBestPlayer)
	{
		color_chat(id, "%L", id, "CHAT_SPAWN_SECOND_MESSAGE", PrivatePlayerData[iBestPlayer][g_szName], iBestPenez, (get_user_flags(iBestPlayer) & ADMIN_VIP) ? "e" : "")
	}
}

public Round_End()
{
	g_bRoundEnd = true
	
	new iPlayers[MAX_PLAYERS], iNum, id
	get_players(iPlayers, iNum)
	for(new i;i < iNum;i++)
	{
		id = iPlayers[i]
	
		SpecialItemActivated[id][g_bActived_GodMode] = false
		SpecialItemActivated[id][g_bActived_Wallhang] = false
		SpecialItemActivated[id][g_bActived_Hanged] = false
			
		if(task_exists(id + TASK_IMMOR))
			remove_task(id + TASK_IMMOR)
	}

	RoundEnd = true
	
	iSuperKnifeCount = 0
}

public BombPlanted()
{
	if(g_bRoundEnd)
		return PLUGIN_HANDLED

	new id = get_user_id()
	
	new iMinPlayers = get_pcvar_num(pCvars[pCvarMinPlayers])
	if(get_playersnum() < iMinPlayers)
	{	
		color_chat(id, "%L", id, "CHAT_MIN_PLAYERS_MESSAGE", iMinPlayers)
		return PLUGIN_HANDLED
	}
	else
	{
		new iBombPlantBonus = get_pcvar_num(pCvars[pCvarBombPlant])
			
		color_chat(id, "%L", id, "CHAT_C4_PLANT_BONUS_MESSAGE", iBombPlantBonus)
		
		PrivatePlayerData[id][g_PlayerMoney] += iBombPlantBonus
		cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
	}
	return PLUGIN_CONTINUE
}

public BombDefused()
{
	new id = get_user_id()

	new iMinPlayers = get_pcvar_num(pCvars[pCvarMinPlayers])
	if(get_playersnum() < get_pcvar_num(pCvars[pCvarMinPlayers]))
	{
		color_chat(id, "%L", id, "CHAT_MIN_PLAYERS_MESSAGE", iMinPlayers)
		return PLUGIN_HANDLED
	}
	else
	{	
		new iBombDefuseBonus = get_pcvar_num(pCvars[pCvarBombDefuse])
		color_chat(id, "%L", id, "CHAT_C4_DEFUSE_BONUS_MESSAGE", iBombDefuseBonus)

		PrivatePlayerData[id][g_PlayerMoney] += iBombDefuseBonus
		cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
	}
	return PLUGIN_CONTINUE
}

public message_StatusIcon(iMsgId, iMsgDest, id)
{
	static szIcon[5]
	get_msg_arg_string(2, szIcon, charsmax(szIcon))
	
	if(szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z') 
	{
		set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
		return PLUGIN_HANDLED
	}
	
	return PLUGIN_CONTINUE
}

public message_SendAudio(iMsgId, iMsgDest, id)
{
	new szSound[19]
	get_msg_arg_string(2, szSound, charsmax(szSound))
	
	if(get_msg_block(msg_TextMsg) == BLOCK_NOT)
	{
		set_msg_block(msg_TextMsg, BLOCK_ONCE)
	}
	
	if(equal(szSound, "%!MRAD_FIREINHOLE"))
		return PLUGIN_HANDLED

	return PLUGIN_CONTINUE
}

public message_ClCorpse(iMsgId, iMsgDest, id)
	return PLUGIN_HANDLED

public fn_RadarScan(playerid)
{
	playerid -= TASK_SHOW_RADAR
	
	if(!SpecialItemActivated[playerid][g_bActived_Radar])
		return
	
	new furien_count = 0
	new furien_list[MAX_PLAYERS]
	new FurienCoords[3]

	new iPlayers[MAX_PLAYERS], iNum, id
	get_players(iPlayers, iNum, "ae", "TERRORIST")
	for(new i;i < iNum;i++)
	{
		id = iPlayers[i]
		
		furien_count++
		furien_list[furien_count]=id
	
		for (new i=1;i<furien_count;i++)
		{			
			get_user_origin(furien_list[i], FurienCoords)
			
			message_begin(MSG_ONE_UNRELIABLE, msg_HostagePos, {0,0,0}, playerid)
			write_byte(id)
			write_byte(i)		
			write_coord(FurienCoords[0])
			write_coord(FurienCoords[1])
			write_coord(FurienCoords[2])
			message_end()
			
			message_begin(MSG_ONE_UNRELIABLE, msg_HostageK, {0,0,0}, playerid)
			write_byte(i)
			message_end()
		}
	}
}

public command_Shop(id)
{
	(CsTeams:cs_get_user_team(id) == CS_TEAM_T) ? Open_ShopTerrorist(id) : Open_ShopCounter(id)
}

public command_Items(id)
{
	(CsTeams:cs_get_user_team(id) == CS_TEAM_T) ? Open_ItemsTerrorist(id) : Open_ItemsCounter(id)
}

public RestartData(id,level,cid)
{
	if(cmd_access(id,level,cid,1))
	{
		color_chat(0, "%L", LANG_PLAYER, "CHAT_ADMIN_DATA_RESETED_MESSAGE", PrivatePlayerData[id][g_szName])
		
		RestartAllData()
	}
}

RestartAllData()
{
	nvault_clear(g_nVaultSaves)
	
	new iPlayers[MAX_PLAYERS], iNum, player
	get_players(iPlayers, iNum)
	for(new i;i < iNum;i++)
	{
		player = iPlayers[i]

		PrivatePlayerData[player][g_PlayerMoney] = 0
			
		if(is_user_alive(player))
			cs_set_user_money(player,PrivatePlayerData[player][g_PlayerMoney],1)
		
		g_szItem[player][TOTAL_ITEMS] = ITEM_NONE
	
		for(new b;b < sizeof SpecialItem;b++)
		{
			SpecialItem[player][EspecialItems:b] = 0
		}
	}
}

public handle_say(id)
{
	if(PrivatePlayerData[id][g_bCantSay])
	{
		client_print(id, print_chat, "[Anti-Cheat]: %L", id, "CHAT_YOU_CANNOT_SAY_MESSAGE")
		return PLUGIN_HANDLED
	}
	else
	{
		new Say[20]
		read_argv(1,Say,charsmax(Say))
		remove_quotes(Say)

		if(equal(Say,"/amenu"))
		{
			AdminMenu(id)
			return PLUGIN_HANDLED
		}
		else if(equal(Say,"/furien") || equal(Say,"furien"))
		{
			Open_FurMenu(id)
			return PLUGIN_HANDLED
		}
		else if(equal(Say,"/rs"))
		{
			reset_score(id)
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_CONTINUE
}
Open_ShopTerrorist(id)
{
	if(!is_user_alive(id))
		return PLUGIN_HANDLED

	new formatMsg[80]
	
	new hShop = menu_create("\yFurien Menu \d|| \rFurien Shop", "Handler_ShopTerrorist")
	
	new szComprado[MAX_PLAYERS]
	formatex(szComprado, charsmax(szComprado), "\w[%L]", id, "MENU_BOUGHT")
	
	formatex(formatMsg, charsmax(formatMsg), "HE grenade   ^t^t%s^n\d- %L", ShopItem[id][g_HE] ? szComprado : "\r30$", id, "MENU_ITEM_HE")
	menu_additem(hShop, formatMsg, "1",0)
	
	formatex(formatMsg, charsmax(formatMsg), "+50 HP^t^t^t^t^t^t^t^t%s^n\d- %L", ShopItem[id][g_HP] ? szComprado : "\r85$", id, "MENU_ITEM_HP")
	menu_additem(hShop, formatMsg, "2",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Super knife   ^t^t %s^n\d- %L", ShopItem[id][g_SK] ? szComprado : "\r90$", id, "MENU_ITEM_SK")
	menu_additem(hShop, formatMsg, "3",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Sleep Gun ^t^t^t^t %s^n\d- %L", ShopItem[id][sleepgunitem] ? szComprado : "\r80$", id, "MENU_ITEM_SLEEPG")
	menu_additem(hShop, formatMsg, "4",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Wallhang  ^t^t^t^t^t%s^n\d- %L", SpecialItemActivated[id][g_bActived_Wallhang] ? szComprado : "\r55$ \y[VIP]", id, "MENU_ITEM_WH")
	menu_additem(hShop, formatMsg, "5",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Teleport   ^t^t^t^t^t%s^n\d- %L", ShopItem[id][g_Teleport] ? szComprado : "\r5$ \y[ExtraVIP]", id, "MENU_ITEM_TELEPORT")
	menu_additem(hShop, formatMsg, "6",0)

	formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
	menu_additem(hShop,formatMsg,"7",0)
	
	menu_display(id, hShop)
	
	return PLUGIN_HANDLED
}

Open_ShopCounter(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED
	}
	new formatMsg[80]
	
	new hShop = menu_create("\yFurien Menu \d|| \rAnti-Furien Shop", "Handler_ShopCounter")
	
	new szComprado[MAX_PLAYERS]
	formatex(szComprado, charsmax(szComprado), "\w[%L]", id, "MENU_BOUGHT")
	
	formatex(formatMsg, charsmax(formatMsg), "Defuse  ^t^t^t^t^t^t^t%s^n\d- %L", ShopItem[id][g_Defuse] ? szComprado : "\r5$", id, "MENU_ITEM_DEFUSE")
	menu_additem(hShop, formatMsg, "1",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Slow Grenade  ^t %s^n\d- %L", ShopItem[id][g_SG] ? szComprado : "\r20$", id, "MENU_ITEM_SG")
	menu_additem(hShop, formatMsg, "2",0)
	
	formatex(formatMsg, charsmax(formatMsg), "+50 HP^t^t^t^t^t^t^t^t%s^n\d- %L", ShopItem[id][g_HP] ? szComprado : "\r85$", id, "MENU_ITEM_HP")
	menu_additem(hShop, formatMsg, "3",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Slow Gun  ^t^t^t^t^t%s^n\d- %L", ShopItem[id][slowgunitem] ? szComprado : "\r80$", id, "MENU_ITEM_SLOWG")
	menu_additem(hShop, formatMsg, "4",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Speed   ^t^t^t^t^t^t^t%s^n\d- %L", SpecialItemActivated[id][g_bActived_Speed] ? szComprado : "\r90$", id, "MENU_ITEM_SPEED")
	menu_additem(hShop, formatMsg, "5",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Radar-Scan ^t^t^t^t%s^n\d- %L", SpecialItemActivated[id][g_bActived_Radar] ? szComprado : "\r25$", id, "MENU_ITEM_RADAR")
	menu_additem(hShop, formatMsg, "6",0)

	formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
	menu_additem(hShop,formatMsg,"7",0)
	
	menu_display(id, hShop)
	
	return PLUGIN_HANDLED
}

Open_ShopKnives(id)
{
	if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
	{
		return PLUGIN_HANDLED
	}
	new formatMsg[80]
	
	new hKnf = menu_create("\yFurien Menu \d|| \rKnife skin", "Handler_ShopKnives")
	
	new szComprado[MAX_PLAYERS]
	formatex(szComprado, charsmax(szComprado), "\w[%L]", id, "MENU_BOUGHT")
		
	formatex(formatMsg, charsmax(formatMsg), "Normal Knife ^t^t^t^t%s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_DEFAULT) ? szComprado : "", id, "MENU_KNIFE_DEFAULT")
	menu_additem(hKnf,formatMsg,"1",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Combat Knife ^t^t^t^t%s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_COMBAT) ? szComprado : "\r15$", id, "MENU_KNIFE_COMBAT")
	menu_additem(hKnf,formatMsg,"2",0)
	
	formatex(formatMsg, charsmax(formatMsg), "PickAxe Knife ^t^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_AXE) ? szComprado : "\r25$", id, "MENU_KNIFE_AXE")
	menu_additem(hKnf,formatMsg,"3",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Silver Knife  ^t^t^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_SILVER) ? szComprado : "\r20$ \y[VIP]", id, "MENU_KNIFE_SILVER")
	menu_additem(hKnf,formatMsg,"4",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Hunter Knife ^t^t^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_HUNTER) ? szComprado : "\r40$ \y[VIP]", id, "MENU_KNIFE_HUNTER")
	menu_additem(hKnf,formatMsg,"5",0)

	formatex(formatMsg, charsmax(formatMsg), "%L", id, "MORE")
	menu_additem(hKnf,formatMsg,"6",0)

	formatex(formatMsg, charsmax(formatMsg), "\r%L", id, "BACK")
	menu_additem(hKnf,formatMsg,"7",0)
	
	menu_setprop(hKnf, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, hKnf, 0)
	
	return PLUGIN_HANDLED
}

Open_ShopKnives2(id)
{
	if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
	{
		return PLUGIN_HANDLED
	}
	new formatMsg[70]
	
	new hKnf = menu_create("\yFurien Menu \d|| \rKnife skin", "Handler_ShopKnives2")
	
	new szComprado[MAX_PLAYERS]
	formatex(szComprado, charsmax(szComprado), "\w[%L]", id, "MENU_BOUGHT")
	
	formatex(formatMsg, charsmax(formatMsg), "Spirit Knife ^t^t^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_SPIRIT) ? szComprado : "\r20$", id, "MENU_KNIFE_SPIRIT")
	menu_additem(hKnf,formatMsg,"1",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Epic Knife  ^t^t^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_EPIC) ? szComprado : "\r30$ \y[ExtraVIP]", id, "MENU_KNIFE_EPIC")
	menu_additem(hKnf,formatMsg,"2",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Crowbar Knife^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_CROWBAR) ? szComprado : "\r40$ \y[ExtraVIP]", id, "MENU_KNIFE_CROWBAR")
	menu_additem(hKnf,formatMsg,"3",0)
	
	formatex(formatMsg, charsmax(formatMsg), "Dead Knife ^t^t^t^t %s^n\d - %L", (g_szKnife[id][TOTAL_KNIVES] == KNIFE_DEAD) ? szComprado : "\r50$ \y[ExtraVIP]", id, "MENU_KNIFE_DEAD")
	menu_additem(hKnf,formatMsg,"4",0)

	formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
	menu_additem(hKnf,formatMsg,"5",0)
	
	menu_setprop(hKnf, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, hKnf, 0)
	
	return PLUGIN_HANDLED
}

Open_ItemsTerrorist(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED
	}
	new formatMsg[90]
	
	formatex(formatMsg, charsmax(formatMsg), "Furien Menu \d|| \rItems^n\w%L", id, "MENU_ESPECIAL_ITEM_TITTLE")
	new hItem = menu_create(formatMsg, "Handler_ItemsTerrorist")

	if(SpecialItem[id][g_RG] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r16000$^n\d- %L", id, "MENU_ESPECIAL_ITEM_HPREGEN", id, "MENU_ESPECIAL_ITEM_HPREGEN_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_HPREGEN", (g_szItem[id][TOTAL_ITEMS] == ITEM_REGEN) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_HPREGEN_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "1", 0)

	if(SpecialItem[id][g_ND] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r14000$^n\d- %L", id, "MENU_ESPECIAL_ITEM_NO_DMG", id, "MENU_ESPECIAL_ITEM_NO_DMG_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_NO_DMG", (g_szItem[id][TOTAL_ITEMS] == ITEM_NO_DAMAGE) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_NO_DMG_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "2", 0)

	if(SpecialItem[id][g_CO] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r15000$^n\d- %L", id, "MENU_ESPECIAL_ITEM_CONFUSED", id, "MENU_ESPECIAL_ITEM_CONFUSED_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_CONFUSED", (g_szItem[id][TOTAL_ITEMS] == ITEM_CONFUSED) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_CONFUSED_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "3", 0)

	if(SpecialItem[id][g_IR] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r18000$ \y[ExtraVIP]^n\d- %L", id, "MENU_ESPECIAL_ITEM_IMORTAL", id, "MENU_ESPECIAL_ITEM_IMORTAL_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_IMORTAL", (g_szItem[id][TOTAL_ITEMS] == ITEM_IMMORTALITY) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_IMORTAL_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "4", 0)

	if(SpecialItem[id][g_MJ] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r16000$ \y[ExtraVIP]^n\d- %L", id, "MENU_ESPECIAL_ITEM_MULTIJUMP", id, "MENU_ESPECIAL_ITEM_MULTIJUMP_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_MULTIJUMP", (g_szItem[id][TOTAL_ITEMS] == ITEM_MULTI_JUMP) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_MULTIJUMP_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "5", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
	menu_additem(hItem,formatMsg,"6",0)
	
	menu_display(id, hItem, 0)
	
	return PLUGIN_HANDLED
}

Open_ItemsCounter(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED
	}
	new formatMsg[90]
	
	formatex(formatMsg, charsmax(formatMsg), "Anti-Furien Menu \d|| \rItems^n\w%L", id, "MENU_ESPECIAL_ITEM_TITTLE")
	new hItem = menu_create(formatMsg, "Handler_ItemsCounter")

	if(SpecialItem[id][g_RG] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r16000$^n\d- %L", id, "MENU_ESPECIAL_ITEM_HPREGEN", id, "MENU_ESPECIAL_ITEM_HPREGEN_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_HPREGEN", (g_szItem[id][TOTAL_ITEMS] == ITEM_REGEN) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_HPREGEN_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "1", 0)

	if(SpecialItem[id][g_IB] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r17000$ \y[ExtraVIP]^n\d- %L", id, "MENU_ESPECIAL_ITEM_IMMOBILIZE", id, "MENU_ESPECIAL_ITEM_IMMOBILIZE_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_IMMOBILIZE", (g_szItem[id][TOTAL_ITEMS] == ITEM_IMMOBILIZE) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_IMMOBILIZE_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "2", 0)

	if(SpecialItem[id][g_WE] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r13000$ \y[ExtraVIP]^n\d- %L", id, "MENU_ESPECIAL_ITEM_WISE_EYE", id, "MENU_ESPECIAL_ITEM_WISE_EYE_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_WISE_EYE", (g_szItem[id][TOTAL_ITEMS] == ITEM_WISE_EYE) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_WISE_EYE_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "3", 0)

	if(SpecialItem[id][g_BH] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r19000$ \y[ExtraVIP]^n\d- %L", id, "MENU_ESPECIAL_ITEM_BUNNYHOP", id, "MENU_ESPECIAL_ITEM_BUNNYHOP_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_BUNNYHOP", (g_szItem[id][TOTAL_ITEMS] == ITEM_BUNNYHOP) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_BUNNYHOP_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "4", 0)

	if(SpecialItem[id][g_MJ] != 1)
	{
		formatex(formatMsg, charsmax(formatMsg), "%L\r16000$ \y[ExtraVIP]^n\d- %L", id, "MENU_ESPECIAL_ITEM_MULTIJUMP", id, "MENU_ESPECIAL_ITEM_MULTIJUMP_DESCRIP")
	}
	else 
	{
		formatex(formatMsg, charsmax(formatMsg), "%L%s^n\d- %L", id, "MENU_ESPECIAL_ITEM_MULTIJUMP", (g_szItem[id][TOTAL_ITEMS] == ITEM_MULTI_JUMP) ? "\y[ON]" : "\r[OFF]", id, "MENU_ESPECIAL_ITEM_MULTIJUMP_DESCRIP")
	}
	menu_additem(hItem, formatMsg, "5", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
	menu_additem(hItem,formatMsg,"6",0)
	
	menu_display(id, hItem, 0)
	
	return PLUGIN_HANDLED
}

Open_Primary(id)
{
	if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
	{
		return PLUGIN_HANDLED
	}
	
	menu_display(id, Menus[MenuPrimary])
	return PLUGIN_HANDLED
}

Open_Secondary(id)
{
	if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
	{
		return PLUGIN_HANDLED
	}
	
	menu_display(id, Menus[MenuSecondary])
	return PLUGIN_HANDLED
}

public Open_FurMenu(id)
{
	new CsTeams:team; team = cs_get_user_team(id)
	
	new hFur = menu_create("Furien Menu:", "Handler_FurMenu")
	
	new formatText[15]

	if(team == CS_TEAM_T) 
	{
		formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_KNIFE")
		menu_additem(hFur, formatText, "1", 0)
	}

	if(team == CS_TEAM_CT) 
	{
		formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_WEAPON")
		menu_additem(hFur, formatText, "2", 0)
	}

	formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_SHOP")
	menu_additem(hFur, formatText, "3", 0)

	formatex(formatText, charsmax(formatText), "\y%L", id, "MENU_DEFAULT_ITEM")
	menu_additem(hFur, formatText, "4", 0)

	formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_INFOS")
	menu_additem(hFur, formatText, "5", 0)

	formatex(formatText, charsmax(formatText), "%L", id, "MENU_DEFAULT_SETTINGS")
	menu_additem(hFur, formatText, "6", 0)

	switch(get_user_flags(id))
	{
		case ADMIN_VIP: 
		{
			formatex(formatText, charsmax(formatText), "\y%L ExtraVIP", id, "MENU_DEFAULT_ACTIVE")
			menu_additem(hFur, formatText, "7", 0)
		}
		case ADMIN_USER:
		{
			formatex(formatText, charsmax(formatText), "\y%L VIP", id, "MENU_DEFAULT_ACTIVE")
			menu_additem(hFur, formatText, "7", 0)
		}
	}

	menu_display(id, hFur, 0)
	
	return PLUGIN_HANDLED
}

public CmdAdminMenu(id)
{
	if(get_user_flags(id) & ADMIN_SVIP)	
	{
		AdminMenu(id)
	}
}

public AdminMenu(id)
{	
	Menus[MenuAdminCmds] = menu_create("Admin Menu","admin_m_handler")

	new formatText[15]
	formatex(formatText, charsmax(formatText), "%L", id, "MENU_MESSAGES_HUD")
	menu_additem(Menus[MenuAdminCmds],formatText)

	formatex(formatText, charsmax(formatText), "%L", id, "MENU_VOTEMAP")
	menu_additem(Menus[MenuAdminCmds],formatText)

	formatex(formatText, charsmax(formatText), "%L", id, "MENU_AMXMODMENU")
	menu_additem(Menus[MenuAdminCmds],formatText)

	formatex(formatText, charsmax(formatText), "%L", id, "MENU_RESET_DATA")
	menu_additem(Menus[MenuAdminCmds],formatText)

	menu_additem(Menus[MenuAdminCmds],g_Grab[id] ? "Admin Grab \y[ON]" : "Admin Grab \r[OFF]","5", 0)

	menu_display(id,Menus[MenuAdminCmds])
}

public Msg_Menu(id)
{
	if(get_user_flags(id) & ADMIN_IMMUNITY)
	{			
		Menus[MenuMessages] = menu_create("Messages Menu","msg_handler")

		new formatText[30]

		formatex(formatText, charsmax(formatText), "%L^n\d- %L", id, "MENU_OBJECTIVES", id, "MENU_OBJECTIVES_DESCRIP")
		menu_additem(Menus[MenuAdminCmds],formatText)

		formatex(formatText, charsmax(formatText), "%L^n\d- %L", id, "MENU_SERVER_RULE", id, "MENU_SERVER_RULE_DESCRIP")
		menu_additem(Menus[MenuAdminCmds],formatText)

		formatex(formatText, charsmax(formatText), "%L^n\d- %L", id, "MENU_CONSEQUENCES", id, "MENU_CONSEQUENCES_DESCRIP")
		menu_additem(Menus[MenuAdminCmds],formatText)

		formatex(formatText, charsmax(formatText), "%L^n\d- %L", id, "MENU_CONTACTS", id, "MENU_CONTACTS_DESCRIP")
		menu_additem(Menus[MenuAdminCmds],formatText)

		formatex(formatText, charsmax(formatText), "%L", id, "BACK")
		menu_additem(Menus[MenuAdminCmds],formatText)

		menu_display(id,Menus[MenuMessages])
	}
}

Open_Setting(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED
	}
	new formatMsg[80]
	
	formatex(formatMsg, charsmax(formatMsg), "\yFurien Menu \d|| %L", id, "MENU_SETTINGS_TITTLE")
	new hSet = menu_create(formatMsg, "Handler_Setting")
	
	formatex(formatMsg, charsmax(formatMsg), "Fast menu ^t^t^t^t^t\y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bFMenu] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_bFMenu]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_FAST_MENU")
	menu_additem(hSet, formatMsg, "1", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "Kill effect ^t^t^t^t^t \y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bEffect] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_bEffect]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_EFFECT")
	menu_additem(hSet, formatMsg, "2", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "Old Weapons ^t^t^t\y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bSkins] ? "\r" : "\w", id, (ConfigSettingMenu[id][g_bSkins]) ? "MENU_DISABLED" : "MENU_ENABLED", id, "MENU_SETTINGS_SKINS")
	menu_additem(hSet, formatMsg, "3", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "Start Sound ^t^t^t^t\y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_bStartSound] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_bStartSound]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_START_SOUND")
	menu_additem(hSet, formatMsg, "4", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "Furien 3D ^t^t^t^t^t \y[%s%L\y]^n\d- %L", ConfigSettingMenu[id][g_b3D] ? "\w" : "\r", id, (ConfigSettingMenu[id][g_b3D]) ? "MENU_ENABLED" : "MENU_DISABLED", id, "MENU_SETTINGS_CAMERA")
	menu_additem(hSet, formatMsg, "5", 0)
	
	formatex(formatMsg, charsmax(formatMsg), "%L", id, "BACK")
	menu_additem(hSet, formatMsg, "6", 0)
	
	menu_setprop(hSet, MPROP_EXIT, MEXIT_ALL)
	menu_display(id, hSet, 0)
	
	return PLUGIN_HANDLED
}

public Handler_ShopTerrorist(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
	
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}

	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	new iUserFlag = get_user_flags(id)
		
	switch(iKey)
	{
		case 1: 
		{
			if(!ShopItem[id][g_HE] && !user_has_weapon(id,CSW_HEGRENADE))
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 30)
				{
					give_item(id, "weapon_hegrenade")
					PrivatePlayerData[id][g_PlayerMoney] -= 30
					ShopItem[id][g_HE] = true
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
			else
			{
				youAlreadyHave(id, "hegrenade")
			}
			command_Shop(id)
		}
			
		case 2:
		{
			if(!ShopItem[id][g_HP])
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 85)
				{
					new iGetUserHealth = pev(id, pev_health), iMaxHp = (iUserFlag & ADMIN_VIP) ? 200 : 150
					
					fm_set_user_health(id, iGetUserHealth + 50)
					
					ShopItem[id][g_HP] = true
					PrivatePlayerData[id][g_PlayerMoney] -= 85
					
					iGetUserHealth = pev(id, pev_health)
					
					if(iGetUserHealth > iMaxHp)
						fm_set_user_health(id, iMaxHp)
						
					EmitSnd(id, ItemBoughtSound)
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
			else
			{
				youAlreadyHave(id, "50 Health")
			}
			command_Shop(id)
		}
		case 3: 
		{
			if(!ShopItem[id][g_SK])
			{
				if(iSuperKnifeCount >= SUPERKNIFE_BOUGHT_MAX)
				{
					if(!(iUserFlag & ADMIN_SVIP) && !(iUserFlag & ADMIN_VIP))
					{
						color_chat(id, "%L", id, "CHAT_SK_MAX_BOUGHT")
						color_chat(id, "%L", id, "CHAT_SK_MAX_BOUGHT2")
						return PLUGIN_HANDLED
					}
				}
				
				if(PrivatePlayerData[id][g_PlayerMoney] >= 90)
				{
					ShopItem[id][g_SK] = true
					PrivatePlayerData[id][g_PlayerMoney] -= 90

					iSuperKnifeCount++
					EmitSnd(id, ItemBoughtSound)
						
					color_chat(id, "%L", id, "CHAT_SK_BOUGHT")
				} 
				else 
				{
					noMoneyfunc(id)
				}
			}
			else 
			{
				youAlreadyHave(id, "SuperKnife")
			}
			command_Shop(id)
		}
		case 4:
		{
			if(!ShopItem[id][sleepgunitem] && !user_has_weapon(id,CSW_TMP))
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 85)
				{
					ShopItem[id][sleepgunitem] = true
					ShopItem[id][sleepgunset] = true

					PrivatePlayerData[id][g_PlayerMoney] -= 85
					color_chat(id, "%L", id, "CHAT_SLEEPGUN_BOUGHT")
					giveUserTmp(id)
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
			else 
			{
				youAlreadyHave(id, "SleepGun")
			}
			command_Shop(id)
		}
		case 5: 
		{
			if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
			{
				if(!SpecialItemActivated[id][g_bActived_Wallhang] && !SpecialItemActivated[id][g_bActived_SetWallHang])
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 55)
					{
						SpecialItemActivated[id][g_bActived_Wallhang] = true
						SpecialItemActivated[id][g_bActived_SetWallHang] = true

						PrivatePlayerData[id][g_PlayerMoney] -= 55
						color_chat(id, "%L", id, "CHAT_WALLHANG_BOUGHT")
						EmitSnd(id, ItemBoughtSound)
					}
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "WallHang")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_VIP)
			}
			command_Shop(id)	
		}
		case 6:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(!user_has_weapon(id,CSW_SMOKEGRENADE) && !ShopItem[id][g_Teleport])
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 5)
					{
						give_item(id, "weapon_smokegrenade")
						EmitSnd(id, ItemBoughtSound)
						PrivatePlayerData[id][g_PlayerMoney] -= 5
						ShopItem[id][g_Teleport] = true
					}
					else 
					{
						noMoneyfunc(id)
					}
				}
				else
				{
					youAlreadyHave(id, "Teleport")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			command_Shop(id)
		}
	}
	
	if(iKey == 7)
		Open_FurMenu(id)

	else
		cs_set_user_money(id,PrivatePlayerData[id][g_PlayerMoney],1)
		
	menu_destroy(hMenu)
	
	return PLUGIN_HANDLED
}

public Handler_ShopCounter(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
	
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	new iUserFlag = get_user_flags(id)
		
	switch(iKey)
	{
		case 1:
		{
			if(!ShopItem[id][g_Defuse])
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 5)
				{
					give_item(id, "item_thighpack")
					PrivatePlayerData[id][g_PlayerMoney] -= 5
					EmitSnd(id, ItemBoughtSound)
					ShopItem[id][g_Defuse] = true
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
			else
			{
				youAlreadyHave(id, "Defuse")
			}
			command_Shop(id)
		}
			
		case 2: 
		{
			if(!ShopItem[id][g_SG] && !user_has_weapon(id,CSW_FLASHBANG))
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 20)
				{
					give_item(id, "weapon_flashbang")
					PrivatePlayerData[id][g_PlayerMoney] -= 20
					ShopItem[id][g_SG] = true
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
					
			else
			{
				youAlreadyHave(id, "Slow Grenade")
			}
			command_Shop(id)
		}
		case 3:
		{
			if(!ShopItem[id][g_HP])
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 85)
				{
					new iGetUserHealth = pev(id, pev_health), iMaxHp = (get_user_flags(id) & ADMIN_VIP) ? 200 : 150
					
					fm_set_user_health(id, iGetUserHealth + 50)
					
					ShopItem[id][g_HP] = true
					PrivatePlayerData[id][g_PlayerMoney] -= 85
					
					iGetUserHealth = pev(id, pev_health)
					
					if(iGetUserHealth > iMaxHp)
						fm_set_user_health(id, iMaxHp)
						
					EmitSnd(id, ItemBoughtSound)
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
			else
			{
				youAlreadyHave(id, "50 Health")
			}
			command_Shop(id)
		}
		case 4:
		{
			if(!ShopItem[id][slowgunitem] && !user_has_weapon(id,CSW_TMP))
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 80)
				{
					ShopItem[id][slowgunitem] = true
					ShopItem[id][slowgunset] = true
					PrivatePlayerData[id][g_PlayerMoney] -= 80
					color_chat(id, "%L", id, "CHAT_SLOWGUN_BOUGHT")
					
					giveUserTmp(id)
				}
				else 
				{
					noMoneyfunc(id)
				}
			}
			else 
			{
				youAlreadyHave(id, "SlowGun")
			}
			command_Shop(id)
		}
			
		case 5:
		{
			if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
			{
				if(!SpecialItemActivated[id][g_bActived_Speed])
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 90)
					{
						fm_set_user_speed(id, 420.0)
						PrivatePlayerData[id][g_PlayerMoney] -= 90
						SpecialItemActivated[id][g_bActived_Speed] = true
						color_chat(id, "%L", id, "CHAT_SPEED_BOUGHT")
						EmitSnd(id, ItemBoughtSound)
					}
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "Speed")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_VIP)
			}
			command_Shop(id)
		}
			
		case 6:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(!SpecialItemActivated[id][g_bActived_Radar])
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 25)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 25
						SpecialItemActivated[id][g_bActived_Radar] = true
						set_task(0.5, "fn_RadarScan", id+TASK_SHOW_RADAR,.flags = "b")
						set_task(10.0, "Task_Radar", id + TASK_RADAR)
						color_chat(id, "%L", id, "CHAT_RADAR_BOUGHT")
						EmitSnd(id,ItemBoughtSound)
					}
					else 
					{
						noMoneyfunc(id)
					}
				}
				else 
				{
					youAlreadyHave(id, "Speed")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			command_Shop(id)
		}
	}
	
	if(iKey == 7)
		Open_FurMenu(id)
	
	else
		cs_set_user_money(id,PrivatePlayerData[id][g_PlayerMoney],1)
	
	menu_destroy(hMenu)
	
	return PLUGIN_HANDLED
}

public Handler_ShopKnives(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
	
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	new iUserFlag = get_user_flags(id)
	
	if(PrivatePlayerData[id][g_bSkinSelected])
	{
		if(iKey < 6)
		{
			color_chat(id, "%L", id, "CHAT_ALREADY_CHOOSED_KNIFE")
			return PLUGIN_HANDLED
		}
	}
	
	switch(iKey)
	{
		case 1:
		{
			if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_DEFAULT)
			{
				g_szKnife[id][TOTAL_KNIVES] = KNIFE_DEFAULT
				EmitSnd(id,ItemBoughtSound)
			}
			else 
			{
				youAlreadyHave(id, "Normal knife")
			}
			Open_ShopKnives(id)
		}
		
		case 2:
		{
			if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_COMBAT)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 15)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 15
					fm_set_user_armor(id, pev(id, pev_armorvalue) + 10)
					
					g_szKnife[id][TOTAL_KNIVES] = KNIFE_COMBAT
					EmitSnd(id,ItemBoughtSound)

					PrivatePlayerData[id][g_bSkinSelected] = true
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				youAlreadyHave(id, "Combat knife")
			}
			Open_ShopKnives(id)
		}
		
		case 3: 
		{
			if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_AXE)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 25)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 25
					fm_set_user_health(id, pev(id, pev_health) + 20)
					
					g_szKnife[id][TOTAL_KNIVES] = KNIFE_AXE
					EmitSnd(id,ItemBoughtSound)

					PrivatePlayerData[id][g_bSkinSelected] = true
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				youAlreadyHave(id, "Axe knife")
			}
			Open_ShopKnives(id)
		}

		case 4:
		{
			if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
			{
				if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_SILVER)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 20)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 20
						fm_set_user_health(id, pev(id, pev_health) + 10)
						
						g_szKnife[id][TOTAL_KNIVES] = KNIFE_SILVER
						EmitSnd(id, ItemBoughtSound)
	
						PrivatePlayerData[id][g_bSkinSelected] = true
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "Silver knife")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			Open_ShopKnives(id)
		}
		
		case 5: 
		{
			if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
			{
				if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_HUNTER)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 40)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 40
						
						g_szKnife[id][TOTAL_KNIVES] = KNIFE_HUNTER
						EmitSnd(id,ItemBoughtSound)
	
						PrivatePlayerData[id][g_bSkinSelected] = true
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "Hunter knife")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			Open_ShopKnives(id)
		}
		
		case 6: Open_ShopKnives2(id)
		
		case 7: Open_FurMenu(id)
	}
	
	new 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))
		
	cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
	
	return PLUGIN_HANDLED
}

public Handler_ShopKnives2(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
	
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	new iUserFlag = get_user_flags(id)
	
	if(PrivatePlayerData[id][g_bSkinSelected] && iKey < 5)
	{
		color_chat(id,  "%L", id, "CHAT_ALREADY_CHOOSED_KNIFE")
		return PLUGIN_HANDLED
	}
	
	switch(iKey)
	{
		case 1: 
		{
			if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_SPIRIT)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 20)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 20
					fm_set_user_health(id, pev(id, pev_health) + 5)
					
					g_szKnife[id][TOTAL_KNIVES] = KNIFE_SPIRIT
					EmitSnd(id,ItemBoughtSound)

					PrivatePlayerData[id][g_bSkinSelected] = true
					
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				youAlreadyHave(id, "Spirit knife")
			}
			Open_ShopKnives2(id)
		}
		
		case 2: 
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_EPIC)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 30)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 30
						
						g_szKnife[id][TOTAL_KNIVES] = KNIFE_EPIC
						EmitSnd(id,ItemBoughtSound)
	
						PrivatePlayerData[id][g_bSkinSelected] = true
						
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "Epic knife")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			Open_ShopKnives2(id)
		}
		
		case 3:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_CROWBAR)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 40)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 40
						fm_set_user_health(id, pev(id, pev_health) + 10)
						
						g_szKnife[id][TOTAL_KNIVES] = KNIFE_CROWBAR
						EmitSnd(id,ItemBoughtSound)
	
						PrivatePlayerData[id][g_bSkinSelected] = true
						
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "Crowbar knife")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			Open_ShopKnives2(id)
		}
		
		case 4:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(g_szKnife[id][TOTAL_KNIVES] != KNIFE_DEAD)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 50)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 50
						
						g_szKnife[id][TOTAL_KNIVES] = KNIFE_DEAD
						EmitSnd(id,ItemBoughtSound)
	
						PrivatePlayerData[id][g_bSkinSelected] = true
						
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					youAlreadyHave(id, "Dead knife")
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			Open_ShopKnives2(id)
		}
		
		case 5: Open_ShopKnives(id)
	}
	
	new 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))
		
	cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
	
	return PLUGIN_HANDLED
}

public Handler_ItemsTerrorist(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT)
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
		
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	new iUserFlag = get_user_flags(id)
	
	switch(iKey)
	{
		case 1:
		{
			if(SpecialItem[id][g_RG] != 1)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 16000)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 16000
					cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
					
					SpecialItem[id][g_RG] = 1
					
					ScreenFade(id, 4500, 0, 0, 255, 255, 255, 75)
					
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				if(g_szItem[id][TOTAL_ITEMS] == ITEM_REGEN)
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
				} 
				else 
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					g_szItem[id][TOTAL_ITEMS] = ITEM_REGEN
				}
				
				client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				
				if(g_szItem[id][TOTAL_ITEMS] == ITEM_REGEN)
					set_task(1.0, "Task_HealthRegen", id + TASK_REGEN)
			}
			command_Items(id)
		}
		
		case 2:
		{
			if(SpecialItem[id][g_ND] != 1)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 14000)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 14000
					cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
					
					SpecialItem[id][g_ND] = 1

					ScreenFade(id, 4500, 0, 0, 255, 255, 255, 75)
					
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				if(g_szItem[id][TOTAL_ITEMS] == ITEM_NO_DAMAGE)
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
				} 
				else 
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					g_szItem[id][TOTAL_ITEMS] = ITEM_NO_DAMAGE
				}
				client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
			}
			command_Items(id)
		}
		
		case 3:
		{
			if(SpecialItem[id][g_CO] != 1)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 15000)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 15000
					cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
					
					SpecialItem[id][g_CO] = 1

					ScreenFade(id, 4500, 0, 0, 255, 255, 255, 75)
					
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				if(g_szItem[id][TOTAL_ITEMS] == ITEM_CONFUSED)
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
				} 
				else 
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					g_szItem[id][TOTAL_ITEMS] = ITEM_CONFUSED
				}
			}
			command_Items(id)
		}
		
		case 4:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(SpecialItem[id][g_IR] != 1)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 18000)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 18000
						cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
						
						SpecialItem[id][g_IR] = 1

						ScreenFade(id, 4500, 0, 0, 255, 255, 255, 75)
						
						client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					SpecialItemActivated[id][g_bActived_Immor] = true
					SpecialItemActivated[id][g_bActived_GodMode] = true
						
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					g_szItem[id][TOTAL_ITEMS] = ITEM_IMMORTALITY
						
					if(g_szItem[id][TOTAL_ITEMS] == ITEM_IMMORTALITY)
					{
						set_task(1.0, "Task_Immor", id + TASK_IMMOR, .flags = "b")
					}
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			command_Items(id)
		}
		
		case 5:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(SpecialItem[id][g_MJ] != 1)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 16000)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 16000
						cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
						
						SpecialItem[id][g_MJ] = 1

						ScreenFade(id, 4500, 0, 0, 255, 255, 255, 75)
						
						client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
					} 
					else
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					if(g_szItem[id][TOTAL_ITEMS] == ITEM_MULTI_JUMP)
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					} 
					else 
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
						g_szItem[id][TOTAL_ITEMS] = ITEM_MULTI_JUMP
					}
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_VIP)
			}
			command_Items(id)
		}
		
		case 6: Open_FurMenu(id)
	}
	
	if(g_szItem[id][TOTAL_ITEMS] != ITEM_REGEN || g_szItem[id][TOTAL_ITEMS] != ITEM_IMMORTALITY)
	{
		if(g_szItem[id][TOTAL_ITEMS] != ITEM_IMMORTALITY)
		{
			if(task_exists(id + TASK_IMMOR))
				remove_task(id + TASK_IMMOR)
		}
		if(g_szItem[id][TOTAL_ITEMS] != ITEM_REGEN)
		{
			if(task_exists(id + TASK_REGEN))
				remove_task(id + TASK_REGEN)
		}
	}

	menu_destroy(hMenu)
	
	return PLUGIN_HANDLED
}

public Handler_ItemsCounter(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
		
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	new iUserFlag = get_user_flags(id)
	
	switch(iKey)
	{
		case 1:
		{
			if(SpecialItem[id][g_RG] != 1)
			{
				if(PrivatePlayerData[id][g_PlayerMoney] >= 16000)
				{
					PrivatePlayerData[id][g_PlayerMoney] -= 16000
					cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
					
					SpecialItem[id][g_RG] = 1

					ScreenFade(id, (300 * 15), 0, 0, 255, 255, 255, 75)
					
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				} 
				else 
				{
					noMoneyfunc(id)
				}
			} 
			else 
			{
				if(g_szItem[id][TOTAL_ITEMS] == ITEM_REGEN)
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
				} 
				else 
				{
					g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					g_szItem[id][TOTAL_ITEMS] = ITEM_REGEN
				}
				
				client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				
				if(g_szItem[id][TOTAL_ITEMS] == ITEM_REGEN)
				{
					set_task(1.0, "Task_HealthRegen", id + TASK_REGEN)
				} 
			}
			command_Items(id)
		}
		
		case 2:
		{
			if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
			{
				if(SpecialItem[id][g_IB] != 1)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 17000)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 17000
						cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
						
						SpecialItem[id][g_IB] = 1

						ScreenFade(id, (300 * 15), 0, 0, 255, 255, 255, 75)
						
						client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					if(g_szItem[id][TOTAL_ITEMS] == ITEM_IMMOBILIZE)
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					} 
					else 
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
						g_szItem[id][TOTAL_ITEMS] = ITEM_IMMOBILIZE
					}
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_VIP)
			}
			command_Items(id)
		}
		
		case 3:
		{
			if(iUserFlag & ADMIN_VIP || iUserFlag & ADMIN_SVIP)
			{
				if(SpecialItem[id][g_WE] != 1)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 13000)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 13000
						cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
						
						SpecialItem[id][g_WE] = 1

						ScreenFade(id, (300 * 15), 0, 0, 255, 255, 255, 75)
						
						client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					if(g_szItem[id][TOTAL_ITEMS] == ITEM_WISE_EYE)
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					} 
					else 
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
						g_szItem[id][TOTAL_ITEMS] = ITEM_WISE_EYE
					}
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_VIP)
			}
			command_Items(id)
		}
		
		case 4:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(SpecialItem[id][g_BH] != 1)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 19000)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 19000
						cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
						
						SpecialItem[id][g_BH] = 1

						ScreenFade(id, (300 * 15), 0, 0, 255, 255, 255, 75)
						
						client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					if(g_szItem[id][TOTAL_ITEMS] == ITEM_BUNNYHOP)
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					} 
					else 
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
						g_szItem[id][TOTAL_ITEMS] = ITEM_BUNNYHOP
					}
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			command_Items(id)
		}
		
		case 5:
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				if(SpecialItem[id][g_MJ] != 1)
				{
					if(PrivatePlayerData[id][g_PlayerMoney] >= 16000)
					{
						PrivatePlayerData[id][g_PlayerMoney] -= 16000
						cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
						
						SpecialItem[id][g_MJ] = 1

						ScreenFade(id, (300 * 15), 0, 0, 255, 255, 255, 75)
						
						client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
					} 
					else 
					{
						noMoneyfunc(id)
					}
				} 
				else 
				{
					if(g_szItem[id][TOTAL_ITEMS] == ITEM_MULTI_JUMP)
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
					} 
					else 
					{
						g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
						g_szItem[id][TOTAL_ITEMS] = ITEM_MULTI_JUMP
					}
					
					client_cmd(id,"spk ^"%s^"",SpecialItemBoughtSound)
				}
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
			}
			command_Items(id)
		}
		
		case 6: Open_FurMenu(id)
	}
	
	if(g_szItem[id][TOTAL_ITEMS] != ITEM_REGEN)
	{
		if(task_exists(id + TASK_REGEN))
			remove_task(id + TASK_REGEN)
	}
		
	menu_destroy(hMenu)
	
	return PLUGIN_HANDLED
}

public Handler_Primary(id, hMenu, iItem)
{
	if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
	{
		return PLUGIN_HANDLED
	}
	
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	new iUserFlag = get_user_flags(id)
	
	if(PrivatePlayerData[id][g_PlayerMoney] >= AntiFurienPWeapons[iItem][iPWeaponCost])
	{
		strip_user_weapons(id)
		give_item(id,"weapon_flashbang")
		give_item(id,"weapon_knife")
		
		if(iUserFlag & ADMIN_SVIP)
		{
			if(get_playersnum() > get_pcvar_num(pCvars[pCvarMinPlayers]) && !user_has_weapon(id,CSW_TMP))
			{
				giveUserTmp(id)
			}
		}
		
		UserFurienBase[id][g_bWeapons] = true
		Open_Secondary(id)
		
		if(iItem != 7)
		{
	 		give_item(id, AntiFurienPWeapons[iItem][szPWeaponIndex])
			cs_set_user_bpammo(id, AntiFurienPWeapons[iItem][szPWeaponType], AntiFurienPWeapons[iItem][iPWeaponBpAmmo])
			
			if((iItem == 0) || (iItem == 1))
				color_chat(id, "%L", id, "CHAT_BAD_WEAPON")
			else
			{
				PrivatePlayerData[id][g_PlayerMoney] -= AntiFurienPWeapons[iItem][iPWeaponCost]
				cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
			}
		}
		else
		{
			if(iUserFlag & ADMIN_SVIP)
			{
				PrivatePlayerData[id][g_PlayerMoney] -= AntiFurienPWeapons[iItem][iPWeaponCost]
				cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)

				give_item(id, AntiFurienPWeapons[iItem][szPWeaponName])
				cs_set_user_bpammo(id, AntiFurienPWeapons[iItem][szPWeaponType], AntiFurienPWeapons[iItem][iPWeaponBpAmmo])
			
				UserFurienBase[id][g_bWeapons] = true
				Open_Secondary(id)
			}
			else
			{
				noAccessfunc(id,ADMIN_SVIP)
				Open_Primary(id)
			} 
		}
	}
	else 
	{
		noMoneyfunc(id)
		Open_Primary(id)
	}
	
	return PLUGIN_HANDLED
}

public Handler_Secondary(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT || !is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_T)
	{
		return PLUGIN_HANDLED
	}
	
	if(g_bRoundEnd)
	{
		CantRightNow(id)
		return PLUGIN_HANDLED
	}
	
	if(PrivatePlayerData[id][g_PlayerMoney] >= AntiFurienSWeapons[iItem][iSWeaponCost])
	{
		if((iItem != 0) || (iItem != 1))
		{
			PrivatePlayerData[id][g_PlayerMoney] -= AntiFurienSWeapons[iItem][iSWeaponCost]
			cs_set_user_money(id, PrivatePlayerData[id][g_PlayerMoney],1)
		}
		
		give_item(id, AntiFurienSWeapons[iItem][szSWeaponIndex])
		cs_set_user_bpammo(id, AntiFurienSWeapons[iItem][szSWeaponType], AntiFurienSWeapons[iItem][iSWeaponBpAmmo])
	
		if(!ConfigSettingMenu[id][g_bFMenu])
			Open_FurMenu(id)
	} 
	else 
	{
		noMoneyfunc(id)
		Open_Secondary(id)
	}
		
	return PLUGIN_HANDLED
}

public Handler_FurMenu(id, hMenu, iItem)
{
	if(!is_user_alive(id))
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	
	switch(iKey)
	{
		case 1: Open_ShopKnives(id)
		
		case 2: 
		{
			if(!UserFurienBase[id][g_bWeapons])
			{
				Open_Primary(id)
			} 
			else 
			{
				Open_FurMenu(id)
				color_chat(id, "%L", id, "CHAT_ALREADY_SELECTEC_THE_EQUIPAMENT")
				client_print(id, print_center,"%L", id, "CHAT_ALREADY_SELECTEC_THE_EQUIPAMENT")
			}
		}
		
		case 3: command_Shop(id)
		
		case 4: command_Items(id)

		case 5: 
		{
			new szMotdLink[60]
			get_pcvar_string(pCvars[pCvarMotdLink], szMotdLink, charsmax(szMotdLink))
			
			show_motd(id, szMotdLink, "Info")
			client_cmd(id,"spk buttons/lightswitch2")
		}
		
		case 6: Open_Setting(id)
	}
	
	menu_destroy(hMenu)
	return PLUGIN_HANDLED
}

public Handler_Setting(id, hMenu, iItem)
{
	if(!is_user_alive(id))
	{
		menu_destroy(hMenu)
		return PLUGIN_HANDLED
	}
	
	new szData[6], iAccess2, hCallback
	menu_item_getinfo(hMenu, iItem, iAccess2, szData, 5, _, _, hCallback)
	new iKey = str_to_num(szData)
	
	switch(iKey)
	{
		case 1:
		{
			ConfigSettingMenu[id][g_bFMenu] = (ConfigSettingMenu[id][g_bFMenu]) ? false : true
			Open_Setting(id)
		}
		
		case 2:
		{
			ConfigSettingMenu[id][g_bEffect] = (ConfigSettingMenu[id][g_bEffect]) ? false : true
			Open_Setting(id)
		}
		
		case 3:
		{
			ConfigSettingMenu[id][g_bSkins] = (ConfigSettingMenu[id][g_bSkins]) ? false : true
			
			new 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))
				
			Open_Setting(id)
		}
		
		case 4:
		{
			client_cmd(id, "mp3 stop")
			if(ConfigSettingMenu[id][g_bStartSound])
			{
				ConfigSettingMenu[id][g_bStartSound] = false
			}
			else
			{
				color_chat(id,"%L", id, "CHAT_SPAWN_FIRST_MESSAGE")
				new buffer = belo_random(sizeof g_MusicList)
				client_cmd(id, "mp3 play %s", g_MusicList[buffer])
				ConfigSettingMenu[id][g_bStartSound] = true
			}
			Open_Setting(id)
		}
		case 5:
		{
			if(cs_get_user_team(id) == CS_TEAM_T)
			{
				ConfigSettingMenu[id][g_b3D] = (ConfigSettingMenu[id][g_b3D]) ? false : true
				set_view(id,(ConfigSettingMenu[id][g_b3D]) ? CAMERA_3RDPERSON : CAMERA_NONE)
			}
			else
			{
				color_chat(id,"%L", id, "CHAT_SHOULD_BE_FURIEN")
			}
			Open_Setting(id)
		}
		case 6:
		{
			Open_FurMenu(id)
		}
	}
	
	menu_destroy(hMenu)
	return PLUGIN_HANDLED
}

public admin_m_handler(id,menu,item)
{
	switch(item)
	{
		case 0: Msg_Menu(id)
		case 1:
		{
			client_cmd(id,"gal_startvote")
			AdminMenu(id)
		}
		case 2: client_cmd(id,"amxmodmenu")
		case 3: RestartAllData()
		case 4:
		{
			if(!g_Grab[id])
				client_cmd(id,"+grab")

			else
				client_cmd(id,"-grab")

			AdminMenu(id)
		}
	}
	menu_destroy(menu)
}
public msg_handler(id, menu, item)
{
	switch(item)
	{
		case 0:
		{
			client_cmd(id,"say @@g (T) -> PLANT/PICKUP | (CT) -> DEFUSE/PROTECT")
			Msg_Menu(id)
		}
		case 1:
		{
			client_cmd(id,"say @@g RULES -> NO CAMP, CHEAT, BAD WORDS, INSULTS^nTXT, FLOOD, DISCLOSURES")
			Msg_Menu(id)
		}
		case 2:
		{
			client_cmd(id,"say @@g CAMP, CHEAT, BAD WORDS, INSULTS, TXT, FLOOD, DISCLOSURES -> KICK/BAN")
			Msg_Menu(id)
		}
		case 3:
		{
			new szContact[45]
			get_pcvar_string(pCvars[pCvarContact], szContact, charsmax(szContact))

			client_cmd(id,"say @@g %s", szContact)
			Msg_Menu(id)
		}
		case 4:
		{
			AdminMenu(id)
		}
	}
	menu_destroy(menu)
}

public grab_on(id)
{
	if(~get_user_flags(id) & ADMIN_SVIP || ~get_user_flags(id) & ADMIN_IMMUNITY)
	{
		console_print(id,"You have not access to this command!")
		return PLUGIN_HANDLED
	}

	if(grab[id])
	{
		console_print(id,"You already are grabbind a player.")
		return PLUGIN_HANDLED
	}

	grab[id]=-1

	static target, trash
	target=0
	get_user_aiming(id,target,trash)
	if(target && pev_valid(target) && target!=id)
	{
		if(target<=g_iMaxPlayers)
		{
			if(is_user_alive(target))
			{
				if(!(get_user_flags(target) & ADMIN_IMMUNITY))
				{
					g_Grab[id] = true
					AdminMenu(id)
					grabem(id,target)
				}
			}
		}
		else if(pev(target,pev_solid)!=4)
		{
			g_Grab[id] = true
			AdminMenu(id)
			grabem(id,target)
		}
	}
	else
	{
		set_task(0.1,"grab_on2",id)
	}
	return PLUGIN_CONTINUE
}

public grab_on2(id)
{
	if(is_user_connected(id))
	{
		static target, trash
		target=0
		get_user_aiming(id,target,trash)
		if(target && pev_valid(target) && target!=id)
		{
			if(target<=g_iMaxPlayers)
			{
				if(is_user_alive(target) && !(get_user_flags(target) & ADMIN_IMMUNITY))
				{
					g_Grab[id] = true
					AdminMenu(id)
					grabem(id,target)
				}
			}
			else if(pev(target,pev_solid)!=4)
			{
				g_Grab[id] = true
				AdminMenu(id)
				grabem(id,target)
			}
		}
		else
		{
			set_task(0.1,"grab_on2",id)
		}
	}
}

public grabem(id,target)
{
	grab[id]=target
	
	set_rendering2(target,kRenderFxGlowShell,255,0,0,kRenderTransAlpha,70)
	
	set_task(0.1,"grab_prethink",id+1000,"",0,"b")
	
	set_user_gravity(target,0.0)
		
	grab_totaldis[id] = 0.0
	
	grab_prethink(id+1000)
}

public grab_off(id)
{
	if(is_user_connected(id))
	{
		if(grab[id]==-1)
		{
			g_Grab[id] = false
			AdminMenu(id)
			grab[id]=0
		}
		else if(grab[id])
		{
			g_Grab[id] = false
			AdminMenu(id)

			set_rendering2(grab[id])
			
			if(grab[id]<=g_iMaxPlayers && is_user_alive(grab[id]))
				if(cs_get_user_team(grab[id]) == CS_TEAM_T)
					fm_set_user_grav(grab[id], get_pcvar_float(_:pCvars[pCvarFurienGrav]))
					
				else
					fm_set_user_grav(grab[id], 1.0)
				
			AdminIndex[grab[id]] = id
	
			set_task(4.0, "showAdv", grab[id]+TASK_GRAB)
			grab[id] = 0
		}
	}
	return PLUGIN_CONTINUE
}

public showAdv(id)
{
	id -= TASK_GRAB

	set_hudmessage(255, 255, 255, -1.0, 0.30, 0, 1.0, 2.0)
	ShowSyncHudMsg(id, HudSync[hudAdv],"%L", id, "HUD_GRAB_ADV", PrivatePlayerData[AdminIndex[id]][g_szName])

	client_print(id, print_center, "%L", id, "HUD_GRAB_ADV", PrivatePlayerData[AdminIndex[id]][g_szName])
}

public grab_prethink(id)
{
	id -= 1000
	if(!is_user_connected(id) && grab[id] > 0)
	{
		set_rendering2(grab[id])
		
		if(grab[id] <= g_iMaxPlayers && is_user_alive(grab[id])) 
			fm_set_user_grav(grab[id],1.0)
			
		grab[id]=0
	}
	if(grab[id] <= 0)
	{
		remove_task(id+1000)
		return PLUGIN_HANDLED
	}
	
	static origin1[3]
	get_user_origin(id,origin1)
	static Float:origin2_F[3], origin2[3]
	pev(grab[id],pev_origin,origin2_F)
	origin2[0] = floatround(origin2_F[0])
	origin2[1] = floatround(origin2_F[1])
	origin2[2] = floatround(origin2_F[2])
	
	static origin3[3]
	get_user_origin(id,origin3,3)

	static Float:origin1_F[3]
	static Float:origin3_F[3]
	origin1_F[0] = float(origin1[0])
	origin1_F[1] = float(origin1[1])
	origin1_F[2] = float(origin1[2])
	origin3_F[0] = float(origin3[0])
	origin3_F[1] = float(origin3[1])
	origin3_F[2] = float(origin3[2])

	static Float:distance[3]

	if(!grab_totaldis[id])
	{
		distance[0] = floatabs(origin1_F[0] - origin2_F[0])
		distance[1] = floatabs(origin1_F[1] - origin2_F[1])
		distance[2] = floatabs(origin1_F[2] - origin2_F[2])
		grab_totaldis[id] = floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])
	}
	distance[0] = origin3_F[0] - origin1_F[0]
	distance[1] = origin3_F[1] - origin1_F[1]
	distance[2] = origin3_F[2] - origin1_F[2]

	static Float:grab_totaldis2
	grab_totaldis2 = floatsqroot(distance[0]*distance[0] + distance[1]*distance[1] + distance[2]*distance[2])

	static Float:que
	que = grab_totaldis[id] / grab_totaldis2

	static Float:origin4[3]
	origin4[0] = (distance[0] * que) + origin1_F[0]
	origin4[1] = (distance[1] * que) + origin1_F[1]
	origin4[2] = (distance[2] * que) + origin1_F[2]

	static Float:velocity[3]
	velocity[0] = (origin4[0] - origin2_F[0]) * (get_pcvar_float(_:pCvars[pCvarGrabSpeed]) / 1.666667)
	velocity[1] = (origin4[1] - origin2_F[1]) * (get_pcvar_float(_:pCvars[pCvarGrabSpeed]) / 1.666667)
	velocity[2] = (origin4[2] - origin2_F[2]) * (get_pcvar_float(_:pCvars[pCvarGrabSpeed]) / 1.666667)

	set_pev(grab[id],pev_velocity,velocity)

	return PLUGIN_CONTINUE
}

public Task_HealthRegen(id)
{
	id -= TASK_REGEN
	
	if(is_user_connected(id))
	{
		new iHealth = get_user_health(id), iFlag = get_user_flags(id)
		
		if(cs_get_user_team(id) == CS_TEAM_T)
		{
			if((iFlag & ADMIN_SVIP) || (iFlag & ADMIN_VIP))
			{
				set_user_health(id, clamp(iHealth + 2, 0, iFlag & ADMIN_SVIP ? 120 : 110))
				return PLUGIN_HANDLED
			}
		}
		set_user_health(id, clamp(iHealth + 2, 0, 100))
	
		set_task(1.0,"Task_HealthRegen",id+TASK_REGEN)
	}
	return PLUGIN_HANDLED
}
public Task_Immor(id)
{
	id -= TASK_IMMOR
	
	if(is_user_alive(id) || get_user_health(id) >= 15)
	{
		set_user_health(id,get_user_health(id) - 15)
	}
	else
	{
		SpecialItemActivated[id][g_bActived_GodMode] = false
		
		remove_task(id + TASK_IMMOR)
		
		if(g_szItem[id][TOTAL_ITEMS] == ITEM_IMMORTALITY)
			g_szItem[id][TOTAL_ITEMS] = ITEM_NONE
	}
}

public Task_ResetModel(id)
{
	SpecialItemActivated[id][g_bActived_Hit] = false
	remove_task(id)
}

public Task_Radar(id)
{
	id -= TASK_RADAR
	
	if(task_exists(id+TASK_REMOVE_RADAR))
		remove_task(id+TASK_REMOVE_RADAR)
	
	SpecialItemActivated[id][g_bActived_Radar] = false
	color_chat(id, "%L", id, "CHAT_RADAR_DISABLED")
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
	if(!is_user_alive(id))
		return FMRES_IGNORED	
		
	if(get_user_weapon(id) == CSW_TMP)
		set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001) 
	
	return FMRES_HANDLED
}

public fw_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
	if(!is_user_connected(invoker))
		return FMRES_IGNORED
		
	if(ShopItem[invoker][sleepgunset] || ShopItem[invoker][slowgunset])
	{
		if(get_user_weapon(invoker) == CSW_TMP)
		{	
			engfunc(EngFunc_PlaybackEvent, flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)

			EmitSnd(invoker,cs_get_user_team(invoker) == CS_TEAM_T ? SleepGun_Sounds : SlowGun_Sounds)
			return FMRES_SUPERCEDE
		}
	}
	return FMRES_IGNORED
}

replace_weapon_models(id, weaponid)
{
	if(!is_user_connected(id))
		return
	
	static CsTeams:team; team = cs_get_user_team(id)
	
	switch(weaponid)
	{
		case CSW_TMP:
		{
			if(cs_get_user_team(id) == CS_TEAM_CT)
			{
				if(ShopItem[id][slowgunset])
				{
					set_pev(id, pev_weaponmodel2, p_slowgun)
					set_pev(id, pev_viewmodel2, slowgun)
				}
			}
			
			if(cs_get_user_team(id) == CS_TEAM_T)
			{
				if(ShopItem[id][sleepgunset])
				{
					set_pev(id, pev_weaponmodel2, p_sleepgun)
					set_pev(id, pev_viewmodel2, sleepgun)
				}
			}
		}
		case CSW_SMOKEGRENADE:
		{
			if(cs_get_user_team(id) == CS_TEAM_T)
			{
				set_pev(id, pev_viewmodel2, WeaponSkins[V_SMOKEGRENADE_V])
				set_pev(id, pev_weaponmodel2, WeaponSkins[V_SMOKEGRENADE_P])
			}
		}
	}
	
	if(ConfigSettingMenu[id][g_bSkins])
	{
		switch(weaponid)
		{
			case CSW_KNIFE:
			{
				switch(team)
				{
					case CS_TEAM_T:
					{
						switch(g_szKnife[id][TOTAL_KNIVES])
						{
							case KNIFE_COMBAT:
							{
								set_pev(id, pev_viewmodel2, Knives[3])
								set_pev(id, pev_weaponmodel2, Knives[2])
							}
							case KNIFE_AXE:
							{
								set_pev(id, pev_viewmodel2, Knives[1])
								set_pev(id, pev_weaponmodel2, Knives[0])
							}
							case KNIFE_SILVER:
							{
								set_pev(id, pev_viewmodel2, Knives[5])
								set_pev(id, pev_weaponmodel2, Knives[4])
							}
							case KNIFE_HUNTER:
							{
								set_pev(id, pev_viewmodel2, Knives[7])
								set_pev(id, pev_weaponmodel2, Knives[6])
							}
							case KNIFE_SPIRIT:
							{
								set_pev(id, pev_viewmodel2, Knives[8])
							}
							case KNIFE_EPIC:
							{
								set_pev(id, pev_viewmodel2, Knives[10])
								set_pev(id, pev_weaponmodel2, Knives[9])
							}
							case KNIFE_CROWBAR:
							{
								set_pev(id, pev_viewmodel2, Knives[12])
								set_pev(id, pev_weaponmodel2, Knives[11])
							}
							case KNIFE_DEAD:
							{
								set_pev(id, pev_viewmodel2, Knives[14])
								set_pev(id, pev_weaponmodel2, Knives[13])
							}
							default:
							{
								set_pev(id, pev_viewmodel2, WeaponSkins[V_KNIFE_T])
							}
						}
					}
					case CS_TEAM_CT:
					{
						set_pev(id, pev_viewmodel2, WeaponSkins[V_KNIFE_CT])
					}
				}
			}

			case CSW_AWP:		set_pev(id, pev_viewmodel2, WeaponSkins[V_AWP])
			case CSW_M4A1:		set_pev(id, pev_viewmodel2, WeaponSkins[V_M4A1])
			case CSW_AK47:		set_pev(id, pev_viewmodel2, WeaponSkins[V_AK47])
			case CSW_FAMAS:		set_pev(id, pev_viewmodel2, WeaponSkins[V_FAMAS])
			case CSW_M249:		set_pev(id, pev_viewmodel2, WeaponSkins[V_M249])
			case CSW_MP5NAVY:	set_pev(id, pev_viewmodel2, WeaponSkins[V_MP5])
			case CSW_UMP45:		set_pev(id, pev_viewmodel2, WeaponSkins[V_UMP45])
			case CSW_M3:		set_pev(id, pev_viewmodel2, WeaponSkins[V_M3])
			case CSW_C4:		set_pev(id, pev_viewmodel2, WeaponSkins[V_C4])
			case CSW_DEAGLE:	set_pev(id, pev_viewmodel2, WeaponSkins[V_DEAGLE])
			case CSW_USP:		set_pev(id, pev_viewmodel2, WeaponSkins[V_USP])
			case CSW_GLOCK18:	set_pev(id, pev_viewmodel2, WeaponSkins[V_GLOCK18])
			case CSW_ELITE:		set_pev(id, pev_viewmodel2, WeaponSkins[V_ELITE])
			case CSW_FIVESEVEN:	set_pev(id, pev_viewmodel2, WeaponSkins[V_FIVESEVEN])
			case CSW_HEGRENADE:
			{
				set_pev(id, pev_viewmodel2, WeaponSkins[V_HEGRENADE_V])
				set_pev(id, pev_weaponmodel2, WeaponSkins[V_HEGRENADE_P])
			}
			case CSW_FLASHBANG:
			{
				set_pev(id, pev_viewmodel2, WeaponSkins[V_FLASHBANG_V])
				set_pev(id, pev_weaponmodel2, WeaponSkins[V_FLASHBANG_P])
			}
		}
	}
	else
	{
		switch(weaponid)
		{
			case CSW_KNIFE:
			{
				set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
				set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
			}
			case CSW_UMP45:
			{
				set_pev(id, pev_viewmodel2, "models/v_ump45.mdl")
			}
			case CSW_M3:
			{
				set_pev(id, pev_viewmodel2, "models/v_xm1014.mdl")
			}
			case CSW_AWP:
			{
				set_pev(id, pev_viewmodel2, "models/v_awp.mdl")
			}
			case CSW_MP5NAVY:
			{
				set_pev(id, pev_viewmodel2, "models/v_mp5.mdl")
			}
			case CSW_AK47:
			{
				set_pev(id, pev_viewmodel2, "models/v_ak47.mdl")
			}
			case CSW_M4A1:
			{
				set_pev(id, pev_viewmodel2, "models/v_m4a1.mdl")
			}
			case CSW_M249:
			{
				set_pev(id, pev_viewmodel2, "models/v_m249.mdl")
			}
			case CSW_FAMAS:
			{
				set_pev(id, pev_viewmodel2, "models/v_famas.mdl")
			}
			case CSW_GLOCK18:
			{
				set_pev(id, pev_viewmodel2, "models/v_glock18.mdl")
			}
			case CSW_USP:
			{
				set_pev(id, pev_viewmodel2, "models/v_usp.mdl")
			}
			case CSW_DEAGLE:
			{
				set_pev(id, pev_viewmodel2, "models/v_deagle.mdl")
			}
			case CSW_C4:
			{
				set_pev(id, pev_viewmodel2, "models/v_c4.mdl")
			}
			case CSW_HEGRENADE:
			{
				set_pev(id, pev_viewmodel2, "models/v_hegrenade.mdl")
				set_pev(id, pev_weaponmodel2, "models/p_hegrenade.mdl")
			}
			case CSW_FLASHBANG:
			{
				set_pev(id, pev_viewmodel2, "models/v_flashbang.mdl")
				set_pev(id, pev_weaponmodel2, "models/p_flashbang.mdl")
			}
		}
	}
}

SaveData(id)
{
	new szVaultKey[128], szVaultData[512]
	
	formatex(szVaultKey, charsmax(szVaultKey), "FurienEFFx-%s-Save", PrivatePlayerData[id][g_szAuthID])
	
	formatex(szVaultData, charsmax(szVaultData), "%i", PrivatePlayerData[id][g_PlayerMoney])
	nvault_set(g_nVaultSaves, szVaultKey, szVaultData)

	formatex(szVaultData, charsmax(szVaultData), "%i %i %i %i %i %i %i %i %i", 
	PrivatePlayerData[id][g_PlayerMoney],
	SpecialItem[id][g_RG], 
	SpecialItem[id][g_MJ], 
	SpecialItem[id][g_ND], 
	SpecialItem[id][g_CO], 
	SpecialItem[id][g_IR], 
	SpecialItem[id][g_IB], 
	SpecialItem[id][g_WE], 
	SpecialItem[id][g_BH])
	nvault_set(g_nVaultSaves, szVaultKey, szVaultData)
}

LoadData(id)
{
	new szVaultKey[128], szVaultData[512]
	
	formatex(szVaultKey, charsmax(szVaultKey), "FurienEFFx-%s-Save", PrivatePlayerData[id][g_szAuthID])
	
	formatex(szVaultData, charsmax(szVaultData), "%i", PrivatePlayerData[id][g_PlayerMoney])
	nvault_get(g_nVaultSaves, szVaultKey, szVaultData, charsmax(szVaultData))
			
	formatex(szVaultData, charsmax(szVaultData), "%i %i %i %i %i %i %i %i %i", 
	PrivatePlayerData[id][g_PlayerMoney], 
	SpecialItem[id][g_RG], 
	SpecialItem[id][g_MJ], 
	SpecialItem[id][g_ND], 
	SpecialItem[id][g_CO], 
	SpecialItem[id][g_IR], 
	SpecialItem[id][g_IB], 
	SpecialItem[id][g_WE], 
	SpecialItem[id][g_BH])
			
	nvault_get(g_nVaultSaves, szVaultKey, szVaultData, charsmax(szVaultData))
			
	new money[MAX_PLAYERS],rg[MAX_PLAYERS], mj[MAX_PLAYERS], nd[MAX_PLAYERS], co[MAX_PLAYERS], ir[MAX_PLAYERS], ib[MAX_PLAYERS], we[MAX_PLAYERS], bh[MAX_PLAYERS]
			
	parse
	(
		szVaultData,
		money, charsmax(money),
		rg, charsmax(rg), 
		mj, charsmax(mj), 
		nd, charsmax(nd), 
		co, charsmax(co), 
		ir, charsmax(ir), 
		ib, charsmax(ib), 
		we, charsmax(we), 
		bh, charsmax(bh)
	)

	PrivatePlayerData[id][g_PlayerMoney] = str_to_num(money)
		
	SpecialItem[id][g_RG] = str_to_num(rg)
	SpecialItem[id][g_MJ] = str_to_num(mj)
	SpecialItem[id][g_ND] = str_to_num(nd)
	SpecialItem[id][g_CO] = str_to_num(co)
	SpecialItem[id][g_IR] = str_to_num(ir)
	SpecialItem[id][g_IB] = str_to_num(ib)
	SpecialItem[id][g_WE] = str_to_num(we)
	SpecialItem[id][g_BH] = str_to_num(bh)
}

belo_random(num)
{
	static LastRandom
	new rand = random(num)
	while(LastRandom == rand)
		rand = random(num)

	LastRandom = rand
	return rand
} 

ScreenFade(id, Duration, HoldTime, FadeType, R, G, B, Intensity)
{ 
	message_begin(id ? MSG_ONE : MSG_ALL, msg_ScreenFade, .player = id)
	write_short(Duration)
	write_short(HoldTime)
	write_short(FadeType)
	write_byte(R)
	write_byte(G) 
	write_byte(B) 
	write_byte(Intensity) 
	message_end()
}

set_rendering2(index, fx=kRenderFxNone, r=255, g=255, b=255, render=kRenderNormal, amount=16)
{
	return set_rendering(index,fx,r,g,b,render,amount)
}

fm_get_user_model(player, model[], len)
{
	engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}

Float:fm_get_user_speed(id)
{
	new Float:MaxSpeed
	pev(id, pev_maxspeed, MaxSpeed)
	return MaxSpeed
}

fm_set_user_grav(id, Float:grav = 1.0)
{
	set_pev(id, pev_gravity, grav)
	return 1
}

fm_set_user_speed(id, Float:MSpeed = -1.0) 
{
	engfunc(EngFunc_SetClientMaxspeed, id, MSpeed)
	set_pev(id, pev_maxspeed, MSpeed)
	return 1
}

fm_cs_get_current_weapon_ent(id)
{
	if(pev_valid(id) != PDATA_SAFE)
		return -1
	
	return get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER)
}

fm_cs_get_weapon_ent_owner(ent)
{
	if(pev_valid(ent) != PDATA_SAFE)
		return -1
	
	return get_pdata_cbase(ent, m_pPlayer, OFFSET_LINUX_WEAPONS)
}

noMoneyfunc(index)
{
	switch(get_user_flags(index))
	{
		case ADMIN_SVIP:	color_chat(index, "%L", index, "PLAYER_NO_MONEY_EVIP")
		case ADMIN_VIP:		color_chat(index, "%L", index, "PLAYER_NO_MONEY_VIP")
		default:		color_chat(index, "%L", index, "PLAYER_NO_MONEY")
	}
}

CantRightNow(index)
{
	color_chat(index, "%L", index, "CHAT_YOU_CANNOT_SAY_MESSAGE")
}

noAccessfunc(index, iAccess)
{
	switch(iAccess)
	{
		case ADMIN_SVIP:
		{
			color_chat(index, "%L", index, "PLAYER_NO_ACCESS_EVIP")
			client_print(index, print_center,"%L", index, "PLAYER_NO_ACCESS_EVIP")
		}
		case ADMIN_VIP:
		{
			color_chat(index, "%L", index, "PLAYER_NO_ACCESS_VIP")
			client_print(index, print_center,"%L", index, "PLAYER_NO_ACCESS_VIP")
		}
	}
}

youAlreadyHave(index, itemName[18])
{
	new bool:isKnife = bool:(!(containi(itemName, "super") != -1) && (containi(itemName, "knife") != -1))

	new szPreposition[5]

	if(isKnife)
	{
		replace(itemName, charsmax(itemName), "knife", "")
		formatex(szPreposition, charsmax(szPreposition), "%L", index, "CHAT_PREPOSITION_A")
	}
	else
	{
		formatex(szPreposition, charsmax(szPreposition), "%L", index, "CHAT_PREPOSITION_B")
	}

	color_chat(index, "%L", index, "CHAT_YOU_ALREADY_HAVE", szPreposition, isKnife ? "knife" : "item", itemName)
}

get_user_id()
{
	new LogUser[80], szName[MAX_PLAYERS]
	read_logargv(0, LogUser, charsmax(LogUser))
	parse_loguser(LogUser, szName, charsmax(szName))

	return get_user_index(szName)
}

giveUserTmp(id)
{
	switch(get_user_flags(id))
	{
		case ADMIN_SVIP:
		{
			give_user_weapon(id, CSW_TMP, 10, 0)
		}
		case ADMIN_VIP:
		{
			give_user_weapon(id, CSW_TMP, 7, 0)
		}
		default:
		{
			give_user_weapon(id, CSW_TMP, 5, 0)
		}
	}
}

stock color_chat(const id, const szMessage[], any:...) 
{
	new iCount = 1, iPlayers[MAX_PLAYERS], Player

	static szMsg[191]
	vformat(szMsg, charsmax(szMsg), szMessage, 3)

	replace_all(szMsg, charsmax(szMsg), "!g", "^4")
	replace_all(szMsg, charsmax(szMsg), "!y", "^1")
	replace_all(szMsg, charsmax(szMsg), "!t", "^3")
	
	if(id) iPlayers[0] = id; else get_players(iPlayers, iCount, "ch")
	{
		for(new i = 0; i < iCount; i++)
		{
			Player = iPlayers[i]

			message_begin(MSG_ONE_UNRELIABLE, msg_SayText, .player = Player )  
			write_byte(Player)
			write_string(szMsg)
			message_end()
		}
	}
}

// Craxor's stock - https://forums.alliedmods.net/showthread.php?t=278123
give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0 )
{
	if ( !( CSW_P228 <= iWeaponTypeID <= CSW_P90 ) || ( iClip < 0 ) || ( iBPAmmo < 0 ) || !is_user_alive( index ) )
		return -1;
	
	new szWeaponName[ 20 ] , iWeaponEntity , bool:bIsGrenade;
	
	const GrenadeBits = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_C4 ) );
	
	if ( ( bIsGrenade = bool:!!( GrenadeBits & ( 1 << iWeaponTypeID ) ) ) )
		iClip = clamp( iClip ? iClip : iBPAmmo , 1 );
	
	get_weaponname( iWeaponTypeID , szWeaponName , charsmax( szWeaponName ) );
	
	if ( ( iWeaponEntity = user_has_weapon( index , iWeaponTypeID ) ? find_ent_by_owner( -1 , szWeaponName , index ) : give_item( index , szWeaponName ) ) > 0 )
	{
		if ( iWeaponTypeID != CSW_KNIFE )
		{
			if ( iClip && !bIsGrenade )
				cs_set_weapon_ammo( iWeaponEntity , iClip );
		
			if ( iWeaponTypeID == CSW_C4 ) 
				cs_set_user_plant( index , 1 , 1 );
			else
				cs_set_user_bpammo( index , iWeaponTypeID , bIsGrenade ? iClip : iBPAmmo ); 
		}
		
		if ( maxchars )
			copy( szWeapon , maxchars , szWeaponName[7] );
	}
	
	return iWeaponEntity;
}
Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Грешка в главния плъгин на Furien mod

Мнение от OciXCrom » 13 Яну 2019, 01:08

Качи конфигурационния файл. Вероятно си задал празно име за някой от моделите.

Аватар
SkandaU
Извън линия
Потребител
Потребител
Мнения: 213
Регистриран на: 09 Яну 2017, 12:37
Се отблагодари: 45 пъти
Получена благодарност: 22 пъти

Грешка в главния плъгин на Furien mod

Мнение от SkandaU » 13 Яну 2019, 12:11

Код за потвърждение: Избери целия код

L 01/13/2019 - 12:05:16: [CSTRIKE] Model can not be empty
L 01/13/2019 - 12:05:16: [AMXX] Displaying debug trace (plugin "furien_new.amxx", version "0.5.7")
L 01/13/2019 - 12:05:16: [AMXX] Run time error 10: native error (native "cs_set_user_model")
L 01/13/2019 - 12:05:16: [AMXX]    [0] furien_mod.sma::ham_Player_Spawn_Post (line 1517)
L 01/13/2019 - 12:05:43: [CSTRIKE] Model can not be empty
L 01/13/2019 - 12:05:43: [AMXX] Displaying debug trace (plugin "furien_new.amxx", version "0.5.7")
L 01/13/2019 - 12:05:43: [AMXX] Run time error 10: native error (native "cs_set_user_model")
L 01/13/2019 - 12:05:43: [AMXX]    [0] furien_mod.sma::ham_Player_Spawn_Post (line 1511)
Наистина имаше празен ред и се сетих за какво го махнах. Добавих го, нямам по различни скинове.

Код за потвърждение: Избери целия код

[WeaponsSkins]
V_KNIFE = models/FurienEFFx/v_teknife.mdl, models/FurienEFFx/v_ctknife.mdl
V_AWP = models/FurienEFFx/v_awp.mdl
V_M4A1 = models/FurienEFFx/v_m4a1_new.mdl
V_AK47 = models/FurienEFFx/v_ak47.mdl
V_FAMAS = models/FurienEFFx/v_famas.mdl
V_M249 = models/FurienEFFx/v_m249.mdl
V_MP5 = models/FurienEFFx/v_mp5.mdl
V_UMP45 = models/FurienEFFx/v_ump45.mdl
V_M3 = models/FurienEFFx/v_m3_new.mdl
V_C4 = models/FurienEFFx/v_c4.mdl
V_DEAGLE = models/FurienEFFx/v_deagle.mdl
V_USP = models/FurienEFFx/v_usp.mdl
V_GLOCK18 = models/FurienEFFx/v_glock.mdl
V_ELITE = models/FurienEFFx/v_elite.mdl
V_FIVESEVEN = models/FurienEFFx/v_fiveseven.mdl
V_HEGRENADE = models/FurienEFFx/v_hegrenade.mdl, models/FurienEFFx/p_hegrenade.mdl, models/FurienEFFx/w_he.mdl
V_FLASHBANG = models/FurienEFFx/v_flashbang.mdl, models/FurienEFFx/p_flashbang.mdl, models/FurienEFFx/w_flash.mdl
V_SMOKEGRENADE = models/FurienEFFx/v_teleee.mdl, models/FurienEFFx/p_teleee.mdl, models/FurienEFFx/w_tele.mdl

[KillSettings]
MONEY_MAX = 999999
MONEY_EVIP_KILL = 25, 20
MONEY_VIP_KILL = 20, 15
MONEY_NORMAL_KILL = 15, 10

[VipModels]
VIP_MODELS = FurienModel, AntiModel
Бях махнал FurienModel, AntiModel, но ги добавих пак и ми излизат грешките по горе.
Дали е възможно да го редактираш от кода се добавят модели на играчите - Т и СТ, и на виповете както в случая.
Според мен е добре да са от базовия редакциите за да не прави бъгове на Т, защото когато не мърда той остава невидим.
Изображение

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта