Modificare acces plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

30 Dec 2013, 17:07

Salut .Care ma ajuta cu acest .sma , vreau sa puneti litera de acces pe "d"
Nu cred ca e chiar asa dificil , dar nu ma pricep cu scripturile.
SMA | Afiseaza codul
/*===========================================================================================================================

				        *********************************************************
				       *********** [ Advanced VIP Menu Furien 0.0.1 ] ************
				        *********************************************************

		-------------------------
		   ---- * Description * ----
		-------------------------
			- Un meniu de VIP, mai avansat, care ofera anumitor jucatori de pe server sa beneficieze de Hook, Teleport, Unlimited Clip,
			  Respwan, HP + AP, Super Knife, Viteza, Invizibilitate si altele.
	
		-------------------------
		   --- * Configuration * ---
		-------------------------

			f_vip_chose "valoare"	-	De cate ori pe runda sa fie accesat meniul
			f_vip_teleport_cooldown "valoare"	-	Cooldown la Teleport
			f_vip_teleport_range "123456789"	-	Teleport Range
			f_vip_norecoil", "valoare.0"	-	- Intre 0.9 si 0.0 (sa fie cu .zecimala) No recoil pentru arme
			f_vip_invisibility_amount "valoare"		- Intre 0 si 250 ( Cat de invizibil sa fie VIP-ul dupa ce cumpara Invizibilitate )
			f_vip_godmode_cooldown "valoare"	- Odata la cat timp sa poti folosi Zeus Mode
			f_vip_godmode_time "valoare"	- Cat timp poti avea Zeus Mode

		-------------------------
		   ----- * Modules * -----
		-------------------------
					- Hamsandwich
				- Fakemeta
			- Cstrike
		- Fun

		-------------------------
		      --- * Credits * ---
		-------------------------

			- tuty: Jetpack;
			- CSO Knife Generator: ZombiMod.ru;
			- CoolDown la Puteri: sDs|Aragon*;
			- Hook: Kz Arg Mod by ReymonARG!

		-------------------------
		    --- * Changelog * ---
		-------------------------

			* v0.0.1:
			   - Initial release ( 15th Nov 2013 )
				
		-------------------------
		    --- * Update * ---
		-------------------------

			- Sistem de Grenade
			- Rope
			- Adaugare Cvar-uri, o sa-l fac pe "format text"
			- And Other...

				        *********************************************************
				       *********** [ Advanced Furien VIP Menu 0.0.1 ] ************
				        *********************************************************

===========================================================================================================================*/

#include < amxmodx >
#include < hamsandwich >
#include < cstrike >
#include < xs >
#include < fun >
#include < fakemeta >
#include < CC_ColorChat >
//#include < dhudmessage >

//#pragma tabsize 1
#pragma semicolon 1

#define PLUGIN "Furien VIP Menu"
#define VERSION "0.0.1"

#define ACCESS_VIP ADMIN_LEVEL_H

// Unlimited Clip & No Recoil
#define OFFSET_LINUX_WEAPONS 	4
#define OFFSET_WEAPON_OWNER	41
#define OFFSET_CLIPAMMO		51
#define OFFSET_ACTIVE_ITEM 	373
#define NO_UCLIP_WEAPONS_BITSUM ( ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) )

// Teleport
#define FFADE_IN	 	0x0000
#define FFADE_OUT 	0x0001
#define FFADE_MODULATE	0x0002
#define FFADE_STAYOUT 	0x0004

// Knock Back Combat Knife
#define CB_SEC_DMG		8.0
#define CB_PRIM_DMG		5.0
#define CB_SEC_HEAD_DMG		4.0
#define CB_PRIM_HEAD_DMG	20.0
#define CB_KNOCKBACK		20

// For Hook
#define HookTask		24896172
#define HookSpeed	800.0

// Cvar's
new g_iCvarFurienVipHasChosen,
	g_iCvarCooldownTeleport,
	g_iCvarTeleportRange,
	g_iCvarNoRecoil,
	g_iCvarInvisibilityAmount,
	g_iCvarGodmodeCountDown,
	g_iCvarGodmodeTime;

new const g_szTag[  ] = "[ Furien VIP Menu ]";
new const g_iMaxClips[  ] = { 0, 13, 0, 10, 0, 7, 0, 30, 30, 0, 15, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 0, 7, 30, 30, 0, 50 };
new const SOUND_BLINK[  ] = { "weapons/flashbang-1.wav" };
new const g_szHook[  ] = "weapons/xbow_fire1.wav";

new const CombatKnifeSoundList[  ][  ] = {
	
	"combatknife/combatknife_deploy1.wav",
	"combatknife/combatknife1.wav",
	"combatknife/combatknife2.wav",
	"combatknife/combatknife_hwall.wav",
	"combatknife/combatknife_slash1.wav",
	"combatknife/combatknife_stab.wav"
};

new const OriginalKnifeSounds[  ][  ] = {
	
	"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 p_CB[  ] = "models/combat_knife/p_combatknife.mdl";
new const v_CB[  ] = "models/combat_knife/v_combatknife.mdl";

new const Blood[  ][  ] = {
	
	"sprites/blood.spr",
	"sprites/bloodspray.spr"
};
static g_Blood[ sizeof Blood ];

const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
const NORECOIL_WPN_BS = ( ( 1<<2 ) | ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) );

// FURIEN:
new bool:Teleport[ 33 ], bool:Speed[ 33 ], bool:Hook[ 33 ], bool:CombatKnife[ 33 ], bool:GodMode[ 33 ];
// HUMAN:
new bool:Jetpack[ 33 ], bool:Invisibility[ 33 ], bool:UnlimitedClip[ 33 ], bool:NoRecoil[ 33 ];

new g_iUserHasChossen[ 33 ];
new bool:g_iUserHasUClip[ 33 ];
new bool:g_iUserHasTeleport[ 33 ];
new bool:g_iUserHasJetPack[ 33 ];
new bool:g_iUserHasSpeed[ 33 ];
new bool:g_iUserHasInvisibility[ 33 ];
new bool:g_iUserHasHook[ 33 ];
new bool:g_iUserHasCombatKnife[ 33 ];
new bool:g_iUserHasNoRecoil[ 33 ];
new bool:g_iUserHasGodmode[ 33 ];

new ShockWave, BlueFlare2, JetPackSprite, iBeamSprite;

new GodMode_Countdown[ 33 ];
new Teleport_Cooldown[ 33 ];
new iHookOrigin[ 33 ][ 3 ];
new Float:LastMessage[ 33 ];

new WpnName[ 32 ];
new Float:cl_pushangle[ 33 ][ 3 ];

public plugin_init(  ) {
	
	register_plugin( PLUGIN, VERSION, "YONTU" );
	
	register_clcmd( "+hook", "ClCmdUseHook" );
	register_clcmd( "-hook", "ClCmdStopUsingHook" );
	register_clcmd( "teleport", "ClCmdUseTeleport" );
	register_clcmd( "godmode", "ClCmdUseGodmode" );
	register_clcmd( "say /vm", "ClCmdSayVipMenu" );
	register_clcmd( "say_team /vm", "ClCmdSayVipMenu" );
	
	register_event( "CurWeapon", "event_CurWeapon", "be", "1=1" );
	register_event( "CurWeapon", "CurWeapon2", "be", "1=1" );
	
	register_forward( FM_EmitSound, "fw_EmitSounds" );
	
	register_logevent( "fw_RoundStart", 2 , "1=Round_Start" );
	
	RegisterHam( Ham_Player_Jump, "player", "Ham_bacon_playerJumping" );
	RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
	
	g_iCvarFurienVipHasChosen = register_cvar( "f_vip_chose", "100" );
	g_iCvarCooldownTeleport = register_cvar( "f_vip_teleport_cooldown", "10" );
	g_iCvarTeleportRange = register_cvar( "f_vip_teleport_range", "123456789" );
	g_iCvarNoRecoil = register_cvar( "f_vip_norecoil", "0.0" );
	g_iCvarInvisibilityAmount = register_cvar( "f_vip_invisibility_amount", "15" );
	g_iCvarGodmodeCountDown = register_cvar( "f_vip_godmode_cooldown", "15" );
	g_iCvarGodmodeTime = register_cvar( "f_vip_godmode_time", "10" );
	//g_iCvar[  ] = register_cvar( "f_vip_", "" );

	for( new i = 1; i <= CSW_P90; i++ ) {

		if( !( NORECOIL_WPN_BS & ( 1<<i ) ) && get_weaponname( i, WpnName, charsmax( WpnName ) ) ) {

			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack" );
			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack_post", 1 );
		}
	}
}

public plugin_precache( ) {
	
	precache_model( v_CB );
	precache_model( p_CB );
	precache_sound( g_szHook );
	
	ShockWave = precache_model( "sprites/shockwave.spr" );
	BlueFlare2 = precache_model( "sprites/blueflare2.spr" );
	JetPackSprite = precache_model( "sprites/explode1.spr" );
	iBeamSprite = precache_model( "sprites/plasma.spr" );

	static i;
	for( i = 0; i <= charsmax( Blood ); i++ )
		g_Blood[ i ] = precache_model( Blood[ i ] );

	for( i = 0; i <= charsmax( CombatKnifeSoundList ); i++ )
		precache_sound( CombatKnifeSoundList[ i ] );
}

public client_putinserver( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public client_disconnect( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public RemoveAll( id ) {
	
	Teleport[ id ] = false;
	Speed[ id ] = false;
	Jetpack[ id ] = false;
	Invisibility[ id ] = false;
	UnlimitedClip[ id ] = false;
	CombatKnife[ id ] = false;
	GodMode[ id ] = false;
}

public fw_RoundStart(  ) {
	
	new szPlayers[ 32 ], iNum;
	get_players( szPlayers, iNum, "p" );
	
	for( new i = 0; i < iNum; i++)  {
		
		g_iUserHasChossen[ i ] = false;
		g_iUserHasUClip[ i ] = false;
		g_iUserHasTeleport[ i ] = false;
		g_iUserHasJetPack[ i ] = false;
		g_iUserHasSpeed[ i ] = false;
		g_iUserHasInvisibility[ i ] = false;
		g_iUserHasHook[ i ] = false;
		g_iUserHasCombatKnife[ i ] = false;
		g_iUserHasNoRecoil[ i ] = false;
		g_iUserHasGodmode[ i ] = false;
		Teleport[ i ] = false;
		Speed[ i ] = false;
		Jetpack[ i ] = false;
		Invisibility[ i ] = false;
		UnlimitedClip[ i ] = false;
		CombatKnife[ i ] = false;
		GodMode[ i ] = false;
	}
}

public Ham_PlayerSpawnPost( id ) {
	
	if( !is_user_alive( id ) || !is_user_connected( id ) )  return HAM_IGNORED;
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
	
	return HAM_IGNORED;
}

public ClCmdSayVipMenu( id )
{
	if( is_user_alive( id ) || !is_user_alive( id ) && get_user_flags( id ) & ACCESS_VIP )
	{
		if( g_iUserHasChossen[ id ] >= get_pcvar_num( g_iCvarFurienVipHasChosen ) )
		{
			set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
			show_hudmessage( id, "Ai folosit deja meniul de %d ori !", get_pcvar_num( g_iCvarFurienVipHasChosen ) );
			return 1;
		}
		
		if( get_user_team( id ) == 1 ) {
			
			set_task( 0.1, "ShowFurienVipMenu", id );
		}
		
		if( get_user_team( id ) == 2 ) {
			
			set_task( 0.1, "ShowSurvivorVipMenu", id );
		}
	}
	
	else {
		
		ColorChat( id, GREEN, "%s^x01 Nu esti membru^x03 VIP^x01. Doneaza !!!", g_szTag );
	}
	
	return 1;
	
}

public ShowFurienVipMenu( id ) {    
	
	new szMenu = menu_create( "\rFurien \yV\rI\wP\r Menu", "FurienMenuGiver" );
	
	new iMoney = cs_get_user_money( id );
	
	// COMBAT KNIFE
	if( CombatKnife[ id ] ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rAlready Have", "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 7000 ) {
		
		menu_additem( szMenu, "\dCombat Knife -\r No Money", "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rOnly Alive", "1", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 7000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yCombat Knife\r (\yKnock Back\r)\w -\r [\y 7000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
		
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y100 HP\w + \y100 AP\w -\r [\y 1000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) && iMoney < 5000 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// TELEPORT
	if( Teleport[ id ] ) {
		
		menu_additem( szMenu, "\dTeleport - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8000 ) {
		
		menu_additem( szMenu, "\dTeleport -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dTeleport - \rOnly Alive", "4", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 8000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yTeleport\w -\r [\y 8000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// SPEED
	if( Speed[ id ] ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rAlready Have" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 6500 ) {
		
		menu_additem( szMenu, "\dSpeed -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}

	else if( !Speed[ id ] || iMoney >= 6500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y500 Speed\w -\r [\y 6500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// HOOK
	if( Hook[ id ] ) {
		
		menu_additem( szMenu, "\dHook - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 12000 ) {
		
		menu_additem( szMenu, "\dHook -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dHook - \rOnly Alive", "6", 0 );
	}

	else if( !Hook[ id ] || iMoney >= 12000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yHook\w -\r [\y 12000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// GODMODE
	if( GodMode[ id ] ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rAlready Have", "7", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 15000 ) {
		
		menu_additem( szMenu, "\dZeus Mode -\r No Money", "7", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rOnly Alive", "7", 0 );
	}

	else if( !GodMode[ id ] || iMoney >= 15000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yZeus Mode\w -\r [\y 15000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "7", 0 );
		cs_set_user_money( id, iMoney );
	}

	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public ShowSurvivorVipMenu( id ) { 
	
	new szMenu = menu_create( "\rHumans \yV\rI\wP\r Menu", "HumansMenuGiver" );
	new iMoney = cs_get_user_money( id );
	
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y50 HP\w +\y 50 AP\w -\r [\y 1500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// JETPACK
	if( Jetpack[ id ] ) {
		
		menu_additem( szMenu, "\dJetPack - \rAlready Have", "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 9000 ) {
		
		menu_additem( szMenu, "\dJetPack -\r No Money", "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dJetPack - \rOnly Alive", "2", 0 );
	}

	else if( !Jetpack[ id ] || iMoney >= 9000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yJetPack\w -\r [\y 9000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) || is_user_alive( id ) && iMoney < 5500 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// UNLIMITED CLIP
	if( UnlimitedClip[ id ] ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8500 ) {
		
		menu_additem( szMenu, "\dUnlimited Clip -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rOnly Alive", "4", 0 );
	}

	else if( !UnlimitedClip[ id ] || iMoney >= 8500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yUnlimited\y Clip\w -\r [\y 8500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// INVISIBILITY
	if( Invisibility[ id ] ) {
		
		menu_additem( szMenu, "\dInvisibility - \rAlready Have", "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 4000 ) {
		
		menu_additem( szMenu, "\dInvisibility -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dInvisibility - \rOnly Alive", "5", 0 );
	}

	else if( !Invisibility[ id ] || iMoney >= 4000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yInvisibility\w -\r [\y 4000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}

	// NO RECOIL
	if( NoRecoil[ id ] ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 3500 ) {
		
		menu_additem( szMenu, "\dNo Recoil -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rOnly Alive", "6", 0 );
	}

	else if( !NoRecoil[ id ] || iMoney >= 3500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yNo Recoil\w -\r [\y 3500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public FurienMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// COMBAT KNIFE
		case 1: {
			
			if( !CombatKnife[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 7000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 7000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 Combat Knife^x01!", g_szTag );
					cs_set_user_money( id, iMoney );

					g_iUserHasChossen[ id ] = true;
					g_iUserHasCombatKnife[ id ] = true;
					CombatKnife[ id ] = true;
					CurWeapon2( id );

					engclient_cmd( id, "weapon_knife" );
					
					return 1;
				}
			}
		}
		
		// HP + AP
		case 2: {
			
			new iMoney = cs_get_user_money( id ) - 1000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1000 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}
		
			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}

			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );
				
				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat!", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// TELEPORT
		case 4: {
			
			if( !Teleport[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti teleporta, apasand pe tasta^x03 X^x01 !", g_szTag );
					client_cmd( id, "bind x teleport" );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasTeleport[ id ] = true;
					Teleport[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// SPEED
		case 5: {
			
			if( !Speed[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 6500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 6500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit mai rapid!^x03 Schimba arma^x01!", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasSpeed[ id ] = true;
					Speed[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// HOOK
		case 6: {
			
			if( !Hook[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 12000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 12000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti agata de pereti, apasand pe tasta^x03 Z^x01 !", g_szTag );
					client_cmd( id, "bind z +hook" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasHook[ id ] = true;
					Hook[ id ] = true;
					
					return 1;
				}
			}
		}

		// GODMODE
		case 7: {
			
			if( !GodMode[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 15000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 15000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum poti deveni invincibil, apasand pe tasta^x03 V^x01 !", g_szTag );
					client_cmd( id, "bind v godmode" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasGodmode[ id ] = true;
					GodMode[ id ] = true;
					
					return 1;
				}
			}
		}
	}
	
	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

public HumansMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// HP + AP
		case 1: {
			
			new iMoney = cs_get_user_money( id ) - 1500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1500 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// JETPACK
		case 2: {
			
			if( !Jetpack[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 9000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 9000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 JetPack^x01! Apasa^x03 SPACE^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasJetPack[ id ] = true;
					Jetpack[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}

			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}
			
			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );				

				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat !", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// UNLIMITED CLIP
		case 4: {
			
			if( !UnlimitedClip[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ti-ai cumparat^x03 gloante infinite^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasUClip[ id ] = true;
					UnlimitedClip[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// INVISIBILITY
		case 5: {
			
			if( !Invisibility[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 4000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 4000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit^x03 90%^x01 invizibil !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasInvisibility[ id ] = true;
					Invisibility[ id ] = true;
					
					return 1;
				}
			}
		}

		// NO RECOIL
		case 6: {
			
			if( !NoRecoil[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 3500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 3500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 De acum inainte, tinta nu-ti va mai sari !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasNoRecoil[ id ] = true;
					NoRecoil[ id ] = true;
					
					return 1;
				}
			}
		}
	}

	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

// JETPACK
public Ham_bacon_playerJumping( id ) {

	if( g_iUserHasJetPack[ id ] ) {

		new iOrigin[ 3 ];
		get_user_origin( id, iOrigin, 0 );

		iOrigin[ 2 ] -= 20;
		
		new Float:fVelocity[ 3 ];
		pev( id, pev_velocity, fVelocity );

		fVelocity[ 2 ] += 93;
		
		set_pev( id, pev_velocity, fVelocity );
		create_flame( iOrigin );
	}
}

stock create_flame( origin[ 3 ] ) {

	message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
	write_byte( TE_SPRITE );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( JetPackSprite );
	write_byte( 3 );
	write_byte( 99 );
	message_end();
}

public event_CurWeapon( id ) {

	if( get_user_flags( id ) & ACCESS_VIP && g_iUserHasUClip[ id ] ) {

		new iWeapon = read_data( 2 );
		
		if( !( NO_UCLIP_WEAPONS_BITSUM & ( 1 << iWeapon ) ) )
			set_pdata_int( get_pdata_cbase( id, OFFSET_ACTIVE_ITEM ), OFFSET_CLIPAMMO, g_iMaxClips[ iWeapon ], OFFSET_LINUX_WEAPONS );
	}
}

public CurWeapon2( id ) {

	if( g_iUserHasSpeed[ id ] ) {

		set_user_maxspeed( id, 500.0 );
	}

	else {

		set_user_maxspeed( id, 260.0 );
	}

	if( g_iUserHasInvisibility[ id ] ) {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num( g_iCvarInvisibilityAmount ) );
	}
	
	else {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 250 );
	}

	if( get_user_weapon( id ) == CSW_KNIFE && g_iUserHasCombatKnife[ id ] ) {
	
		set_pev( id, pev_viewmodel2, v_CB );
		set_pev( id, pev_weaponmodel2, p_CB );
	}
}

// HOOK
public ClCmdUseHook( id ) {

	if( !g_iUserHasHook[ id ] )
		return 1;
		
	emit_sound( id,CHAN_VOICE, g_szHook, 1.0, ATTN_NORM, 0, PITCH_NORM );
	set_pev( id, pev_gravity, 0.0 );
	
	set_task( 0.1,"TaskHookPrethink", id + HookTask , "", 0, "b" );
	
	Hook[ id ] = true;
	iHookOrigin[ id ][ 0 ] = 999999;
	
	TaskHookPrethink( id + HookTask );
	return 1;
}

public ClCmdStopUsingHook( id ) {

	set_pev( id, pev_gravity, 1.0 );
	Hook[ id ] = false;
	
	return 1;
}

// TELEPORT
public ClCmdUseTeleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] )
		return PLUGIN_CONTINUE;
	
	if( Teleport_Cooldown[ id ] ) {

		ColorChat( id, TEAM_COLOR, "^x04%s^x01 Puterea iti va reveni in^x03 %d secunde^x01.", g_szTag, Teleport_Cooldown[ id ] );
		return PLUGIN_CONTINUE;
	}

	else if( teleport( id ) ) {

		emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
		remove_task( id );
		Teleport_Cooldown[ id ] = get_pcvar_num( g_iCvarCooldownTeleport );

		set_task( 1.0, "CountDown_Teleport", id, _, _, "b" );

		set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );
		if( get_pcvar_num( g_iCvarCooldownTeleport ) != 1 ) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunde.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}

		if( get_pcvar_num( g_iCvarTeleportRange ) == 1) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunda.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}
	}

	else {

		ColorChat( id, TEAM_COLOR, "^x04%s^x03 Pozitia de teleportare nu e corecta.", g_szTag );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_Teleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] ) {

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
		return PLUGIN_HANDLED;
	}

	set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] == 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunda.", Teleport_Cooldown[ id ] );
	}

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] > 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunde.", Teleport_Cooldown[ id ] );
	}

	if( Teleport_Cooldown[ id ] <= 0 ) {

		show_hudmessage( id, "Ti-a revenit puterea !" );

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
	}

	return PLUGIN_HANDLED;
}

// GODMODE
public ClCmdUseGodmode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] )
		return PLUGIN_CONTINUE;

	if( GodMode_Countdown[ id ] && LastMessage[ id ] < get_gametime(  ) ) {
        
		LastMessage[ id ] = get_gametime(  ) + 1.0;
	}
    
	else if ( godmode( id ) ) {
        
		GodMode_Countdown[ id ] = get_pcvar_num( g_iCvarGodmodeCountDown );
		CountDown_GodMode( id );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_GodMode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] ) {

		remove_task( id );
		GodMode_Countdown[ id ] = 0;
		return PLUGIN_HANDLED;
	}
    
	else if( GodMode_Countdown[ id ] > 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti vei putea folosi puterea in %d secund%s !", GodMode_Countdown[ id ], GodMode_Countdown[ id ] == 1 ? "a" : "e" );

		GodMode_Countdown[ id ]--;
		set_task( 1.0, "CountDown_GodMode", id );
	}

	else if( GodMode_Countdown[ id ] <= 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti poti folosi puterea din nou !" );

		GodMode_Countdown [ id ] = 0;
	}
	
	return PLUGIN_HANDLED;
}

bool:godmode( id ) {
    
	set_user_godmode( id, 1 );

	set_task( get_pcvar_float( g_iCvarGodmodeTime ), "stopgodmode", id );

	return true;
}

public stopgodmode( id ) {
    
	set_user_godmode( id, 0 );

	set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
	show_hudmessage( id, "Nu mai ai esti invincibil !" );

	return 1;
}

// TELEPORT
bool:teleport( id ) {

	new Float:vOrigin[ 3 ], Float:vNewOrigin[ 3 ], Float:vNormal[ 3 ], Float:vTraceDirection[ 3 ], Float:vTraceEnd[ 3 ];
	
	pev( id, pev_origin, vOrigin );
	
	velocity_by_aim( id, get_pcvar_num( g_iCvarTeleportRange ), vTraceDirection );
	xs_vec_add( vTraceDirection, vOrigin, vTraceEnd );
	
	engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 );
	
	new Float:flFraction;
	get_tr2( 0, TR_flFraction, flFraction );

	if( flFraction < 1.0 ) {

		get_tr2( 0, TR_vecEndPos, vTraceEnd );
		get_tr2( 0, TR_vecPlaneNormal, vNormal );
	}
	
	xs_vec_mul_scalar( vNormal, 40.0, vNormal );
	xs_vec_add( vTraceEnd, vNormal, vNewOrigin );
	
	if( is_player_stuck( id, vNewOrigin ) )
		return false;
	
	emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
	tele_effect( vOrigin );
	
	engfunc( EngFunc_SetOrigin, id, vNewOrigin );
	
	tele_effect2( vNewOrigin );

	return true;
}

stock is_player_stuck( id, Float:originF[ 3 ] ) {

	engfunc( EngFunc_TraceHull, originF, originF, 0, ( pev( id, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN, id, 0 );
	
	if( get_tr2( 0, TR_StartSolid ) || get_tr2( 0, TR_AllSolid ) || !get_tr2( 0, TR_InOpen ) )
		return true;
	
	return false;
}

stock tele_effect( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );
	write_byte( 0 );
	write_byte( 0 );
	write_byte( 3 );
	write_byte( 60 );
	write_byte( 0 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 0 );
	message_end(  );
}

stock tele_effect2( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );	// Sprite
	write_byte( 0 );	// Startfrate
	write_byte( 0 );	// Framerate
	write_byte( 4 );	// Life
	write_byte( 80 );	// Width
	write_byte( 0 );	// Amplitude
	write_byte( 255 );	// Red
	write_byte( 255 );	// Green
	write_byte( 255 );	// Blue
	write_byte( 255 );	// Brightness
	write_byte( 0 );	// Speed
	message_end(  );
	
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_SPRITETRAIL );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 40 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( BlueFlare2 );
	write_byte( 30 );
	write_byte( 10 );
	write_byte( 1 );
	write_byte( 50 );
	write_byte( 10 );
	message_end(  );
}

// HOOK
public TaskHookPrethink( id ) {

	id -= HookTask;

	if( !is_user_alive( id ) ) {

		Hook[ id ] = false;
	}
	
	if( !Hook[ id ] ) {

		remove_task( id + HookTask );
		return 1;
	}

	static iOrigin1[ 3 ];
	new Float:fOrigin[3];
	get_user_origin( id, iOrigin1 );
	pev( id, pev_origin, fOrigin);

	if( iHookOrigin[ id ][ 0 ] == 999999 ) {

		static iOrigin2[ 3 ];
		get_user_origin( id, iOrigin2, 3 );
		iHookOrigin[ id ][ 0 ] = iOrigin2[ 0 ];
		iHookOrigin[ id ][ 1 ] = iOrigin2[ 1 ];
		iHookOrigin[ id ][ 2 ] = iOrigin2[ 2 ];
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( 1 );
	write_short( id );
	write_coord( iHookOrigin[ id ][ 0 ] );
	write_coord( iHookOrigin[ id ][ 1 ]);
	write_coord( iHookOrigin[ id ][ 2 ] );
	write_short( iBeamSprite );
	write_byte( 1 );
	write_byte( 1 );
	write_byte( 5 );
	write_byte( 18 );
	write_byte( 0 );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( 200 );
	write_byte( 0 );
	message_end( );

	static Float:fVelocity[ 3 ];
	fVelocity[ 0 ] = ( float( iHookOrigin[ id ][ 0 ] ) - float( iOrigin1[ 0 ] ) ) * 3.0;
	fVelocity[ 1 ] = ( float( iHookOrigin[ id ][ 1 ] ) - float( iOrigin1[ 1 ] ) ) * 3.0;
	fVelocity[ 2 ] = ( float( iHookOrigin[ id ][ 2 ] ) - float( iOrigin1[ 2 ] ) ) * 3.0;

	static Float:fY;
	fY = fVelocity[ 0 ] * fVelocity[ 0 ] + fVelocity[ 1 ] * fVelocity[ 1 ] + fVelocity[ 2 ] * fVelocity[ 2 ];

	static Float:fX;
	fX = ( HookSpeed ) / floatsqroot( fY );

	fVelocity[ 0 ] *= fX;
	fVelocity[ 1 ] *= fX;
	fVelocity[ 2 ] *= fX;

	set_velo( id, fVelocity );

	return 0;
}

public set_velo( id, Float:fVelocity[ 3 ] ) {

	return set_pev( id, pev_velocity, fVelocity );
}

// COMBAT KNIFE
public fw_EmitSounds( const id, const channel, const sample[  ] ) {

	if( is_user_alive( id ) ) {

		if( g_iUserHasCombatKnife[ id ] ) {

			for( new i = 0; i < sizeof CombatKnifeSoundList; i++ ) {

				if( equal( sample, OriginalKnifeSounds[ i ] ) ) {

					emit_sound( id, channel, CombatKnifeSoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}

public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:b_gDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) )
		return HAM_IGNORED;
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE )
 		return HAM_IGNORED;
 	
	new g_bHit, target;
	get_user_aiming( iAttacker, target, g_bHit );

	new bool:g_bHead = ( g_bHit == HIT_HEAD );
	new Float:default_dmg = 1.0;

	if( pev( iAttacker, pev_button, IN_ATTACK ) ) {

		default_dmg = g_bHead ? CB_PRIM_HEAD_DMG : CB_PRIM_DMG;
	}

	else {

		default_dmg = g_bHead ? CB_SEC_HEAD_DMG : CB_SEC_DMG;
	}

	SetHamParamFloat( 4, b_gDamage * default_dmg );

	return HAM_HANDLED;
}

public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:g_bDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) || !is_user_alive( iVictim ) ) {

		return HAM_IGNORED;
	}
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE ) {
	
 		return HAM_IGNORED;
	}

	new Float:Origin[ 3 ], Float:Origin2[ 3 ], Float:Velocity[ 3 ];

	pev( iAttacker, pev_origin, Origin );
	pev( iVictim, pev_origin, Origin2 );

	xs_vec_sub( Origin2, Origin, Velocity );
	xs_vec_normalize( Velocity, Velocity );
	xs_vec_mul_scalar( Velocity, ( CB_KNOCKBACK * 100.0 ), Velocity );

	if( Velocity[ 2 ] <= 100.0 ) {

		Velocity[ 2 ] = random_float( 150.0, 250.0 );
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BLOODSPRITE );
	engfunc( EngFunc_WriteCoord, Origin2[ 0 ] );
	engfunc( EngFunc_WriteCoord, Origin2[ 1] );
	engfunc( EngFunc_WriteCoord, Origin2[ 2] );
	write_short( g_Blood[ 0 ] );
	write_short( g_Blood[ 1 ] );
	write_byte( 77 );
	write_byte( 4 );
	message_end(  );

	set_pev( iVictim, pev_velocity, Velocity );

	return HAM_HANDLED;
}

// NO RECOIL
public fwd_primary_attack( ent ) {

	new id = pev( ent, pev_owner );

	pev( id, pev_punchangle, cl_pushangle[ id ] );
	
	return HAM_IGNORED;
}

public fwd_primary_attack_post( ent ) {

	new id = pev( ent, pev_owner );

	if( g_iUserHasNoRecoil[ id ] ) {

		new Float:push[ 3 ];

		pev( id, pev_punchangle, push );
		xs_vec_sub( push, cl_pushangle[ id ], push );
		xs_vec_mul_scalar( push, get_pcvar_float( g_iCvarNoRecoil ), push );
		xs_vec_add( push, cl_pushangle[ id ], push );
		set_pev( id, pev_punchangle, push );

		return HAM_IGNORED;
	}

	return HAM_IGNORED;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Intermediez tranzactii cand am chef si timp ! :)

Image
RoyalServer 2
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

30 Dec 2013, 17:36

Poftim :
| Afiseaza codul
/*===========================================================================================================================

				        *********************************************************
				       *********** [ Advanced VIP Menu Furien 0.0.1 ] ************
				        *********************************************************

		-------------------------
		   ---- * Description * ----
		-------------------------
			- Un meniu de VIP, mai avansat, care ofera anumitor jucatori de pe server sa beneficieze de Hook, Teleport, Unlimited Clip,
			  Respwan, HP + AP, Super Knife, Viteza, Invizibilitate si altele.
	
		-------------------------
		   --- * Configuration * ---
		-------------------------

			f_vip_chose "valoare"	-	De cate ori pe runda sa fie accesat meniul
			f_vip_teleport_cooldown "valoare"	-	Cooldown la Teleport
			f_vip_teleport_range "123456789"	-	Teleport Range
			f_vip_norecoil", "valoare.0"	-	- Intre 0.9 si 0.0 (sa fie cu .zecimala) No recoil pentru arme
			f_vip_invisibility_amount "valoare"		- Intre 0 si 250 ( Cat de invizibil sa fie VIP-ul dupa ce cumpara Invizibilitate )
			f_vip_godmode_cooldown "valoare"	- Odata la cat timp sa poti folosi Zeus Mode
			f_vip_godmode_time "valoare"	- Cat timp poti avea Zeus Mode

		-------------------------
		   ----- * Modules * -----
		-------------------------
					- Hamsandwich
				- Fakemeta
			- Cstrike
		- Fun

		-------------------------
		      --- * Credits * ---
		-------------------------

			- tuty: Jetpack;
			- CSO Knife Generator: ZombiMod.ru;
			- CoolDown la Puteri: sDs|Aragon*;
			- Hook: Kz Arg Mod by ReymonARG!

		-------------------------
		    --- * Changelog * ---
		-------------------------

			* v0.0.1:
			   - Initial release ( 15th Nov 2013 )
				
		-------------------------
		    --- * Update * ---
		-------------------------

			- Sistem de Grenade
			- Rope
			- Adaugare Cvar-uri, o sa-l fac pe "format text"
			- And Other...

				        *********************************************************
				       *********** [ Advanced Furien VIP Menu 0.0.1 ] ************
				        *********************************************************

===========================================================================================================================*/

#include < amxmodx >
#include < hamsandwich >
#include < cstrike >
#include < xs >
#include < fun >
#include < fakemeta >
#include < CC_ColorChat >
//#include < dhudmessage >

//#pragma tabsize 1
#pragma semicolon 1

#define PLUGIN "Furien VIP Menu"
#define VERSION "0.0.1"

#define ACCESS_VIP ADMIN_BAN

// Unlimited Clip & No Recoil
#define OFFSET_LINUX_WEAPONS 	4
#define OFFSET_WEAPON_OWNER	41
#define OFFSET_CLIPAMMO		51
#define OFFSET_ACTIVE_ITEM 	373
#define NO_UCLIP_WEAPONS_BITSUM ( ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) )

// Teleport
#define FFADE_IN	 	0x0000
#define FFADE_OUT 	0x0001
#define FFADE_MODULATE	0x0002
#define FFADE_STAYOUT 	0x0004

// Knock Back Combat Knife
#define CB_SEC_DMG		8.0
#define CB_PRIM_DMG		5.0
#define CB_SEC_HEAD_DMG		4.0
#define CB_PRIM_HEAD_DMG	20.0
#define CB_KNOCKBACK		20

// For Hook
#define HookTask		24896172
#define HookSpeed	800.0

// Cvar's
new g_iCvarFurienVipHasChosen,
	g_iCvarCooldownTeleport,
	g_iCvarTeleportRange,
	g_iCvarNoRecoil,
	g_iCvarInvisibilityAmount,
	g_iCvarGodmodeCountDown,
	g_iCvarGodmodeTime;

new const g_szTag[  ] = "[ Furien VIP Menu ]";
new const g_iMaxClips[  ] = { 0, 13, 0, 10, 0, 7, 0, 30, 30, 0, 15, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 0, 7, 30, 30, 0, 50 };
new const SOUND_BLINK[  ] = { "weapons/flashbang-1.wav" };
new const g_szHook[  ] = "weapons/xbow_fire1.wav";

new const CombatKnifeSoundList[  ][  ] = {
	
	"combatknife/combatknife_deploy1.wav",
	"combatknife/combatknife1.wav",
	"combatknife/combatknife2.wav",
	"combatknife/combatknife_hwall.wav",
	"combatknife/combatknife_slash1.wav",
	"combatknife/combatknife_stab.wav"
};

new const OriginalKnifeSounds[  ][  ] = {
	
	"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 p_CB[  ] = "models/combat_knife/p_combatknife.mdl";
new const v_CB[  ] = "models/combat_knife/v_combatknife.mdl";

new const Blood[  ][  ] = {
	
	"sprites/blood.spr",
	"sprites/bloodspray.spr"
};
static g_Blood[ sizeof Blood ];

const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
const NORECOIL_WPN_BS = ( ( 1<<2 ) | ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) );

// FURIEN:
new bool:Teleport[ 33 ], bool:Speed[ 33 ], bool:Hook[ 33 ], bool:CombatKnife[ 33 ], bool:GodMode[ 33 ];
// HUMAN:
new bool:Jetpack[ 33 ], bool:Invisibility[ 33 ], bool:UnlimitedClip[ 33 ], bool:NoRecoil[ 33 ];

new g_iUserHasChossen[ 33 ];
new bool:g_iUserHasUClip[ 33 ];
new bool:g_iUserHasTeleport[ 33 ];
new bool:g_iUserHasJetPack[ 33 ];
new bool:g_iUserHasSpeed[ 33 ];
new bool:g_iUserHasInvisibility[ 33 ];
new bool:g_iUserHasHook[ 33 ];
new bool:g_iUserHasCombatKnife[ 33 ];
new bool:g_iUserHasNoRecoil[ 33 ];
new bool:g_iUserHasGodmode[ 33 ];

new ShockWave, BlueFlare2, JetPackSprite, iBeamSprite;

new GodMode_Countdown[ 33 ];
new Teleport_Cooldown[ 33 ];
new iHookOrigin[ 33 ][ 3 ];
new Float:LastMessage[ 33 ];

new WpnName[ 32 ];
new Float:cl_pushangle[ 33 ][ 3 ];

public plugin_init(  ) {
	
	register_plugin( PLUGIN, VERSION, "YONTU" );
	
	register_clcmd( "+hook", "ClCmdUseHook" );
	register_clcmd( "-hook", "ClCmdStopUsingHook" );
	register_clcmd( "teleport", "ClCmdUseTeleport" );
	register_clcmd( "godmode", "ClCmdUseGodmode" );
	register_clcmd( "say /vm", "ClCmdSayVipMenu" );
	register_clcmd( "say_team /vm", "ClCmdSayVipMenu" );
	
	register_event( "CurWeapon", "event_CurWeapon", "be", "1=1" );
	register_event( "CurWeapon", "CurWeapon2", "be", "1=1" );
	
	register_forward( FM_EmitSound, "fw_EmitSounds" );
	
	register_logevent( "fw_RoundStart", 2 , "1=Round_Start" );
	
	RegisterHam( Ham_Player_Jump, "player", "Ham_bacon_playerJumping" );
	RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
	
	g_iCvarFurienVipHasChosen = register_cvar( "f_vip_chose", "100" );
	g_iCvarCooldownTeleport = register_cvar( "f_vip_teleport_cooldown", "10" );
	g_iCvarTeleportRange = register_cvar( "f_vip_teleport_range", "123456789" );
	g_iCvarNoRecoil = register_cvar( "f_vip_norecoil", "0.0" );
	g_iCvarInvisibilityAmount = register_cvar( "f_vip_invisibility_amount", "15" );
	g_iCvarGodmodeCountDown = register_cvar( "f_vip_godmode_cooldown", "15" );
	g_iCvarGodmodeTime = register_cvar( "f_vip_godmode_time", "10" );
	//g_iCvar[  ] = register_cvar( "f_vip_", "" );

	for( new i = 1; i <= CSW_P90; i++ ) {

		if( !( NORECOIL_WPN_BS & ( 1<<i ) ) && get_weaponname( i, WpnName, charsmax( WpnName ) ) ) {

			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack" );
			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack_post", 1 );
		}
	}
}

public plugin_precache( ) {
	
	precache_model( v_CB );
	precache_model( p_CB );
	precache_sound( g_szHook );
	
	ShockWave = precache_model( "sprites/shockwave.spr" );
	BlueFlare2 = precache_model( "sprites/blueflare2.spr" );
	JetPackSprite = precache_model( "sprites/explode1.spr" );
	iBeamSprite = precache_model( "sprites/plasma.spr" );

	static i;
	for( i = 0; i <= charsmax( Blood ); i++ )
		g_Blood[ i ] = precache_model( Blood[ i ] );

	for( i = 0; i <= charsmax( CombatKnifeSoundList ); i++ )
		precache_sound( CombatKnifeSoundList[ i ] );
}

public client_putinserver( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public client_disconnect( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public RemoveAll( id ) {
	
	Teleport[ id ] = false;
	Speed[ id ] = false;
	Jetpack[ id ] = false;
	Invisibility[ id ] = false;
	UnlimitedClip[ id ] = false;
	CombatKnife[ id ] = false;
	GodMode[ id ] = false;
}

public fw_RoundStart(  ) {
	
	new szPlayers[ 32 ], iNum;
	get_players( szPlayers, iNum, "p" );
	
	for( new i = 0; i < iNum; i++)  {
		
		g_iUserHasChossen[ i ] = false;
		g_iUserHasUClip[ i ] = false;
		g_iUserHasTeleport[ i ] = false;
		g_iUserHasJetPack[ i ] = false;
		g_iUserHasSpeed[ i ] = false;
		g_iUserHasInvisibility[ i ] = false;
		g_iUserHasHook[ i ] = false;
		g_iUserHasCombatKnife[ i ] = false;
		g_iUserHasNoRecoil[ i ] = false;
		g_iUserHasGodmode[ i ] = false;
		Teleport[ i ] = false;
		Speed[ i ] = false;
		Jetpack[ i ] = false;
		Invisibility[ i ] = false;
		UnlimitedClip[ i ] = false;
		CombatKnife[ i ] = false;
		GodMode[ i ] = false;
	}
}

public Ham_PlayerSpawnPost( id ) {
	
	if( !is_user_alive( id ) || !is_user_connected( id ) )  return HAM_IGNORED;
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
	
	return HAM_IGNORED;
}

public ClCmdSayVipMenu( id )
{
	if( is_user_alive( id ) || !is_user_alive( id ) && get_user_flags( id ) & ACCESS_VIP )
	{
		if( g_iUserHasChossen[ id ] >= get_pcvar_num( g_iCvarFurienVipHasChosen ) )
		{
			set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
			show_hudmessage( id, "Ai folosit deja meniul de %d ori !", get_pcvar_num( g_iCvarFurienVipHasChosen ) );
			return 1;
		}
		
		if( get_user_team( id ) == 1 ) {
			
			set_task( 0.1, "ShowFurienVipMenu", id );
		}
		
		if( get_user_team( id ) == 2 ) {
			
			set_task( 0.1, "ShowSurvivorVipMenu", id );
		}
	}
	
	else {
		
		ColorChat( id, GREEN, "%s^x01 Nu esti membru^x03 VIP^x01. Doneaza !!!", g_szTag );
	}
	
	return 1;
	
}

public ShowFurienVipMenu( id ) {    
	
	new szMenu = menu_create( "\rFurien \yV\rI\wP\r Menu", "FurienMenuGiver" );
	
	new iMoney = cs_get_user_money( id );
	
	// COMBAT KNIFE
	if( CombatKnife[ id ] ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rAlready Have", "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 7000 ) {
		
		menu_additem( szMenu, "\dCombat Knife -\r No Money", "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rOnly Alive", "1", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 7000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yCombat Knife\r (\yKnock Back\r)\w -\r [\y 7000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
		
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y100 HP\w + \y100 AP\w -\r [\y 1000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) && iMoney < 5000 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// TELEPORT
	if( Teleport[ id ] ) {
		
		menu_additem( szMenu, "\dTeleport - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8000 ) {
		
		menu_additem( szMenu, "\dTeleport -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dTeleport - \rOnly Alive", "4", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 8000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yTeleport\w -\r [\y 8000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// SPEED
	if( Speed[ id ] ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rAlready Have" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 6500 ) {
		
		menu_additem( szMenu, "\dSpeed -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}

	else if( !Speed[ id ] || iMoney >= 6500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y500 Speed\w -\r [\y 6500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// HOOK
	if( Hook[ id ] ) {
		
		menu_additem( szMenu, "\dHook - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 12000 ) {
		
		menu_additem( szMenu, "\dHook -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dHook - \rOnly Alive", "6", 0 );
	}

	else if( !Hook[ id ] || iMoney >= 12000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yHook\w -\r [\y 12000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// GODMODE
	if( GodMode[ id ] ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rAlready Have", "7", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 15000 ) {
		
		menu_additem( szMenu, "\dZeus Mode -\r No Money", "7", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rOnly Alive", "7", 0 );
	}

	else if( !GodMode[ id ] || iMoney >= 15000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yZeus Mode\w -\r [\y 15000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "7", 0 );
		cs_set_user_money( id, iMoney );
	}

	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public ShowSurvivorVipMenu( id ) { 
	
	new szMenu = menu_create( "\rHumans \yV\rI\wP\r Menu", "HumansMenuGiver" );
	new iMoney = cs_get_user_money( id );
	
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y50 HP\w +\y 50 AP\w -\r [\y 1500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// JETPACK
	if( Jetpack[ id ] ) {
		
		menu_additem( szMenu, "\dJetPack - \rAlready Have", "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 9000 ) {
		
		menu_additem( szMenu, "\dJetPack -\r No Money", "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dJetPack - \rOnly Alive", "2", 0 );
	}

	else if( !Jetpack[ id ] || iMoney >= 9000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yJetPack\w -\r [\y 9000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) || is_user_alive( id ) && iMoney < 5500 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// UNLIMITED CLIP
	if( UnlimitedClip[ id ] ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8500 ) {
		
		menu_additem( szMenu, "\dUnlimited Clip -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rOnly Alive", "4", 0 );
	}

	else if( !UnlimitedClip[ id ] || iMoney >= 8500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yUnlimited\y Clip\w -\r [\y 8500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// INVISIBILITY
	if( Invisibility[ id ] ) {
		
		menu_additem( szMenu, "\dInvisibility - \rAlready Have", "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 4000 ) {
		
		menu_additem( szMenu, "\dInvisibility -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dInvisibility - \rOnly Alive", "5", 0 );
	}

	else if( !Invisibility[ id ] || iMoney >= 4000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yInvisibility\w -\r [\y 4000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}

	// NO RECOIL
	if( NoRecoil[ id ] ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 3500 ) {
		
		menu_additem( szMenu, "\dNo Recoil -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rOnly Alive", "6", 0 );
	}

	else if( !NoRecoil[ id ] || iMoney >= 3500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yNo Recoil\w -\r [\y 3500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public FurienMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// COMBAT KNIFE
		case 1: {
			
			if( !CombatKnife[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 7000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 7000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 Combat Knife^x01!", g_szTag );
					cs_set_user_money( id, iMoney );

					g_iUserHasChossen[ id ] = true;
					g_iUserHasCombatKnife[ id ] = true;
					CombatKnife[ id ] = true;
					CurWeapon2( id );

					engclient_cmd( id, "weapon_knife" );
					
					return 1;
				}
			}
		}
		
		// HP + AP
		case 2: {
			
			new iMoney = cs_get_user_money( id ) - 1000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1000 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}
		
			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}

			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );
				
				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat!", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// TELEPORT
		case 4: {
			
			if( !Teleport[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti teleporta, apasand pe tasta^x03 X^x01 !", g_szTag );
					client_cmd( id, "bind x teleport" );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasTeleport[ id ] = true;
					Teleport[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// SPEED
		case 5: {
			
			if( !Speed[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 6500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 6500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit mai rapid!^x03 Schimba arma^x01!", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasSpeed[ id ] = true;
					Speed[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// HOOK
		case 6: {
			
			if( !Hook[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 12000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 12000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti agata de pereti, apasand pe tasta^x03 Z^x01 !", g_szTag );
					client_cmd( id, "bind z +hook" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasHook[ id ] = true;
					Hook[ id ] = true;
					
					return 1;
				}
			}
		}

		// GODMODE
		case 7: {
			
			if( !GodMode[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 15000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 15000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum poti deveni invincibil, apasand pe tasta^x03 V^x01 !", g_szTag );
					client_cmd( id, "bind v godmode" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasGodmode[ id ] = true;
					GodMode[ id ] = true;
					
					return 1;
				}
			}
		}
	}
	
	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

public HumansMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// HP + AP
		case 1: {
			
			new iMoney = cs_get_user_money( id ) - 1500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1500 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// JETPACK
		case 2: {
			
			if( !Jetpack[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 9000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 9000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 JetPack^x01! Apasa^x03 SPACE^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasJetPack[ id ] = true;
					Jetpack[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}

			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}
			
			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );				

				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat !", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// UNLIMITED CLIP
		case 4: {
			
			if( !UnlimitedClip[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ti-ai cumparat^x03 gloante infinite^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasUClip[ id ] = true;
					UnlimitedClip[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// INVISIBILITY
		case 5: {
			
			if( !Invisibility[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 4000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 4000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit^x03 90%^x01 invizibil !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasInvisibility[ id ] = true;
					Invisibility[ id ] = true;
					
					return 1;
				}
			}
		}

		// NO RECOIL
		case 6: {
			
			if( !NoRecoil[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 3500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 3500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 De acum inainte, tinta nu-ti va mai sari !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasNoRecoil[ id ] = true;
					NoRecoil[ id ] = true;
					
					return 1;
				}
			}
		}
	}

	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

// JETPACK
public Ham_bacon_playerJumping( id ) {

	if( g_iUserHasJetPack[ id ] ) {

		new iOrigin[ 3 ];
		get_user_origin( id, iOrigin, 0 );

		iOrigin[ 2 ] -= 20;
		
		new Float:fVelocity[ 3 ];
		pev( id, pev_velocity, fVelocity );

		fVelocity[ 2 ] += 93;
		
		set_pev( id, pev_velocity, fVelocity );
		create_flame( iOrigin );
	}
}

stock create_flame( origin[ 3 ] ) {

	message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
	write_byte( TE_SPRITE );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( JetPackSprite );
	write_byte( 3 );
	write_byte( 99 );
	message_end();
}

public event_CurWeapon( id ) {

	if( get_user_flags( id ) & ACCESS_VIP && g_iUserHasUClip[ id ] ) {

		new iWeapon = read_data( 2 );
		
		if( !( NO_UCLIP_WEAPONS_BITSUM & ( 1 << iWeapon ) ) )
			set_pdata_int( get_pdata_cbase( id, OFFSET_ACTIVE_ITEM ), OFFSET_CLIPAMMO, g_iMaxClips[ iWeapon ], OFFSET_LINUX_WEAPONS );
	}
}

public CurWeapon2( id ) {

	if( g_iUserHasSpeed[ id ] ) {

		set_user_maxspeed( id, 500.0 );
	}

	else {

		set_user_maxspeed( id, 260.0 );
	}

	if( g_iUserHasInvisibility[ id ] ) {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num( g_iCvarInvisibilityAmount ) );
	}
	
	else {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 250 );
	}

	if( get_user_weapon( id ) == CSW_KNIFE && g_iUserHasCombatKnife[ id ] ) {
	
		set_pev( id, pev_viewmodel2, v_CB );
		set_pev( id, pev_weaponmodel2, p_CB );
	}
}

// HOOK
public ClCmdUseHook( id ) {

	if( !g_iUserHasHook[ id ] )
		return 1;
		
	emit_sound( id,CHAN_VOICE, g_szHook, 1.0, ATTN_NORM, 0, PITCH_NORM );
	set_pev( id, pev_gravity, 0.0 );
	
	set_task( 0.1,"TaskHookPrethink", id + HookTask , "", 0, "b" );
	
	Hook[ id ] = true;
	iHookOrigin[ id ][ 0 ] = 999999;
	
	TaskHookPrethink( id + HookTask );
	return 1;
}

public ClCmdStopUsingHook( id ) {

	set_pev( id, pev_gravity, 1.0 );
	Hook[ id ] = false;
	
	return 1;
}

// TELEPORT
public ClCmdUseTeleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] )
		return PLUGIN_CONTINUE;
	
	if( Teleport_Cooldown[ id ] ) {

		ColorChat( id, TEAM_COLOR, "^x04%s^x01 Puterea iti va reveni in^x03 %d secunde^x01.", g_szTag, Teleport_Cooldown[ id ] );
		return PLUGIN_CONTINUE;
	}

	else if( teleport( id ) ) {

		emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
		remove_task( id );
		Teleport_Cooldown[ id ] = get_pcvar_num( g_iCvarCooldownTeleport );

		set_task( 1.0, "CountDown_Teleport", id, _, _, "b" );

		set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );
		if( get_pcvar_num( g_iCvarCooldownTeleport ) != 1 ) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunde.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}

		if( get_pcvar_num( g_iCvarTeleportRange ) == 1) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunda.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}
	}

	else {

		ColorChat( id, TEAM_COLOR, "^x04%s^x03 Pozitia de teleportare nu e corecta.", g_szTag );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_Teleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] ) {

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
		return PLUGIN_HANDLED;
	}

	set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] == 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunda.", Teleport_Cooldown[ id ] );
	}

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] > 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunde.", Teleport_Cooldown[ id ] );
	}

	if( Teleport_Cooldown[ id ] <= 0 ) {

		show_hudmessage( id, "Ti-a revenit puterea !" );

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
	}

	return PLUGIN_HANDLED;
}

// GODMODE
public ClCmdUseGodmode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] )
		return PLUGIN_CONTINUE;

	if( GodMode_Countdown[ id ] && LastMessage[ id ] < get_gametime(  ) ) {
        
		LastMessage[ id ] = get_gametime(  ) + 1.0;
	}
    
	else if ( godmode( id ) ) {
        
		GodMode_Countdown[ id ] = get_pcvar_num( g_iCvarGodmodeCountDown );
		CountDown_GodMode( id );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_GodMode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] ) {

		remove_task( id );
		GodMode_Countdown[ id ] = 0;
		return PLUGIN_HANDLED;
	}
    
	else if( GodMode_Countdown[ id ] > 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti vei putea folosi puterea in %d secund%s !", GodMode_Countdown[ id ], GodMode_Countdown[ id ] == 1 ? "a" : "e" );

		GodMode_Countdown[ id ]--;
		set_task( 1.0, "CountDown_GodMode", id );
	}

	else if( GodMode_Countdown[ id ] <= 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti poti folosi puterea din nou !" );

		GodMode_Countdown [ id ] = 0;
	}
	
	return PLUGIN_HANDLED;
}

bool:godmode( id ) {
    
	set_user_godmode( id, 1 );

	set_task( get_pcvar_float( g_iCvarGodmodeTime ), "stopgodmode", id );

	return true;
}

public stopgodmode( id ) {
    
	set_user_godmode( id, 0 );

	set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
	show_hudmessage( id, "Nu mai ai esti invincibil !" );

	return 1;
}

// TELEPORT
bool:teleport( id ) {

	new Float:vOrigin[ 3 ], Float:vNewOrigin[ 3 ], Float:vNormal[ 3 ], Float:vTraceDirection[ 3 ], Float:vTraceEnd[ 3 ];
	
	pev( id, pev_origin, vOrigin );
	
	velocity_by_aim( id, get_pcvar_num( g_iCvarTeleportRange ), vTraceDirection );
	xs_vec_add( vTraceDirection, vOrigin, vTraceEnd );
	
	engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 );
	
	new Float:flFraction;
	get_tr2( 0, TR_flFraction, flFraction );

	if( flFraction < 1.0 ) {

		get_tr2( 0, TR_vecEndPos, vTraceEnd );
		get_tr2( 0, TR_vecPlaneNormal, vNormal );
	}
	
	xs_vec_mul_scalar( vNormal, 40.0, vNormal );
	xs_vec_add( vTraceEnd, vNormal, vNewOrigin );
	
	if( is_player_stuck( id, vNewOrigin ) )
		return false;
	
	emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
	tele_effect( vOrigin );
	
	engfunc( EngFunc_SetOrigin, id, vNewOrigin );
	
	tele_effect2( vNewOrigin );

	return true;
}

stock is_player_stuck( id, Float:originF[ 3 ] ) {

	engfunc( EngFunc_TraceHull, originF, originF, 0, ( pev( id, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN, id, 0 );
	
	if( get_tr2( 0, TR_StartSolid ) || get_tr2( 0, TR_AllSolid ) || !get_tr2( 0, TR_InOpen ) )
		return true;
	
	return false;
}

stock tele_effect( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );
	write_byte( 0 );
	write_byte( 0 );
	write_byte( 3 );
	write_byte( 60 );
	write_byte( 0 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 0 );
	message_end(  );
}

stock tele_effect2( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );	// Sprite
	write_byte( 0 );	// Startfrate
	write_byte( 0 );	// Framerate
	write_byte( 4 );	// Life
	write_byte( 80 );	// Width
	write_byte( 0 );	// Amplitude
	write_byte( 255 );	// Red
	write_byte( 255 );	// Green
	write_byte( 255 );	// Blue
	write_byte( 255 );	// Brightness
	write_byte( 0 );	// Speed
	message_end(  );
	
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_SPRITETRAIL );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 40 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( BlueFlare2 );
	write_byte( 30 );
	write_byte( 10 );
	write_byte( 1 );
	write_byte( 50 );
	write_byte( 10 );
	message_end(  );
}

// HOOK
public TaskHookPrethink( id ) {

	id -= HookTask;

	if( !is_user_alive( id ) ) {

		Hook[ id ] = false;
	}
	
	if( !Hook[ id ] ) {

		remove_task( id + HookTask );
		return 1;
	}

	static iOrigin1[ 3 ];
	new Float:fOrigin[3];
	get_user_origin( id, iOrigin1 );
	pev( id, pev_origin, fOrigin);

	if( iHookOrigin[ id ][ 0 ] == 999999 ) {

		static iOrigin2[ 3 ];
		get_user_origin( id, iOrigin2, 3 );
		iHookOrigin[ id ][ 0 ] = iOrigin2[ 0 ];
		iHookOrigin[ id ][ 1 ] = iOrigin2[ 1 ];
		iHookOrigin[ id ][ 2 ] = iOrigin2[ 2 ];
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( 1 );
	write_short( id );
	write_coord( iHookOrigin[ id ][ 0 ] );
	write_coord( iHookOrigin[ id ][ 1 ]);
	write_coord( iHookOrigin[ id ][ 2 ] );
	write_short( iBeamSprite );
	write_byte( 1 );
	write_byte( 1 );
	write_byte( 5 );
	write_byte( 18 );
	write_byte( 0 );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( 200 );
	write_byte( 0 );
	message_end( );

	static Float:fVelocity[ 3 ];
	fVelocity[ 0 ] = ( float( iHookOrigin[ id ][ 0 ] ) - float( iOrigin1[ 0 ] ) ) * 3.0;
	fVelocity[ 1 ] = ( float( iHookOrigin[ id ][ 1 ] ) - float( iOrigin1[ 1 ] ) ) * 3.0;
	fVelocity[ 2 ] = ( float( iHookOrigin[ id ][ 2 ] ) - float( iOrigin1[ 2 ] ) ) * 3.0;

	static Float:fY;
	fY = fVelocity[ 0 ] * fVelocity[ 0 ] + fVelocity[ 1 ] * fVelocity[ 1 ] + fVelocity[ 2 ] * fVelocity[ 2 ];

	static Float:fX;
	fX = ( HookSpeed ) / floatsqroot( fY );

	fVelocity[ 0 ] *= fX;
	fVelocity[ 1 ] *= fX;
	fVelocity[ 2 ] *= fX;

	set_velo( id, fVelocity );

	return 0;
}

public set_velo( id, Float:fVelocity[ 3 ] ) {

	return set_pev( id, pev_velocity, fVelocity );
}

// COMBAT KNIFE
public fw_EmitSounds( const id, const channel, const sample[  ] ) {

	if( is_user_alive( id ) ) {

		if( g_iUserHasCombatKnife[ id ] ) {

			for( new i = 0; i < sizeof CombatKnifeSoundList; i++ ) {

				if( equal( sample, OriginalKnifeSounds[ i ] ) ) {

					emit_sound( id, channel, CombatKnifeSoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}

public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:b_gDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) )
		return HAM_IGNORED;
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE )
 		return HAM_IGNORED;
 	
	new g_bHit, target;
	get_user_aiming( iAttacker, target, g_bHit );

	new bool:g_bHead = ( g_bHit == HIT_HEAD );
	new Float:default_dmg = 1.0;

	if( pev( iAttacker, pev_button, IN_ATTACK ) ) {

		default_dmg = g_bHead ? CB_PRIM_HEAD_DMG : CB_PRIM_DMG;
	}

	else {

		default_dmg = g_bHead ? CB_SEC_HEAD_DMG : CB_SEC_DMG;
	}

	SetHamParamFloat( 4, b_gDamage * default_dmg );

	return HAM_HANDLED;
}

public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:g_bDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) || !is_user_alive( iVictim ) ) {

		return HAM_IGNORED;
	}
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE ) {
	
 		return HAM_IGNORED;
	}

	new Float:Origin[ 3 ], Float:Origin2[ 3 ], Float:Velocity[ 3 ];

	pev( iAttacker, pev_origin, Origin );
	pev( iVictim, pev_origin, Origin2 );

	xs_vec_sub( Origin2, Origin, Velocity );
	xs_vec_normalize( Velocity, Velocity );
	xs_vec_mul_scalar( Velocity, ( CB_KNOCKBACK * 100.0 ), Velocity );

	if( Velocity[ 2 ] <= 100.0 ) {

		Velocity[ 2 ] = random_float( 150.0, 250.0 );
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BLOODSPRITE );
	engfunc( EngFunc_WriteCoord, Origin2[ 0 ] );
	engfunc( EngFunc_WriteCoord, Origin2[ 1] );
	engfunc( EngFunc_WriteCoord, Origin2[ 2] );
	write_short( g_Blood[ 0 ] );
	write_short( g_Blood[ 1 ] );
	write_byte( 77 );
	write_byte( 4 );
	message_end(  );

	set_pev( iVictim, pev_velocity, Velocity );

	return HAM_HANDLED;
}

// NO RECOIL
public fwd_primary_attack( ent ) {

	new id = pev( ent, pev_owner );

	pev( id, pev_punchangle, cl_pushangle[ id ] );
	
	return HAM_IGNORED;
}

public fwd_primary_attack_post( ent ) {

	new id = pev( ent, pev_owner );

	if( g_iUserHasNoRecoil[ id ] ) {

		new Float:push[ 3 ];

		pev( id, pev_punchangle, push );
		xs_vec_sub( push, cl_pushangle[ id ], push );
		xs_vec_mul_scalar( push, get_pcvar_float( g_iCvarNoRecoil ), push );
		xs_vec_add( push, cl_pushangle[ id ], push );
		set_pev( id, pev_punchangle, push );

		return HAM_IGNORED;
	}

	return HAM_IGNORED;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

30 Dec 2013, 17:56

Il poate folosi si alt acces :-? nu e pe d :D
Intermediez tranzactii cand am chef si timp ! :)

Image
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

30 Dec 2013, 18:33

Code: Select all

#define ACCESS_VIP ADMIN_BAN

-------->>>>

Code: Select all

#define ACCESS_VIP		8
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

30 Dec 2013, 19:16

Faza e ca atunci cand e playeru dead .. ii zice ca nu are acces vip si sa doneze pentru el ... dar cand e viu poate ..
Intermediez tranzactii cand am chef si timp ! :)

Image
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

30 Dec 2013, 20:59

Hmmm :-?
Poftim incearca asa :
| Afiseaza codul
/*===========================================================================================================================

				        *********************************************************
				       *********** [ Advanced VIP Menu Furien 0.0.1 ] ************
				        *********************************************************

		-------------------------
		   ---- * Description * ----
		-------------------------
			- Un meniu de VIP, mai avansat, care ofera anumitor jucatori de pe server sa beneficieze de Hook, Teleport, Unlimited Clip,
			  Respwan, HP + AP, Super Knife, Viteza, Invizibilitate si altele.
	
		-------------------------
		   --- * Configuration * ---
		-------------------------

			f_vip_chose "valoare"	-	De cate ori pe runda sa fie accesat meniul
			f_vip_teleport_cooldown "valoare"	-	Cooldown la Teleport
			f_vip_teleport_range "123456789"	-	Teleport Range
			f_vip_norecoil", "valoare.0"	-	- Intre 0.9 si 0.0 (sa fie cu .zecimala) No recoil pentru arme
			f_vip_invisibility_amount "valoare"		- Intre 0 si 250 ( Cat de invizibil sa fie VIP-ul dupa ce cumpara Invizibilitate )
			f_vip_godmode_cooldown "valoare"	- Odata la cat timp sa poti folosi Zeus Mode
			f_vip_godmode_time "valoare"	- Cat timp poti avea Zeus Mode

		-------------------------
		   ----- * Modules * -----
		-------------------------
					- Hamsandwich
				- Fakemeta
			- Cstrike
		- Fun

		-------------------------
		      --- * Credits * ---
		-------------------------

			- tuty: Jetpack;
			- CSO Knife Generator: ZombiMod.ru;
			- CoolDown la Puteri: sDs|Aragon*;
			- Hook: Kz Arg Mod by ReymonARG!

		-------------------------
		    --- * Changelog * ---
		-------------------------

			* v0.0.1:
			   - Initial release ( 15th Nov 2013 )
				
		-------------------------
		    --- * Update * ---
		-------------------------

			- Sistem de Grenade
			- Rope
			- Adaugare Cvar-uri, o sa-l fac pe "format text"
			- And Other...

				        *********************************************************
				       *********** [ Advanced Furien VIP Menu 0.0.1 ] ************
				        *********************************************************

===========================================================================================================================*/

#include < amxmodx >
#include < hamsandwich >
#include < cstrike >
#include < xs >
#include < fun >
#include < fakemeta >
#include < CC_ColorChat >
//#include < dhudmessage >

//#pragma tabsize 1
#pragma semicolon 1

#define PLUGIN "Furien VIP Menu"
#define VERSION "0.0.1"

#define ACCESS_VIP ADMIN_LEVEL_H

// Unlimited Clip & No Recoil
#define OFFSET_LINUX_WEAPONS 	4
#define OFFSET_WEAPON_OWNER	41
#define OFFSET_CLIPAMMO		51
#define OFFSET_ACTIVE_ITEM 	373
#define NO_UCLIP_WEAPONS_BITSUM ( ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) )

// Teleport
#define FFADE_IN	 	0x0000
#define FFADE_OUT 	0x0001
#define FFADE_MODULATE	0x0002
#define FFADE_STAYOUT 	0x0004

// Knock Back Combat Knife
#define CB_SEC_DMG		8.0
#define CB_PRIM_DMG		5.0
#define CB_SEC_HEAD_DMG		4.0
#define CB_PRIM_HEAD_DMG	20.0
#define CB_KNOCKBACK		20

// For Hook
#define HookTask		24896172
#define HookSpeed	800.0

// Cvar's
new g_iCvarFurienVipHasChosen,
	g_iCvarCooldownTeleport,
	g_iCvarTeleportRange,
	g_iCvarNoRecoil,
	g_iCvarInvisibilityAmount,
	g_iCvarGodmodeCountDown,
	g_iCvarGodmodeTime;

new const g_szTag[  ] = "[ Furien VIP Menu ]";
new const g_iMaxClips[  ] = { 0, 13, 0, 10, 0, 7, 0, 30, 30, 0, 15, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 0, 7, 30, 30, 0, 50 };
new const SOUND_BLINK[  ] = { "weapons/flashbang-1.wav" };
new const g_szHook[  ] = "weapons/xbow_fire1.wav";

new const CombatKnifeSoundList[  ][  ] = {
	
	"combatknife/combatknife_deploy1.wav",
	"combatknife/combatknife1.wav",
	"combatknife/combatknife2.wav",
	"combatknife/combatknife_hwall.wav",
	"combatknife/combatknife_slash1.wav",
	"combatknife/combatknife_stab.wav"
};

new const OriginalKnifeSounds[  ][  ] = {
	
	"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 p_CB[  ] = "models/combat_knife/p_combatknife.mdl";
new const v_CB[  ] = "models/combat_knife/v_combatknife.mdl";

new const Blood[  ][  ] = {
	
	"sprites/blood.spr",
	"sprites/bloodspray.spr"
};
static g_Blood[ sizeof Blood ];

const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
const NORECOIL_WPN_BS = ( ( 1<<2 ) | ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) );

// FURIEN:
new bool:Teleport[ 33 ], bool:Speed[ 33 ], bool:Hook[ 33 ], bool:CombatKnife[ 33 ], bool:GodMode[ 33 ];
// HUMAN:
new bool:Jetpack[ 33 ], bool:Invisibility[ 33 ], bool:UnlimitedClip[ 33 ], bool:NoRecoil[ 33 ];

new g_iUserHasChossen[ 33 ];
new bool:g_iUserHasUClip[ 33 ];
new bool:g_iUserHasTeleport[ 33 ];
new bool:g_iUserHasJetPack[ 33 ];
new bool:g_iUserHasSpeed[ 33 ];
new bool:g_iUserHasInvisibility[ 33 ];
new bool:g_iUserHasHook[ 33 ];
new bool:g_iUserHasCombatKnife[ 33 ];
new bool:g_iUserHasNoRecoil[ 33 ];
new bool:g_iUserHasGodmode[ 33 ];

new ShockWave, BlueFlare2, JetPackSprite, iBeamSprite;

new GodMode_Countdown[ 33 ];
new Teleport_Cooldown[ 33 ];
new iHookOrigin[ 33 ][ 3 ];
new Float:LastMessage[ 33 ];

new WpnName[ 32 ];
new Float:cl_pushangle[ 33 ][ 3 ];

public plugin_init(  ) {
	
	register_plugin( PLUGIN, VERSION, "YONTU" );
	
	register_clcmd( "+hook", "ClCmdUseHook" );
	register_clcmd( "-hook", "ClCmdStopUsingHook" );
	register_clcmd( "teleport", "ClCmdUseTeleport" );
	register_clcmd( "godmode", "ClCmdUseGodmode" );
	register_clcmd( "say /vm", "ClCmdSayVipMenu" );
	register_clcmd( "say_team /vm", "ClCmdSayVipMenu" );
	
	register_event( "CurWeapon", "event_CurWeapon", "be", "1=1" );
	register_event( "CurWeapon", "CurWeapon2", "be", "1=1" );
	
	register_forward( FM_EmitSound, "fw_EmitSounds" );
	
	register_logevent( "fw_RoundStart", 2 , "1=Round_Start" );
	
	RegisterHam( Ham_Player_Jump, "player", "Ham_bacon_playerJumping" );
	RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
	
	g_iCvarFurienVipHasChosen = register_cvar( "f_vip_chose", "100" );
	g_iCvarCooldownTeleport = register_cvar( "f_vip_teleport_cooldown", "10" );
	g_iCvarTeleportRange = register_cvar( "f_vip_teleport_range", "123456789" );
	g_iCvarNoRecoil = register_cvar( "f_vip_norecoil", "0.0" );
	g_iCvarInvisibilityAmount = register_cvar( "f_vip_invisibility_amount", "15" );
	g_iCvarGodmodeCountDown = register_cvar( "f_vip_godmode_cooldown", "15" );
	g_iCvarGodmodeTime = register_cvar( "f_vip_godmode_time", "10" );
	//g_iCvar[  ] = register_cvar( "f_vip_", "" );

	for( new i = 1; i <= CSW_P90; i++ ) {

		if( !( NORECOIL_WPN_BS & ( 1<<i ) ) && get_weaponname( i, WpnName, charsmax( WpnName ) ) ) {

			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack" );
			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack_post", 1 );
		}
	}
}

public plugin_precache( ) {
	
	precache_model( v_CB );
	precache_model( p_CB );
	precache_sound( g_szHook );
	
	ShockWave = precache_model( "sprites/shockwave.spr" );
	BlueFlare2 = precache_model( "sprites/blueflare2.spr" );
	JetPackSprite = precache_model( "sprites/explode1.spr" );
	iBeamSprite = precache_model( "sprites/plasma.spr" );

	static i;
	for( i = 0; i <= charsmax( Blood ); i++ )
		g_Blood[ i ] = precache_model( Blood[ i ] );

	for( i = 0; i <= charsmax( CombatKnifeSoundList ); i++ )
		precache_sound( CombatKnifeSoundList[ i ] );
}

public client_putinserver( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public client_disconnect( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public RemoveAll( id ) {
	
	Teleport[ id ] = false;
	Speed[ id ] = false;
	Jetpack[ id ] = false;
	Invisibility[ id ] = false;
	UnlimitedClip[ id ] = false;
	CombatKnife[ id ] = false;
	GodMode[ id ] = false;
}

public fw_RoundStart(  ) {
	
	new szPlayers[ 32 ], iNum;
	get_players( szPlayers, iNum, "p" );
	
	for( new i = 0; i < iNum; i++)  {
		
		g_iUserHasChossen[ i ] = false;
		g_iUserHasUClip[ i ] = false;
		g_iUserHasTeleport[ i ] = false;
		g_iUserHasJetPack[ i ] = false;
		g_iUserHasSpeed[ i ] = false;
		g_iUserHasInvisibility[ i ] = false;
		g_iUserHasHook[ i ] = false;
		g_iUserHasCombatKnife[ i ] = false;
		g_iUserHasNoRecoil[ i ] = false;
		g_iUserHasGodmode[ i ] = false;
		Teleport[ i ] = false;
		Speed[ i ] = false;
		Jetpack[ i ] = false;
		Invisibility[ i ] = false;
		UnlimitedClip[ i ] = false;
		CombatKnife[ i ] = false;
		GodMode[ i ] = false;
	}
}

public Ham_PlayerSpawnPost( id ) {
	
	if( !is_user_alive( id ) || !is_user_connected( id ) )  return HAM_IGNORED;
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
	
	return HAM_IGNORED;
}

public ClCmdSayVipMenu( id )
{
	if( is_user_alive( id ) || !is_user_alive( id ))
	{
		if( g_iUserHasChossen[ id ] >= get_pcvar_num( g_iCvarFurienVipHasChosen ) )
		{
			set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
			show_hudmessage( id, "Ai folosit deja meniul de %d ori !", get_pcvar_num( g_iCvarFurienVipHasChosen ) );
			return 1;
		}
		
		if( get_user_flags( id ) & ACCESS_VIP && get_user_team( id ) == 1 ) {
			
			set_task( 0.1, "ShowFurienVipMenu", id );
		}
		
		if( get_user_flags( id ) & ACCESS_VIP && get_user_team( id ) == 2 ) {
			
			set_task( 0.1, "ShowSurvivorVipMenu", id );
		}
		if( !get_user_flags( id ) & ACCESS_VIP )
		{
			ColorChat( id, GREEN, "%s^x01 Nu esti membru^x03 VIP^x01. Doneaza !!!", g_szTag );
		}
	}
	
	else {
		
		ColorChat( id, GREEN, "%s^x01 Nu esti membru^x03 VIP^x01. Doneaza !!!", g_szTag );
	}
	
	return 1;
	
}

public ShowFurienVipMenu( id ) {    
	
	new szMenu = menu_create( "\rFurien \yV\rI\wP\r Menu", "FurienMenuGiver" );
	
	new iMoney = cs_get_user_money( id );
	
	// COMBAT KNIFE
	if( CombatKnife[ id ] ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rAlready Have", "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 7000 ) {
		
		menu_additem( szMenu, "\dCombat Knife -\r No Money", "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rOnly Alive", "1", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 7000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yCombat Knife\r (\yKnock Back\r)\w -\r [\y 7000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
		
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y100 HP\w + \y100 AP\w -\r [\y 1000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) && iMoney < 5000 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// TELEPORT
	if( Teleport[ id ] ) {
		
		menu_additem( szMenu, "\dTeleport - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8000 ) {
		
		menu_additem( szMenu, "\dTeleport -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dTeleport - \rOnly Alive", "4", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 8000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yTeleport\w -\r [\y 8000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// SPEED
	if( Speed[ id ] ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rAlready Have" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 6500 ) {
		
		menu_additem( szMenu, "\dSpeed -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}

	else if( !Speed[ id ] || iMoney >= 6500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y500 Speed\w -\r [\y 6500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// HOOK
	if( Hook[ id ] ) {
		
		menu_additem( szMenu, "\dHook - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 12000 ) {
		
		menu_additem( szMenu, "\dHook -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dHook - \rOnly Alive", "6", 0 );
	}

	else if( !Hook[ id ] || iMoney >= 12000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yHook\w -\r [\y 12000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// GODMODE
	if( GodMode[ id ] ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rAlready Have", "7", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 15000 ) {
		
		menu_additem( szMenu, "\dZeus Mode -\r No Money", "7", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rOnly Alive", "7", 0 );
	}

	else if( !GodMode[ id ] || iMoney >= 15000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yZeus Mode\w -\r [\y 15000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "7", 0 );
		cs_set_user_money( id, iMoney );
	}

	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public ShowSurvivorVipMenu( id ) { 
	
	new szMenu = menu_create( "\rHumans \yV\rI\wP\r Menu", "HumansMenuGiver" );
	new iMoney = cs_get_user_money( id );
	
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y50 HP\w +\y 50 AP\w -\r [\y 1500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// JETPACK
	if( Jetpack[ id ] ) {
		
		menu_additem( szMenu, "\dJetPack - \rAlready Have", "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 9000 ) {
		
		menu_additem( szMenu, "\dJetPack -\r No Money", "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dJetPack - \rOnly Alive", "2", 0 );
	}

	else if( !Jetpack[ id ] || iMoney >= 9000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yJetPack\w -\r [\y 9000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) || is_user_alive( id ) && iMoney < 5500 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// UNLIMITED CLIP
	if( UnlimitedClip[ id ] ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8500 ) {
		
		menu_additem( szMenu, "\dUnlimited Clip -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rOnly Alive", "4", 0 );
	}

	else if( !UnlimitedClip[ id ] || iMoney >= 8500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yUnlimited\y Clip\w -\r [\y 8500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// INVISIBILITY
	if( Invisibility[ id ] ) {
		
		menu_additem( szMenu, "\dInvisibility - \rAlready Have", "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 4000 ) {
		
		menu_additem( szMenu, "\dInvisibility -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dInvisibility - \rOnly Alive", "5", 0 );
	}

	else if( !Invisibility[ id ] || iMoney >= 4000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yInvisibility\w -\r [\y 4000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}

	// NO RECOIL
	if( NoRecoil[ id ] ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 3500 ) {
		
		menu_additem( szMenu, "\dNo Recoil -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rOnly Alive", "6", 0 );
	}

	else if( !NoRecoil[ id ] || iMoney >= 3500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yNo Recoil\w -\r [\y 3500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public FurienMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// COMBAT KNIFE
		case 1: {
			
			if( !CombatKnife[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 7000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 7000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 Combat Knife^x01!", g_szTag );
					cs_set_user_money( id, iMoney );

					g_iUserHasChossen[ id ] = true;
					g_iUserHasCombatKnife[ id ] = true;
					CombatKnife[ id ] = true;
					CurWeapon2( id );

					engclient_cmd( id, "weapon_knife" );
					
					return 1;
				}
			}
		}
		
		// HP + AP
		case 2: {
			
			new iMoney = cs_get_user_money( id ) - 1000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1000 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}
		
			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}

			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );
				
				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat!", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// TELEPORT
		case 4: {
			
			if( !Teleport[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti teleporta, apasand pe tasta^x03 X^x01 !", g_szTag );
					client_cmd( id, "bind x teleport" );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasTeleport[ id ] = true;
					Teleport[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// SPEED
		case 5: {
			
			if( !Speed[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 6500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 6500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit mai rapid!^x03 Schimba arma^x01!", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasSpeed[ id ] = true;
					Speed[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// HOOK
		case 6: {
			
			if( !Hook[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 12000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 12000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti agata de pereti, apasand pe tasta^x03 Z^x01 !", g_szTag );
					client_cmd( id, "bind z +hook" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasHook[ id ] = true;
					Hook[ id ] = true;
					
					return 1;
				}
			}
		}

		// GODMODE
		case 7: {
			
			if( !GodMode[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 15000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 15000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum poti deveni invincibil, apasand pe tasta^x03 V^x01 !", g_szTag );
					client_cmd( id, "bind v godmode" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasGodmode[ id ] = true;
					GodMode[ id ] = true;
					
					return 1;
				}
			}
		}
	}
	
	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

public HumansMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// HP + AP
		case 1: {
			
			new iMoney = cs_get_user_money( id ) - 1500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1500 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// JETPACK
		case 2: {
			
			if( !Jetpack[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 9000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 9000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 JetPack^x01! Apasa^x03 SPACE^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasJetPack[ id ] = true;
					Jetpack[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}

			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}
			
			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );				

				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat !", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// UNLIMITED CLIP
		case 4: {
			
			if( !UnlimitedClip[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ti-ai cumparat^x03 gloante infinite^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasUClip[ id ] = true;
					UnlimitedClip[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// INVISIBILITY
		case 5: {
			
			if( !Invisibility[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 4000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 4000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit^x03 90%^x01 invizibil !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasInvisibility[ id ] = true;
					Invisibility[ id ] = true;
					
					return 1;
				}
			}
		}

		// NO RECOIL
		case 6: {
			
			if( !NoRecoil[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 3500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 3500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 De acum inainte, tinta nu-ti va mai sari !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasNoRecoil[ id ] = true;
					NoRecoil[ id ] = true;
					
					return 1;
				}
			}
		}
	}

	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

// JETPACK
public Ham_bacon_playerJumping( id ) {

	if( g_iUserHasJetPack[ id ] ) {

		new iOrigin[ 3 ];
		get_user_origin( id, iOrigin, 0 );

		iOrigin[ 2 ] -= 20;
		
		new Float:fVelocity[ 3 ];
		pev( id, pev_velocity, fVelocity );

		fVelocity[ 2 ] += 93;
		
		set_pev( id, pev_velocity, fVelocity );
		create_flame( iOrigin );
	}
}

stock create_flame( origin[ 3 ] ) {

	message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
	write_byte( TE_SPRITE );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( JetPackSprite );
	write_byte( 3 );
	write_byte( 99 );
	message_end();
}

public event_CurWeapon( id ) {

	if( get_user_flags( id ) & ACCESS_VIP && g_iUserHasUClip[ id ] ) {

		new iWeapon = read_data( 2 );
		
		if( !( NO_UCLIP_WEAPONS_BITSUM & ( 1 << iWeapon ) ) )
			set_pdata_int( get_pdata_cbase( id, OFFSET_ACTIVE_ITEM ), OFFSET_CLIPAMMO, g_iMaxClips[ iWeapon ], OFFSET_LINUX_WEAPONS );
	}
}

public CurWeapon2( id ) {

	if( g_iUserHasSpeed[ id ] ) {

		set_user_maxspeed( id, 500.0 );
	}

	else {

		set_user_maxspeed( id, 260.0 );
	}

	if( g_iUserHasInvisibility[ id ] ) {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num( g_iCvarInvisibilityAmount ) );
	}
	
	else {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 250 );
	}

	if( get_user_weapon( id ) == CSW_KNIFE && g_iUserHasCombatKnife[ id ] ) {
	
		set_pev( id, pev_viewmodel2, v_CB );
		set_pev( id, pev_weaponmodel2, p_CB );
	}
}

// HOOK
public ClCmdUseHook( id ) {

	if( !g_iUserHasHook[ id ] )
		return 1;
		
	emit_sound( id,CHAN_VOICE, g_szHook, 1.0, ATTN_NORM, 0, PITCH_NORM );
	set_pev( id, pev_gravity, 0.0 );
	
	set_task( 0.1,"TaskHookPrethink", id + HookTask , "", 0, "b" );
	
	Hook[ id ] = true;
	iHookOrigin[ id ][ 0 ] = 999999;
	
	TaskHookPrethink( id + HookTask );
	return 1;
}

public ClCmdStopUsingHook( id ) {

	set_pev( id, pev_gravity, 1.0 );
	Hook[ id ] = false;
	
	return 1;
}

// TELEPORT
public ClCmdUseTeleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] )
		return PLUGIN_CONTINUE;
	
	if( Teleport_Cooldown[ id ] ) {

		ColorChat( id, TEAM_COLOR, "^x04%s^x01 Puterea iti va reveni in^x03 %d secunde^x01.", g_szTag, Teleport_Cooldown[ id ] );
		return PLUGIN_CONTINUE;
	}

	else if( teleport( id ) ) {

		emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
		remove_task( id );
		Teleport_Cooldown[ id ] = get_pcvar_num( g_iCvarCooldownTeleport );

		set_task( 1.0, "CountDown_Teleport", id, _, _, "b" );

		set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );
		if( get_pcvar_num( g_iCvarCooldownTeleport ) != 1 ) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunde.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}

		if( get_pcvar_num( g_iCvarTeleportRange ) == 1) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunda.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}
	}

	else {

		ColorChat( id, TEAM_COLOR, "^x04%s^x03 Pozitia de teleportare nu e corecta.", g_szTag );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_Teleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] ) {

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
		return PLUGIN_HANDLED;
	}

	set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] == 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunda.", Teleport_Cooldown[ id ] );
	}

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] > 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunde.", Teleport_Cooldown[ id ] );
	}

	if( Teleport_Cooldown[ id ] <= 0 ) {

		show_hudmessage( id, "Ti-a revenit puterea !" );

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
	}

	return PLUGIN_HANDLED;
}

// GODMODE
public ClCmdUseGodmode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] )
		return PLUGIN_CONTINUE;

	if( GodMode_Countdown[ id ] && LastMessage[ id ] < get_gametime(  ) ) {
        
		LastMessage[ id ] = get_gametime(  ) + 1.0;
	}
    
	else if ( godmode( id ) ) {
        
		GodMode_Countdown[ id ] = get_pcvar_num( g_iCvarGodmodeCountDown );
		CountDown_GodMode( id );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_GodMode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] ) {

		remove_task( id );
		GodMode_Countdown[ id ] = 0;
		return PLUGIN_HANDLED;
	}
    
	else if( GodMode_Countdown[ id ] > 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti vei putea folosi puterea in %d secund%s !", GodMode_Countdown[ id ], GodMode_Countdown[ id ] == 1 ? "a" : "e" );

		GodMode_Countdown[ id ]--;
		set_task( 1.0, "CountDown_GodMode", id );
	}

	else if( GodMode_Countdown[ id ] <= 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti poti folosi puterea din nou !" );

		GodMode_Countdown [ id ] = 0;
	}
	
	return PLUGIN_HANDLED;
}

bool:godmode( id ) {
    
	set_user_godmode( id, 1 );

	set_task( get_pcvar_float( g_iCvarGodmodeTime ), "stopgodmode", id );

	return true;
}

public stopgodmode( id ) {
    
	set_user_godmode( id, 0 );

	set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
	show_hudmessage( id, "Nu mai ai esti invincibil !" );

	return 1;
}

// TELEPORT
bool:teleport( id ) {

	new Float:vOrigin[ 3 ], Float:vNewOrigin[ 3 ], Float:vNormal[ 3 ], Float:vTraceDirection[ 3 ], Float:vTraceEnd[ 3 ];
	
	pev( id, pev_origin, vOrigin );
	
	velocity_by_aim( id, get_pcvar_num( g_iCvarTeleportRange ), vTraceDirection );
	xs_vec_add( vTraceDirection, vOrigin, vTraceEnd );
	
	engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 );
	
	new Float:flFraction;
	get_tr2( 0, TR_flFraction, flFraction );

	if( flFraction < 1.0 ) {

		get_tr2( 0, TR_vecEndPos, vTraceEnd );
		get_tr2( 0, TR_vecPlaneNormal, vNormal );
	}
	
	xs_vec_mul_scalar( vNormal, 40.0, vNormal );
	xs_vec_add( vTraceEnd, vNormal, vNewOrigin );
	
	if( is_player_stuck( id, vNewOrigin ) )
		return false;
	
	emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
	tele_effect( vOrigin );
	
	engfunc( EngFunc_SetOrigin, id, vNewOrigin );
	
	tele_effect2( vNewOrigin );

	return true;
}

stock is_player_stuck( id, Float:originF[ 3 ] ) {

	engfunc( EngFunc_TraceHull, originF, originF, 0, ( pev( id, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN, id, 0 );
	
	if( get_tr2( 0, TR_StartSolid ) || get_tr2( 0, TR_AllSolid ) || !get_tr2( 0, TR_InOpen ) )
		return true;
	
	return false;
}

stock tele_effect( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );
	write_byte( 0 );
	write_byte( 0 );
	write_byte( 3 );
	write_byte( 60 );
	write_byte( 0 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 0 );
	message_end(  );
}

stock tele_effect2( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );	// Sprite
	write_byte( 0 );	// Startfrate
	write_byte( 0 );	// Framerate
	write_byte( 4 );	// Life
	write_byte( 80 );	// Width
	write_byte( 0 );	// Amplitude
	write_byte( 255 );	// Red
	write_byte( 255 );	// Green
	write_byte( 255 );	// Blue
	write_byte( 255 );	// Brightness
	write_byte( 0 );	// Speed
	message_end(  );
	
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_SPRITETRAIL );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 40 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( BlueFlare2 );
	write_byte( 30 );
	write_byte( 10 );
	write_byte( 1 );
	write_byte( 50 );
	write_byte( 10 );
	message_end(  );
}

// HOOK
public TaskHookPrethink( id ) {

	id -= HookTask;

	if( !is_user_alive( id ) ) {

		Hook[ id ] = false;
	}
	
	if( !Hook[ id ] ) {

		remove_task( id + HookTask );
		return 1;
	}

	static iOrigin1[ 3 ];
	new Float:fOrigin[3];
	get_user_origin( id, iOrigin1 );
	pev( id, pev_origin, fOrigin);

	if( iHookOrigin[ id ][ 0 ] == 999999 ) {

		static iOrigin2[ 3 ];
		get_user_origin( id, iOrigin2, 3 );
		iHookOrigin[ id ][ 0 ] = iOrigin2[ 0 ];
		iHookOrigin[ id ][ 1 ] = iOrigin2[ 1 ];
		iHookOrigin[ id ][ 2 ] = iOrigin2[ 2 ];
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( 1 );
	write_short( id );
	write_coord( iHookOrigin[ id ][ 0 ] );
	write_coord( iHookOrigin[ id ][ 1 ]);
	write_coord( iHookOrigin[ id ][ 2 ] );
	write_short( iBeamSprite );
	write_byte( 1 );
	write_byte( 1 );
	write_byte( 5 );
	write_byte( 18 );
	write_byte( 0 );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( 200 );
	write_byte( 0 );
	message_end( );

	static Float:fVelocity[ 3 ];
	fVelocity[ 0 ] = ( float( iHookOrigin[ id ][ 0 ] ) - float( iOrigin1[ 0 ] ) ) * 3.0;
	fVelocity[ 1 ] = ( float( iHookOrigin[ id ][ 1 ] ) - float( iOrigin1[ 1 ] ) ) * 3.0;
	fVelocity[ 2 ] = ( float( iHookOrigin[ id ][ 2 ] ) - float( iOrigin1[ 2 ] ) ) * 3.0;

	static Float:fY;
	fY = fVelocity[ 0 ] * fVelocity[ 0 ] + fVelocity[ 1 ] * fVelocity[ 1 ] + fVelocity[ 2 ] * fVelocity[ 2 ];

	static Float:fX;
	fX = ( HookSpeed ) / floatsqroot( fY );

	fVelocity[ 0 ] *= fX;
	fVelocity[ 1 ] *= fX;
	fVelocity[ 2 ] *= fX;

	set_velo( id, fVelocity );

	return 0;
}

public set_velo( id, Float:fVelocity[ 3 ] ) {

	return set_pev( id, pev_velocity, fVelocity );
}

// COMBAT KNIFE
public fw_EmitSounds( const id, const channel, const sample[  ] ) {

	if( is_user_alive( id ) ) {

		if( g_iUserHasCombatKnife[ id ] ) {

			for( new i = 0; i < sizeof CombatKnifeSoundList; i++ ) {

				if( equal( sample, OriginalKnifeSounds[ i ] ) ) {

					emit_sound( id, channel, CombatKnifeSoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}

public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:b_gDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) )
		return HAM_IGNORED;
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE )
 		return HAM_IGNORED;
 	
	new g_bHit, target;
	get_user_aiming( iAttacker, target, g_bHit );

	new bool:g_bHead = ( g_bHit == HIT_HEAD );
	new Float:default_dmg = 1.0;

	if( pev( iAttacker, pev_button, IN_ATTACK ) ) {

		default_dmg = g_bHead ? CB_PRIM_HEAD_DMG : CB_PRIM_DMG;
	}

	else {

		default_dmg = g_bHead ? CB_SEC_HEAD_DMG : CB_SEC_DMG;
	}

	SetHamParamFloat( 4, b_gDamage * default_dmg );

	return HAM_HANDLED;
}

public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:g_bDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) || !is_user_alive( iVictim ) ) {

		return HAM_IGNORED;
	}
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE ) {
	
 		return HAM_IGNORED;
	}

	new Float:Origin[ 3 ], Float:Origin2[ 3 ], Float:Velocity[ 3 ];

	pev( iAttacker, pev_origin, Origin );
	pev( iVictim, pev_origin, Origin2 );

	xs_vec_sub( Origin2, Origin, Velocity );
	xs_vec_normalize( Velocity, Velocity );
	xs_vec_mul_scalar( Velocity, ( CB_KNOCKBACK * 100.0 ), Velocity );

	if( Velocity[ 2 ] <= 100.0 ) {

		Velocity[ 2 ] = random_float( 150.0, 250.0 );
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BLOODSPRITE );
	engfunc( EngFunc_WriteCoord, Origin2[ 0 ] );
	engfunc( EngFunc_WriteCoord, Origin2[ 1] );
	engfunc( EngFunc_WriteCoord, Origin2[ 2] );
	write_short( g_Blood[ 0 ] );
	write_short( g_Blood[ 1 ] );
	write_byte( 77 );
	write_byte( 4 );
	message_end(  );

	set_pev( iVictim, pev_velocity, Velocity );

	return HAM_HANDLED;
}

// NO RECOIL
public fwd_primary_attack( ent ) {

	new id = pev( ent, pev_owner );

	pev( id, pev_punchangle, cl_pushangle[ id ] );
	
	return HAM_IGNORED;
}

public fwd_primary_attack_post( ent ) {

	new id = pev( ent, pev_owner );

	if( g_iUserHasNoRecoil[ id ] ) {

		new Float:push[ 3 ];

		pev( id, pev_punchangle, push );
		xs_vec_sub( push, cl_pushangle[ id ], push );
		xs_vec_mul_scalar( push, get_pcvar_float( g_iCvarNoRecoil ), push );
		xs_vec_add( push, cl_pushangle[ id ], push );
		set_pev( id, pev_punchangle, push );

		return HAM_IGNORED;
	}

	return HAM_IGNORED;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Uite incearca asa :)
Last edited by Truth* on 02 Jan 2014, 22:04, edited 1 time in total.
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

31 Dec 2013, 08:31

Tot la fel... Accesu' "d" merge la vipi , dar e un bug de da voie si la adminii care nu au acest acces
Intermediez tranzactii cand am chef si timp ! :)

Image
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

31 Dec 2013, 12:12

| Afiseaza codul
/*===========================================================================================================================

				        *********************************************************
				       *********** [ Advanced VIP Menu Furien 0.0.1 ] ************
				        *********************************************************

		-------------------------
		   ---- * Description * ----
		-------------------------
			- Un meniu de VIP, mai avansat, care ofera anumitor jucatori de pe server sa beneficieze de Hook, Teleport, Unlimited Clip,
			  Respwan, HP + AP, Super Knife, Viteza, Invizibilitate si altele.
	
		-------------------------
		   --- * Configuration * ---
		-------------------------

			f_vip_chose "valoare"	-	De cate ori pe runda sa fie accesat meniul
			f_vip_teleport_cooldown "valoare"	-	Cooldown la Teleport
			f_vip_teleport_range "123456789"	-	Teleport Range
			f_vip_norecoil", "valoare.0"	-	- Intre 0.9 si 0.0 (sa fie cu .zecimala) No recoil pentru arme
			f_vip_invisibility_amount "valoare"		- Intre 0 si 250 ( Cat de invizibil sa fie VIP-ul dupa ce cumpara Invizibilitate )
			f_vip_godmode_cooldown "valoare"	- Odata la cat timp sa poti folosi Zeus Mode
			f_vip_godmode_time "valoare"	- Cat timp poti avea Zeus Mode

		-------------------------
		   ----- * Modules * -----
		-------------------------
					- Hamsandwich
				- Fakemeta
			- Cstrike
		- Fun

		-------------------------
		      --- * Credits * ---
		-------------------------

			- tuty: Jetpack;
			- CSO Knife Generator: ZombiMod.ru;
			- CoolDown la Puteri: sDs|Aragon*;
			- Hook: Kz Arg Mod by ReymonARG!

		-------------------------
		    --- * Changelog * ---
		-------------------------

			* v0.0.1:
			   - Initial release ( 15th Nov 2013 )
				
		-------------------------
		    --- * Update * ---
		-------------------------

			- Sistem de Grenade
			- Rope
			- Adaugare Cvar-uri, o sa-l fac pe "format text"
			- And Other...

				        *********************************************************
				       *********** [ Advanced Furien VIP Menu 0.0.1 ] ************
				        *********************************************************

===========================================================================================================================*/

#include < amxmodx >
#include < hamsandwich >
#include < cstrike >
#include < xs >
#include < fun >
#include < fakemeta >
#include < CC_ColorChat >
//#include < dhudmessage >

//#pragma tabsize 1
#pragma semicolon 1

#define PLUGIN "Furien VIP Menu"
#define VERSION "0.0.1"

#define ACCESS_VIP ADMIN_BAN

// Unlimited Clip & No Recoil
#define OFFSET_LINUX_WEAPONS 	4
#define OFFSET_WEAPON_OWNER	41
#define OFFSET_CLIPAMMO		51
#define OFFSET_ACTIVE_ITEM 	373
#define NO_UCLIP_WEAPONS_BITSUM ( ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) )

// Teleport
#define FFADE_IN	 	0x0000
#define FFADE_OUT 	0x0001
#define FFADE_MODULATE	0x0002
#define FFADE_STAYOUT 	0x0004

// Knock Back Combat Knife
#define CB_SEC_DMG		8.0
#define CB_PRIM_DMG		5.0
#define CB_SEC_HEAD_DMG		4.0
#define CB_PRIM_HEAD_DMG	20.0
#define CB_KNOCKBACK		20

// For Hook
#define HookTask		24896172
#define HookSpeed	800.0

// Cvar's
new g_iCvarFurienVipHasChosen,
	g_iCvarCooldownTeleport,
	g_iCvarTeleportRange,
	g_iCvarNoRecoil,
	g_iCvarInvisibilityAmount,
	g_iCvarGodmodeCountDown,
	g_iCvarGodmodeTime;

new const g_szTag[  ] = "[ Furien VIP Menu ]";
new const g_iMaxClips[  ] = { 0, 13, 0, 10, 0, 7, 0, 30, 30, 0, 15, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 0, 7, 30, 30, 0, 50 };
new const SOUND_BLINK[  ] = { "weapons/flashbang-1.wav" };
new const g_szHook[  ] = "weapons/xbow_fire1.wav";

new const CombatKnifeSoundList[  ][  ] = {
	
	"combatknife/combatknife_deploy1.wav",
	"combatknife/combatknife1.wav",
	"combatknife/combatknife2.wav",
	"combatknife/combatknife_hwall.wav",
	"combatknife/combatknife_slash1.wav",
	"combatknife/combatknife_stab.wav"
};

new const OriginalKnifeSounds[  ][  ] = {
	
	"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 p_CB[  ] = "models/combat_knife/p_combatknife.mdl";
new const v_CB[  ] = "models/combat_knife/v_combatknife.mdl";

new const Blood[  ][  ] = {
	
	"sprites/blood.spr",
	"sprites/bloodspray.spr"
};
static g_Blood[ sizeof Blood ];

const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
const NORECOIL_WPN_BS = ( ( 1<<2 ) | ( 1<<CSW_HEGRENADE ) | ( 1<<CSW_SMOKEGRENADE ) | ( 1<<CSW_FLASHBANG ) | ( 1<<CSW_KNIFE ) | ( 1<<CSW_C4 ) );

// FURIEN:
new bool:Teleport[ 33 ], bool:Speed[ 33 ], bool:Hook[ 33 ], bool:CombatKnife[ 33 ], bool:GodMode[ 33 ];
// HUMAN:
new bool:Jetpack[ 33 ], bool:Invisibility[ 33 ], bool:UnlimitedClip[ 33 ], bool:NoRecoil[ 33 ];

new g_iUserHasChossen[ 33 ];
new bool:g_iUserHasUClip[ 33 ];
new bool:g_iUserHasTeleport[ 33 ];
new bool:g_iUserHasJetPack[ 33 ];
new bool:g_iUserHasSpeed[ 33 ];
new bool:g_iUserHasInvisibility[ 33 ];
new bool:g_iUserHasHook[ 33 ];
new bool:g_iUserHasCombatKnife[ 33 ];
new bool:g_iUserHasNoRecoil[ 33 ];
new bool:g_iUserHasGodmode[ 33 ];

new ShockWave, BlueFlare2, JetPackSprite, iBeamSprite;

new GodMode_Countdown[ 33 ];
new Teleport_Cooldown[ 33 ];
new iHookOrigin[ 33 ][ 3 ];
new Float:LastMessage[ 33 ];

new WpnName[ 32 ];
new Float:cl_pushangle[ 33 ][ 3 ];

public plugin_init(  ) {
	
	register_plugin( PLUGIN, VERSION, "YONTU" );
	
	register_clcmd( "+hook", "ClCmdUseHook" );
	register_clcmd( "-hook", "ClCmdStopUsingHook" );
	register_clcmd( "teleport", "ClCmdUseTeleport" );
	register_clcmd( "godmode", "ClCmdUseGodmode" );
	register_clcmd( "say /vm", "ClCmdSayVipMenu" );
	register_clcmd( "say_team /vm", "ClCmdSayVipMenu" );
	
	register_event( "CurWeapon", "event_CurWeapon", "be", "1=1" );
	register_event( "CurWeapon", "CurWeapon2", "be", "1=1" );
	
	register_forward( FM_EmitSound, "fw_EmitSounds" );
	
	register_logevent( "fw_RoundStart", 2 , "1=Round_Start" );
	
	RegisterHam( Ham_Player_Jump, "player", "Ham_bacon_playerJumping" );
	RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Post", 1 );
	
	g_iCvarFurienVipHasChosen = register_cvar( "f_vip_chose", "100" );
	g_iCvarCooldownTeleport = register_cvar( "f_vip_teleport_cooldown", "10" );
	g_iCvarTeleportRange = register_cvar( "f_vip_teleport_range", "123456789" );
	g_iCvarNoRecoil = register_cvar( "f_vip_norecoil", "0.0" );
	g_iCvarInvisibilityAmount = register_cvar( "f_vip_invisibility_amount", "15" );
	g_iCvarGodmodeCountDown = register_cvar( "f_vip_godmode_cooldown", "15" );
	g_iCvarGodmodeTime = register_cvar( "f_vip_godmode_time", "10" );
	//g_iCvar[  ] = register_cvar( "f_vip_", "" );

	for( new i = 1; i <= CSW_P90; i++ ) {

		if( !( NORECOIL_WPN_BS & ( 1<<i ) ) && get_weaponname( i, WpnName, charsmax( WpnName ) ) ) {

			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack" );
			RegisterHam( Ham_Weapon_PrimaryAttack, WpnName, "fwd_primary_attack_post", 1 );
		}
	}
}

public plugin_precache( ) {
	
	precache_model( v_CB );
	precache_model( p_CB );
	precache_sound( g_szHook );
	
	ShockWave = precache_model( "sprites/shockwave.spr" );
	BlueFlare2 = precache_model( "sprites/blueflare2.spr" );
	JetPackSprite = precache_model( "sprites/explode1.spr" );
	iBeamSprite = precache_model( "sprites/plasma.spr" );

	static i;
	for( i = 0; i <= charsmax( Blood ); i++ )
		g_Blood[ i ] = precache_model( Blood[ i ] );

	for( i = 0; i <= charsmax( CombatKnifeSoundList ); i++ )
		precache_sound( CombatKnifeSoundList[ i ] );
}

public client_putinserver( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public client_disconnect( id ) {
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
}

public RemoveAll( id ) {
	
	Teleport[ id ] = false;
	Speed[ id ] = false;
	Jetpack[ id ] = false;
	Invisibility[ id ] = false;
	UnlimitedClip[ id ] = false;
	CombatKnife[ id ] = false;
	GodMode[ id ] = false;
}

public fw_RoundStart(  ) {
	
	new szPlayers[ 32 ], iNum;
	get_players( szPlayers, iNum, "p" );
	
	for( new i = 0; i < iNum; i++)  {
		
		g_iUserHasChossen[ i ] = false;
		g_iUserHasUClip[ i ] = false;
		g_iUserHasTeleport[ i ] = false;
		g_iUserHasJetPack[ i ] = false;
		g_iUserHasSpeed[ i ] = false;
		g_iUserHasInvisibility[ i ] = false;
		g_iUserHasHook[ i ] = false;
		g_iUserHasCombatKnife[ i ] = false;
		g_iUserHasNoRecoil[ i ] = false;
		g_iUserHasGodmode[ i ] = false;
		Teleport[ i ] = false;
		Speed[ i ] = false;
		Jetpack[ i ] = false;
		Invisibility[ i ] = false;
		UnlimitedClip[ i ] = false;
		CombatKnife[ i ] = false;
		GodMode[ i ] = false;
	}
}

public Ham_PlayerSpawnPost( id ) {
	
	if( !is_user_alive( id ) || !is_user_connected( id ) )  return HAM_IGNORED;
	
	RemoveAll( id );
	g_iUserHasChossen[ id ] = false;
	g_iUserHasUClip[ id ] = false;
	g_iUserHasTeleport[ id ] = false;
	g_iUserHasJetPack[ id ] = false;
	g_iUserHasSpeed[ id ] = false;
	g_iUserHasInvisibility[ id ] = false;
	g_iUserHasHook[ id ] = false;
	g_iUserHasCombatKnife[ id ] = false;
	g_iUserHasNoRecoil[ id ] = false;
	g_iUserHasGodmode[ id ] = false;
	
	return HAM_IGNORED;
}

public ClCmdSayVipMenu( id )
{
	if( is_user_alive( id ) || !is_user_alive( id ))
	{
		if( g_iUserHasChossen[ id ] >= get_pcvar_num( g_iCvarFurienVipHasChosen ) )
		{
			set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
			show_hudmessage( id, "Ai folosit deja meniul de %d ori !", get_pcvar_num( g_iCvarFurienVipHasChosen ) );
			return 1;
		}
		
		if( get_user_flags( id ) & ACCESS_VIP && get_user_team( id ) == 1 ) {
			
			set_task( 0.1, "ShowFurienVipMenu", id );
		}
		
		if( get_user_flags( id ) & ACCESS_VIP && get_user_team( id ) == 2 ) {
			
			set_task( 0.1, "ShowSurvivorVipMenu", id );
		}
		if( !get_user_flags( id ) & ACCESS_VIP )
		{
			ColorChat( id, GREEN, "%s^x01 Nu esti membru^x03 VIP^x01. Doneaza !!!", g_szTag );
		}
	}
	
	else {
		
		ColorChat( id, GREEN, "%s^x01 Nu esti membru^x03 VIP^x01. Doneaza !!!", g_szTag );
	}
	
	return 1;
	
}

public ShowFurienVipMenu( id ) {    
	
	new szMenu = menu_create( "\rFurien \yV\rI\wP\r Menu", "FurienMenuGiver" );
	
	new iMoney = cs_get_user_money( id );
	
	// COMBAT KNIFE
	if( CombatKnife[ id ] ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rAlready Have", "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 7000 ) {
		
		menu_additem( szMenu, "\dCombat Knife -\r No Money", "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dCombat Knife - \rOnly Alive", "1", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 7000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yCombat Knife\r (\yKnock Back\r)\w -\r [\y 7000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
		
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y100 HP\w + \y100 AP\w -\r [\y 1000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) && iMoney < 5000 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// TELEPORT
	if( Teleport[ id ] ) {
		
		menu_additem( szMenu, "\dTeleport - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8000 ) {
		
		menu_additem( szMenu, "\dTeleport -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dTeleport - \rOnly Alive", "4", 0 );
	}

	else if( !Teleport[ id ] || iMoney >= 8000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yTeleport\w -\r [\y 8000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// SPEED
	if( Speed[ id ] ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rAlready Have" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 6500 ) {
		
		menu_additem( szMenu, "\dSpeed -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d500 Speed - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
	}

	else if( !Speed[ id ] || iMoney >= 6500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y500 Speed\w -\r [\y 6500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// HOOK
	if( Hook[ id ] ) {
		
		menu_additem( szMenu, "\dHook - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 12000 ) {
		
		menu_additem( szMenu, "\dHook -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dHook - \rOnly Alive", "6", 0 );
	}

	else if( !Hook[ id ] || iMoney >= 12000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yHook\w -\r [\y 12000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// GODMODE
	if( GodMode[ id ] ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rAlready Have", "7", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 15000 ) {
		
		menu_additem( szMenu, "\dZeus Mode -\r No Money", "7", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dZeus Mode - \rOnly Alive", "7", 0 );
	}

	else if( !GodMode[ id ] || iMoney >= 15000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yZeus Mode\w -\r [\y 15000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "7", 0 );
		cs_set_user_money( id, iMoney );
	}

	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public ShowSurvivorVipMenu( id ) { 
	
	new szMenu = menu_create( "\rHumans \yV\rI\wP\r Menu", "HumansMenuGiver" );
	new iMoney = cs_get_user_money( id );
	
	// HP + AP
	if( get_user_health( id ) && get_user_armor( id ) >= 250 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rMax. Health & Armor" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d50 HP + 50 AP - \rNo Money" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\d100 HP + 100 AP - \rOnly Alive" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
	}
	
	else if( is_user_alive( id ) && get_user_health( id ) || get_user_health( id ) > 250 || iMoney >= 1500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\y50 HP\w +\y 50 AP\w -\r [\y 1500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "1", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// JETPACK
	if( Jetpack[ id ] ) {
		
		menu_additem( szMenu, "\dJetPack - \rAlready Have", "2", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 9000 ) {
		
		menu_additem( szMenu, "\dJetPack -\r No Money", "2", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dJetPack - \rOnly Alive", "2", 0 );
	}

	else if( !Jetpack[ id ] || iMoney >= 9000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yJetPack\w -\r [\y 9000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "2", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// RESPAWN
	if( !is_user_alive( id ) || is_user_alive( id ) && iMoney < 5500 ) {
		
		menu_additem( szMenu, "\dRespawn -\r No Money", "3", 0 );
	}
	
	else if( is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dRespawn - \rOnly Dead", "3", 0 );
	}
	
	else if( !is_user_alive( id ) && iMoney >= 5500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yRespawn\w -\r [\y 5000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "3", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// UNLIMITED CLIP
	if( UnlimitedClip[ id ] ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rAlready Have", "4", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 8500 ) {
		
		menu_additem( szMenu, "\dUnlimited Clip -\r No Money", "4", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dUnlimited Clip - \rOnly Alive", "4", 0 );
	}

	else if( !UnlimitedClip[ id ] || iMoney >= 8500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yUnlimited\y Clip\w -\r [\y 8500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "4", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	// INVISIBILITY
	if( Invisibility[ id ] ) {
		
		menu_additem( szMenu, "\dInvisibility - \rAlready Have", "5", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 4000 ) {
		
		menu_additem( szMenu, "\dInvisibility -\r No Money", "5", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dInvisibility - \rOnly Alive", "5", 0 );
	}

	else if( !Invisibility[ id ] || iMoney >= 4000 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yInvisibility\w -\r [\y 4000\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "5", 0 );
		cs_set_user_money( id, iMoney );
	}

	// NO RECOIL
	if( NoRecoil[ id ] ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rAlready Have", "6", 0 );
	}
	
	else if( is_user_alive( id ) && iMoney < 3500 ) {
		
		menu_additem( szMenu, "\dNo Recoil -\r No Money", "6", 0 );
	}
	
	else if( !is_user_alive( id ) ) {
		
		menu_additem( szMenu, "\dNo Recoil - \rOnly Alive", "6", 0 );
	}

	else if( !NoRecoil[ id ] || iMoney >= 3500 ) {
		
		new szBuffer[ 256 ];
		formatex( szBuffer, sizeof( szBuffer ) - 1, "\yNo Recoil\w -\r [\y 3500\w $\r ]" );
		
		menu_additem( szMenu, szBuffer, "6", 0 );
		cs_set_user_money( id, iMoney );
	}
	
	menu_setprop( szMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, szMenu, 0 );
	
	return 1;
}

public FurienMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// COMBAT KNIFE
		case 1: {
			
			if( !CombatKnife[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 7000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 7000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 Combat Knife^x01!", g_szTag );
					cs_set_user_money( id, iMoney );

					g_iUserHasChossen[ id ] = true;
					g_iUserHasCombatKnife[ id ] = true;
					CombatKnife[ id ] = true;
					CurWeapon2( id );

					engclient_cmd( id, "weapon_knife" );
					
					return 1;
				}
			}
		}
		
		// HP + AP
		case 2: {
			
			new iMoney = cs_get_user_money( id ) - 1000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1000 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 100 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5000;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}
		
			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}

			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );
				
				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat!", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// TELEPORT
		case 4: {
			
			if( !Teleport[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti teleporta, apasand pe tasta^x03 X^x01 !", g_szTag );
					client_cmd( id, "bind x teleport" );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasTeleport[ id ] = true;
					Teleport[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// SPEED
		case 5: {
			
			if( !Speed[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 6500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 6500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit mai rapid!^x03 Schimba arma^x01!", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasSpeed[ id ] = true;
					Speed[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// HOOK
		case 6: {
			
			if( !Hook[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 12000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 12000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum te poti agata de pereti, apasand pe tasta^x03 Z^x01 !", g_szTag );
					client_cmd( id, "bind z +hook" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasHook[ id ] = true;
					Hook[ id ] = true;
					
					return 1;
				}
			}
		}

		// GODMODE
		case 7: {
			
			if( !GodMode[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 15000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 15000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Acum poti deveni invincibil, apasand pe tasta^x03 V^x01 !", g_szTag );
					client_cmd( id, "bind v godmode" );		
			
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasGodmode[ id ] = true;
					GodMode[ id ] = true;
					
					return 1;
				}
			}
		}
	}
	
	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

public HumansMenuGiver( id, szMenu, item ) {
	
	if( item == MENU_EXIT ) {
		
		menu_destroy( szMenu );
		return PLUGIN_HANDLED;
	}
	
	new data[ 6 ], szName[ 64 ];
	new access, callback;
	menu_item_getinfo( szMenu, item, access, data, charsmax( data ), szName, charsmax( szName ), callback );
	
	new key = str_to_num( data );
	
	switch( key ) {
		
		// HP + AP
		case 1: {
			
			new iMoney = cs_get_user_money( id ) - 1500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 1500 - YourMoney );
				return 1;
			}
			
			else {
				
				new Health = get_user_health( id );
				new Armor = get_user_armor( id );
				
				// HP
				if( Health <= 250 ) {
					
					set_user_health( id, get_user_health( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				// AP
				if( Armor <= 250 ) {
					
					set_user_armor( id, get_user_armor( id ) + 50 );
					cs_set_user_money( id, iMoney );
					
					g_iUserHasChossen[ id ] = true;
					return 1;
				}
				
				if( Armor && Health > 250 ) {
					
					ColorChat( id, GREEN, "%s^x01 Ai atins maximul de HP & AP:^x03 300 ^x01!!!", g_szTag );
					return 1;
				}
			}
		}
		
		// JETPACK
		case 2: {
			
			if( !Jetpack[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 9000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 9000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai cumparat^x03 JetPack^x01! Apasa^x03 SPACE^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasJetPack[ id ] = true;
					Jetpack[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// RESPAWN
		case 3: {
			
			new iMoney = cs_get_user_money( id ) - 5500;
			new YourMoney = cs_get_user_money( id );
			
			if( iMoney < 0 ) {
				
				ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 5000 - YourMoney );
				return 1;
			}

			if( cs_get_user_team( id ) == CS_TEAM_SPECTATOR ) {

				ColorChat( id, GREEN, "%s^x01 Nu poti folosi aceasta comanda cand esti^x03 Spectator^x01.", g_szTag );
				return PLUGIN_HANDLED;
			}

			if( is_user_alive( id ) ) {

				set_hudmessage( random( 255 ), random( 255 ), random( 255 ), -1.0, 0.2, 1, 6.0, 5.0 );
				show_hudmessage( id, "Nu poti folosi aceasta comanda cand esti viu !!!" );
				return PLUGIN_HANDLED;
			}
			
			else {
				
				ExecuteHamB( Ham_CS_RoundRespawn, id );
				cs_set_user_money( id, iMoney );				

				ColorChat( id, GREEN, "%s^x01 Tocmai ai reinviat !", g_szTag );
				
				g_iUserHasChossen[ id ] = true;
			}
		}
		
		// UNLIMITED CLIP
		case 4: {
			
			if( !UnlimitedClip[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 8500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 8500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ti-ai cumparat^x03 gloante infinite^x01 !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasUClip[ id ] = true;
					UnlimitedClip[ id ] = true;
					
					return 1;
				}
			}
		}
		
		// INVISIBILITY
		case 5: {
			
			if( !Invisibility[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 4000;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 4000 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 Ai devenit^x03 90%^x01 invizibil !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasInvisibility[ id ] = true;
					Invisibility[ id ] = true;
					
					return 1;
				}
			}
		}

		// NO RECOIL
		case 6: {
			
			if( !NoRecoil[ id ] ) {
				
				new iMoney = cs_get_user_money( id ) - 3500;
				new YourMoney = cs_get_user_money( id );
				
				if( iMoney < 0 ) {
					
					ColorChat( id, GREEN, "%s^x01 Mai ai nevoie de^x03 %d $^x01!!!", g_szTag, 3500 - YourMoney );
					return 1;
				}
				
				else {
					
					ColorChat( id, GREEN, "%s^x01 De acum inainte, tinta nu-ti va mai sari !", g_szTag );
					
					cs_set_user_money( id, iMoney );
					g_iUserHasChossen[ id ] = true;
					g_iUserHasNoRecoil[ id ] = true;
					NoRecoil[ id ] = true;
					
					return 1;
				}
			}
		}
	}

	menu_destroy( szMenu );
	return PLUGIN_HANDLED;
}

// JETPACK
public Ham_bacon_playerJumping( id ) {

	if( g_iUserHasJetPack[ id ] ) {

		new iOrigin[ 3 ];
		get_user_origin( id, iOrigin, 0 );

		iOrigin[ 2 ] -= 20;
		
		new Float:fVelocity[ 3 ];
		pev( id, pev_velocity, fVelocity );

		fVelocity[ 2 ] += 93;
		
		set_pev( id, pev_velocity, fVelocity );
		create_flame( iOrigin );
	}
}

stock create_flame( origin[ 3 ] ) {

	message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
	write_byte( TE_SPRITE );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( JetPackSprite );
	write_byte( 3 );
	write_byte( 99 );
	message_end();
}

public event_CurWeapon( id ) {

	if( get_user_flags( id ) & ACCESS_VIP && g_iUserHasUClip[ id ] ) {

		new iWeapon = read_data( 2 );
		
		if( !( NO_UCLIP_WEAPONS_BITSUM & ( 1 << iWeapon ) ) )
			set_pdata_int( get_pdata_cbase( id, OFFSET_ACTIVE_ITEM ), OFFSET_CLIPAMMO, g_iMaxClips[ iWeapon ], OFFSET_LINUX_WEAPONS );
	}
}

public CurWeapon2( id ) {

	if( g_iUserHasSpeed[ id ] ) {

		set_user_maxspeed( id, 500.0 );
	}

	else {

		set_user_maxspeed( id, 260.0 );
	}

	if( g_iUserHasInvisibility[ id ] ) {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num( g_iCvarInvisibilityAmount ) );
	}
	
	else {

		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 250 );
	}

	if( get_user_weapon( id ) == CSW_KNIFE && g_iUserHasCombatKnife[ id ] ) {
	
		set_pev( id, pev_viewmodel2, v_CB );
		set_pev( id, pev_weaponmodel2, p_CB );
	}
}

// HOOK
public ClCmdUseHook( id ) {

	if( !g_iUserHasHook[ id ] )
		return 1;
		
	emit_sound( id,CHAN_VOICE, g_szHook, 1.0, ATTN_NORM, 0, PITCH_NORM );
	set_pev( id, pev_gravity, 0.0 );
	
	set_task( 0.1,"TaskHookPrethink", id + HookTask , "", 0, "b" );
	
	Hook[ id ] = true;
	iHookOrigin[ id ][ 0 ] = 999999;
	
	TaskHookPrethink( id + HookTask );
	return 1;
}

public ClCmdStopUsingHook( id ) {

	set_pev( id, pev_gravity, 1.0 );
	Hook[ id ] = false;
	
	return 1;
}

// TELEPORT
public ClCmdUseTeleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] )
		return PLUGIN_CONTINUE;
	
	if( Teleport_Cooldown[ id ] ) {

		ColorChat( id, TEAM_COLOR, "^x04%s^x01 Puterea iti va reveni in^x03 %d secunde^x01.", g_szTag, Teleport_Cooldown[ id ] );
		return PLUGIN_CONTINUE;
	}

	else if( teleport( id ) ) {

		emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
		remove_task( id );
		Teleport_Cooldown[ id ] = get_pcvar_num( g_iCvarCooldownTeleport );

		set_task( 1.0, "CountDown_Teleport", id, _, _, "b" );

		set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );
		if( get_pcvar_num( g_iCvarCooldownTeleport ) != 1 ) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunde.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}

		if( get_pcvar_num( g_iCvarTeleportRange ) == 1) {

			show_hudmessage( id, "Puterea iti va reveni in %d secunda.", get_pcvar_num( g_iCvarCooldownTeleport ) );
		}
	}

	else {

		ColorChat( id, TEAM_COLOR, "^x04%s^x03 Pozitia de teleportare nu e corecta.", g_szTag );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_Teleport( id ) {

	if( !is_user_alive( id ) || !g_iUserHasTeleport[ id ] ) {

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
		return PLUGIN_HANDLED;
	}

	set_hudmessage( 0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11 );

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] == 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunda.", Teleport_Cooldown[ id ] );
	}

	if( is_user_alive( id ) && Teleport_Cooldown[ id ] > 1 ) {

		Teleport_Cooldown[ id ] --;
		show_hudmessage( id, "Puterea iti va reveni in %d secunde.", Teleport_Cooldown[ id ] );
	}

	if( Teleport_Cooldown[ id ] <= 0 ) {

		show_hudmessage( id, "Ti-a revenit puterea !" );

		remove_task( id );
		Teleport_Cooldown[ id ] = 0;
	}

	return PLUGIN_HANDLED;
}

// GODMODE
public ClCmdUseGodmode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] )
		return PLUGIN_CONTINUE;

	if( GodMode_Countdown[ id ] && LastMessage[ id ] < get_gametime(  ) ) {
        
		LastMessage[ id ] = get_gametime(  ) + 1.0;
	}
    
	else if ( godmode( id ) ) {
        
		GodMode_Countdown[ id ] = get_pcvar_num( g_iCvarGodmodeCountDown );
		CountDown_GodMode( id );
	}
	
	return PLUGIN_CONTINUE;
}

public CountDown_GodMode( id ) {
    
	if( !is_user_alive( id ) || !g_iUserHasGodmode[ id ] ) {

		remove_task( id );
		GodMode_Countdown[ id ] = 0;
		return PLUGIN_HANDLED;
	}
    
	else if( GodMode_Countdown[ id ] > 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti vei putea folosi puterea in %d secund%s !", GodMode_Countdown[ id ], GodMode_Countdown[ id ] == 1 ? "a" : "e" );

		GodMode_Countdown[ id ]--;
		set_task( 1.0, "CountDown_GodMode", id );
	}

	else if( GodMode_Countdown[ id ] <= 0 ) {
        
		set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
		show_hudmessage( id, "Iti poti folosi puterea din nou !" );

		GodMode_Countdown [ id ] = 0;
	}
	
	return PLUGIN_HANDLED;
}

bool:godmode( id ) {
    
	set_user_godmode( id, 1 );

	set_task( get_pcvar_float( g_iCvarGodmodeTime ), "stopgodmode", id );

	return true;
}

public stopgodmode( id ) {
    
	set_user_godmode( id, 0 );

	set_hudmessage( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 );
	show_hudmessage( id, "Nu mai ai esti invincibil !" );

	return 1;
}

// TELEPORT
bool:teleport( id ) {

	new Float:vOrigin[ 3 ], Float:vNewOrigin[ 3 ], Float:vNormal[ 3 ], Float:vTraceDirection[ 3 ], Float:vTraceEnd[ 3 ];
	
	pev( id, pev_origin, vOrigin );
	
	velocity_by_aim( id, get_pcvar_num( g_iCvarTeleportRange ), vTraceDirection );
	xs_vec_add( vTraceDirection, vOrigin, vTraceEnd );
	
	engfunc( EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0 );
	
	new Float:flFraction;
	get_tr2( 0, TR_flFraction, flFraction );

	if( flFraction < 1.0 ) {

		get_tr2( 0, TR_vecEndPos, vTraceEnd );
		get_tr2( 0, TR_vecPlaneNormal, vNormal );
	}
	
	xs_vec_mul_scalar( vNormal, 40.0, vNormal );
	xs_vec_add( vTraceEnd, vNormal, vNewOrigin );
	
	if( is_player_stuck( id, vNewOrigin ) )
		return false;
	
	emit_sound( id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM );
	tele_effect( vOrigin );
	
	engfunc( EngFunc_SetOrigin, id, vNewOrigin );
	
	tele_effect2( vNewOrigin );

	return true;
}

stock is_player_stuck( id, Float:originF[ 3 ] ) {

	engfunc( EngFunc_TraceHull, originF, originF, 0, ( pev( id, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN, id, 0 );
	
	if( get_tr2( 0, TR_StartSolid ) || get_tr2( 0, TR_AllSolid ) || !get_tr2( 0, TR_InOpen ) )
		return true;
	
	return false;
}

stock tele_effect( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );
	write_byte( 0 );
	write_byte( 0 );
	write_byte( 3 );
	write_byte( 60 );
	write_byte( 0 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 255 );
	write_byte( 0 );
	message_end(  );
}

stock tele_effect2( const Float:torigin[ 3 ] ) {

	new origin[ 3 ];
	origin[ 0 ] = floatround( torigin[ 0 ] );
	origin[ 1 ] = floatround( torigin[ 1 ] );
	origin[ 2 ] = floatround( torigin[ 2 ] );
	
	message_begin( MSG_PAS, SVC_TEMPENTITY, origin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 10 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 60 );
	write_short( ShockWave );	// Sprite
	write_byte( 0 );	// Startfrate
	write_byte( 0 );	// Framerate
	write_byte( 4 );	// Life
	write_byte( 80 );	// Width
	write_byte( 0 );	// Amplitude
	write_byte( 255 );	// Red
	write_byte( 255 );	// Green
	write_byte( 255 );	// Blue
	write_byte( 255 );	// Brightness
	write_byte( 0 );	// Speed
	message_end(  );
	
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_SPRITETRAIL );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + 40 );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_short( BlueFlare2 );
	write_byte( 30 );
	write_byte( 10 );
	write_byte( 1 );
	write_byte( 50 );
	write_byte( 10 );
	message_end(  );
}

// HOOK
public TaskHookPrethink( id ) {

	id -= HookTask;

	if( !is_user_alive( id ) ) {

		Hook[ id ] = false;
	}
	
	if( !Hook[ id ] ) {

		remove_task( id + HookTask );
		return 1;
	}

	static iOrigin1[ 3 ];
	new Float:fOrigin[3];
	get_user_origin( id, iOrigin1 );
	pev( id, pev_origin, fOrigin);

	if( iHookOrigin[ id ][ 0 ] == 999999 ) {

		static iOrigin2[ 3 ];
		get_user_origin( id, iOrigin2, 3 );
		iHookOrigin[ id ][ 0 ] = iOrigin2[ 0 ];
		iHookOrigin[ id ][ 1 ] = iOrigin2[ 1 ];
		iHookOrigin[ id ][ 2 ] = iOrigin2[ 2 ];
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( 1 );
	write_short( id );
	write_coord( iHookOrigin[ id ][ 0 ] );
	write_coord( iHookOrigin[ id ][ 1 ]);
	write_coord( iHookOrigin[ id ][ 2 ] );
	write_short( iBeamSprite );
	write_byte( 1 );
	write_byte( 1 );
	write_byte( 5 );
	write_byte( 18 );
	write_byte( 0 );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( random( 256 ) );
	write_byte( 200 );
	write_byte( 0 );
	message_end( );

	static Float:fVelocity[ 3 ];
	fVelocity[ 0 ] = ( float( iHookOrigin[ id ][ 0 ] ) - float( iOrigin1[ 0 ] ) ) * 3.0;
	fVelocity[ 1 ] = ( float( iHookOrigin[ id ][ 1 ] ) - float( iOrigin1[ 1 ] ) ) * 3.0;
	fVelocity[ 2 ] = ( float( iHookOrigin[ id ][ 2 ] ) - float( iOrigin1[ 2 ] ) ) * 3.0;

	static Float:fY;
	fY = fVelocity[ 0 ] * fVelocity[ 0 ] + fVelocity[ 1 ] * fVelocity[ 1 ] + fVelocity[ 2 ] * fVelocity[ 2 ];

	static Float:fX;
	fX = ( HookSpeed ) / floatsqroot( fY );

	fVelocity[ 0 ] *= fX;
	fVelocity[ 1 ] *= fX;
	fVelocity[ 2 ] *= fX;

	set_velo( id, fVelocity );

	return 0;
}

public set_velo( id, Float:fVelocity[ 3 ] ) {

	return set_pev( id, pev_velocity, fVelocity );
}

// COMBAT KNIFE
public fw_EmitSounds( const id, const channel, const sample[  ] ) {

	if( is_user_alive( id ) ) {

		if( g_iUserHasCombatKnife[ id ] ) {

			for( new i = 0; i < sizeof CombatKnifeSoundList; i++ ) {

				if( equal( sample, OriginalKnifeSounds[ i ] ) ) {

					emit_sound( id, channel, CombatKnifeSoundList[ i ], 1.0, ATTN_NORM, 0, PITCH_NORM );
					return FMRES_SUPERCEDE;
				}
			}
		}
	}

	return FMRES_IGNORED;
}

public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:b_gDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) )
		return HAM_IGNORED;
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE )
 		return HAM_IGNORED;
 	
	new g_bHit, target;
	get_user_aiming( iAttacker, target, g_bHit );

	new bool:g_bHead = ( g_bHit == HIT_HEAD );
	new Float:default_dmg = 1.0;

	if( pev( iAttacker, pev_button, IN_ATTACK ) ) {

		default_dmg = g_bHead ? CB_PRIM_HEAD_DMG : CB_PRIM_DMG;
	}

	else {

		default_dmg = g_bHead ? CB_SEC_HEAD_DMG : CB_SEC_DMG;
	}

	SetHamParamFloat( 4, b_gDamage * default_dmg );

	return HAM_HANDLED;
}

public Ham_TakeDamage_Post( iVictim, iInflictor, iAttacker, Float:g_bDamage, damagetype ) {

	if( !is_user_alive( iAttacker ) || !is_user_alive( iVictim ) ) {

		return HAM_IGNORED;
	}
		
	if( !g_iUserHasCombatKnife[ iAttacker ] || get_user_weapon( iAttacker ) != CSW_KNIFE ) {
	
 		return HAM_IGNORED;
	}

	new Float:Origin[ 3 ], Float:Origin2[ 3 ], Float:Velocity[ 3 ];

	pev( iAttacker, pev_origin, Origin );
	pev( iVictim, pev_origin, Origin2 );

	xs_vec_sub( Origin2, Origin, Velocity );
	xs_vec_normalize( Velocity, Velocity );
	xs_vec_mul_scalar( Velocity, ( CB_KNOCKBACK * 100.0 ), Velocity );

	if( Velocity[ 2 ] <= 100.0 ) {

		Velocity[ 2 ] = random_float( 150.0, 250.0 );
	}

	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BLOODSPRITE );
	engfunc( EngFunc_WriteCoord, Origin2[ 0 ] );
	engfunc( EngFunc_WriteCoord, Origin2[ 1] );
	engfunc( EngFunc_WriteCoord, Origin2[ 2] );
	write_short( g_Blood[ 0 ] );
	write_short( g_Blood[ 1 ] );
	write_byte( 77 );
	write_byte( 4 );
	message_end(  );

	set_pev( iVictim, pev_velocity, Velocity );

	return HAM_HANDLED;
}

// NO RECOIL
public fwd_primary_attack( ent ) {

	new id = pev( ent, pev_owner );

	pev( id, pev_punchangle, cl_pushangle[ id ] );
	
	return HAM_IGNORED;
}

public fwd_primary_attack_post( ent ) {

	new id = pev( ent, pev_owner );

	if( g_iUserHasNoRecoil[ id ] ) {

		new Float:push[ 3 ];

		pev( id, pev_punchangle, push );
		xs_vec_sub( push, cl_pushangle[ id ], push );
		xs_vec_mul_scalar( push, get_pcvar_float( g_iCvarNoRecoil ), push );
		xs_vec_add( push, cl_pushangle[ id ], push );
		set_pev( id, pev_punchangle, push );

		return HAM_IGNORED;
	}

	return HAM_IGNORED;
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Este setat pe flagul "d" acum si flagul "d" este accesul la ban deci toti care au acces la ban au vip....
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

31 Dec 2013, 13:59

Deci daca il pun pe flag "t" doar vipii au acces fara admini ?
Nu se poate face doar "d" si fara cei cu acces la ban?
Intermediez tranzactii cand am chef si timp ! :)

Image
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

31 Dec 2013, 17:23

Pai ma flagul "d" este special pentru accesul BAN....
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

31 Dec 2013, 18:59

Pai chiar daca il pe "t" au acces si adminii
Intermediez tranzactii cand am chef si timp ! :)

Image
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

02 Jan 2014, 09:59

Vreau sa nu mai dea vip la cei cu acces la ban ... daca e nevoie lasa pe litera "t" dar sa nu mai dea acces la admini
Intermediez tranzactii cand am chef si timp ! :)

Image
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 6 guests