Modificare plugin

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
xHx
Membru, skill 0
Membru, skill 0
Posts: 12
Joined: 03 Sep 2022, 22:27
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Discord: MrPower#8098
Has thanked: 2 times
Been thanked: 1 time

12 Sep 2022, 19:18

Salutare.

Ma puteti ajuta si pe cu eroare asta la pluginul asta :
Plugin | Afiseaza codul
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Furien Menu"
#define VERSION "0.1"
#define AUTHOR "-Turbo-"

native get_user_credits(id);
native set_user_credits(id, credits);

native get_user_gold(id)
native set_user_gold(id, gold)

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define ID_SHOWGOLD (taskid - TASK_SHOWGOLD)
#define IsPlayer(%1) ( 1 <= %1 <= g_maxplayers )

#define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0001 // Fade out (not in)
#define FFADE_MODULATE 0x0002 // Modulate (don't blend)
#define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received

new szTag [ ] = "[FURIEN.CSNEAMT.RO]";
new iconstatus;

new cvar_extraitems, cvar_buy_slot, cvar_choose_class, cvar_rank, cvar_top, cvar_blocksuicide, cvar_trade, g_slot_cost;
new p_ultimate1, p_ultimate2, p_ultimate3, p_ultimate4, p_ultimate5, p_ultimate6, p_ultimate7, p_ultimate8, p_ultimate9;
new plant_bomb, plant_defused, plant_explode;

new bool:canHeal = true;
new bool:g_CanUseHe [ 33 ];
new p_Soldier, p_Heavy, p_Medic,  p_SoldierMaxHp, p_SoldierKillHp, p_MedicHpRegen, p_MedicHpRegenSpeed, p_MedicMaxHp;
new bool:Soldier [ 33 ], bool:Heavy [ 33 ], bool:Medic [ 33 ], bool:Shadow [ 33 ], bool:Light [ 33 ], bool:Gloves [ 33 ], bool:Cloak[ 33 ], bool:Runed [ 33 ], bool:Rune [ 33 ], bool:Courage [ 33 ], bool:Silent [ 33 ], bool:Eggle [ 33 ];
new g_maxplayers;

new bool:g_Password[33], bool:g_HaveSlot[33], bool:UserHasChoosed [ 33 ];

new g_Fraguri;
new g_iFrags [33];

new UltimatePower [ 33 ], Shadow_Countdown [ 33 ], Orb_Countdown [ 33 ], Redbull_Countdown [ 33 ], Explode_Countdown [ 33 ], Electric_Countdown [ 33 ], TeamHealth_Countdown [ 33 ], Staff_Countdown [ 33 ], Eggle_Countdown [ 33 ];
new bool: RedBullSpeed [ 33 ];
new Float:LastMessage[33];
new gShockWaveSprite, gLightModel, EggleSpriteEffect, TeleportSprite3;

new const g_szToxineDetected [   ] = "ultimate_furien/blood_toxins.wav";
new const g_szAntiToxine [    ] = "ultimate_furien/antitoxin_shot.wav";
new const g_szLightModel[    ] = "sprites/lgtning.spr";
new const g_szLightSound[    ] =  "ultimate_furien/lightningbolt.wav";
new const g_szExplodeSound2[    ]  =  "ultimate_furien/particle_suck1.wav";
new const g_szRedBullSound [   ] = "ultimate_furien/MiniSpiritPissed1.wav";
new const g_szOrbSound [   ] = "ultimate_furien/locustswarmloop.wav";
new const g_szShadowSound [   ] = "ultimate_furien/antend.wav";
new const g_szErrror [   ] = "ultimate_furien/Error.wav";
new const g_szUltimateReady [   ] = "ultimate_furien/flamestriketargetwavenonloop1.wav";
new const g_szShockWaveSprite[    ]  =  "sprites/shockwave.spr";
new const g_szStaffSound2 [    ] = "ultimate_furien/ImmolationDecay1.wav";

// Linux diff's
const OFFSET_CSTEAMS = 114
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
const OFFSET_LINUX_WEAPONS = 4 // weapon offsets are only 4 steps higher on Linux

// Menu keys
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

// CS Teams
enum
{
	FM_CS_TEAM_UNASSIGNED = 0,
	FM_CS_TEAM_T,
	FM_CS_TEAM_CT,
	FM_CS_TEAM_SPECTATOR
}
// Task offsets
enum (+= 100)
{
	TASK_SHOWHUD,
	TASK_SHOWGOLD
}

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	// Client commands
	register_menu("Game Menu", KEYSMENU, "menu_game")
	register_clcmd("chooseteam", "clcmd_changeteam")
	register_clcmd("jointeam", "clcmd_changeteam")
	register_clcmd("amx_slot_password", "BuySlotMod", ADMIN_USER, "<password>");
	
	// FM Forwards
	RegisterHam( Ham_TraceAttack, "player", "player_Attack" );
	register_forward( FM_PlayerPreThink, "pthink" );
	register_forward(FM_ClientKill, "fw_ClientKill")
	register_event ( "DeathMsg", "eDeath", "a" );
	register_event( "DeathMsg", "event_PlayerHeal", "a" );
	register_logevent ( "round_start", 2, "1=Round_Start" );
	register_forward ( FM_PlayerPreThink,"fwSetUserIcon" );
	RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "ham_PrimaryAttack_He" );
	//register_message(get_user_msgid("TextMsg") ,"message_TextMsg")
	
	register_clcmd ( "ultimate", "UseUltimatePower", -1 );
	
	g_Fraguri = register_cvar( "furien_rewards_frags", "20" );
	// Cvars
	cvar_extraitems = register_cvar("furien_extra_items", "1")
	cvar_buy_slot = register_cvar("furien_buy_slot", "1")
	cvar_choose_class = register_cvar("furien_choose_class", "1")
	cvar_rank = register_cvar("furien_rank", "1")
	cvar_top = register_cvar("furien_top", "1")
	cvar_blocksuicide = register_cvar("furien_block_suicide", "1")
	cvar_trade = register_cvar("furien_trade", "1")
	g_slot_cost = register_cvar ("furien_slot_cost", "500")
	p_Soldier = register_cvar( "amx_vip_soldier", "1" );
	p_SoldierKillHp = register_cvar( "furien_soldier_kill_hp", "5" );
	p_SoldierMaxHp = register_cvar( "furien_soldier_max_hp", "300" );
	p_Heavy = register_cvar( "furien_heavy", "1" );
	p_Medic = register_cvar( "furien_medic", "1" );
	p_MedicHpRegen = register_cvar( "furien_medic_hp_regen", "2" );
	p_MedicHpRegenSpeed = register_cvar( "furien_medic_hp_regen_speed", "2.0" );
	p_MedicMaxHp = register_cvar( "furien_medic_max_hp", "300" );
	p_ultimate1 = register_cvar( "furien_ultimat1", "1" );
	p_ultimate2 = register_cvar( "furien_ultimat2", "1" );
	p_ultimate3 = register_cvar( "furien_ultimat3", "1" );
	p_ultimate4 = register_cvar( "furien_ultimat4", "1" );
	p_ultimate5 = register_cvar( "furien_ultimat5", "1" );
	p_ultimate6 = register_cvar( "furien_ultimat6", "1" );
	p_ultimate7 = register_cvar( "furien_ultimat7", "1" );
	p_ultimate8 = register_cvar( "furien_ultimat8", "1" );
	p_ultimate9 = register_cvar( "furien_ultimat9", "1" );
	plant_bomb = register_cvar( "furien_credits_bomb", "10");
	plant_defused = register_cvar ("furien_credis_defuse", "5");
	plant_explode = register_cvar ("furien_credis_explode", "10");

	iconstatus = get_user_msgid ( "StatusIcon" );
	g_maxplayers = get_maxplayers( );

	
}
/*public plugin_cfg()
{
	// Format our config file
	new szConfigFile[64];
	get_configsdir( szConfigFile, 63 );
	add( szConfigFile, 63, "/ultimate_furien.cfg" );

	// Make sure the config file exists!
	if ( file_exists( szConfigFile ) )
	{
		server_cmd( "exec %s", szConfigFile );
	}
	else
	{
		set_fail_state( "Config file is missing, unable to load plugin" );
	}
}*/
public plugin_precache() 
{
	precache_sound ( g_szToxineDetected );
	precache_sound ( g_szAntiToxine );
	precache_sound ( g_szLightSound );
	precache_sound ( g_szExplodeSound2 );
	precache_sound ( g_szRedBullSound );
	precache_sound ( g_szOrbSound );
	precache_sound ( g_szShadowSound );
	precache_sound("ambience/particle_suck1.wav")
	precache_sound ( g_szErrror );
	precache_sound ( g_szUltimateReady );
	precache_sound ( g_szStaffSound2 );
	
	gShockWaveSprite  =  precache_model(  g_szShockWaveSprite  );
	gLightModel  =  precache_model(  g_szLightModel  );
	EggleSpriteEffect = precache_model ( "sprites/laserbeam.spr" );
	TeleportSprite3 = precache_model( "sprites/teleport_start.spr");
}
public client_connect(id){
	
	client_cmd(id, "echo ")
	client_cmd(id, "echo ^" *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* ^" ")
	client_cmd(id, "echo ^" *=-= Welcome to: Ultimate Furien Powers (UFP) ^" ")
	client_cmd(id, "echo ^" *=-= Add Favorite: Furien.CsNeamT.Ro Or 89.40.233.219:27015 ^" ")
	client_cmd(id, "echo ^" *=-= Furien Website: http://csneamt.ro/forum    ^" ")
	client_cmd(id, "echo ^" *=-= Founders Contact: Gangsta ([email protected]) ^" ")
	client_cmd(id, "echo ^" *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* ^" ")
	client_cmd(id, "echo ")
}
public client_putinserver(id)
{
	RemoveAll ( id );
	g_iFrags[id] = 0;
	set_task(0.1, "ShowHUD",id+TASK_SHOWHUD, _, _, "b")
	set_task(0.1, "ShowHUDGold",id+TASK_SHOWGOLD, _, _, "b")
	
}
public client_disconnect(id)
{
	RemoveAll ( id );
	g_iFrags[id] = 0;
	
}
public RemoveAll ( id ) {
	
	Soldier[ id ] = false
	Heavy[ id ] = false
	Medic[ id ] = false
	Shadow_Countdown [ id ] = 0;
	Orb_Countdown [ id ] = 0;
	Redbull_Countdown [ id ] = 0;
	Shadow [ id ] = false
	Light [ id ]= false
	Gloves [ id ] = false
	Cloak[ id ] = false
	Runed [ id ] = false
	Rune [ id ] = false
	Courage [ id ] = false
	Silent [ id ] = false
	Eggle [ id ] = false
	Explode_Countdown [ id ] = 0;
	Electric_Countdown [ id ] = 0;
	Redbull_Countdown [ id ] = 0;
	TeamHealth_Countdown [ id ] = 0;
	Orb_Countdown [ id ] = 0;
	Staff_Countdown [ id ] = 0;
	Eggle_Countdown [ id ] = 0;
	Shadow_Countdown [ id ] = 0;
	UltimatePower [ id ] = 0;
	UserHasChoosed [ id ] = false
	
}
public eDeath( )
{
	new t_Killer = read_data( 1 );
	new iVictim = read_data ( 2 );
	g_iFrags[ t_Killer ]++;
	if( g_iFrags[ t_Killer ] >= get_pcvar_num( g_Fraguri ) )
	{
		furien_colored_print(t_Killer, TEAM_COLOR, "^4[FURIEN.CSNEAMT.RO]^3 Reward + [5 Gold]");
		new golds = get_user_gold(t_Killer) + 5;
		set_user_gold(t_Killer, golds );
		g_iFrags[ t_Killer ] = 0;
	}
	RemoveAll ( iVictim );
	UserHasChoosed [ iVictim ] = false
	/*new weapon[32]
	read_data(4, weapon, sizeof(weapon) -1)
	if(t_Killer == iVictim)
	{
		return 1;
	}
	if(Headshot)
	{
		set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(HsCredits));
		set_dhudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_dhudmessage ( t_Killer, "+%d Credite", get_pcvar_num(HsCredits) + get_pcvar_num ( KillCredits ) );
	}
	
	else if(equali(weapon, "knife"))
	{
		set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(KnifeCredits));
		set_dhudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_dhudmessage ( t_Killer, "+%d Credits", get_pcvar_num(KnifeCredits) + get_pcvar_num ( KillCredits ) );
	}
	
	else if(equali(weapon, "grenade"))
	{
		set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(HeCredits));
		set_hudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_hudmessage ( t_Killer, "+%d Credits", get_pcvar_num(HeCredits) + get_pcvar_num ( KillCredits ) );
	}
	
	else
	{
		set_hudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_hudmessage ( t_Killer, "+%d Credits", get_pcvar_num ( KillCredits ) );
	}*/
}
public round_start ( ) {
	
	new iPlayers [ 32 ];
	new iNum;
	
	get_players ( iPlayers, iNum );
	
	for ( new i = 0; i < iNum; i++ )
	{
		g_CanUseHe[iPlayers] = false;
	}
}
public ham_PrimaryAttack_He ( iEnt ) {
	
	new id = pev( iEnt, pev_owner ); 
	
	if( g_CanUseHe [ id ] ) 
	{
		
		set_hudmessage( 0, 100, 200, -1.0, 0.35, 1, 0.01, 3.0, 1.0, 1.0 ); 
		show_hudmessage( id, "Bomba a fost plantata, nu mai poti folosi HE-urile" ); 
		
		return HAM_SUPERCEDE; 
	} 
	
	return HAM_IGNORED; 
	
}
public bomb_planted ( planter ) {
	
	set_user_credits(planter, get_user_credits(planter) + get_pcvar_num(plant_bomb));
	furien_colored_print(planter, GREEN, "%s Ai primit^4 %d^3 Credite pentru plantarea bombei .^4", szTag, get_pcvar_num( plant_bomb) );
	
	new originnn[3];
	get_user_origin ( planter, originnn, 0 );
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
	write_byte(TE_BEAMCYLINDER);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+10);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+60);
	write_short(gShockWaveSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(255); //255
	write_byte(0); //255
	write_byte(0); //255
	write_byte(255); //255 //RED
	write_byte(0);
	message_end();
	
	UTIL_CreateBeamCylinder( originnn, 120, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 0, 0, 255, 0 );
	UTIL_CreateBeamCylinder( originnn, 320, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 51, 51, 255, 0 );
	UTIL_CreateBeamCylinder( originnn, 500, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 102, 102, 255, 0 );
	
	new iPlayers[32]
	new iNum
	
	get_players( iPlayers, iNum, "e", "TERRORIST" )
	
	for( new i = 0; i < iNum; i++ )
	{
		g_CanUseHe[iPlayers] = true;
	}
}

public bomb_defused ( defuser ) {
	
	set_user_credits(defuser, get_user_credits(defuser) + get_pcvar_num(plant_defused));
	furien_colored_print(defuser, GREEN, "%s Ai primit^4 %d^3 Credite pentru dezamorsarea bombei.^4", szTag, get_pcvar_num( plant_defused) );
	new originnn[3];
	get_user_origin ( defuser, originnn, 0 );
	message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
	write_byte(TE_BEAMCYLINDER);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+10);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+60);
	write_short(gShockWaveSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(0); //255
	write_byte(0); //255
	write_byte(255); //255 //BLUE
	write_byte(255); //255 
	write_byte(0);
	message_end();
	
	Create_TE_SPRITETRAIL3( originnn, originnn, TeleportSprite3, 50, 10, 2, 50, 10 );
	
	/*---ScreenShake---*/
	message_begin(MSG_ONE , get_user_msgid( "ShakeScreen" ) , {0,0,0} ,defuser)
	write_short( 1<<14 );
	write_short( 1<<14 );
	write_short( 1<<14 );
	message_end();
}

public bomb_explode ( planter ) {
	set_user_credits(planter, get_user_credits(planter) + get_pcvar_num(plant_explode));
	furien_colored_print(planter, GREEN, "%s Ai primit^4 %d^3 Credite pentru explodarea bombei.^4", szTag, get_pcvar_num( plant_explode) );
}
/*================================================================================
 [Main Events]
=================================================================================*/


// Client Kill Forward
public fw_ClientKill()
{
	// Prevent players from killing themselves?
	if (get_pcvar_num(cvar_blocksuicide))
		return FMRES_SUPERCEDE;
	
	return FMRES_IGNORED;
}

// Block Team Change
public clcmd_changeteam(id)
{
	static team
	team = fm_cs_get_user_team(id)
	
	// Unless it's a spectator joining the game
	if (team == FM_CS_TEAM_SPECTATOR || team == FM_CS_TEAM_UNASSIGNED)
		return PLUGIN_CONTINUE;
	
	// Pressing 'M' (chooseteam) ingame should show the main menu instead
	show_menu_game(id)
	return PLUGIN_HANDLED;
}

public event_PlayerHeal ( )
{
	new iKiller = read_data( 1 );
	new iVictim = read_data( 2 ); 
	
	client_putinserver ( iVictim );
	
	if ( Soldier[ iKiller ] && cs_get_user_team( iVictim ) != cs_get_user_team( iKiller ) )
	{
		new MaxHp = get_pcvar_num( p_SoldierMaxHp );
		new BonusHp = get_pcvar_num( p_SoldierKillHp );
		new TotalHp = get_user_health( iKiller ) + BonusHp;
	
		if ( TotalHp >= MaxHp )
		{
			set_user_health(iKiller, MaxHp )
			
			furien_colored_print(iKiller, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Ai atins numarul maxim de HP [%d]", get_pcvar_num( p_SoldierMaxHp ))

		} 
		else 
		{
			set_user_health( iKiller, TotalHp );
			furien_colored_print(iKiller, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 [ + %d HP ]", get_pcvar_num( p_SoldierKillHp))

		}
	}
}
public player_Attack ( id, iAttacker, Float:flDamage, Float:fVecDir[3], tr )
{
	if ( IsPlayer( iAttacker ) && Heavy[ id ] && cs_get_user_team( id ) != cs_get_user_team( iAttacker ) && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD )
	{
		set_tr2( tr, TR_iHitgroup, HIT_CHEST );
		set_tr2( tr, TR_iHitgroup, HIT_STOMACH );
	}
}
public waiter ( id )
{
	canHeal = false;
	
	set_task( get_pcvar_float( p_MedicHpRegenSpeed ), "givehp", id );
}

public givehp ( id )
{
	canHeal = true;
	
	new MaxHp = get_pcvar_num( p_MedicMaxHp );
	new BonusHp = get_pcvar_num( p_MedicHpRegen );
	new TotalHp = get_user_health( id ) + BonusHp;
	new hp = pev( id, pev_health );
	
	if ( Medic[ id ] && is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
	{
		if ( TotalHp >= MaxHp )
		{
			set_user_health( id, MaxHp );
			
			furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Ai atins numarul maxim de HP [%d]", get_pcvar_num( p_MedicMaxHp ))	
			
		} 
		else 
		{
			set_user_health( id, hp + BonusHp );
		}
	}
}
public pthink ( id )
{
	if ( Medic[ id ] )
	{
		if ( canHeal && ( pev( id, pev_health ) < 100) )
		{
			waiter( id );
		}
	}
	return FMRES_HANDLED;
}
/*================================================================================
 [Menus]
=================================================================================*/

// Game Menu
show_menu_game(id)
{
	static menu[250], stats[8], body[8], len
	len = 0
	new s_RankPos = get_user_stats ( id, stats, body );
	new s_MaxRank = get_statsnum ( );
	
	// Title
	len += formatex(menu[len], charsmax(menu) - len, "\yFurien.CSNEAMT.RO By \rGangsta^n^n")
	
	// 1. Extra items
	if (get_pcvar_num(cvar_extraitems) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w1. Extra Items [ \r%i Credits\w ]^n", get_user_credits( id ))
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d1. Extra Items [ \r%i Credits\w ]^n", get_user_credits( id ))
	
	// 2. Buy Slot
	if (get_pcvar_num(cvar_buy_slot) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w2. Buy Slot [ \y%i Golds\w ]^n", get_pcvar_num(g_slot_cost))
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d2. Buy Slot [ \y%i Golds\w ]^n", get_pcvar_num(g_slot_cost))
	// 3. Choose Class
	if (get_pcvar_num(cvar_choose_class))
		len += formatex(menu[len], charsmax(menu) - len, "\w3. Choose Human Class^n")
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d3. Choose Human Class^n")
		
	// 4. Rank
	if (get_pcvar_num(cvar_rank) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w4. Rank [ \r%d from %d\w]^n^n", s_RankPos, s_MaxRank)
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d4. Rank [ \yDisabled ]^n^n")
		
	// 5. Trade Item
	if (get_pcvar_num(cvar_trade) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w5. Trade Items [ \r%i Golds\w ]^n^n", get_user_gold( id ))
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d5. Trade Items [ \r%i Gold\w ]^n^n", get_user_gold( id ))
		
		
	// 6. Top15
	if (get_pcvar_num(cvar_top) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w6. Top15^n")
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d6. Top15^n")
		
	// 7. Join spec
	if (!is_user_alive(id) || !get_pcvar_num(cvar_blocksuicide) || (get_user_flags(id) & ADMIN_MENU))
		len += formatex(menu[len], charsmax(menu) - len, "\w7. Join Spectator^n^n")
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d7. Join Spectator^n^n")
		
	
	// 0. Exit
	len += formatex(menu[len], charsmax(menu) - len, "^n^n\w0. Exit")
	
	show_menu(id, KEYSMENU, menu, -1, "Game Menu")
}

/*================================================================================
 [Menu Handlers]
=================================================================================*/

// Game Menu
public menu_game(id, key)
{
	switch (key)
	{
		case 0: // Extra Items
		{
			// Extra items enabled?
			if (get_pcvar_num(cvar_extraitems))
			{
				// Check whether the player is able to buy anything
				if (is_user_alive(id))
					client_cmd(id, "say /shop")
				else
					furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 You must be alive for acces on Extra Items.")
			}
			else
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Extra Items are disabled.")
		}
		case 1: 
		{
			//Buy Slot enabled?
			if (get_pcvar_num(cvar_buy_slot)) {
				
				if(!g_HaveSlot[id]) {
					
					new iCredits = get_user_gold ( id );
					if ( iCredits >= get_pcvar_num(g_slot_cost) ) {
						
						if (is_user_admin(id)) {
							furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Nu poti cumpara pentru ca detii un acces pe server.")
							return PLUGIN_HANDLED;
						}
						g_HaveSlot[id] = true;
						g_Password[id] = true;
						fm_strip_user_weapons(id);
						fm_set_user_noclip(id, 1);
						fm_set_user_godmode(id, 1);
						fm_set_user_maxspeed(id, 0.0001);
						client_cmd(id, "messagemode amx_slot_password");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						set_user_gold(id, iCredits - get_pcvar_num(g_slot_cost))
					}
					else 
					{
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Missing ^x04%d^x01 Gold to buy it.", get_pcvar_num(g_slot_cost) - iCredits )
						return 1;
					}
				}
			}
			else {
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Buy Slot are disabled.")
			}
		}
		case 2: // Human Classes
		{
			// Human classes enabled?
			if (get_pcvar_num(cvar_choose_class))
				// show_human_class(id)
			furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Human Classes are enabled.")
			else
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Human Classes are disabled.")
		}
		case 4: // Trade Item
		{
			// Extra items enabled?
			if (get_pcvar_num(cvar_trade) )
			{
				// Check whether the player is able to buy anything
				if (is_user_alive(id)) {
					
					if ( UserHasChoosed [ id ] ) {
						
						furien_colored_print(id, GREY, "%s You already have a ^x4Ultimate Power", szTag);
						return 1;
					}
					else if ( !UserHasChoosed [ id ] ) {
						set_task( 0.1, "trade_item", id );
					}
				}
				else
				{
					furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 You must be alive for acces on Trade Items.")
				}
			}
			else
			{
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Trade Item are disabled.")
			}
		}
		case 5: // Top15
		{
			// Top15 enabled?
			if (get_pcvar_num(cvar_top))
				client_cmd(id, "say /top")
			else
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Top15 are disabled.")
		}
		case 6: // Join Spectator
		{
			// Player alive?
			if (is_user_alive(id))
			{
				// Prevent abuse by non-admins if block suicide setting is enabled
				if (get_pcvar_num(cvar_blocksuicide) && !(get_user_flags(id) & ADMIN_MENU))
				{
					furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Unavailable command.")
					return PLUGIN_HANDLED;
				}
				
				
				// Kill him before he switches team
				user_silentkill(id);
			}
			
			// Then move him to the spectator team
			cs_set_user_team(id, CS_TEAM_SPECTATOR)
			return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_HANDLED;
}
public trade_item(id) {   
	
	new menu = menu_create ( "\yTrade Item \r[v1.2]" , "TradeHandler" );
	new iCredits = get_user_gold ( id );
	
	if ( Soldier [ id ] && get_pcvar_num( p_Soldier ) ) {
		
		menu_additem ( menu, "\dSoldier \y[ +5 HP KILL ] \w- \rAlready Have", "1", 0 );
	}
	else if ( iCredits < 20 ) {
		
		menu_additem ( menu, "\dSoldier \y[ +5 HP KILL ] \w- \rNo Golds", "1", 0 );
		
	}
	else if ( !Soldier [ id ] || iCredits >= 20 ) {
		
		menu_additem ( menu, "\wSoldier \y[ +5 HP KILL ] \w- \r20 Golds", "1", 0 );
	}
	if ( Heavy [ id ] && get_pcvar_num( p_Heavy ) ) {
		
		menu_additem ( menu, "\dHeavy \y[ No HeadShot ] \w- \rAlready Have", "2", 0 );
	}
	else if ( iCredits < 15 ) {
		
		menu_additem ( menu, "\dHeavy \y[ No HeadShot ] \w-- \rNo Golds", "2", 0 );
	}
	else if ( !Heavy [ id ] || iCredits >= 15) {
		
		menu_additem ( menu, "\wHeavy \y[ No HeadShot ] \w- \r15 Golds", "2", 0 );
	}
	if ( Medic [ id ] && get_pcvar_num( p_Medic ) ) {
		
		menu_additem ( menu, "\dMedic \y[ Regenerare HP ] \w- \rAlready Have", "3", 0 );
	}
	else if ( iCredits < 25 ) {
		
		menu_additem ( menu, "\dMedic \y[ Regenerare HP ] \w- \rNo Golds", "3", 0 );
		
	}
	else if ( !Heavy [ id ] || iCredits >= 25) {
		
		menu_additem ( menu, "\wMedic \y[ Regenerare HP ] \w- \r25 Golds", "3", 0 );
		
	}
	if ( Shadow [ id ] && get_pcvar_num( p_ultimate1 ) ) {
		
		menu_additem ( menu, "\dMantle of Shadows \y[ Invizible ] \w- \rAlready Have", "4", 0 );
	}
	else if ( iCredits < 10 ) {
		
		menu_additem ( menu, "\dMantle of Shadows \y[ Invizible ] \w- \rNo Golds", "4", 0 );
		
	}
	else if ( !Shadow [ id ] || iCredits >= 10) {
		
		menu_additem ( menu, "\wMantle of Shadows \y[ Invizible ] \w- \r10 Golds", "4", 0 );
		
	}
	if ( Light [ id ] && get_pcvar_num( p_ultimate2 ) ) {
		
		menu_additem ( menu, "\dOrb of Lightning \y[ Kill Enemies ] \w- \rAlready Have", "5", 0 );
	}
	else if ( iCredits < 20 ) {
		
		menu_additem ( menu, "\dOrb of Lightning \y[ Kill Enemies ] \w- \rNo Golds", "5", 0 );
		
	}
	else if ( !Light [ id ] || iCredits >= 20) {
		
		menu_additem ( menu, "\wOrb of Lightning \y[ Kill Enemies ] \w- \r20 Golds", "5", 0 );
		
	}
	if ( Gloves [ id ] && get_pcvar_num( p_ultimate3 ) ) {
		
		menu_additem ( menu, "\dGloves of Haste \y[ HP++,SPEED++ ] \w- \rAlready Have^n", "6", 0 );
	}
	else if ( iCredits < 25 ) {
		
		menu_additem ( menu, "\dGloves of Haste \y[ HP++,SPEED++ ] \w- \rNo Golds^n", "6", 0 );
		
	}
	else if ( !Gloves [ id ] || iCredits >= 25) {
		
		menu_additem ( menu, "\wGloves of Haste \y[ HP++,SPEED++ ] \w- \r25 Golds^n", "6", 0 );
		
	}
	menu_additem ( menu, "\rUltimate - \y V.I.P", "7", ADMIN_LEVEL_H );
		
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	
}

public TradeHandler ( id, menu, item ) {
	
	if( item == MENU_EXIT )
	{
		return 1;
	}
	
	new data [ 6 ], szName [ 64 ];
	new access, callback;
	menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
	new key = str_to_num ( data );
	
	switch(key)
	{
		case 1:
		{
			if ( !Soldier [ id ] && get_pcvar_num( p_Soldier ) ) {
				
				new iPrice = get_user_gold ( id ) - 20;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Soldier [ id ] = true;
					UserHasChoosed [ id ] = true
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_Soldier ) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Soldier^x01 Item is disabled.", szTag)
			}
		}
		case 2:
		{
			if ( !Heavy [ id ] && get_pcvar_num( p_Heavy ) ) {
				
				new iPrice = get_user_gold ( id ) - 15;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Heavy [ id ] = true;
					UserHasChoosed [ id ] = true
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_Heavy ) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Heavy^x01 Item is disabled.", szTag)
			}
		}
		case 3:
		{
			if ( !Medic [ id ] && get_pcvar_num( p_Medic ) ) {
				
				new iPrice = get_user_gold ( id ) - 25;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Medic [ id ] = true;
					UserHasChoosed [ id ] = true
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_Medic ) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Medic^x01 Item is disabled.", szTag)
			}
		}
		case 4:
		{
			if (!Shadow [ id ] && get_pcvar_num( p_ultimate1 ) ) {
				
				new iPrice = get_user_gold ( id ) - 10;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Shadow [ id ] = true
					UltimatePower [ id ] = 1;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate1) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Shadow^x01 Item is disabled.", szTag)
			}
		}
		case 5:
		{
			if (!Light [ id ] && get_pcvar_num( p_ultimate2 ) ) {
				
				new iPrice = get_user_gold ( id ) - 20;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Light [ id ] = true
					UltimatePower [ id ] = 2;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate2) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Light^x01 Item is disabled.", szTag)
			}
		}
		case 6:
		{
			if (!Gloves [ id ] && get_pcvar_num( p_ultimate3 ) ) {
				
				new iPrice = get_user_gold ( id ) - 25;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Gloves [ id ] = true
					UltimatePower [ id ] = 3;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate3) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Light^x01 Item is disabled.", szTag)
			}
		}
		case 7:
		{
			set_task( 0.1, "UltimatePowersMenu", id );
		}
		
	}
	menu_destroy( menu )
	return PLUGIN_HANDLED
}

public BuySlotMod(id) {
	if (!g_Password[id] || !g_HaveSlot[id]) {
			
		furien_colored_print(id, GREY, "!n=== YOU CAN'T BUY!!! ===");
		return PLUGIN_HANDLED;
	}
	new name[32];
	get_user_name(id, name, 31);
	new password[35];
	read_args(password, 34);
	remove_quotes(password);
	if (equal(password, "")) {
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		client_cmd(id, "messagemode amx_slot_password");
		return PLUGIN_HANDLED;
	}
	g_Password[id] = false;
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_cmd(id, "topcolor ^"^";rate ^"^";model ^"^";setinfo ^"_pw^" ^"%s^"", password);
	server_cmd("amx_addadmin ^"%s^" ^"b^" ^"%s^" ^"name^"", name, password);
	server_cmd("amx_reloadadmins");
	server_cmd("kick #%d ^"Ai cumparat Slot cu succes.Dai retry !^"", get_user_userid(id))
	log_to_file("furien_buy_slot.log", "%s a cumparat slot. Parola este %s", name, password);
	server_exec();
	return PLUGIN_HANDLED;
}
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	if (!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if (!is_user_alive(id)) return;
	}
	
	if (id != ID_SHOWHUD)
	{
		set_dhudmessage(0, 255, 0, 0.01, 0.91, 1, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWHUD, "Credits: %d ", get_user_credits (id) )
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.01, 0.885, 0, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWHUD, "HP: %d | AP: %d | Credits: %d", get_user_health( id ), get_user_armor( id ), get_user_credits (id) )
	}
}
public ShowHUDGold(taskid)
{
	static id
	id = ID_SHOWGOLD;
	
	if (!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if (!is_user_alive(id)) return;
	}
	if (id != ID_SHOWGOLD)
	{
		set_dhudmessage(255, 255, 0, 0.80, 0.69, 2, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWGOLD, "Kills : [ %d / %d ]^nReward : 5 Gold^n Gold : %i", g_iFrags[ id], get_pcvar_num( g_Fraguri ), get_user_gold(id));
	}
	else
	{
		set_dhudmessage(255, 255, 0, 0.80, 0.69, 2, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWGOLD, "Kills : [ %d / %d ]^nReward : 5 Gold^n Gold : %i", g_iFrags[ id], get_pcvar_num( g_Fraguri ), get_user_gold(id));
	}
}
// Get User Team
stock fm_cs_get_user_team(id)
{
	return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
}
// Set a Player's Team
stock fm_cs_set_user_team(id, team)
{
	set_pdata_int(id, OFFSET_CSTEAMS, team, OFFSET_LINUX)
}
public fwSetUserIcon ( id ) {
	
	if ( is_user_alive ( id ) ) {
		
		switch ( UltimatePower [ id ] ) {
			
			case 2:
			{
				if ( !Orb_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("vipsafety"); // sprite name
						write_byte(0); // red
						write_byte(255) // green
						write_byte(0); // blue
						message_end();
					}
				}
				
				if ( Orb_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("vipsafety"); // sprite name
						write_byte(0); // red
						write_byte(255) // green
						write_byte(0); // blue
						message_end();
					}
				}
			}
			case 3:
			{
				if ( !Redbull_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_drown"); // sprite name
						write_byte(255); // red
						write_byte(255); // green
						write_byte(255); // blue
						message_end();
					}
				}
				
				if ( Redbull_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_drown"); // sprite name
						write_byte(255); // red
						write_byte(255); // green
						write_byte(255); // blue
						message_end();
					}
				}
			}
			case 4:
			{
				if ( !Explode_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_rad"); // sprite name
						write_byte(0); // red
						write_byte(255); // green
						write_byte(0); // blue
						message_end();
					}
				}
				
				if ( Explode_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_rad"); // sprite name
						write_byte(0); // red
						write_byte(255); // green
						write_byte(0); // blue
						message_end();
					}
				}
			}
			case 5:
			{
				if ( !Electric_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_shock"); // sprite name
						write_byte(51); // red
						write_byte(204); // green
						write_byte(255); // blue
						message_end();
					}
					
				}
				
				if ( Electric_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_shock"); // sprite name
						write_byte(51); // red
						write_byte(204); // green
						write_byte(255); // blue
						message_end();
					}
					
				}
			}
			case 6:
			{
				if ( !TeamHealth_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("plus"); // sprite name
						write_byte(255); // red
						write_byte(0); // green
						write_byte(0); // blue
						message_end();
					}
				}
				
				if ( TeamHealth_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("plus"); // sprite name
						write_byte(255); // red
						write_byte(0); // green
						write_byte(0); // blue
						message_end();
					}
				}
			}
			case 7:
			{
				
				if(!(pev(id,pev_button) & FL_ONGROUND))
				{    
					message_begin(MSG_ONE,iconstatus,{0,0,0},id);
					write_byte(1); // status (0=hide, 1=show, 2=flash)
					write_string("suit_full"); // sprite name
					write_byte(255); // red
					write_byte(0); // green
					write_byte(0); // blue
					message_end();
				}
				
				
				
			}
			case 8:
			{
				if ( !Staff_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_gas"); // sprite name
						write_byte(0); // red
						write_byte(184); // green
						write_byte(245); // blue
						message_end();
					}
				}
				
				if ( Staff_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_gas"); // sprite name
						write_byte(0); // red
						write_byte(184); // green
						write_byte(245); // blue
						message_end();
					}
				}
			}
			case 9:
			{
				if ( !Eggle_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_cold"); // sprite name
						write_byte(0); // red
						write_byte(0); // green
						write_byte(255); // blue
						message_end();
					}
				}
				
				if ( Eggle_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_cold"); // sprite name
						write_byte(0); // red
						write_byte(0); // green
						write_byte(255); // blue
						message_end();
					}
				}
			}
		}
	}
}
public UltimatePowersMenu ( id, level, cid ) {
	
	new menu = menu_create ( "\yUltimate Powers \rV.I.P", "UltimatePowersMenuGiver" );
	new iCredits = get_user_gold(id);
	
	if ( Cloak [ id ] && get_pcvar_num( p_ultimate4 ) ) {
		
		menu_additem ( menu, "\dCloak of Flames \y[ Explode ] \w- \rAlready Have", "1", 0 );
	}
	else if ( iCredits < 20 ) {
		
		menu_additem ( menu, "\dCloak of Flames \y[ Explode ] \w- \rNo Golds", "1", 0 );
		
	}
	else if ( !Cloak [ id ] || iCredits >= 20) {
		
		menu_additem ( menu, "\wCloak of Flames \y[ Explode ] \w- \r20 Golds", "1", 0 );
		
	}
	if ( Runed [ id ] && get_pcvar_num( p_ultimate5 ) ) {
		
		menu_additem ( menu, "\dRuned Bracers \y[ Lightning ] \w- \rAlready Have", "2", 0 );
	}
	else if ( iCredits < 30 ) {
		
		menu_additem ( menu, "\dRuned Bracers \y[ Lightning ] \w- \rNo Golds", "2", 0 );
		
	}
	else if ( !Runed [ id ] || iCredits >= 30) {
		
		menu_additem ( menu, "\wRuned Bracers \y[ Lightning ] \w- \r30 Golds", "2", 0 );
		
	}
	if ( Rune [ id ] && get_pcvar_num( p_ultimate6 ) ) {
		
		menu_additem ( menu, "\dRune of Health \y[ Team Health ] \w- \rAlready Have", "3", 0 );
	}
	else if ( iCredits < 30 ) {
		
		menu_additem ( menu, "\dRune of Health \y[ Team Health ] \w- \rNo Golds", "3", 0 );
		
	}
	else if ( !Rune [ id ] || iCredits >= 30) {
		
		menu_additem ( menu, "\wRune of Health \y[ Team Health ] \w- \r30 Golds", "3", 0 );
		
	}
	if ( Courage [ id ] && get_pcvar_num( p_ultimate7 ) ) {
		
		menu_additem ( menu, "\dMedallion of Courage \y[ Imune Powers ] \w- \rAlready Have", "4", 0 );
	}
	else if ( iCredits < 60 ) {
		
		menu_additem ( menu, "\dMedallion of Courage \y[ Imune Powers ] \w- \rNo Golds", "4", 0 );
		
	}
	else if ( !Courage [ id ] || iCredits >= 60) {
		
		menu_additem ( menu, "\wMedallion of Courage \y[ Imune Powers ] \w- \r60 Golds", "4", 0 );
		
	}
	if ( Silent [ id ] && get_pcvar_num( p_ultimate8 ) ) {
		
		menu_additem ( menu, "\dStaff of Silence \y[ Silent Walker ] \w- \rAlready Have", "5", 0 );
	}
	else if ( iCredits < 15 ) {
		
		menu_additem ( menu, "\dStaff of Silence \y[ Silent Walker ] \w- \rNo Golds", "5", 0 );
		
	}
	else if ( !Silent [ id ] || iCredits >= 15) {
		
		menu_additem ( menu, "\wStaff of Silence \y[ Silent Walker ] \w- \r15 Golds", "5", 0 );
		
	}
	if ( Eggle [ id ] && get_pcvar_num( p_ultimate9 ) ) {
		
		menu_additem ( menu, "\dOrb of Corruption \y[ Eggle Power ] \w- \rAlready Have", "6", 0 );
	}
	else if ( iCredits < 40 ) {
		
		menu_additem ( menu, "\dOrb of Corruption \y[ Eggle Power ] \w- \rNo Golds", "6", 0 );
		
	}
	else if ( !Eggle [ id ] || iCredits >= 40) {
		
		menu_additem ( menu, "\wOrb of Corruption \y[ Eggle Power ] \w- \r40 Golds", "6", 0 );
		
	}
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	return 1;
	
}
public UltimatePowersMenuGiver ( id, menu, item ) {
	
	if ( item == MENU_EXIT )
	{
		return 1;
	}
	
	new data [ 6 ], szName [ 64 ];
	new access, callback;
	menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
	new key = str_to_num ( data );
	
	switch(key)
	{
		case 1:
		{
			if (!Cloak [ id ] && get_pcvar_num( p_ultimate4 ) ) {
				
				new iPrice = get_user_gold ( id ) - 20;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Cloak [ id ] = true
					UltimatePower [ id ] = 4;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate4) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Cloak^x01 Item is disabled.", szTag)
			}
		}
		case 2:
		{
			if (!Runed [ id ] && get_pcvar_num( p_ultimate5 ) ) {
				
				new iPrice = get_user_gold ( id ) - 30;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Runed [ id ] = true
					UltimatePower [ id ] = 5;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate5) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Runned^x01 Item is disabled.", szTag)
			}
		}
		case 3:
		{
			if (!Rune [ id ] && get_pcvar_num( p_ultimate6 ) ) {
				
				new iPrice = get_user_gold ( id ) - 30;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Rune [ id ] = true
					UltimatePower [ id ] = 6;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate6) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Runned^x01 Item is disabled.", szTag)
			}
		}
		case 4:
		{
			if (!Courage [ id ] && get_pcvar_num( p_ultimate7 ) ) {
				
				new iPrice = get_user_gold ( id ) - 60;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Courage [ id ] = true
					UltimatePower [ id ] = 7;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate7) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Courage^x01 Item is disabled.", szTag)
			}
		}
		case 5:
		{
			if (!Silent [ id ] && get_pcvar_num( p_ultimate8 ) ) {
				
				new iPrice = get_user_gold ( id ) - 15;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Silent [ id ] = true
					UltimatePower [ id ] = 8;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate8) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Silent^x01 Item is disabled.", szTag)
			}
		}		
		case 6:
		{
			if (!Eggle [ id ] && get_pcvar_num( p_ultimate9 ) ) {
				
				new iPrice = get_user_gold ( id ) - 40;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Eggle [ id ] = true
					UltimatePower [ id ] = 9;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate9) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Eggle^x01 Item is disabled.", szTag)
			}
		}

	}
	
	return 1;
	
}
public UseUltimatePower ( id ) {
	
	switch ( UltimatePower [ id ] ) {
		

		case 1:
		{
			if(Shadow_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Shadow_Countdown[id], Shadow_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( shadowpower ( id ) ) {
				
				Shadow_Countdown[id] = 25;
				CountDown_Shadow(id);
			}
		}
		case 2:
		{
			if(Orb_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Orb_Countdown[id], Orb_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( orbpower ( id ) ) {
				
				Orb_Countdown[id] = 20;
				CountDown_Orb(id);
			}
		}
		case 3:
		{
			if(Redbull_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Redbull_Countdown[id], Redbull_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( redbull ( id ) ) {
				
				Redbull_Countdown[id] = 20;
				CountDown_Redbull(id);
				
			}
		}
		case 4:
		{
			if(Explode_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Explode_Countdown[id], Explode_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( explode ( id ) ) {
				
				Explode_Countdown[id] = 15;
				CountDown_Explode(id);
			}
		}
		case 5:
		{
			if(Electric_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Electric_Countdown[id], Electric_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( electric ( id ) ) {
				
				Electric_Countdown[id] = 15;
				CountDown_Electric(id);
			}
		}
		case 6:
		{
			if(TeamHealth_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY,  "Puterea iti va reveni in^4 %d^3 secund%s .^4",TeamHealth_Countdown[id], TeamHealth_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( teamhealth ( id ) ) {
				
				TeamHealth_Countdown[id] = 15;
				CountDown_TeamHealth(id);
			}
		}
		case 8:
		{
			if(Staff_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Staff_Countdown[id], Staff_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( staffpower ( id ) ) {
				
				Staff_Countdown[id] = 20;
				CountDown_Staff(id);
			}
		}
		case 9:
		{
			if(Eggle_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Eggle_Countdown[id], Eggle_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( egglepower ( id ) ) {
				
				Eggle_Countdown[id] = 25;
				CountDown_Eggle(id);
			}
		}

		
	}
	
}

public CountDown_Shadow(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 1 || !Shadow [ id ]) {
		Shadow_Countdown[id] = 0;
	}
	else if(Shadow_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", Shadow_Countdown[id], Shadow_Countdown[id] == 1 ? "a" : "e");
		Shadow_Countdown[id]--;
		set_task(1.0, "CountDown_Shadow", id);
	}
	else if(Shadow_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");
		Shadow_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Orb(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 2 || !Light [ id ]) {
		Orb_Countdown[id] = 0;
	}
	else if(Orb_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", Orb_Countdown[id], Orb_Countdown[id] == 1 ? "a" : "e");
		Orb_Countdown[id]--;
		set_task(1.0, "CountDown_Orb", id);
	}
	else if(Orb_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");
		Orb_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Redbull(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 3 || !Gloves [ id ]) {
		Redbull_Countdown[id] = 0;
	}
	else if(Redbull_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", Redbull_Countdown[id], Redbull_Countdown[id] == 1 ? "a" : "e");
		Redbull_Countdown[id]--;
		set_task(1.0, "CountDown_Redbull", id);
	}
	else if(Redbull_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");
		Redbull_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Explode(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 4 || !Cloak [ id ]) {
		Explode_Countdown[id] = 0;
	}
	else if(Explode_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", Explode_Countdown[id], Explode_Countdown[id] == 1 ? "a" : "e");
		Explode_Countdown[id]--;
		set_task(1.0, "CountDown_Explode", id);
	}
	else if(Explode_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");
		Explode_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
	
}
public CountDown_Electric(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 5 || !Runed[ id ]) {
		Electric_Countdown[id] = 0;
	}
	else if(Electric_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", Electric_Countdown[id], Electric_Countdown[id] == 1 ? "a" : "e");
		Electric_Countdown[id]--;
		set_task(1.0, "CountDown_Electric", id);
	}
	else if(Electric_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");
		Electric_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_TeamHealth(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 6 || !Rune[ id ]) {
		TeamHealth_Countdown[id] = 0;
	}
	else if(TeamHealth_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", TeamHealth_Countdown[id], TeamHealth_Countdown[id] == 1 ? "a" : "e");
		TeamHealth_Countdown[id]--;
		set_task(1.0, "CountDown_TeamHealth", id);
	}
	else if(TeamHealth_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");
		TeamHealth_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Staff(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 8 || !Silent[ id ]) {
		Staff_Countdown[id] = 0;
	}
	else if(Staff_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", Staff_Countdown[id], Staff_Countdown[id] == 1 ? "a" : "e");
		Staff_Countdown[id]--;
		set_task(1.0, "CountDown_Staff", id);
	}
	else if(Staff_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");
		Staff_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Eggle(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 9 || !Eggle[ id ]) {
		Eggle_Countdown[id] = 0;
	}
	else if(Eggle_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", Eggle_Countdown[id], Eggle_Countdown[id] == 1 ? "a" : "e");
		Eggle_Countdown[id]--;
		set_task(1.0, "CountDown_Eggle", id);
	}
	else if(Eggle_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");
		Eggle_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
bool: explode(  id  ) {
	
	if ( is_user_alive ( id ) ) {
		
		new Float:fOrigin[ 3 ], iOrigin[ 3 ];
		pev( id, pev_origin, fOrigin  );
		
		FVecIVec(  fOrigin, iOrigin  );
		
		CreateBlast( 47, 209, 35, iOrigin );
		
		emit_sound(  id, CHAN_AUTO,  g_szExplodeSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		
		ExplodeAndDamageNearPlayers( id, fOrigin );
	}
	
	return true;
}
bool: electric(  id  ) {
	
	if ( is_user_alive ( id ) ) {
		
		new Float:fOrigin[ 3 ], iOrigin[ 3 ];
		pev( id, pev_origin, fOrigin  );
		
		FVecIVec(  fOrigin, iOrigin  );
		
		CreateBlast( 51, 204, 255, iOrigin );
		
		emit_sound(  id, CHAN_AUTO,  g_szLightSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		
		LightNearPlayers( id, fOrigin );
		
	}
	
	return true;
}
bool: egglepower ( id ) {
	
	new target, body;
	static Float:start[3];
	static Float:aim[3];
	
	pev(id, pev_origin, start);
	fm_get_aim_origin(id, aim);
	
	start[2] += 16.0; // raise
	aim[2] += 16.0; // raise
	
	get_user_aiming (id, target, body, 4500);
	if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
		
		emit_sound(  id, CHAN_AUTO,  g_szToxineDetected, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		FadeScreen ( target, 4.0, 255, 255, 0, 100 );
		ShakeScreen ( target, 4.5 );
		fm_set_user_health ( target, random_num ( 5, 26 ) );
		fm_set_user_armor ( target, random_num ( 10, 32 ) );
		fm_set_rendering ( target, kRenderFxGlowShell, 255, 255, 0, kRenderNormal, 25)
		set_task ( 0.5, "AntiToxineSound", target );
	}	
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
	write_byte(0);
	engfunc(EngFunc_WriteCoord,start[0]);
	engfunc(EngFunc_WriteCoord,start[1]);
	engfunc(EngFunc_WriteCoord,start[2]);
	engfunc(EngFunc_WriteCoord,aim[0]);
	engfunc(EngFunc_WriteCoord,aim[1]);
	engfunc(EngFunc_WriteCoord,aim[2]);
	write_short(EggleSpriteEffect); // sprite index
	write_byte(0); // start frame
	write_byte(30); // frame rate in 0.1's
	write_byte(20); // life in 0.1's
	write_byte(50); // line width in 0.1's
	write_byte(50); // noise amplititude in 0.01's
	write_byte(255); // red
	write_byte(255); // green
	write_byte(0); // blue
	write_byte(100); // brightness
	write_byte(50); // scroll speed in 0.1's
	message_end();
	
	return true;
	
}
bool: shadowpower ( id ) {
	
	emit_sound(  id, CHAN_AUTO,  g_szShadowSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	fm_set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 40 );
	set_task ( 10.0, "Remove_Shadow", id );
	return true;
	
}
bool: staffpower(  id  ) {
	
	
	new Float:fOrigin[ 3 ], iOrigin[ 3 ];
	pev( id, pev_origin, fOrigin  );
	
	FVecIVec(  fOrigin, iOrigin  );
	
	CreateBlast( 51, 204, 255, iOrigin );
	
	emit_sound(  id, CHAN_AUTO,  g_szStaffSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	
	FlashPlayers( id, fOrigin );
	
	return true;
}
bool: orbpower ( id ) {
	
	emit_sound(  id, CHAN_AUTO,  g_szOrbSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	
	return true;
	
}

bool: redbull ( id ) {
	
	switch ( get_user_team ( id ) ) {
		
		case 1:
		{
			fm_set_user_health ( id, get_user_health ( id ) + 50 );
			fm_set_user_armor ( id, get_user_armor ( id ) + 100 );
			fm_set_user_gravity ( id, 0.5 );
			entity_set_float ( id, EV_FL_maxspeed, 800.0 );  
			RedBullSpeed [ id ] = true;
			emit_sound(  id, CHAN_AUTO,  g_szRedBullSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
			set_task ( 10.0, "ReverseRedBull", id );
			ShakeScreen(  id, 5.5  );
			FadeScreen(  id, 1.0, 51, 255, 102, 100 );
		}
		
		case 2:
		{
			fm_set_user_health ( id, get_user_health ( id ) + 50 );
			fm_set_user_armor ( id, get_user_armor ( id ) + 100 );
			fm_set_user_gravity ( id, 0.6875 );
			entity_set_float ( id, EV_FL_maxspeed, 600.0 );  
			RedBullSpeed [ id ] = true;
			emit_sound(  id, CHAN_AUTO,  g_szRedBullSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
			set_task ( 10.0, "ReverseRedBull", id );
			ShakeScreen(  id, 5.5  );
			FadeScreen(  id, 1.0, 51, 255, 102, 100 );
		}		
	}
	
	return true;
	
}
bool: teamhealth(  id  ) {
	
	if ( get_user_team ( id ) == 1 ) {
		
		fm_set_user_health ( id, get_user_health ( id ) + 50 );
		
		new iPlayers[32]
		new iNum
		
		get_players( iPlayers, iNum, "e", "TERRORIST" )
		
		for( new i = 0; i < iNum; i++ )
		{
			new szName[32]
			get_user_name(id, szName, charsmax(szName)) 
			fm_set_user_health (iPlayers, 200 );
			msg_screen_fade(iPlayers, 1, 255, 130, 150, 115);
			
			set_hudmessage(85, 170, 255, -1.0, -1.0, 0, 6.0, 3.0)
			show_hudmessage(iPlayers, "%s a folosit Team Health", szName)
		}
		
		
	}
	
	if ( get_user_team ( id ) == 2 ) {
		
		fm_set_user_health ( id, get_user_health ( id ) + 50 );
		
		new iPlayers[32]
		new iNum
		
		get_players( iPlayers, iNum, "e", "CT" )
		
		for( new i = 0; i < iNum; i++ )
		{
			new szName[32]
			get_user_name(id, szName, charsmax(szName)) 
			fm_set_user_health (iPlayers, 200 );
			msg_screen_fade(iPlayers, 1, 255, 130, 150, 115);
			set_hudmessage(85, 170, 255, -1.0, -1.0, 0, 6.0, 3.0)
			show_hudmessage(iPlayers, "%s a folosit Team Health", szName)
		}
		
		
	}
	
	return true;
}
public Remove_Shadow ( id ) {
	
	fm_set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255 );
	FadeScreen ( id, 0.3, 0, 0, 255, 100 );
}
public ReverseRedBull ( id ) {
	
	switch ( get_user_team ( id ) ) {
		
		case 1:
		{
			if ( get_user_health ( id ) == 150 ) {
				
				fm_set_user_health ( id, 100 );
			}
			
			if ( get_user_armor ( id ) == 100 ) {
				
				fm_set_user_armor ( id, 0 );
			}
			
			fm_set_user_gravity ( id, 0.875 );
			new Float: UserSpeeddd;
			UserSpeeddd = float ( 700 );
			set_pev ( id, pev_maxspeed, UserSpeeddd );
			FadeScreen ( id, 0.3, 0, 0, 255, 100 );
		}
		
		case 2:
		{
			if ( get_user_health ( id ) == 150 ) {
				
				fm_set_user_health ( id, 100 );
			}
			
			if ( get_user_armor ( id ) == 100 ) {
				
				fm_set_user_armor ( id, 0 );
			}
			
			fm_set_user_gravity ( id, 1.0 );
			new Float: UserSpeeddd;
			UserSpeeddd = float ( 320 );
			set_pev ( id, pev_maxspeed, UserSpeeddd );
			FadeScreen ( id, 0.3, 0, 0, 255, 100 );
		}
		
	}
	
}
public FadeScreen( id, const Float:seconds, const redd, const greenn, const bluee, const alpha )
{      
	message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 0x0000 );
	write_byte( redd );
	write_byte( greenn );
	write_byte( bluee );
	write_byte( alpha );
	message_end( );
	
}
public FlashPlayers( iPsycho, const Float:fOrigin[ 3 ]  )
{
	static iVictim;
	iVictim = -1;
	
	while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
	{
		if( !is_user_alive( iVictim ) )
			continue;
		
		if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
			continue;
		
		if ( UltimatePower [ iVictim ] != 5 ) {
			
			msg_screen_fade(iVictim, 3, 255, 130, 150, 115);
			set_task ( 3.0, "ShakeScreeeen", iVictim );
			
		}
	}
}
public ShakeScreeeen ( id ) {
	
	ShakeScreen(  id, 5.5  );
	
}
public ShakeScreen( id, const Float:seconds )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 1<<13 );
	message_end( );
	
}
public LightNearPlayers(  id, const Float:fOrigin[ 3 ]  )
{
	static iVictim;
	iVictim = -1;
	
	while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
	{
		if( !is_user_alive( iVictim ) )
			continue;
		
		if( get_user_team( id ) == get_user_team( iVictim ) )
			continue;	
		
		new Float:fVictimOrigin[ 3 ], iVictimOrigin[ 3 ];
		pev( id, pev_origin, fVictimOrigin );
		
		FVecIVec( fVictimOrigin, iVictimOrigin );
		CreateLightning( id, iVictim, iVictimOrigin );
		
		if ( UltimatePower [ iVictim ] != 5 ) {
			new Float:fHealth;
			pev(  iVictim, pev_health, fHealth );
			
			fHealth -= float(  random_num( 70, 100 )  );
			
			if(  fHealth <= 0  )
			{
				log_kill( id, iVictim, "Electric", 0  );
				fm_set_user_frags ( id, get_user_frags ( id ) + 1 );
			}
			else
			{
				set_pev(  iVictim, pev_health, fHealth );
			}
			
		}
	}
}

public CreateLightning( id, iVictim, iVictimOrigin[ 3 ] )
{
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMENTS );
	write_short( id );		// start entity
	write_short( iVictim );		// end entity
	write_short( gLightModel );			// model
	write_byte( 0 );		// starting frame
	write_byte( 15 );			// frame rate
	write_byte( 15 );				// life
	write_byte( 80 );				// line width
	write_byte( 10 );				// noise amplitude
	write_byte( 255 );				// red
	write_byte( 25 );				// green
	write_byte( 25 );				// blue
	write_byte( 255 );				// brightness
	write_byte( 0 );				// scroll speed
	message_end( );	
	
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_ELIGHT );
	write_short( iVictim );			// entity
	write_coord( iVictimOrigin[0] );			// initial position
	write_coord( iVictimOrigin[1] );			// initial position
	write_coord( iVictimOrigin[2] );			// initial position
	write_coord( 100 );			// radius
	write_byte( 51 );				// red
	write_byte( 204 );				// green
	write_byte( 255 );				// blue
	write_byte( 15 );				// life
	write_coord( 0 );		// decay rate
	message_end( );
	
}
public ExplodeAndDamageNearPlayers( iPsycho, const Float:fOrigin[ 3 ]  )
{
	static iVictim;
	iVictim = -1;
	
	while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
	{
		if( !is_user_alive( iVictim ) )
			continue;
		
		if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
			continue;
		
		if ( UltimatePower [ iVictim ] != 5 ) {
			new Float:fHealth;
			pev(  iVictim, pev_health, fHealth );
			
			fHealth -= float(  random_num( 50, 130 )  );
			
			if(  fHealth <= 0  )
			{
				log_kill( iPsycho, iVictim, "Explode", 0  );
				fm_set_user_frags ( iPsycho, get_user_frags ( iPsycho ) + 1 );
			}
			else
			{
				ShakeScreen(  iVictim, 5.5  );
				FadeScreen(  iVictim, 3.0, 42, 170, 255, 100 );
				damage_user(  iVictim, fHealth, fOrigin, DMG_BLAST );
			}
		}
	}
}
stock log_kill(  iKiller, iVictim, szWeapon[], iHeadshot  )
{
	user_silentkill(  iVictim  );
	
	message_begin(  MSG_ALL, get_user_msgid( "DeathMsg" ),  {0,0,0}, 0  );
	write_byte( iKiller );
	write_byte( iVictim );
	write_byte( iHeadshot );
	write_string( szWeapon );
	message_end(  );
	
	fm_set_user_frags( iKiller, get_user_frags( iKiller ) +1  );
	
	new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];
	
	get_user_name( iKiller, kname, 31 );
	get_user_team( iKiller, kteam, 9 );
	get_user_authid( iKiller, kauthid, 31 );
	
	get_user_name( iVictim, vname, 31 );
	get_user_team( iVictim, vteam, 9 );
	get_user_authid( iVictim, vauthid, 31 );
	
	log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"", 
	kname, get_user_userid( iKiller ), kauthid, kteam, 
	vname, get_user_userid( iVictim ), vauthid, vteam, szWeapon  );
	
	return 0;
}

stock damage_user( iVictim, const Float:fHealthLeft, const Float:fOrigin[ 3 ], bit  )
{
	new iOrigin[ 3 ];
	FVecIVec( fOrigin, iOrigin );
	
	message_begin( MSG_ONE, get_user_msgid( "Damage" ), {0,0,0}, iVictim  );
	write_byte( 21 );
	write_byte( 20 );
	write_long( bit );
	write_coord( iOrigin[ 0 ] );
	write_coord( iOrigin[ 1 ] );
	write_coord( iOrigin[ 2 ] );
	message_end(  );
	
	set_pev(  iVictim, pev_health, fHealthLeft );
}
CreateBlast(  const Redd, const Greenn, const Bluee, const iOrigin[ 3 ] ) {
	
	// Small ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 285 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
	
	// Medium ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 385 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
	
	// Large ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 470 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
	
	// Largest Ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 555 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
}
stock msg_screen_fade( id, holdtime, r, g, b, a )
{
	message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );
	write_short( seconds_to_units( holdtime ) );
	write_short( seconds_to_units( holdtime ) );
	write_short( 0 );
	write_byte( r );
	write_byte( g );
	write_byte( b );
	write_byte( a );
	message_end( );
}

stock seconds_to_units( time )
{
	return ( ( 1 << 12 ) * ( time ) )
}
stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
	message_begin( MSG_PVS, SVC_TEMPENTITY, origin ); 
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + addrad );
	write_short( sprite );
	write_byte( startfrate );
	write_byte( framerate );
	write_byte(life );
	write_byte( width );
	write_byte( amplitude );
	write_byte( red );
	write_byte( green );
	write_byte( blue );
	write_byte( brightness );
	write_byte( speed );
	message_end();
}

stock Create_TE_SPRITETRAIL3(start[3], end[3], iSprite, count, life, scale, velocity, random ){
	
	message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte( TE_SPRITETRAIL )
	write_coord( start[0] ) // start position (X)
	write_coord( start[1] ) // start position (Y)
	write_coord( start[2] + 40 ) // start position (Z)
	write_coord( end[0] ) // end position (X)
	write_coord( end[1] ) // end position (Y)
	write_coord( end[2] ) // end position (Z)
	write_short( iSprite ) // sprite index
	write_byte( count ) // count
	write_byte( life) // life in 0.1's
	write_byte( scale) // scale in 0.1's
	write_byte( velocity ) // velocity along vector in 10's
	write_byte( random ) // randomness of velocity in 10's
	message_end()
}
// |-- CC_ColorChat --|

furien_colored_print(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}

// |-- CC_ColorChat --|
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
eroare | Afiseaza codul
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(313) : error 033: array must be indexed (variable "iPlayers")
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(372) : error 033: array must be indexed (variable "iPlayers")
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2030) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2031) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2034) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2053) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2054) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2056) : error 035: argument type mismatch (argument 1)
//
// 8 Errors.
// Could not locate output file compiled\1.amx (compile failed).
//
// Compilation Time: 0,83 sec
// ----------------------------------------
RoyalServer
lexz
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 918
Joined: 02 Nov 2020, 01:57
Detinator Steam: Da
Fond eXtream: 0
Discord: lexzor#0630
Has thanked: 71 times
Been thanked: 136 times

13 Sep 2022, 13:08

foloseste code /code fiecare intre paranteze drepte ca sa pui pluginul
User avatar
CyBer[N]eTicK
Membru, skill +1
Membru, skill +1
Posts: 190
Joined: 29 May 2020, 05:35
Detinator Steam: Da
CS Status: Strong & Original
Detinator server CS: BB.BLACKGAMES.RO
SteamID: /id/cybernetick_cbk/
Fond eXtream: 0
Location: Albania, tirana
Discord: cybernetick_cbk
Has thanked: 21 times
Been thanked: 18 times
Contact:

13 Sep 2022, 14:36

DauLaBuci05 wrote:
12 Sep 2022, 19:18
Salutare.

Ma puteti ajuta si pe cu eroare asta la pluginul asta :
Plugin | Afiseaza codul
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "Furien Menu"
#define VERSION "0.1"
#define AUTHOR "-Turbo-"

native get_user_credits(id);
native set_user_credits(id, credits);

native get_user_gold(id)
native set_user_gold(id, gold)

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define ID_SHOWGOLD (taskid - TASK_SHOWGOLD)
#define IsPlayer(%1) ( 1 <= %1 <= g_maxplayers )

#define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0001 // Fade out (not in)
#define FFADE_MODULATE 0x0002 // Modulate (don't blend)
#define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received

new szTag [ ] = "[FURIEN.CSNEAMT.RO]";
new iconstatus;

new cvar_extraitems, cvar_buy_slot, cvar_choose_class, cvar_rank, cvar_top, cvar_blocksuicide, cvar_trade, g_slot_cost;
new p_ultimate1, p_ultimate2, p_ultimate3, p_ultimate4, p_ultimate5, p_ultimate6, p_ultimate7, p_ultimate8, p_ultimate9;
new plant_bomb, plant_defused, plant_explode;

new bool:canHeal = true;
new bool:g_CanUseHe [ 33 ];
new p_Soldier, p_Heavy, p_Medic,  p_SoldierMaxHp, p_SoldierKillHp, p_MedicHpRegen, p_MedicHpRegenSpeed, p_MedicMaxHp;
new bool:Soldier [ 33 ], bool:Heavy [ 33 ], bool:Medic [ 33 ], bool:Shadow [ 33 ], bool:Light [ 33 ], bool:Gloves [ 33 ], bool:Cloak[ 33 ], bool:Runed [ 33 ], bool:Rune [ 33 ], bool:Courage [ 33 ], bool:Silent [ 33 ], bool:Eggle [ 33 ];
new g_maxplayers;

new bool:g_Password[33], bool:g_HaveSlot[33], bool:UserHasChoosed [ 33 ];

new g_Fraguri;
new g_iFrags [33];

new UltimatePower [ 33 ], Shadow_Countdown [ 33 ], Orb_Countdown [ 33 ], Redbull_Countdown [ 33 ], Explode_Countdown [ 33 ], Electric_Countdown [ 33 ], TeamHealth_Countdown [ 33 ], Staff_Countdown [ 33 ], Eggle_Countdown [ 33 ];
new bool: RedBullSpeed [ 33 ];
new Float:LastMessage[33];
new gShockWaveSprite, gLightModel, EggleSpriteEffect, TeleportSprite3;

new const g_szToxineDetected [   ] = "ultimate_furien/blood_toxins.wav";
new const g_szAntiToxine [    ] = "ultimate_furien/antitoxin_shot.wav";
new const g_szLightModel[    ] = "sprites/lgtning.spr";
new const g_szLightSound[    ] =  "ultimate_furien/lightningbolt.wav";
new const g_szExplodeSound2[    ]  =  "ultimate_furien/particle_suck1.wav";
new const g_szRedBullSound [   ] = "ultimate_furien/MiniSpiritPissed1.wav";
new const g_szOrbSound [   ] = "ultimate_furien/locustswarmloop.wav";
new const g_szShadowSound [   ] = "ultimate_furien/antend.wav";
new const g_szErrror [   ] = "ultimate_furien/Error.wav";
new const g_szUltimateReady [   ] = "ultimate_furien/flamestriketargetwavenonloop1.wav";
new const g_szShockWaveSprite[    ]  =  "sprites/shockwave.spr";
new const g_szStaffSound2 [    ] = "ultimate_furien/ImmolationDecay1.wav";

// Linux diff's
const OFFSET_CSTEAMS = 114
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
const OFFSET_LINUX_WEAPONS = 4 // weapon offsets are only 4 steps higher on Linux

// Menu keys
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

// CS Teams
enum
{
	FM_CS_TEAM_UNASSIGNED = 0,
	FM_CS_TEAM_T,
	FM_CS_TEAM_CT,
	FM_CS_TEAM_SPECTATOR
}
// Task offsets
enum (+= 100)
{
	TASK_SHOWHUD,
	TASK_SHOWGOLD
}

enum Color
{
	NORMAL = 1, 		// Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
	GREEN, 			// Culoare Verde.
	TEAM_COLOR, 		// Culoare Rosu, Albastru, Gri.
	GREY, 			// Culoarea Gri.
	RED, 			// Culoarea Rosu.
	BLUE, 			// Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	// Client commands
	register_menu("Game Menu", KEYSMENU, "menu_game")
	register_clcmd("chooseteam", "clcmd_changeteam")
	register_clcmd("jointeam", "clcmd_changeteam")
	register_clcmd("amx_slot_password", "BuySlotMod", ADMIN_USER, "<password>");
	
	// FM Forwards
	RegisterHam( Ham_TraceAttack, "player", "player_Attack" );
	register_forward( FM_PlayerPreThink, "pthink" );
	register_forward(FM_ClientKill, "fw_ClientKill")
	register_event ( "DeathMsg", "eDeath", "a" );
	register_event( "DeathMsg", "event_PlayerHeal", "a" );
	register_logevent ( "round_start", 2, "1=Round_Start" );
	register_forward ( FM_PlayerPreThink,"fwSetUserIcon" );
	RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "ham_PrimaryAttack_He" );
	//register_message(get_user_msgid("TextMsg") ,"message_TextMsg")
	
	register_clcmd ( "ultimate", "UseUltimatePower", -1 );
	
	g_Fraguri = register_cvar( "furien_rewards_frags", "20" );
	// Cvars
	cvar_extraitems = register_cvar("furien_extra_items", "1")
	cvar_buy_slot = register_cvar("furien_buy_slot", "1")
	cvar_choose_class = register_cvar("furien_choose_class", "1")
	cvar_rank = register_cvar("furien_rank", "1")
	cvar_top = register_cvar("furien_top", "1")
	cvar_blocksuicide = register_cvar("furien_block_suicide", "1")
	cvar_trade = register_cvar("furien_trade", "1")
	g_slot_cost = register_cvar ("furien_slot_cost", "500")
	p_Soldier = register_cvar( "amx_vip_soldier", "1" );
	p_SoldierKillHp = register_cvar( "furien_soldier_kill_hp", "5" );
	p_SoldierMaxHp = register_cvar( "furien_soldier_max_hp", "300" );
	p_Heavy = register_cvar( "furien_heavy", "1" );
	p_Medic = register_cvar( "furien_medic", "1" );
	p_MedicHpRegen = register_cvar( "furien_medic_hp_regen", "2" );
	p_MedicHpRegenSpeed = register_cvar( "furien_medic_hp_regen_speed", "2.0" );
	p_MedicMaxHp = register_cvar( "furien_medic_max_hp", "300" );
	p_ultimate1 = register_cvar( "furien_ultimat1", "1" );
	p_ultimate2 = register_cvar( "furien_ultimat2", "1" );
	p_ultimate3 = register_cvar( "furien_ultimat3", "1" );
	p_ultimate4 = register_cvar( "furien_ultimat4", "1" );
	p_ultimate5 = register_cvar( "furien_ultimat5", "1" );
	p_ultimate6 = register_cvar( "furien_ultimat6", "1" );
	p_ultimate7 = register_cvar( "furien_ultimat7", "1" );
	p_ultimate8 = register_cvar( "furien_ultimat8", "1" );
	p_ultimate9 = register_cvar( "furien_ultimat9", "1" );
	plant_bomb = register_cvar( "furien_credits_bomb", "10");
	plant_defused = register_cvar ("furien_credis_defuse", "5");
	plant_explode = register_cvar ("furien_credis_explode", "10");

	iconstatus = get_user_msgid ( "StatusIcon" );
	g_maxplayers = get_maxplayers( );

	
}
/*public plugin_cfg()
{
	// Format our config file
	new szConfigFile[64];
	get_configsdir( szConfigFile, 63 );
	add( szConfigFile, 63, "/ultimate_furien.cfg" );

	// Make sure the config file exists!
	if ( file_exists( szConfigFile ) )
	{
		server_cmd( "exec %s", szConfigFile );
	}
	else
	{
		set_fail_state( "Config file is missing, unable to load plugin" );
	}
}*/
public plugin_precache() 
{
	precache_sound ( g_szToxineDetected );
	precache_sound ( g_szAntiToxine );
	precache_sound ( g_szLightSound );
	precache_sound ( g_szExplodeSound2 );
	precache_sound ( g_szRedBullSound );
	precache_sound ( g_szOrbSound );
	precache_sound ( g_szShadowSound );
	precache_sound("ambience/particle_suck1.wav")
	precache_sound ( g_szErrror );
	precache_sound ( g_szUltimateReady );
	precache_sound ( g_szStaffSound2 );
	
	gShockWaveSprite  =  precache_model(  g_szShockWaveSprite  );
	gLightModel  =  precache_model(  g_szLightModel  );
	EggleSpriteEffect = precache_model ( "sprites/laserbeam.spr" );
	TeleportSprite3 = precache_model( "sprites/teleport_start.spr");
}
public client_connect(id){
	
	client_cmd(id, "echo ")
	client_cmd(id, "echo ^" *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* ^" ")
	client_cmd(id, "echo ^" *=-= Welcome to: Ultimate Furien Powers (UFP) ^" ")
	client_cmd(id, "echo ^" *=-= Add Favorite: Furien.CsNeamT.Ro Or 89.40.233.219:27015 ^" ")
	client_cmd(id, "echo ^" *=-= Furien Website: http://csneamt.ro/forum    ^" ")
	client_cmd(id, "echo ^" *=-= Founders Contact: Gangsta ([email protected]) ^" ")
	client_cmd(id, "echo ^" *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* ^" ")
	client_cmd(id, "echo ")
}
public client_putinserver(id)
{
	RemoveAll ( id );
	g_iFrags[id] = 0;
	set_task(0.1, "ShowHUD",id+TASK_SHOWHUD, _, _, "b")
	set_task(0.1, "ShowHUDGold",id+TASK_SHOWGOLD, _, _, "b")
	
}
public client_disconnect(id)
{
	RemoveAll ( id );
	g_iFrags[id] = 0;
	
}
public RemoveAll ( id ) {
	
	Soldier[ id ] = false
	Heavy[ id ] = false
	Medic[ id ] = false
	Shadow_Countdown [ id ] = 0;
	Orb_Countdown [ id ] = 0;
	Redbull_Countdown [ id ] = 0;
	Shadow [ id ] = false
	Light [ id ]= false
	Gloves [ id ] = false
	Cloak[ id ] = false
	Runed [ id ] = false
	Rune [ id ] = false
	Courage [ id ] = false
	Silent [ id ] = false
	Eggle [ id ] = false
	Explode_Countdown [ id ] = 0;
	Electric_Countdown [ id ] = 0;
	Redbull_Countdown [ id ] = 0;
	TeamHealth_Countdown [ id ] = 0;
	Orb_Countdown [ id ] = 0;
	Staff_Countdown [ id ] = 0;
	Eggle_Countdown [ id ] = 0;
	Shadow_Countdown [ id ] = 0;
	UltimatePower [ id ] = 0;
	UserHasChoosed [ id ] = false
	
}
public eDeath( )
{
	new t_Killer = read_data( 1 );
	new iVictim = read_data ( 2 );
	g_iFrags[ t_Killer ]++;
	if( g_iFrags[ t_Killer ] >= get_pcvar_num( g_Fraguri ) )
	{
		furien_colored_print(t_Killer, TEAM_COLOR, "^4[FURIEN.CSNEAMT.RO]^3 Reward + [5 Gold]");
		new golds = get_user_gold(t_Killer) + 5;
		set_user_gold(t_Killer, golds );
		g_iFrags[ t_Killer ] = 0;
	}
	RemoveAll ( iVictim );
	UserHasChoosed [ iVictim ] = false
	/*new weapon[32]
	read_data(4, weapon, sizeof(weapon) -1)
	if(t_Killer == iVictim)
	{
		return 1;
	}
	if(Headshot)
	{
		set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(HsCredits));
		set_dhudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_dhudmessage ( t_Killer, "+%d Credite", get_pcvar_num(HsCredits) + get_pcvar_num ( KillCredits ) );
	}
	
	else if(equali(weapon, "knife"))
	{
		set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(KnifeCredits));
		set_dhudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_dhudmessage ( t_Killer, "+%d Credits", get_pcvar_num(KnifeCredits) + get_pcvar_num ( KillCredits ) );
	}
	
	else if(equali(weapon, "grenade"))
	{
		set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(HeCredits));
		set_hudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_hudmessage ( t_Killer, "+%d Credits", get_pcvar_num(HeCredits) + get_pcvar_num ( KillCredits ) );
	}
	
	else
	{
		set_hudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
		show_hudmessage ( t_Killer, "+%d Credits", get_pcvar_num ( KillCredits ) );
	}*/
}
public round_start ( ) {
	
	new iPlayers [ 32 ];
	new iNum;
	
	get_players ( iPlayers, iNum );
	
	for ( new i = 0; i < iNum; i++ )
	{
		g_CanUseHe[iPlayers] = false;
	}
}
public ham_PrimaryAttack_He ( iEnt ) {
	
	new id = pev( iEnt, pev_owner ); 
	
	if( g_CanUseHe [ id ] ) 
	{
		
		set_hudmessage( 0, 100, 200, -1.0, 0.35, 1, 0.01, 3.0, 1.0, 1.0 ); 
		show_hudmessage( id, "Bomba a fost plantata, nu mai poti folosi HE-urile" ); 
		
		return HAM_SUPERCEDE; 
	} 
	
	return HAM_IGNORED; 
	
}
public bomb_planted ( planter ) {
	
	set_user_credits(planter, get_user_credits(planter) + get_pcvar_num(plant_bomb));
	furien_colored_print(planter, GREEN, "%s Ai primit^4 %d^3 Credite pentru plantarea bombei .^4", szTag, get_pcvar_num( plant_bomb) );
	
	new originnn[3];
	get_user_origin ( planter, originnn, 0 );
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
	write_byte(TE_BEAMCYLINDER);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+10);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+60);
	write_short(gShockWaveSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(255); //255
	write_byte(0); //255
	write_byte(0); //255
	write_byte(255); //255 //RED
	write_byte(0);
	message_end();
	
	UTIL_CreateBeamCylinder( originnn, 120, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 0, 0, 255, 0 );
	UTIL_CreateBeamCylinder( originnn, 320, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 51, 51, 255, 0 );
	UTIL_CreateBeamCylinder( originnn, 500, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 102, 102, 255, 0 );
	
	new iPlayers[32]
	new iNum
	
	get_players( iPlayers, iNum, "e", "TERRORIST" )
	
	for( new i = 0; i < iNum; i++ )
	{
		g_CanUseHe[iPlayers] = true;
	}
}

public bomb_defused ( defuser ) {
	
	set_user_credits(defuser, get_user_credits(defuser) + get_pcvar_num(plant_defused));
	furien_colored_print(defuser, GREEN, "%s Ai primit^4 %d^3 Credite pentru dezamorsarea bombei.^4", szTag, get_pcvar_num( plant_defused) );
	new originnn[3];
	get_user_origin ( defuser, originnn, 0 );
	message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
	write_byte(TE_BEAMCYLINDER);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+10);
	write_coord(originnn[0]);
	write_coord(originnn[1]);
	write_coord(originnn[2]+60);
	write_short(gShockWaveSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(0); //255
	write_byte(0); //255
	write_byte(255); //255 //BLUE
	write_byte(255); //255 
	write_byte(0);
	message_end();
	
	Create_TE_SPRITETRAIL3( originnn, originnn, TeleportSprite3, 50, 10, 2, 50, 10 );
	
	/*---ScreenShake---*/
	message_begin(MSG_ONE , get_user_msgid( "ShakeScreen" ) , {0,0,0} ,defuser)
	write_short( 1<<14 );
	write_short( 1<<14 );
	write_short( 1<<14 );
	message_end();
}

public bomb_explode ( planter ) {
	set_user_credits(planter, get_user_credits(planter) + get_pcvar_num(plant_explode));
	furien_colored_print(planter, GREEN, "%s Ai primit^4 %d^3 Credite pentru explodarea bombei.^4", szTag, get_pcvar_num( plant_explode) );
}
/*================================================================================
 [Main Events]
=================================================================================*/


// Client Kill Forward
public fw_ClientKill()
{
	// Prevent players from killing themselves?
	if (get_pcvar_num(cvar_blocksuicide))
		return FMRES_SUPERCEDE;
	
	return FMRES_IGNORED;
}

// Block Team Change
public clcmd_changeteam(id)
{
	static team
	team = fm_cs_get_user_team(id)
	
	// Unless it's a spectator joining the game
	if (team == FM_CS_TEAM_SPECTATOR || team == FM_CS_TEAM_UNASSIGNED)
		return PLUGIN_CONTINUE;
	
	// Pressing 'M' (chooseteam) ingame should show the main menu instead
	show_menu_game(id)
	return PLUGIN_HANDLED;
}

public event_PlayerHeal ( )
{
	new iKiller = read_data( 1 );
	new iVictim = read_data( 2 ); 
	
	client_putinserver ( iVictim );
	
	if ( Soldier[ iKiller ] && cs_get_user_team( iVictim ) != cs_get_user_team( iKiller ) )
	{
		new MaxHp = get_pcvar_num( p_SoldierMaxHp );
		new BonusHp = get_pcvar_num( p_SoldierKillHp );
		new TotalHp = get_user_health( iKiller ) + BonusHp;
	
		if ( TotalHp >= MaxHp )
		{
			set_user_health(iKiller, MaxHp )
			
			furien_colored_print(iKiller, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Ai atins numarul maxim de HP [%d]", get_pcvar_num( p_SoldierMaxHp ))

		} 
		else 
		{
			set_user_health( iKiller, TotalHp );
			furien_colored_print(iKiller, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 [ + %d HP ]", get_pcvar_num( p_SoldierKillHp))

		}
	}
}
public player_Attack ( id, iAttacker, Float:flDamage, Float:fVecDir[3], tr )
{
	if ( IsPlayer( iAttacker ) && Heavy[ id ] && cs_get_user_team( id ) != cs_get_user_team( iAttacker ) && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD )
	{
		set_tr2( tr, TR_iHitgroup, HIT_CHEST );
		set_tr2( tr, TR_iHitgroup, HIT_STOMACH );
	}
}
public waiter ( id )
{
	canHeal = false;
	
	set_task( get_pcvar_float( p_MedicHpRegenSpeed ), "givehp", id );
}

public givehp ( id )
{
	canHeal = true;
	
	new MaxHp = get_pcvar_num( p_MedicMaxHp );
	new BonusHp = get_pcvar_num( p_MedicHpRegen );
	new TotalHp = get_user_health( id ) + BonusHp;
	new hp = pev( id, pev_health );
	
	if ( Medic[ id ] && is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
	{
		if ( TotalHp >= MaxHp )
		{
			set_user_health( id, MaxHp );
			
			furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Ai atins numarul maxim de HP [%d]", get_pcvar_num( p_MedicMaxHp ))	
			
		} 
		else 
		{
			set_user_health( id, hp + BonusHp );
		}
	}
}
public pthink ( id )
{
	if ( Medic[ id ] )
	{
		if ( canHeal && ( pev( id, pev_health ) < 100) )
		{
			waiter( id );
		}
	}
	return FMRES_HANDLED;
}
/*================================================================================
 [Menus]
=================================================================================*/

// Game Menu
show_menu_game(id)
{
	static menu[250], stats[8], body[8], len
	len = 0
	new s_RankPos = get_user_stats ( id, stats, body );
	new s_MaxRank = get_statsnum ( );
	
	// Title
	len += formatex(menu[len], charsmax(menu) - len, "\yFurien.CSNEAMT.RO By \rGangsta^n^n")
	
	// 1. Extra items
	if (get_pcvar_num(cvar_extraitems) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w1. Extra Items [ \r%i Credits\w ]^n", get_user_credits( id ))
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d1. Extra Items [ \r%i Credits\w ]^n", get_user_credits( id ))
	
	// 2. Buy Slot
	if (get_pcvar_num(cvar_buy_slot) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w2. Buy Slot [ \y%i Golds\w ]^n", get_pcvar_num(g_slot_cost))
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d2. Buy Slot [ \y%i Golds\w ]^n", get_pcvar_num(g_slot_cost))
	// 3. Choose Class
	if (get_pcvar_num(cvar_choose_class))
		len += formatex(menu[len], charsmax(menu) - len, "\w3. Choose Human Class^n")
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d3. Choose Human Class^n")
		
	// 4. Rank
	if (get_pcvar_num(cvar_rank) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w4. Rank [ \r%d from %d\w]^n^n", s_RankPos, s_MaxRank)
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d4. Rank [ \yDisabled ]^n^n")
		
	// 5. Trade Item
	if (get_pcvar_num(cvar_trade) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w5. Trade Items [ \r%i Golds\w ]^n^n", get_user_gold( id ))
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d5. Trade Items [ \r%i Gold\w ]^n^n", get_user_gold( id ))
		
		
	// 6. Top15
	if (get_pcvar_num(cvar_top) && is_user_alive(id))
		len += formatex(menu[len], charsmax(menu) - len, "\w6. Top15^n")
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d6. Top15^n")
		
	// 7. Join spec
	if (!is_user_alive(id) || !get_pcvar_num(cvar_blocksuicide) || (get_user_flags(id) & ADMIN_MENU))
		len += formatex(menu[len], charsmax(menu) - len, "\w7. Join Spectator^n^n")
	else
		len += formatex(menu[len], charsmax(menu) - len, "\d7. Join Spectator^n^n")
		
	
	// 0. Exit
	len += formatex(menu[len], charsmax(menu) - len, "^n^n\w0. Exit")
	
	show_menu(id, KEYSMENU, menu, -1, "Game Menu")
}

/*================================================================================
 [Menu Handlers]
=================================================================================*/

// Game Menu
public menu_game(id, key)
{
	switch (key)
	{
		case 0: // Extra Items
		{
			// Extra items enabled?
			if (get_pcvar_num(cvar_extraitems))
			{
				// Check whether the player is able to buy anything
				if (is_user_alive(id))
					client_cmd(id, "say /shop")
				else
					furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 You must be alive for acces on Extra Items.")
			}
			else
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Extra Items are disabled.")
		}
		case 1: 
		{
			//Buy Slot enabled?
			if (get_pcvar_num(cvar_buy_slot)) {
				
				if(!g_HaveSlot[id]) {
					
					new iCredits = get_user_gold ( id );
					if ( iCredits >= get_pcvar_num(g_slot_cost) ) {
						
						if (is_user_admin(id)) {
							furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Nu poti cumpara pentru ca detii un acces pe server.")
							return PLUGIN_HANDLED;
						}
						g_HaveSlot[id] = true;
						g_Password[id] = true;
						fm_strip_user_weapons(id);
						fm_set_user_noclip(id, 1);
						fm_set_user_godmode(id, 1);
						fm_set_user_maxspeed(id, 0.0001);
						client_cmd(id, "messagemode amx_slot_password");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
						set_user_gold(id, iCredits - get_pcvar_num(g_slot_cost))
					}
					else 
					{
						furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Missing ^x04%d^x01 Gold to buy it.", get_pcvar_num(g_slot_cost) - iCredits )
						return 1;
					}
				}
			}
			else {
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Buy Slot are disabled.")
			}
		}
		case 2: // Human Classes
		{
			// Human classes enabled?
			if (get_pcvar_num(cvar_choose_class))
				// show_human_class(id)
			furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Human Classes are enabled.")
			else
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Human Classes are disabled.")
		}
		case 4: // Trade Item
		{
			// Extra items enabled?
			if (get_pcvar_num(cvar_trade) )
			{
				// Check whether the player is able to buy anything
				if (is_user_alive(id)) {
					
					if ( UserHasChoosed [ id ] ) {
						
						furien_colored_print(id, GREY, "%s You already have a ^x4Ultimate Power", szTag);
						return 1;
					}
					else if ( !UserHasChoosed [ id ] ) {
						set_task( 0.1, "trade_item", id );
					}
				}
				else
				{
					furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 You must be alive for acces on Trade Items.")
				}
			}
			else
			{
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Trade Item are disabled.")
			}
		}
		case 5: // Top15
		{
			// Top15 enabled?
			if (get_pcvar_num(cvar_top))
				client_cmd(id, "say /top")
			else
				furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Top15 are disabled.")
		}
		case 6: // Join Spectator
		{
			// Player alive?
			if (is_user_alive(id))
			{
				// Prevent abuse by non-admins if block suicide setting is enabled
				if (get_pcvar_num(cvar_blocksuicide) && !(get_user_flags(id) & ADMIN_MENU))
				{
					furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Unavailable command.")
					return PLUGIN_HANDLED;
				}
				
				
				// Kill him before he switches team
				user_silentkill(id);
			}
			
			// Then move him to the spectator team
			cs_set_user_team(id, CS_TEAM_SPECTATOR)
			return PLUGIN_HANDLED;
		}
	}
	return PLUGIN_HANDLED;
}
public trade_item(id) {   
	
	new menu = menu_create ( "\yTrade Item \r[v1.2]" , "TradeHandler" );
	new iCredits = get_user_gold ( id );
	
	if ( Soldier [ id ] && get_pcvar_num( p_Soldier ) ) {
		
		menu_additem ( menu, "\dSoldier \y[ +5 HP KILL ] \w- \rAlready Have", "1", 0 );
	}
	else if ( iCredits < 20 ) {
		
		menu_additem ( menu, "\dSoldier \y[ +5 HP KILL ] \w- \rNo Golds", "1", 0 );
		
	}
	else if ( !Soldier [ id ] || iCredits >= 20 ) {
		
		menu_additem ( menu, "\wSoldier \y[ +5 HP KILL ] \w- \r20 Golds", "1", 0 );
	}
	if ( Heavy [ id ] && get_pcvar_num( p_Heavy ) ) {
		
		menu_additem ( menu, "\dHeavy \y[ No HeadShot ] \w- \rAlready Have", "2", 0 );
	}
	else if ( iCredits < 15 ) {
		
		menu_additem ( menu, "\dHeavy \y[ No HeadShot ] \w-- \rNo Golds", "2", 0 );
	}
	else if ( !Heavy [ id ] || iCredits >= 15) {
		
		menu_additem ( menu, "\wHeavy \y[ No HeadShot ] \w- \r15 Golds", "2", 0 );
	}
	if ( Medic [ id ] && get_pcvar_num( p_Medic ) ) {
		
		menu_additem ( menu, "\dMedic \y[ Regenerare HP ] \w- \rAlready Have", "3", 0 );
	}
	else if ( iCredits < 25 ) {
		
		menu_additem ( menu, "\dMedic \y[ Regenerare HP ] \w- \rNo Golds", "3", 0 );
		
	}
	else if ( !Heavy [ id ] || iCredits >= 25) {
		
		menu_additem ( menu, "\wMedic \y[ Regenerare HP ] \w- \r25 Golds", "3", 0 );
		
	}
	if ( Shadow [ id ] && get_pcvar_num( p_ultimate1 ) ) {
		
		menu_additem ( menu, "\dMantle of Shadows \y[ Invizible ] \w- \rAlready Have", "4", 0 );
	}
	else if ( iCredits < 10 ) {
		
		menu_additem ( menu, "\dMantle of Shadows \y[ Invizible ] \w- \rNo Golds", "4", 0 );
		
	}
	else if ( !Shadow [ id ] || iCredits >= 10) {
		
		menu_additem ( menu, "\wMantle of Shadows \y[ Invizible ] \w- \r10 Golds", "4", 0 );
		
	}
	if ( Light [ id ] && get_pcvar_num( p_ultimate2 ) ) {
		
		menu_additem ( menu, "\dOrb of Lightning \y[ Kill Enemies ] \w- \rAlready Have", "5", 0 );
	}
	else if ( iCredits < 20 ) {
		
		menu_additem ( menu, "\dOrb of Lightning \y[ Kill Enemies ] \w- \rNo Golds", "5", 0 );
		
	}
	else if ( !Light [ id ] || iCredits >= 20) {
		
		menu_additem ( menu, "\wOrb of Lightning \y[ Kill Enemies ] \w- \r20 Golds", "5", 0 );
		
	}
	if ( Gloves [ id ] && get_pcvar_num( p_ultimate3 ) ) {
		
		menu_additem ( menu, "\dGloves of Haste \y[ HP++,SPEED++ ] \w- \rAlready Have^n", "6", 0 );
	}
	else if ( iCredits < 25 ) {
		
		menu_additem ( menu, "\dGloves of Haste \y[ HP++,SPEED++ ] \w- \rNo Golds^n", "6", 0 );
		
	}
	else if ( !Gloves [ id ] || iCredits >= 25) {
		
		menu_additem ( menu, "\wGloves of Haste \y[ HP++,SPEED++ ] \w- \r25 Golds^n", "6", 0 );
		
	}
	menu_additem ( menu, "\rUltimate - \y V.I.P", "7", ADMIN_LEVEL_H );
		
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	
}

public TradeHandler ( id, menu, item ) {
	
	if( item == MENU_EXIT )
	{
		return 1;
	}
	
	new data [ 6 ], szName [ 64 ];
	new access, callback;
	menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
	new key = str_to_num ( data );
	
	switch(key)
	{
		case 1:
		{
			if ( !Soldier [ id ] && get_pcvar_num( p_Soldier ) ) {
				
				new iPrice = get_user_gold ( id ) - 20;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Soldier [ id ] = true;
					UserHasChoosed [ id ] = true
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_Soldier ) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Soldier^x01 Item is disabled.", szTag)
			}
		}
		case 2:
		{
			if ( !Heavy [ id ] && get_pcvar_num( p_Heavy ) ) {
				
				new iPrice = get_user_gold ( id ) - 15;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Heavy [ id ] = true;
					UserHasChoosed [ id ] = true
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_Heavy ) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Heavy^x01 Item is disabled.", szTag)
			}
		}
		case 3:
		{
			if ( !Medic [ id ] && get_pcvar_num( p_Medic ) ) {
				
				new iPrice = get_user_gold ( id ) - 25;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Medic [ id ] = true;
					UserHasChoosed [ id ] = true
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_Medic ) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Medic^x01 Item is disabled.", szTag)
			}
		}
		case 4:
		{
			if (!Shadow [ id ] && get_pcvar_num( p_ultimate1 ) ) {
				
				new iPrice = get_user_gold ( id ) - 10;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Shadow [ id ] = true
					UltimatePower [ id ] = 1;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate1) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Shadow^x01 Item is disabled.", szTag)
			}
		}
		case 5:
		{
			if (!Light [ id ] && get_pcvar_num( p_ultimate2 ) ) {
				
				new iPrice = get_user_gold ( id ) - 20;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Light [ id ] = true
					UltimatePower [ id ] = 2;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate2) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Light^x01 Item is disabled.", szTag)
			}
		}
		case 6:
		{
			if (!Gloves [ id ] && get_pcvar_num( p_ultimate3 ) ) {
				
				new iPrice = get_user_gold ( id ) - 25;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Gloves [ id ] = true
					UltimatePower [ id ] = 3;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate3) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Light^x01 Item is disabled.", szTag)
			}
		}
		case 7:
		{
			set_task( 0.1, "UltimatePowersMenu", id );
		}
		
	}
	menu_destroy( menu )
	return PLUGIN_HANDLED
}

public BuySlotMod(id) {
	if (!g_Password[id] || !g_HaveSlot[id]) {
			
		furien_colored_print(id, GREY, "!n=== YOU CAN'T BUY!!! ===");
		return PLUGIN_HANDLED;
	}
	new name[32];
	get_user_name(id, name, 31);
	new password[35];
	read_args(password, 34);
	remove_quotes(password);
	if (equal(password, "")) {
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
		client_cmd(id, "messagemode amx_slot_password");
		return PLUGIN_HANDLED;
	}
	g_Password[id] = false;
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_print(id, print_console, "[FURIEN] Your password: %s", password);
	client_cmd(id, "topcolor ^"^";rate ^"^";model ^"^";setinfo ^"_pw^" ^"%s^"", password);
	server_cmd("amx_addadmin ^"%s^" ^"b^" ^"%s^" ^"name^"", name, password);
	server_cmd("amx_reloadadmins");
	server_cmd("kick #%d ^"Ai cumparat Slot cu succes.Dai retry !^"", get_user_userid(id))
	log_to_file("furien_buy_slot.log", "%s a cumparat slot. Parola este %s", name, password);
	server_exec();
	return PLUGIN_HANDLED;
}
public ShowHUD(taskid)
{
	static id
	id = ID_SHOWHUD;
	
	if (!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if (!is_user_alive(id)) return;
	}
	
	if (id != ID_SHOWHUD)
	{
		set_dhudmessage(0, 255, 0, 0.01, 0.91, 1, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWHUD, "Credits: %d ", get_user_credits (id) )
	}
	else
	{
		set_dhudmessage(0, 100, 250, 0.01, 0.885, 0, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWHUD, "HP: %d | AP: %d | Credits: %d", get_user_health( id ), get_user_armor( id ), get_user_credits (id) )
	}
}
public ShowHUDGold(taskid)
{
	static id
	id = ID_SHOWGOLD;
	
	if (!is_user_alive(id))
	{
		id = pev(id, pev_iuser2)
		
		if (!is_user_alive(id)) return;
	}
	if (id != ID_SHOWGOLD)
	{
		set_dhudmessage(255, 255, 0, 0.80, 0.69, 2, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWGOLD, "Kills : [ %d / %d ]^nReward : 5 Gold^n Gold : %i", g_iFrags[ id], get_pcvar_num( g_Fraguri ), get_user_gold(id));
	}
	else
	{
		set_dhudmessage(255, 255, 0, 0.80, 0.69, 2, 6.0, 1.1, 0.0, 0.0)
		show_dhudmessage(ID_SHOWGOLD, "Kills : [ %d / %d ]^nReward : 5 Gold^n Gold : %i", g_iFrags[ id], get_pcvar_num( g_Fraguri ), get_user_gold(id));
	}
}
// Get User Team
stock fm_cs_get_user_team(id)
{
	return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
}
// Set a Player's Team
stock fm_cs_set_user_team(id, team)
{
	set_pdata_int(id, OFFSET_CSTEAMS, team, OFFSET_LINUX)
}
public fwSetUserIcon ( id ) {
	
	if ( is_user_alive ( id ) ) {
		
		switch ( UltimatePower [ id ] ) {
			
			case 2:
			{
				if ( !Orb_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("vipsafety"); // sprite name
						write_byte(0); // red
						write_byte(255) // green
						write_byte(0); // blue
						message_end();
					}
				}
				
				if ( Orb_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("vipsafety"); // sprite name
						write_byte(0); // red
						write_byte(255) // green
						write_byte(0); // blue
						message_end();
					}
				}
			}
			case 3:
			{
				if ( !Redbull_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_drown"); // sprite name
						write_byte(255); // red
						write_byte(255); // green
						write_byte(255); // blue
						message_end();
					}
				}
				
				if ( Redbull_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_drown"); // sprite name
						write_byte(255); // red
						write_byte(255); // green
						write_byte(255); // blue
						message_end();
					}
				}
			}
			case 4:
			{
				if ( !Explode_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_rad"); // sprite name
						write_byte(0); // red
						write_byte(255); // green
						write_byte(0); // blue
						message_end();
					}
				}
				
				if ( Explode_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_rad"); // sprite name
						write_byte(0); // red
						write_byte(255); // green
						write_byte(0); // blue
						message_end();
					}
				}
			}
			case 5:
			{
				if ( !Electric_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_shock"); // sprite name
						write_byte(51); // red
						write_byte(204); // green
						write_byte(255); // blue
						message_end();
					}
					
				}
				
				if ( Electric_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_shock"); // sprite name
						write_byte(51); // red
						write_byte(204); // green
						write_byte(255); // blue
						message_end();
					}
					
				}
			}
			case 6:
			{
				if ( !TeamHealth_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("plus"); // sprite name
						write_byte(255); // red
						write_byte(0); // green
						write_byte(0); // blue
						message_end();
					}
				}
				
				if ( TeamHealth_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("plus"); // sprite name
						write_byte(255); // red
						write_byte(0); // green
						write_byte(0); // blue
						message_end();
					}
				}
			}
			case 7:
			{
				
				if(!(pev(id,pev_button) & FL_ONGROUND))
				{    
					message_begin(MSG_ONE,iconstatus,{0,0,0},id);
					write_byte(1); // status (0=hide, 1=show, 2=flash)
					write_string("suit_full"); // sprite name
					write_byte(255); // red
					write_byte(0); // green
					write_byte(0); // blue
					message_end();
				}
				
				
				
			}
			case 8:
			{
				if ( !Staff_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_gas"); // sprite name
						write_byte(0); // red
						write_byte(184); // green
						write_byte(245); // blue
						message_end();
					}
				}
				
				if ( Staff_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_gas"); // sprite name
						write_byte(0); // red
						write_byte(184); // green
						write_byte(245); // blue
						message_end();
					}
				}
			}
			case 9:
			{
				if ( !Eggle_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(1); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_cold"); // sprite name
						write_byte(0); // red
						write_byte(0); // green
						write_byte(255); // blue
						message_end();
					}
				}
				
				if ( Eggle_Countdown [ id ] ) {
					
					if(!(pev(id,pev_button) & FL_ONGROUND))
					{    
						message_begin(MSG_ONE,iconstatus,{0,0,0},id);
						write_byte(2); // status (0=hide, 1=show, 2=flash)
						write_string("dmg_cold"); // sprite name
						write_byte(0); // red
						write_byte(0); // green
						write_byte(255); // blue
						message_end();
					}
				}
			}
		}
	}
}
public UltimatePowersMenu ( id, level, cid ) {
	
	new menu = menu_create ( "\yUltimate Powers \rV.I.P", "UltimatePowersMenuGiver" );
	new iCredits = get_user_gold(id);
	
	if ( Cloak [ id ] && get_pcvar_num( p_ultimate4 ) ) {
		
		menu_additem ( menu, "\dCloak of Flames \y[ Explode ] \w- \rAlready Have", "1", 0 );
	}
	else if ( iCredits < 20 ) {
		
		menu_additem ( menu, "\dCloak of Flames \y[ Explode ] \w- \rNo Golds", "1", 0 );
		
	}
	else if ( !Cloak [ id ] || iCredits >= 20) {
		
		menu_additem ( menu, "\wCloak of Flames \y[ Explode ] \w- \r20 Golds", "1", 0 );
		
	}
	if ( Runed [ id ] && get_pcvar_num( p_ultimate5 ) ) {
		
		menu_additem ( menu, "\dRuned Bracers \y[ Lightning ] \w- \rAlready Have", "2", 0 );
	}
	else if ( iCredits < 30 ) {
		
		menu_additem ( menu, "\dRuned Bracers \y[ Lightning ] \w- \rNo Golds", "2", 0 );
		
	}
	else if ( !Runed [ id ] || iCredits >= 30) {
		
		menu_additem ( menu, "\wRuned Bracers \y[ Lightning ] \w- \r30 Golds", "2", 0 );
		
	}
	if ( Rune [ id ] && get_pcvar_num( p_ultimate6 ) ) {
		
		menu_additem ( menu, "\dRune of Health \y[ Team Health ] \w- \rAlready Have", "3", 0 );
	}
	else if ( iCredits < 30 ) {
		
		menu_additem ( menu, "\dRune of Health \y[ Team Health ] \w- \rNo Golds", "3", 0 );
		
	}
	else if ( !Rune [ id ] || iCredits >= 30) {
		
		menu_additem ( menu, "\wRune of Health \y[ Team Health ] \w- \r30 Golds", "3", 0 );
		
	}
	if ( Courage [ id ] && get_pcvar_num( p_ultimate7 ) ) {
		
		menu_additem ( menu, "\dMedallion of Courage \y[ Imune Powers ] \w- \rAlready Have", "4", 0 );
	}
	else if ( iCredits < 60 ) {
		
		menu_additem ( menu, "\dMedallion of Courage \y[ Imune Powers ] \w- \rNo Golds", "4", 0 );
		
	}
	else if ( !Courage [ id ] || iCredits >= 60) {
		
		menu_additem ( menu, "\wMedallion of Courage \y[ Imune Powers ] \w- \r60 Golds", "4", 0 );
		
	}
	if ( Silent [ id ] && get_pcvar_num( p_ultimate8 ) ) {
		
		menu_additem ( menu, "\dStaff of Silence \y[ Silent Walker ] \w- \rAlready Have", "5", 0 );
	}
	else if ( iCredits < 15 ) {
		
		menu_additem ( menu, "\dStaff of Silence \y[ Silent Walker ] \w- \rNo Golds", "5", 0 );
		
	}
	else if ( !Silent [ id ] || iCredits >= 15) {
		
		menu_additem ( menu, "\wStaff of Silence \y[ Silent Walker ] \w- \r15 Golds", "5", 0 );
		
	}
	if ( Eggle [ id ] && get_pcvar_num( p_ultimate9 ) ) {
		
		menu_additem ( menu, "\dOrb of Corruption \y[ Eggle Power ] \w- \rAlready Have", "6", 0 );
	}
	else if ( iCredits < 40 ) {
		
		menu_additem ( menu, "\dOrb of Corruption \y[ Eggle Power ] \w- \rNo Golds", "6", 0 );
		
	}
	else if ( !Eggle [ id ] || iCredits >= 40) {
		
		menu_additem ( menu, "\wOrb of Corruption \y[ Eggle Power ] \w- \r40 Golds", "6", 0 );
		
	}
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	return 1;
	
}
public UltimatePowersMenuGiver ( id, menu, item ) {
	
	if ( item == MENU_EXIT )
	{
		return 1;
	}
	
	new data [ 6 ], szName [ 64 ];
	new access, callback;
	menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
	new key = str_to_num ( data );
	
	switch(key)
	{
		case 1:
		{
			if (!Cloak [ id ] && get_pcvar_num( p_ultimate4 ) ) {
				
				new iPrice = get_user_gold ( id ) - 20;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Cloak [ id ] = true
					UltimatePower [ id ] = 4;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate4) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Cloak^x01 Item is disabled.", szTag)
			}
		}
		case 2:
		{
			if (!Runed [ id ] && get_pcvar_num( p_ultimate5 ) ) {
				
				new iPrice = get_user_gold ( id ) - 30;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Runed [ id ] = true
					UltimatePower [ id ] = 5;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate5) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Runned^x01 Item is disabled.", szTag)
			}
		}
		case 3:
		{
			if (!Rune [ id ] && get_pcvar_num( p_ultimate6 ) ) {
				
				new iPrice = get_user_gold ( id ) - 30;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Rune [ id ] = true
					UltimatePower [ id ] = 6;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate6) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Runned^x01 Item is disabled.", szTag)
			}
		}
		case 4:
		{
			if (!Courage [ id ] && get_pcvar_num( p_ultimate7 ) ) {
				
				new iPrice = get_user_gold ( id ) - 60;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Courage [ id ] = true
					UltimatePower [ id ] = 7;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate7) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Courage^x01 Item is disabled.", szTag)
			}
		}
		case 5:
		{
			if (!Silent [ id ] && get_pcvar_num( p_ultimate8 ) ) {
				
				new iPrice = get_user_gold ( id ) - 15;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Silent [ id ] = true
					UltimatePower [ id ] = 8;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate8) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Silent^x01 Item is disabled.", szTag)
			}
		}		
		case 6:
		{
			if (!Eggle [ id ] && get_pcvar_num( p_ultimate9 ) ) {
				
				new iPrice = get_user_gold ( id ) - 40;
				
				if ( iPrice < 0 ) {
					
					furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
					return 1;
				}
				
				else {
					Eggle [ id ] = true
					UltimatePower [ id ] = 9;
					UserHasChoosed [ id ] = true
					furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
					client_cmd ( id, "bind v ultimate" );
					set_user_gold ( id, iPrice )
					return 1;
				}
			}
			else if ( !get_pcvar_num( p_ultimate9) )
			{
				furien_colored_print(id, GREY, "^x04%s^x03 Eggle^x01 Item is disabled.", szTag)
			}
		}

	}
	
	return 1;
	
}
public UseUltimatePower ( id ) {
	
	switch ( UltimatePower [ id ] ) {
		

		case 1:
		{
			if(Shadow_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Shadow_Countdown[id], Shadow_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( shadowpower ( id ) ) {
				
				Shadow_Countdown[id] = 25;
				CountDown_Shadow(id);
			}
		}
		case 2:
		{
			if(Orb_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Orb_Countdown[id], Orb_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( orbpower ( id ) ) {
				
				Orb_Countdown[id] = 20;
				CountDown_Orb(id);
			}
		}
		case 3:
		{
			if(Redbull_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Redbull_Countdown[id], Redbull_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( redbull ( id ) ) {
				
				Redbull_Countdown[id] = 20;
				CountDown_Redbull(id);
				
			}
		}
		case 4:
		{
			if(Explode_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Explode_Countdown[id], Explode_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( explode ( id ) ) {
				
				Explode_Countdown[id] = 15;
				CountDown_Explode(id);
			}
		}
		case 5:
		{
			if(Electric_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Electric_Countdown[id], Electric_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( electric ( id ) ) {
				
				Electric_Countdown[id] = 15;
				CountDown_Electric(id);
			}
		}
		case 6:
		{
			if(TeamHealth_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY,  "Puterea iti va reveni in^4 %d^3 secund%s .^4",TeamHealth_Countdown[id], TeamHealth_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( teamhealth ( id ) ) {
				
				TeamHealth_Countdown[id] = 15;
				CountDown_TeamHealth(id);
			}
		}
		case 8:
		{
			if(Staff_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Staff_Countdown[id], Staff_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( staffpower ( id ) ) {
				
				Staff_Countdown[id] = 20;
				CountDown_Staff(id);
			}
		}
		case 9:
		{
			if(Eggle_Countdown[id]) {
				if(LastMessage[id] < get_gametime()) {
					LastMessage[id] = get_gametime() + 1.0;
					furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Eggle_Countdown[id], Eggle_Countdown[id] > 1 ? "e" : "a");
					emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
				}
			}
			else if ( egglepower ( id ) ) {
				
				Eggle_Countdown[id] = 25;
				CountDown_Eggle(id);
			}
		}

		
	}
	
}

public CountDown_Shadow(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 1 || !Shadow [ id ]) {
		Shadow_Countdown[id] = 0;
	}
	else if(Shadow_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", Shadow_Countdown[id], Shadow_Countdown[id] == 1 ? "a" : "e");
		Shadow_Countdown[id]--;
		set_task(1.0, "CountDown_Shadow", id);
	}
	else if(Shadow_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");
		Shadow_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Orb(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 2 || !Light [ id ]) {
		Orb_Countdown[id] = 0;
	}
	else if(Orb_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", Orb_Countdown[id], Orb_Countdown[id] == 1 ? "a" : "e");
		Orb_Countdown[id]--;
		set_task(1.0, "CountDown_Orb", id);
	}
	else if(Orb_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");
		Orb_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Redbull(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 3 || !Gloves [ id ]) {
		Redbull_Countdown[id] = 0;
	}
	else if(Redbull_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", Redbull_Countdown[id], Redbull_Countdown[id] == 1 ? "a" : "e");
		Redbull_Countdown[id]--;
		set_task(1.0, "CountDown_Redbull", id);
	}
	else if(Redbull_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");
		Redbull_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Explode(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 4 || !Cloak [ id ]) {
		Explode_Countdown[id] = 0;
	}
	else if(Explode_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", Explode_Countdown[id], Explode_Countdown[id] == 1 ? "a" : "e");
		Explode_Countdown[id]--;
		set_task(1.0, "CountDown_Explode", id);
	}
	else if(Explode_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");
		Explode_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
	
}
public CountDown_Electric(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 5 || !Runed[ id ]) {
		Electric_Countdown[id] = 0;
	}
	else if(Electric_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", Electric_Countdown[id], Electric_Countdown[id] == 1 ? "a" : "e");
		Electric_Countdown[id]--;
		set_task(1.0, "CountDown_Electric", id);
	}
	else if(Electric_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");
		Electric_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_TeamHealth(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 6 || !Rune[ id ]) {
		TeamHealth_Countdown[id] = 0;
	}
	else if(TeamHealth_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", TeamHealth_Countdown[id], TeamHealth_Countdown[id] == 1 ? "a" : "e");
		TeamHealth_Countdown[id]--;
		set_task(1.0, "CountDown_TeamHealth", id);
	}
	else if(TeamHealth_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");
		TeamHealth_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Staff(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 8 || !Silent[ id ]) {
		Staff_Countdown[id] = 0;
	}
	else if(Staff_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", Staff_Countdown[id], Staff_Countdown[id] == 1 ? "a" : "e");
		Staff_Countdown[id]--;
		set_task(1.0, "CountDown_Staff", id);
	}
	else if(Staff_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");
		Staff_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
public CountDown_Eggle(id) {
	if(!is_user_alive(id) || UltimatePower[id] != 9 || !Eggle[ id ]) {
		Eggle_Countdown[id] = 0;
	}
	else if(Eggle_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", Eggle_Countdown[id], Eggle_Countdown[id] == 1 ? "a" : "e");
		Eggle_Countdown[id]--;
		set_task(1.0, "CountDown_Eggle", id);
	}
	else if(Eggle_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");
		Eggle_Countdown[id] = 0;
		emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	}
}
bool: explode(  id  ) {
	
	if ( is_user_alive ( id ) ) {
		
		new Float:fOrigin[ 3 ], iOrigin[ 3 ];
		pev( id, pev_origin, fOrigin  );
		
		FVecIVec(  fOrigin, iOrigin  );
		
		CreateBlast( 47, 209, 35, iOrigin );
		
		emit_sound(  id, CHAN_AUTO,  g_szExplodeSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		
		ExplodeAndDamageNearPlayers( id, fOrigin );
	}
	
	return true;
}
bool: electric(  id  ) {
	
	if ( is_user_alive ( id ) ) {
		
		new Float:fOrigin[ 3 ], iOrigin[ 3 ];
		pev( id, pev_origin, fOrigin  );
		
		FVecIVec(  fOrigin, iOrigin  );
		
		CreateBlast( 51, 204, 255, iOrigin );
		
		emit_sound(  id, CHAN_AUTO,  g_szLightSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		
		LightNearPlayers( id, fOrigin );
		
	}
	
	return true;
}
bool: egglepower ( id ) {
	
	new target, body;
	static Float:start[3];
	static Float:aim[3];
	
	pev(id, pev_origin, start);
	fm_get_aim_origin(id, aim);
	
	start[2] += 16.0; // raise
	aim[2] += 16.0; // raise
	
	get_user_aiming (id, target, body, 4500);
	if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
		
		emit_sound(  id, CHAN_AUTO,  g_szToxineDetected, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		FadeScreen ( target, 4.0, 255, 255, 0, 100 );
		ShakeScreen ( target, 4.5 );
		fm_set_user_health ( target, random_num ( 5, 26 ) );
		fm_set_user_armor ( target, random_num ( 10, 32 ) );
		fm_set_rendering ( target, kRenderFxGlowShell, 255, 255, 0, kRenderNormal, 25)
		set_task ( 0.5, "AntiToxineSound", target );
	}	
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
	write_byte(0);
	engfunc(EngFunc_WriteCoord,start[0]);
	engfunc(EngFunc_WriteCoord,start[1]);
	engfunc(EngFunc_WriteCoord,start[2]);
	engfunc(EngFunc_WriteCoord,aim[0]);
	engfunc(EngFunc_WriteCoord,aim[1]);
	engfunc(EngFunc_WriteCoord,aim[2]);
	write_short(EggleSpriteEffect); // sprite index
	write_byte(0); // start frame
	write_byte(30); // frame rate in 0.1's
	write_byte(20); // life in 0.1's
	write_byte(50); // line width in 0.1's
	write_byte(50); // noise amplititude in 0.01's
	write_byte(255); // red
	write_byte(255); // green
	write_byte(0); // blue
	write_byte(100); // brightness
	write_byte(50); // scroll speed in 0.1's
	message_end();
	
	return true;
	
}
bool: shadowpower ( id ) {
	
	emit_sound(  id, CHAN_AUTO,  g_szShadowSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	fm_set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 40 );
	set_task ( 10.0, "Remove_Shadow", id );
	return true;
	
}
bool: staffpower(  id  ) {
	
	
	new Float:fOrigin[ 3 ], iOrigin[ 3 ];
	pev( id, pev_origin, fOrigin  );
	
	FVecIVec(  fOrigin, iOrigin  );
	
	CreateBlast( 51, 204, 255, iOrigin );
	
	emit_sound(  id, CHAN_AUTO,  g_szStaffSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	
	FlashPlayers( id, fOrigin );
	
	return true;
}
bool: orbpower ( id ) {
	
	emit_sound(  id, CHAN_AUTO,  g_szOrbSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
	
	return true;
	
}

bool: redbull ( id ) {
	
	switch ( get_user_team ( id ) ) {
		
		case 1:
		{
			fm_set_user_health ( id, get_user_health ( id ) + 50 );
			fm_set_user_armor ( id, get_user_armor ( id ) + 100 );
			fm_set_user_gravity ( id, 0.5 );
			entity_set_float ( id, EV_FL_maxspeed, 800.0 );  
			RedBullSpeed [ id ] = true;
			emit_sound(  id, CHAN_AUTO,  g_szRedBullSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
			set_task ( 10.0, "ReverseRedBull", id );
			ShakeScreen(  id, 5.5  );
			FadeScreen(  id, 1.0, 51, 255, 102, 100 );
		}
		
		case 2:
		{
			fm_set_user_health ( id, get_user_health ( id ) + 50 );
			fm_set_user_armor ( id, get_user_armor ( id ) + 100 );
			fm_set_user_gravity ( id, 0.6875 );
			entity_set_float ( id, EV_FL_maxspeed, 600.0 );  
			RedBullSpeed [ id ] = true;
			emit_sound(  id, CHAN_AUTO,  g_szRedBullSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
			set_task ( 10.0, "ReverseRedBull", id );
			ShakeScreen(  id, 5.5  );
			FadeScreen(  id, 1.0, 51, 255, 102, 100 );
		}		
	}
	
	return true;
	
}
bool: teamhealth(  id  ) {
	
	if ( get_user_team ( id ) == 1 ) {
		
		fm_set_user_health ( id, get_user_health ( id ) + 50 );
		
		new iPlayers[32]
		new iNum
		
		get_players( iPlayers, iNum, "e", "TERRORIST" )
		
		for( new i = 0; i < iNum; i++ )
		{
			new szName[32]
			get_user_name(id, szName, charsmax(szName)) 
			fm_set_user_health (iPlayers, 200 );
			msg_screen_fade(iPlayers, 1, 255, 130, 150, 115);
			
			set_hudmessage(85, 170, 255, -1.0, -1.0, 0, 6.0, 3.0)
			show_hudmessage(iPlayers, "%s a folosit Team Health", szName)
		}
		
		
	}
	
	if ( get_user_team ( id ) == 2 ) {
		
		fm_set_user_health ( id, get_user_health ( id ) + 50 );
		
		new iPlayers[32]
		new iNum
		
		get_players( iPlayers, iNum, "e", "CT" )
		
		for( new i = 0; i < iNum; i++ )
		{
			new szName[32]
			get_user_name(id, szName, charsmax(szName)) 
			fm_set_user_health (iPlayers, 200 );
			msg_screen_fade(iPlayers, 1, 255, 130, 150, 115);
			set_hudmessage(85, 170, 255, -1.0, -1.0, 0, 6.0, 3.0)
			show_hudmessage(iPlayers, "%s a folosit Team Health", szName)
		}
		
		
	}
	
	return true;
}
public Remove_Shadow ( id ) {
	
	fm_set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255 );
	FadeScreen ( id, 0.3, 0, 0, 255, 100 );
}
public ReverseRedBull ( id ) {
	
	switch ( get_user_team ( id ) ) {
		
		case 1:
		{
			if ( get_user_health ( id ) == 150 ) {
				
				fm_set_user_health ( id, 100 );
			}
			
			if ( get_user_armor ( id ) == 100 ) {
				
				fm_set_user_armor ( id, 0 );
			}
			
			fm_set_user_gravity ( id, 0.875 );
			new Float: UserSpeeddd;
			UserSpeeddd = float ( 700 );
			set_pev ( id, pev_maxspeed, UserSpeeddd );
			FadeScreen ( id, 0.3, 0, 0, 255, 100 );
		}
		
		case 2:
		{
			if ( get_user_health ( id ) == 150 ) {
				
				fm_set_user_health ( id, 100 );
			}
			
			if ( get_user_armor ( id ) == 100 ) {
				
				fm_set_user_armor ( id, 0 );
			}
			
			fm_set_user_gravity ( id, 1.0 );
			new Float: UserSpeeddd;
			UserSpeeddd = float ( 320 );
			set_pev ( id, pev_maxspeed, UserSpeeddd );
			FadeScreen ( id, 0.3, 0, 0, 255, 100 );
		}
		
	}
	
}
public FadeScreen( id, const Float:seconds, const redd, const greenn, const bluee, const alpha )
{      
	message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 0x0000 );
	write_byte( redd );
	write_byte( greenn );
	write_byte( bluee );
	write_byte( alpha );
	message_end( );
	
}
public FlashPlayers( iPsycho, const Float:fOrigin[ 3 ]  )
{
	static iVictim;
	iVictim = -1;
	
	while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
	{
		if( !is_user_alive( iVictim ) )
			continue;
		
		if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
			continue;
		
		if ( UltimatePower [ iVictim ] != 5 ) {
			
			msg_screen_fade(iVictim, 3, 255, 130, 150, 115);
			set_task ( 3.0, "ShakeScreeeen", iVictim );
			
		}
	}
}
public ShakeScreeeen ( id ) {
	
	ShakeScreen(  id, 5.5  );
	
}
public ShakeScreen( id, const Float:seconds )
{
	message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( floatround( 4096.0 * seconds, floatround_round ) );
	write_short( 1<<13 );
	message_end( );
	
}
public LightNearPlayers(  id, const Float:fOrigin[ 3 ]  )
{
	static iVictim;
	iVictim = -1;
	
	while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
	{
		if( !is_user_alive( iVictim ) )
			continue;
		
		if( get_user_team( id ) == get_user_team( iVictim ) )
			continue;	
		
		new Float:fVictimOrigin[ 3 ], iVictimOrigin[ 3 ];
		pev( id, pev_origin, fVictimOrigin );
		
		FVecIVec( fVictimOrigin, iVictimOrigin );
		CreateLightning( id, iVictim, iVictimOrigin );
		
		if ( UltimatePower [ iVictim ] != 5 ) {
			new Float:fHealth;
			pev(  iVictim, pev_health, fHealth );
			
			fHealth -= float(  random_num( 70, 100 )  );
			
			if(  fHealth <= 0  )
			{
				log_kill( id, iVictim, "Electric", 0  );
				fm_set_user_frags ( id, get_user_frags ( id ) + 1 );
			}
			else
			{
				set_pev(  iVictim, pev_health, fHealth );
			}
			
		}
	}
}

public CreateLightning( id, iVictim, iVictimOrigin[ 3 ] )
{
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMENTS );
	write_short( id );		// start entity
	write_short( iVictim );		// end entity
	write_short( gLightModel );			// model
	write_byte( 0 );		// starting frame
	write_byte( 15 );			// frame rate
	write_byte( 15 );				// life
	write_byte( 80 );				// line width
	write_byte( 10 );				// noise amplitude
	write_byte( 255 );				// red
	write_byte( 25 );				// green
	write_byte( 25 );				// blue
	write_byte( 255 );				// brightness
	write_byte( 0 );				// scroll speed
	message_end( );	
	
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_ELIGHT );
	write_short( iVictim );			// entity
	write_coord( iVictimOrigin[0] );			// initial position
	write_coord( iVictimOrigin[1] );			// initial position
	write_coord( iVictimOrigin[2] );			// initial position
	write_coord( 100 );			// radius
	write_byte( 51 );				// red
	write_byte( 204 );				// green
	write_byte( 255 );				// blue
	write_byte( 15 );				// life
	write_coord( 0 );		// decay rate
	message_end( );
	
}
public ExplodeAndDamageNearPlayers( iPsycho, const Float:fOrigin[ 3 ]  )
{
	static iVictim;
	iVictim = -1;
	
	while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
	{
		if( !is_user_alive( iVictim ) )
			continue;
		
		if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
			continue;
		
		if ( UltimatePower [ iVictim ] != 5 ) {
			new Float:fHealth;
			pev(  iVictim, pev_health, fHealth );
			
			fHealth -= float(  random_num( 50, 130 )  );
			
			if(  fHealth <= 0  )
			{
				log_kill( iPsycho, iVictim, "Explode", 0  );
				fm_set_user_frags ( iPsycho, get_user_frags ( iPsycho ) + 1 );
			}
			else
			{
				ShakeScreen(  iVictim, 5.5  );
				FadeScreen(  iVictim, 3.0, 42, 170, 255, 100 );
				damage_user(  iVictim, fHealth, fOrigin, DMG_BLAST );
			}
		}
	}
}
stock log_kill(  iKiller, iVictim, szWeapon[], iHeadshot  )
{
	user_silentkill(  iVictim  );
	
	message_begin(  MSG_ALL, get_user_msgid( "DeathMsg" ),  {0,0,0}, 0  );
	write_byte( iKiller );
	write_byte( iVictim );
	write_byte( iHeadshot );
	write_string( szWeapon );
	message_end(  );
	
	fm_set_user_frags( iKiller, get_user_frags( iKiller ) +1  );
	
	new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];
	
	get_user_name( iKiller, kname, 31 );
	get_user_team( iKiller, kteam, 9 );
	get_user_authid( iKiller, kauthid, 31 );
	
	get_user_name( iVictim, vname, 31 );
	get_user_team( iVictim, vteam, 9 );
	get_user_authid( iVictim, vauthid, 31 );
	
	log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"", 
	kname, get_user_userid( iKiller ), kauthid, kteam, 
	vname, get_user_userid( iVictim ), vauthid, vteam, szWeapon  );
	
	return 0;
}

stock damage_user( iVictim, const Float:fHealthLeft, const Float:fOrigin[ 3 ], bit  )
{
	new iOrigin[ 3 ];
	FVecIVec( fOrigin, iOrigin );
	
	message_begin( MSG_ONE, get_user_msgid( "Damage" ), {0,0,0}, iVictim  );
	write_byte( 21 );
	write_byte( 20 );
	write_long( bit );
	write_coord( iOrigin[ 0 ] );
	write_coord( iOrigin[ 1 ] );
	write_coord( iOrigin[ 2 ] );
	message_end(  );
	
	set_pev(  iVictim, pev_health, fHealthLeft );
}
CreateBlast(  const Redd, const Greenn, const Bluee, const iOrigin[ 3 ] ) {
	
	// Small ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 285 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
	
	// Medium ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 385 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
	
	// Large ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 470 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
	
	// Largest Ring
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[ 0 ] ); // start X
	write_coord( iOrigin[ 1 ] ); // start Y
	write_coord( iOrigin[ 2 ] ); // start Z
	write_coord( iOrigin[ 0 ] ); // something X
	write_coord( iOrigin[ 1 ] ); // something Y
	write_coord( iOrigin[ 2 ] + 555 ); // something Z
	write_short( gShockWaveSprite ); // sprite
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 4 ); // life
	write_byte( 60 ); // width
	write_byte( 0 ); // noise
	write_byte( Redd ); // red
	write_byte( Greenn ); // green
	write_byte( Bluee ); // blue
	write_byte( 200 ); // brightness
	write_byte( 0 ); // speed
	message_end(  );
}
stock msg_screen_fade( id, holdtime, r, g, b, a )
{
	message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );
	write_short( seconds_to_units( holdtime ) );
	write_short( seconds_to_units( holdtime ) );
	write_short( 0 );
	write_byte( r );
	write_byte( g );
	write_byte( b );
	write_byte( a );
	message_end( );
}

stock seconds_to_units( time )
{
	return ( ( 1 << 12 ) * ( time ) )
}
stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
	message_begin( MSG_PVS, SVC_TEMPENTITY, origin ); 
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + addrad );
	write_short( sprite );
	write_byte( startfrate );
	write_byte( framerate );
	write_byte(life );
	write_byte( width );
	write_byte( amplitude );
	write_byte( red );
	write_byte( green );
	write_byte( blue );
	write_byte( brightness );
	write_byte( speed );
	message_end();
}

stock Create_TE_SPRITETRAIL3(start[3], end[3], iSprite, count, life, scale, velocity, random ){
	
	message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte( TE_SPRITETRAIL )
	write_coord( start[0] ) // start position (X)
	write_coord( start[1] ) // start position (Y)
	write_coord( start[2] + 40 ) // start position (Z)
	write_coord( end[0] ) // end position (X)
	write_coord( end[1] ) // end position (Y)
	write_coord( end[2] ) // end position (Z)
	write_short( iSprite ) // sprite index
	write_byte( count ) // count
	write_byte( life) // life in 0.1's
	write_byte( scale) // scale in 0.1's
	write_byte( velocity ) // velocity along vector in 10's
	write_byte( random ) // randomness of velocity in 10's
	message_end()
}
// |-- CC_ColorChat --|

furien_colored_print(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
	
	// Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
	if( !get_playersnum( ) ) return;
	
	new szMessage[ 256 ];

	switch( iType )
	{
		 // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
		case NORMAL:	szMessage[ 0 ] = 0x01;
		
		// Culoare Verde.
		case GREEN:	szMessage[ 0 ] = 0x04;
		
		// Alb, Rosu, Albastru.
		default: 	szMessage[ 0 ] = 0x03;
	}

	vformat(  szMessage[ 1 ], 251, msg, 4  );

	// Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
	szMessage[ 192 ] = '^0';
	

	new iTeam, iColorChange, iPlayerIndex, MSG_Type;
	
	if( id )
	{
		MSG_Type  =  MSG_ONE_UNRELIABLE;
		iPlayerIndex  =  id;
	}
	else
	{
		iPlayerIndex  =  CC_FindPlayer(  );
		MSG_Type = MSG_ALL;
	}
	
	iTeam  =  get_user_team( iPlayerIndex );
	iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

	CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
		
	if(  iColorChange  )	CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
	
	static bool:bSayTextUsed;
	static iMsgSayText;
	
	if(  !bSayTextUsed  )
	{
		iMsgSayText  =  get_user_msgid( "SayText" );
		bSayTextUsed  =  true;
	}
	
	message_begin( iType, iMsgSayText, _, id  );
	write_byte(  id  );		
	write_string(  szMessage  );
	message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
	static bool:bTeamInfoUsed;
	static iMsgTeamInfo;
	if(  !bTeamInfoUsed  )
	{
		iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
		bTeamInfoUsed  =  true;
	}
	
	message_begin( iType, iMsgTeamInfo, _, id  );
	write_byte(  id  );
	write_string(  szTeam  );
	message_end(  );

	return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
	switch(  iColorType  )
	{
		
		case RED:	return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
		case BLUE:	return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
		case GREY:	return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

	}

	return 0;
}

CC_FindPlayer(  )
{
	new iMaxPlayers  =  get_maxplayers(  );
	
	for( new i = 1; i <= iMaxPlayers; i++ )
		if(  is_user_connected( i )  )
			return i;
	
	return -1;
}

// |-- CC_ColorChat --|
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
eroare | Afiseaza codul
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(313) : error 033: array must be indexed (variable "iPlayers")
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(372) : error 033: array must be indexed (variable "iPlayers")
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2030) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2031) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2034) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2053) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2054) : error 035: argument type mismatch (argument 1)
// C:\Users\ppika\OneDrive\Desktop\Server normal AMXX 1.8.1\cstrike\addons\amxmodx\scripting\1.sma(2056) : error 035: argument type mismatch (argument 1)
//
// 8 Errors.
// Could not locate output file compiled\1.amx (compile failed).
//
// Compilation Time: 0,83 sec
// ----------------------------------------

Code: Select all

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

#define PLUGIN "Furien Menu"
#define VERSION "0.1"
#define AUTHOR "-Turbo-"

native get_user_credits(id);
native set_user_credits(id, credits);

native get_user_gold(id)
native set_user_gold(id, gold)

#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define ID_SHOWGOLD (taskid - TASK_SHOWGOLD)
#define IsPlayer(%1) ( 1 <= %1 <= g_maxplayers )

#define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0001 // Fade out (not in)
#define FFADE_MODULATE 0x0002 // Modulate (don't blend)
#define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received

new szTag [ ] = "[FURIEN.CSNEAMT.RO]";
new iconstatus;

new cvar_extraitems, cvar_buy_slot, cvar_choose_class, cvar_rank, cvar_top, cvar_blocksuicide, cvar_trade, g_slot_cost;
new p_ultimate1, p_ultimate2, p_ultimate3, p_ultimate4, p_ultimate5, p_ultimate6, p_ultimate7, p_ultimate8, p_ultimate9;
new plant_bomb, plant_defused, plant_explode;

new bool:canHeal = true;
new bool:g_CanUseHe [ 33 ];
new p_Soldier, p_Heavy, p_Medic,  p_SoldierMaxHp, p_SoldierKillHp, p_MedicHpRegen, p_MedicHpRegenSpeed, p_MedicMaxHp;
new bool:Soldier [ 33 ], bool:Heavy [ 33 ], bool:Medic [ 33 ], bool:Shadow [ 33 ], bool:Light [ 33 ], bool:Gloves [ 33 ], bool:Cloak[ 33 ], bool:Runed [ 33 ], bool:Rune [ 33 ], bool:Courage [ 33 ], bool:Silent [ 33 ], bool:Eggle [ 33 ];
new g_maxplayers;

new bool:g_Password[33], bool:g_HaveSlot[33], bool:UserHasChoosed [ 33 ];

new g_Fraguri;
new g_iFrags [33];

new UltimatePower [ 33 ], Shadow_Countdown [ 33 ], Orb_Countdown [ 33 ], Redbull_Countdown [ 33 ], Explode_Countdown [ 33 ], Electric_Countdown [ 33 ], TeamHealth_Countdown [ 33 ], Staff_Countdown [ 33 ], Eggle_Countdown [ 33 ];
new bool: RedBullSpeed [ 33 ];
new Float:LastMessage[33];
new gShockWaveSprite, gLightModel, EggleSpriteEffect, TeleportSprite3;

new const g_szToxineDetected [   ] = "ultimate_furien/blood_toxins.wav";
new const g_szAntiToxine [    ] = "ultimate_furien/antitoxin_shot.wav";
new const g_szLightModel[    ] = "sprites/lgtning.spr";
new const g_szLightSound[    ] =  "ultimate_furien/lightningbolt.wav";
new const g_szExplodeSound2[    ]  =  "ultimate_furien/particle_suck1.wav";
new const g_szRedBullSound [   ] = "ultimate_furien/MiniSpiritPissed1.wav";
new const g_szOrbSound [   ] = "ultimate_furien/locustswarmloop.wav";
new const g_szShadowSound [   ] = "ultimate_furien/antend.wav";
new const g_szErrror [   ] = "ultimate_furien/Error.wav";
new const g_szUltimateReady [   ] = "ultimate_furien/flamestriketargetwavenonloop1.wav";
new const g_szShockWaveSprite[    ]  =  "sprites/shockwave.spr";
new const g_szStaffSound2 [    ] = "ultimate_furien/ImmolationDecay1.wav";

// Linux diff's
const OFFSET_CSTEAMS = 114
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
const OFFSET_LINUX_WEAPONS = 4 // weapon offsets are only 4 steps higher on Linux

// Menu keys
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

// CS Teams
enum
{
    FM_CS_TEAM_UNASSIGNED = 0,
    FM_CS_TEAM_T,
    FM_CS_TEAM_CT,
    FM_CS_TEAM_SPECTATOR
}
// Task offsets
enum (+= 100)
{
    TASK_SHOWHUD,
    TASK_SHOWGOLD
}

enum Color
{
    NORMAL = 1,         // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
    GREEN,          // Culoare Verde.
    TEAM_COLOR,         // Culoare Rosu, Albastru, Gri.
    GREY,           // Culoarea Gri.
    RED,            // Culoarea Rosu.
    BLUE,           // Culoarea Albastru.
};

new TeamName[  ][  ] = 
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
};
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    // Client commands
    register_menu("Game Menu", KEYSMENU, "menu_game")
    register_clcmd("chooseteam", "clcmd_changeteam")
    register_clcmd("jointeam", "clcmd_changeteam")
    register_clcmd("amx_slot_password", "BuySlotMod", ADMIN_USER, "<password>");
    
    // FM Forwards
    RegisterHam( Ham_TraceAttack, "player", "player_Attack" );
    register_forward( FM_PlayerPreThink, "pthink" );
    register_forward(FM_ClientKill, "fw_ClientKill")
    register_event ( "DeathMsg", "eDeath", "a" );
    register_event( "DeathMsg", "event_PlayerHeal", "a" );
    register_logevent ( "round_start", 2, "1=Round_Start" );
    register_forward ( FM_PlayerPreThink,"fwSetUserIcon" );
    RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "ham_PrimaryAttack_He" );
    //register_message(get_user_msgid("TextMsg") ,"message_TextMsg")
    
    register_clcmd ( "ultimate", "UseUltimatePower", -1 );
    
    g_Fraguri = register_cvar( "furien_rewards_frags", "20" );
    // Cvars
    cvar_extraitems = register_cvar("furien_extra_items", "1")
    cvar_buy_slot = register_cvar("furien_buy_slot", "1")
    cvar_choose_class = register_cvar("furien_choose_class", "1")
    cvar_rank = register_cvar("furien_rank", "1")
    cvar_top = register_cvar("furien_top", "1")
    cvar_blocksuicide = register_cvar("furien_block_suicide", "1")
    cvar_trade = register_cvar("furien_trade", "1")
    g_slot_cost = register_cvar ("furien_slot_cost", "500")
    p_Soldier = register_cvar( "amx_vip_soldier", "1" );
    p_SoldierKillHp = register_cvar( "furien_soldier_kill_hp", "5" );
    p_SoldierMaxHp = register_cvar( "furien_soldier_max_hp", "300" );
    p_Heavy = register_cvar( "furien_heavy", "1" );
    p_Medic = register_cvar( "furien_medic", "1" );
    p_MedicHpRegen = register_cvar( "furien_medic_hp_regen", "2" );
    p_MedicHpRegenSpeed = register_cvar( "furien_medic_hp_regen_speed", "2.0" );
    p_MedicMaxHp = register_cvar( "furien_medic_max_hp", "300" );
    p_ultimate1 = register_cvar( "furien_ultimat1", "1" );
    p_ultimate2 = register_cvar( "furien_ultimat2", "1" );
    p_ultimate3 = register_cvar( "furien_ultimat3", "1" );
    p_ultimate4 = register_cvar( "furien_ultimat4", "1" );
    p_ultimate5 = register_cvar( "furien_ultimat5", "1" );
    p_ultimate6 = register_cvar( "furien_ultimat6", "1" );
    p_ultimate7 = register_cvar( "furien_ultimat7", "1" );
    p_ultimate8 = register_cvar( "furien_ultimat8", "1" );
    p_ultimate9 = register_cvar( "furien_ultimat9", "1" );
    plant_bomb = register_cvar( "furien_credits_bomb", "10");
    plant_defused = register_cvar ("furien_credis_defuse", "5");
    plant_explode = register_cvar ("furien_credis_explode", "10");

    iconstatus = get_user_msgid ( "StatusIcon" );
    g_maxplayers = get_maxplayers( );

    
}
/*public plugin_cfg()
{
    // Format our config file
    new szConfigFile[64];
    get_configsdir( szConfigFile, 63 );
    add( szConfigFile, 63, "/ultimate_furien.cfg" );

    // Make sure the config file exists!
    if ( file_exists( szConfigFile ) )
    {
        server_cmd( "exec %s", szConfigFile );
    }
    else
    {
        set_fail_state( "Config file is missing, unable to load plugin" );
    }
}*/
public plugin_precache() 
{
    precache_sound ( g_szToxineDetected );
    precache_sound ( g_szAntiToxine );
    precache_sound ( g_szLightSound );
    precache_sound ( g_szExplodeSound2 );
    precache_sound ( g_szRedBullSound );
    precache_sound ( g_szOrbSound );
    precache_sound ( g_szShadowSound );
    precache_sound("ambience/particle_suck1.wav")
    precache_sound ( g_szErrror );
    precache_sound ( g_szUltimateReady );
    precache_sound ( g_szStaffSound2 );
    
    gShockWaveSprite  =  precache_model(  g_szShockWaveSprite  );
    gLightModel  =  precache_model(  g_szLightModel  );
    EggleSpriteEffect = precache_model ( "sprites/laserbeam.spr" );
    TeleportSprite3 = precache_model( "sprites/teleport_start.spr");
}
public client_connect(id){
    
    client_cmd(id, "echo ")
    client_cmd(id, "echo ^" *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* ^" ")
    client_cmd(id, "echo ^" *=-= Welcome to: Ultimate Furien Powers (UFP) ^" ")
    client_cmd(id, "echo ^" *=-= Add Favorite: Furien.CsNeamT.Ro Or 89.40.233.219:27015 ^" ")
    client_cmd(id, "echo ^" *=-= Furien Website: http://csneamt.ro/forum    ^" ")
    client_cmd(id, "echo ^" *=-= Founders Contact: Gangsta ([email protected]) ^" ")
    client_cmd(id, "echo ^" *=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* ^" ")
    client_cmd(id, "echo ")
}
public client_putinserver(id)
{
    RemoveAll ( id );
    g_iFrags[id] = 0;
    set_task(0.1, "ShowHUD",id+TASK_SHOWHUD, _, _, "b")
    set_task(0.1, "ShowHUDGold",id+TASK_SHOWGOLD, _, _, "b")
    
}
public client_disconnect(id)
{
    RemoveAll ( id );
    g_iFrags[id] = 0;
    
}
public RemoveAll ( id ) {
    
    Soldier[ id ] = false
    Heavy[ id ] = false
    Medic[ id ] = false
    Shadow_Countdown [ id ] = 0;
    Orb_Countdown [ id ] = 0;
    Redbull_Countdown [ id ] = 0;
    Shadow [ id ] = false
    Light [ id ]= false
    Gloves [ id ] = false
    Cloak[ id ] = false
    Runed [ id ] = false
    Rune [ id ] = false
    Courage [ id ] = false
    Silent [ id ] = false
    Eggle [ id ] = false
    Explode_Countdown [ id ] = 0;
    Electric_Countdown [ id ] = 0;
    Redbull_Countdown [ id ] = 0;
    TeamHealth_Countdown [ id ] = 0;
    Orb_Countdown [ id ] = 0;
    Staff_Countdown [ id ] = 0;
    Eggle_Countdown [ id ] = 0;
    Shadow_Countdown [ id ] = 0;
    UltimatePower [ id ] = 0;
    UserHasChoosed [ id ] = false
    
}
public eDeath( )
{
    new t_Killer = read_data( 1 );
    new iVictim = read_data ( 2 );
    g_iFrags[ t_Killer ]++;
    if( g_iFrags[ t_Killer ] >= get_pcvar_num( g_Fraguri ) )
    {
        furien_colored_print(t_Killer, TEAM_COLOR, "^4[FURIEN.CSNEAMT.RO]^3 Reward + [5 Gold]");
        new golds = get_user_gold(t_Killer) + 5;
        set_user_gold(t_Killer, golds );
        g_iFrags[ t_Killer ] = 0;
    }
    RemoveAll ( iVictim );
    UserHasChoosed [ iVictim ] = false
    /*new weapon[32]
    read_data(4, weapon, sizeof(weapon) -1)
    if(t_Killer == iVictim)
    {
        return 1;
    }
    if(Headshot)
    {
        set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(HsCredits));
        set_dhudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
        show_dhudmessage ( t_Killer, "+%d Credite", get_pcvar_num(HsCredits) + get_pcvar_num ( KillCredits ) );
    }
    
    else if(equali(weapon, "knife"))
    {
        set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(KnifeCredits));
        set_dhudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
        show_dhudmessage ( t_Killer, "+%d Credits", get_pcvar_num(KnifeCredits) + get_pcvar_num ( KillCredits ) );
    }
    
    else if(equali(weapon, "grenade"))
    {
        set_user_credits(t_Killer, get_user_credits(t_Killer) + get_pcvar_num(HeCredits));
        set_hudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
        show_hudmessage ( t_Killer, "+%d Credits", get_pcvar_num(HeCredits) + get_pcvar_num ( KillCredits ) );
    }
    
    else
    {
        set_hudmessage ( 42, 170, 255, 0.07, 0.35, 0, 6.0, 1.0 );
        show_hudmessage ( t_Killer, "+%d Credits", get_pcvar_num ( KillCredits ) );
    }*/
}
public round_start ( ) {
    
    new iPlayers [ 32 ];
    new iNum;
    
    get_players ( iPlayers, iNum );
    
    for ( new i = 0; i < iNum; i++ )
    {
        g_CanUseHe[iPlayers[i]] = false;
    }
}
public ham_PrimaryAttack_He ( iEnt ) {
    
    new id = pev( iEnt, pev_owner ); 
    
    if( g_CanUseHe [ id ] ) 
    {
        
        set_hudmessage( 0, 100, 200, -1.0, 0.35, 1, 0.01, 3.0, 1.0, 1.0 ); 
        show_hudmessage( id, "Bomba a fost plantata, nu mai poti folosi HE-urile" ); 
        
        return HAM_SUPERCEDE; 
    } 
    
    return HAM_IGNORED; 
    
}
public bomb_planted ( planter ) {
    
    set_user_credits(planter, get_user_credits(planter) + get_pcvar_num(plant_bomb));
    furien_colored_print(planter, GREEN, "%s Ai primit^4 %d^3 Credite pentru plantarea bombei .^4", szTag, get_pcvar_num( plant_bomb) );
    
    new originnn[3];
    get_user_origin ( planter, originnn, 0 );
    
    message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
    write_byte(TE_BEAMCYLINDER);
    write_coord(originnn[0]);
    write_coord(originnn[1]);
    write_coord(originnn[2]+10);
    write_coord(originnn[0]);
    write_coord(originnn[1]);
    write_coord(originnn[2]+60);
    write_short(gShockWaveSprite);
    write_byte(0);
    write_byte(0);
    write_byte(3);
    write_byte(60);
    write_byte(0);
    write_byte(255); //255
    write_byte(0); //255
    write_byte(0); //255
    write_byte(255); //255 //RED
    write_byte(0);
    message_end();
    
    UTIL_CreateBeamCylinder( originnn, 120, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 0, 0, 255, 0 );
    UTIL_CreateBeamCylinder( originnn, 320, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 51, 51, 255, 0 );
    UTIL_CreateBeamCylinder( originnn, 500, gShockWaveSprite, 0, 0, 6, 16, 0, 255, 102, 102, 255, 0 );
    
    new iPlayers[32]
    new iNum
    
    get_players( iPlayers, iNum, "e", "TERRORIST" )
    
    for( new i = 0; i < iNum; i++ )
    {
        g_CanUseHe[iPlayers[i]] = true;
    }
}

public bomb_defused ( defuser ) {
    
    set_user_credits(defuser, get_user_credits(defuser) + get_pcvar_num(plant_defused));
    furien_colored_print(defuser, GREEN, "%s Ai primit^4 %d^3 Credite pentru dezamorsarea bombei.^4", szTag, get_pcvar_num( plant_defused) );
    new originnn[3];
    get_user_origin ( defuser, originnn, 0 );
    message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
    write_byte(TE_BEAMCYLINDER);
    write_coord(originnn[0]);
    write_coord(originnn[1]);
    write_coord(originnn[2]+10);
    write_coord(originnn[0]);
    write_coord(originnn[1]);
    write_coord(originnn[2]+60);
    write_short(gShockWaveSprite);
    write_byte(0);
    write_byte(0);
    write_byte(3);
    write_byte(60);
    write_byte(0);
    write_byte(0); //255
    write_byte(0); //255
    write_byte(255); //255 //BLUE
    write_byte(255); //255 
    write_byte(0);
    message_end();
    
    Create_TE_SPRITETRAIL3( originnn, originnn, TeleportSprite3, 50, 10, 2, 50, 10 );
    
    /*---ScreenShake---*/
    message_begin(MSG_ONE , get_user_msgid( "ShakeScreen" ) , {0,0,0} ,defuser)
    write_short( 1<<14 );
    write_short( 1<<14 );
    write_short( 1<<14 );
    message_end();
}

public bomb_explode ( planter ) {
    set_user_credits(planter, get_user_credits(planter) + get_pcvar_num(plant_explode));
    furien_colored_print(planter, GREEN, "%s Ai primit^4 %d^3 Credite pentru explodarea bombei.^4", szTag, get_pcvar_num( plant_explode) );
}
/*================================================================================
 [Main Events]
=================================================================================*/


// Client Kill Forward
public fw_ClientKill()
{
    // Prevent players from killing themselves?
    if (get_pcvar_num(cvar_blocksuicide))
        return FMRES_SUPERCEDE;
    
    return FMRES_IGNORED;
}

// Block Team Change
public clcmd_changeteam(id)
{
    static team
    team = fm_cs_get_user_team(id)
    
    // Unless it's a spectator joining the game
    if (team == FM_CS_TEAM_SPECTATOR || team == FM_CS_TEAM_UNASSIGNED)
        return PLUGIN_CONTINUE;
    
    // Pressing 'M' (chooseteam) ingame should show the main menu instead
    show_menu_game(id)
    return PLUGIN_HANDLED;
}

public event_PlayerHeal ( )
{
    new iKiller = read_data( 1 );
    new iVictim = read_data( 2 ); 
    
    client_putinserver ( iVictim );
    
    if ( Soldier[ iKiller ] && cs_get_user_team( iVictim ) != cs_get_user_team( iKiller ) )
    {
        new MaxHp = get_pcvar_num( p_SoldierMaxHp );
        new BonusHp = get_pcvar_num( p_SoldierKillHp );
        new TotalHp = get_user_health( iKiller ) + BonusHp;
    
        if ( TotalHp >= MaxHp )
        {
            set_user_health(iKiller, MaxHp )
            
            furien_colored_print(iKiller, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Ai atins numarul maxim de HP [%d]", get_pcvar_num( p_SoldierMaxHp ))

        } 
        else 
        {
            set_user_health( iKiller, TotalHp );
            furien_colored_print(iKiller, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 [ + %d HP ]", get_pcvar_num( p_SoldierKillHp))

        }
    }
}
public player_Attack ( id, iAttacker, Float:flDamage, Float:fVecDir[3], tr )
{
    if ( IsPlayer( iAttacker ) && Heavy[ id ] && cs_get_user_team( id ) != cs_get_user_team( iAttacker ) && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD && get_tr2( tr, TR_iHitgroup ) == HIT_HEAD )
    {
        set_tr2( tr, TR_iHitgroup, HIT_CHEST );
        set_tr2( tr, TR_iHitgroup, HIT_STOMACH );
    }
}
public waiter ( id )
{
    canHeal = false;
    
    set_task( get_pcvar_float( p_MedicHpRegenSpeed ), "givehp", id );
}

public givehp ( id )
{
    canHeal = true;
    
    new MaxHp = get_pcvar_num( p_MedicMaxHp );
    new BonusHp = get_pcvar_num( p_MedicHpRegen );
    new TotalHp = get_user_health( id ) + BonusHp;
    new hp = pev( id, pev_health );
    
    if ( Medic[ id ] && is_user_alive( id ) && get_user_weapon( id ) == CSW_KNIFE )
    {
        if ( TotalHp >= MaxHp )
        {
            set_user_health( id, MaxHp );
            
            furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Ai atins numarul maxim de HP [%d]", get_pcvar_num( p_MedicMaxHp ))  
            
        } 
        else 
        {
            set_user_health( id, hp + BonusHp );
        }
    }
}
public pthink ( id )
{
    if ( Medic[ id ] )
    {
        if ( canHeal && ( pev( id, pev_health ) < 100) )
        {
            waiter( id );
        }
    }
    return FMRES_HANDLED;
}
/*================================================================================
 [Menus]
=================================================================================*/

// Game Menu
show_menu_game(id)
{
    static menu[250], stats[8], body[8], len
    len = 0
    new s_RankPos = get_user_stats ( id, stats, body );
    new s_MaxRank = get_statsnum ( );
    
    // Title
    len += formatex(menu[len], charsmax(menu) - len, "\yFurien.CSNEAMT.RO By \rGangsta^n^n")
    
    // 1. Extra items
    if (get_pcvar_num(cvar_extraitems) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\w1. Extra Items [ \r%i Credits\w ]^n", get_user_credits( id ))
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d1. Extra Items [ \r%i Credits\w ]^n", get_user_credits( id ))
    
    // 2. Buy Slot
    if (get_pcvar_num(cvar_buy_slot) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\w2. Buy Slot [ \y%i Golds\w ]^n", get_pcvar_num(g_slot_cost))
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d2. Buy Slot [ \y%i Golds\w ]^n", get_pcvar_num(g_slot_cost))
    // 3. Choose Class
    if (get_pcvar_num(cvar_choose_class))
        len += formatex(menu[len], charsmax(menu) - len, "\w3. Choose Human Class^n")
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d3. Choose Human Class^n")
        
    // 4. Rank
    if (get_pcvar_num(cvar_rank) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\w4. Rank [ \r%d from %d\w]^n^n", s_RankPos, s_MaxRank)
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d4. Rank [ \yDisabled ]^n^n")
        
    // 5. Trade Item
    if (get_pcvar_num(cvar_trade) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\w5. Trade Items [ \r%i Golds\w ]^n^n", get_user_gold( id ))
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d5. Trade Items [ \r%i Gold\w ]^n^n", get_user_gold( id ))
        
        
    // 6. Top15
    if (get_pcvar_num(cvar_top) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\w6. Top15^n")
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d6. Top15^n")
        
    // 7. Join spec
    if (!is_user_alive(id) || !get_pcvar_num(cvar_blocksuicide) || (get_user_flags(id) & ADMIN_MENU))
        len += formatex(menu[len], charsmax(menu) - len, "\w7. Join Spectator^n^n")
    else
        len += formatex(menu[len], charsmax(menu) - len, "\d7. Join Spectator^n^n")
        
    
    // 0. Exit
    len += formatex(menu[len], charsmax(menu) - len, "^n^n\w0. Exit")
    
    show_menu(id, KEYSMENU, menu, -1, "Game Menu")
}

/*================================================================================
 [Menu Handlers]
=================================================================================*/

// Game Menu
public menu_game(id, key)
{
    switch (key)
    {
        case 0: // Extra Items
        {
            // Extra items enabled?
            if (get_pcvar_num(cvar_extraitems))
            {
                // Check whether the player is able to buy anything
                if (is_user_alive(id))
                    client_cmd(id, "say /shop")
                else
                    furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 You must be alive for acces on Extra Items.")
            }
            else
                furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Extra Items are disabled.")
        }
        case 1: 
        {
            //Buy Slot enabled?
            if (get_pcvar_num(cvar_buy_slot)) {
                
                if(!g_HaveSlot[id]) {
                    
                    new iCredits = get_user_gold ( id );
                    if ( iCredits >= get_pcvar_num(g_slot_cost) ) {
                        
                        if (is_user_admin(id)) {
                            furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Nu poti cumpara pentru ca detii un acces pe server.")
                            return PLUGIN_HANDLED;
                        }
                        g_HaveSlot[id] = true;
                        g_Password[id] = true;
                        fm_strip_user_weapons(id);
                        fm_set_user_noclip(id, 1);
                        fm_set_user_godmode(id, 1);
                        fm_set_user_maxspeed(id, 0.0001);
                        client_cmd(id, "messagemode amx_slot_password");
                        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
                        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
                        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
                        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
                        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
                        set_user_gold(id, iCredits - get_pcvar_num(g_slot_cost))
                    }
                    else 
                    {
                        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Missing ^x04%d^x01 Gold to buy it.", get_pcvar_num(g_slot_cost) - iCredits )
                        return 1;
                    }
                }
            }
            else {
                furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Buy Slot are disabled.")
            }
        }
        case 2: // Human Classes
        {
            // Human classes enabled?
            if (get_pcvar_num(cvar_choose_class))
                // show_human_class(id)
            furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Human Classes are enabled.")
            else
                furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Human Classes are disabled.")
        }
        case 4: // Trade Item
        {
            // Extra items enabled?
            if (get_pcvar_num(cvar_trade) )
            {
                // Check whether the player is able to buy anything
                if (is_user_alive(id)) {
                    
                    if ( UserHasChoosed [ id ] ) {
                        
                        furien_colored_print(id, GREY, "%s You already have a ^x4Ultimate Power", szTag);
                        return 1;
                    }
                    else if ( !UserHasChoosed [ id ] ) {
                        set_task( 0.1, "trade_item", id );
                    }
                }
                else
                {
                    furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 You must be alive for acces on Trade Items.")
                }
            }
            else
            {
                furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Trade Item are disabled.")
            }
        }
        case 5: // Top15
        {
            // Top15 enabled?
            if (get_pcvar_num(cvar_top))
                client_cmd(id, "say /top")
            else
                furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Top15 are disabled.")
        }
        case 6: // Join Spectator
        {
            // Player alive?
            if (is_user_alive(id))
            {
                // Prevent abuse by non-admins if block suicide setting is enabled
                if (get_pcvar_num(cvar_blocksuicide) && !(get_user_flags(id) & ADMIN_MENU))
                {
                    furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 Unavailable command.")
                    return PLUGIN_HANDLED;
                }
                
                
                // Kill him before he switches team
                user_silentkill(id);
            }
            
            // Then move him to the spectator team
            cs_set_user_team(id, CS_TEAM_SPECTATOR)
            return PLUGIN_HANDLED;
        }
    }
    return PLUGIN_HANDLED;
}
public trade_item(id) {   
    
    new menu = menu_create ( "\yTrade Item \r[v1.2]" , "TradeHandler" );
    new iCredits = get_user_gold ( id );
    
    if ( Soldier [ id ] && get_pcvar_num( p_Soldier ) ) {
        
        menu_additem ( menu, "\dSoldier \y[ +5 HP KILL ] \w- \rAlready Have", "1", 0 );
    }
    else if ( iCredits < 20 ) {
        
        menu_additem ( menu, "\dSoldier \y[ +5 HP KILL ] \w- \rNo Golds", "1", 0 );
        
    }
    else if ( !Soldier [ id ] || iCredits >= 20 ) {
        
        menu_additem ( menu, "\wSoldier \y[ +5 HP KILL ] \w- \r20 Golds", "1", 0 );
    }
    if ( Heavy [ id ] && get_pcvar_num( p_Heavy ) ) {
        
        menu_additem ( menu, "\dHeavy \y[ No HeadShot ] \w- \rAlready Have", "2", 0 );
    }
    else if ( iCredits < 15 ) {
        
        menu_additem ( menu, "\dHeavy \y[ No HeadShot ] \w-- \rNo Golds", "2", 0 );
    }
    else if ( !Heavy [ id ] || iCredits >= 15) {
        
        menu_additem ( menu, "\wHeavy \y[ No HeadShot ] \w- \r15 Golds", "2", 0 );
    }
    if ( Medic [ id ] && get_pcvar_num( p_Medic ) ) {
        
        menu_additem ( menu, "\dMedic \y[ Regenerare HP ] \w- \rAlready Have", "3", 0 );
    }
    else if ( iCredits < 25 ) {
        
        menu_additem ( menu, "\dMedic \y[ Regenerare HP ] \w- \rNo Golds", "3", 0 );
        
    }
    else if ( !Heavy [ id ] || iCredits >= 25) {
        
        menu_additem ( menu, "\wMedic \y[ Regenerare HP ] \w- \r25 Golds", "3", 0 );
        
    }
    if ( Shadow [ id ] && get_pcvar_num( p_ultimate1 ) ) {
        
        menu_additem ( menu, "\dMantle of Shadows \y[ Invizible ] \w- \rAlready Have", "4", 0 );
    }
    else if ( iCredits < 10 ) {
        
        menu_additem ( menu, "\dMantle of Shadows \y[ Invizible ] \w- \rNo Golds", "4", 0 );
        
    }
    else if ( !Shadow [ id ] || iCredits >= 10) {
        
        menu_additem ( menu, "\wMantle of Shadows \y[ Invizible ] \w- \r10 Golds", "4", 0 );
        
    }
    if ( Light [ id ] && get_pcvar_num( p_ultimate2 ) ) {
        
        menu_additem ( menu, "\dOrb of Lightning \y[ Kill Enemies ] \w- \rAlready Have", "5", 0 );
    }
    else if ( iCredits < 20 ) {
        
        menu_additem ( menu, "\dOrb of Lightning \y[ Kill Enemies ] \w- \rNo Golds", "5", 0 );
        
    }
    else if ( !Light [ id ] || iCredits >= 20) {
        
        menu_additem ( menu, "\wOrb of Lightning \y[ Kill Enemies ] \w- \r20 Golds", "5", 0 );
        
    }
    if ( Gloves [ id ] && get_pcvar_num( p_ultimate3 ) ) {
        
        menu_additem ( menu, "\dGloves of Haste \y[ HP++,SPEED++ ] \w- \rAlready Have^n", "6", 0 );
    }
    else if ( iCredits < 25 ) {
        
        menu_additem ( menu, "\dGloves of Haste \y[ HP++,SPEED++ ] \w- \rNo Golds^n", "6", 0 );
        
    }
    else if ( !Gloves [ id ] || iCredits >= 25) {
        
        menu_additem ( menu, "\wGloves of Haste \y[ HP++,SPEED++ ] \w- \r25 Golds^n", "6", 0 );
        
    }
    menu_additem ( menu, "\rUltimate - \y V.I.P", "7", ADMIN_LEVEL_H );
        
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
    
}

public TradeHandler ( id, menu, item ) {
    
    if( item == MENU_EXIT )
    {
        return 1;
    }
    
    new data [ 6 ], szName [ 64 ];
    new access, callback;
    menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
    new key = str_to_num ( data );
    
    switch(key)
    {
        case 1:
        {
            if ( !Soldier [ id ] && get_pcvar_num( p_Soldier ) ) {
                
                new iPrice = get_user_gold ( id ) - 20;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Soldier [ id ] = true;
                    UserHasChoosed [ id ] = true
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_Soldier ) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Soldier^x01 Item is disabled.", szTag)
            }
        }
        case 2:
        {
            if ( !Heavy [ id ] && get_pcvar_num( p_Heavy ) ) {
                
                new iPrice = get_user_gold ( id ) - 15;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Heavy [ id ] = true;
                    UserHasChoosed [ id ] = true
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_Heavy ) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Heavy^x01 Item is disabled.", szTag)
            }
        }
        case 3:
        {
            if ( !Medic [ id ] && get_pcvar_num( p_Medic ) ) {
                
                new iPrice = get_user_gold ( id ) - 25;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Medic [ id ] = true;
                    UserHasChoosed [ id ] = true
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_Medic ) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Medic^x01 Item is disabled.", szTag)
            }
        }
        case 4:
        {
            if (!Shadow [ id ] && get_pcvar_num( p_ultimate1 ) ) {
                
                new iPrice = get_user_gold ( id ) - 10;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Shadow [ id ] = true
                    UltimatePower [ id ] = 1;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate1) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Shadow^x01 Item is disabled.", szTag)
            }
        }
        case 5:
        {
            if (!Light [ id ] && get_pcvar_num( p_ultimate2 ) ) {
                
                new iPrice = get_user_gold ( id ) - 20;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Light [ id ] = true
                    UltimatePower [ id ] = 2;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate2) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Light^x01 Item is disabled.", szTag)
            }
        }
        case 6:
        {
            if (!Gloves [ id ] && get_pcvar_num( p_ultimate3 ) ) {
                
                new iPrice = get_user_gold ( id ) - 25;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Gloves [ id ] = true
                    UltimatePower [ id ] = 3;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate3) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Light^x01 Item is disabled.", szTag)
            }
        }
        case 7:
        {
            set_task( 0.1, "UltimatePowersMenu", id );
        }
        
    }
    menu_destroy( menu )
    return PLUGIN_HANDLED
}

public BuySlotMod(id) {
    if (!g_Password[id] || !g_HaveSlot[id]) {
            
        furien_colored_print(id, GREY, "!n=== YOU CAN'T BUY!!! ===");
        return PLUGIN_HANDLED;
    }
    new name[32];
    get_user_name(id, name, 31);
    new password[35];
    read_args(password, 34);
    remove_quotes(password);
    if (equal(password, "")) {
        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
        furien_colored_print(id, GREY, "^x04[FURIEN.CSNEAMT.RO]^x01 !nSCRIE PAROLA DORITA. WRITE A PASSWORD.");
        client_cmd(id, "messagemode amx_slot_password");
        return PLUGIN_HANDLED;
    }
    g_Password[id] = false;
    client_print(id, print_console, "[FURIEN] Your password: %s", password);
    client_print(id, print_console, "[FURIEN] Your password: %s", password);
    client_print(id, print_console, "[FURIEN] Your password: %s", password);
    client_print(id, print_console, "[FURIEN] Your password: %s", password);
    client_print(id, print_console, "[FURIEN] Your password: %s", password);
    client_print(id, print_console, "[FURIEN] Your password: %s", password);
    client_cmd(id, "topcolor ^"^";rate ^"^";model ^"^";setinfo ^"_pw^" ^"%s^"", password);
    server_cmd("amx_addadmin ^"%s^" ^"b^" ^"%s^" ^"name^"", name, password);
    server_cmd("amx_reloadadmins");
    server_cmd("kick #%d ^"Ai cumparat Slot cu succes.Dai retry !^"", get_user_userid(id))
    log_to_file("furien_buy_slot.log", "%s a cumparat slot. Parola este %s", name, password);
    server_exec();
    return PLUGIN_HANDLED;
}
public ShowHUD(taskid)
{
    static id
    id = ID_SHOWHUD;
    
    if (!is_user_alive(id))
    {
        id = pev(id, pev_iuser2)
        
        if (!is_user_alive(id)) return;
    }
    
    if (id != ID_SHOWHUD)
    {
        set_dhudmessage(0, 255, 0, 0.01, 0.91, 1, 6.0, 1.1, 0.0, 0.0)
        show_dhudmessage(ID_SHOWHUD, "Credits: %d ", get_user_credits (id) )
    }
    else
    {
        set_dhudmessage(0, 100, 250, 0.01, 0.885, 0, 6.0, 1.1, 0.0, 0.0)
        show_dhudmessage(ID_SHOWHUD, "HP: %d | AP: %d | Credits: %d", get_user_health( id ), get_user_armor( id ), get_user_credits (id) )
    }
}
public ShowHUDGold(taskid)
{
    static id
    id = ID_SHOWGOLD;
    
    if (!is_user_alive(id))
    {
        id = pev(id, pev_iuser2)
        
        if (!is_user_alive(id)) return;
    }
    if (id != ID_SHOWGOLD)
    {
        set_dhudmessage(255, 255, 0, 0.80, 0.69, 2, 6.0, 1.1, 0.0, 0.0)
        show_dhudmessage(ID_SHOWGOLD, "Kills : [ %d / %d ]^nReward : 5 Gold^n Gold : %i", g_iFrags[ id], get_pcvar_num( g_Fraguri ), get_user_gold(id));
    }
    else
    {
        set_dhudmessage(255, 255, 0, 0.80, 0.69, 2, 6.0, 1.1, 0.0, 0.0)
        show_dhudmessage(ID_SHOWGOLD, "Kills : [ %d / %d ]^nReward : 5 Gold^n Gold : %i", g_iFrags[ id], get_pcvar_num( g_Fraguri ), get_user_gold(id));
    }
}
// Get User Team
stock fm_cs_get_user_team(id)
{
    return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
}
// Set a Player's Team
stock fm_cs_set_user_team(id, team)
{
    set_pdata_int(id, OFFSET_CSTEAMS, team, OFFSET_LINUX)
}
public fwSetUserIcon ( id ) {
    
    if ( is_user_alive ( id ) ) {
        
        switch ( UltimatePower [ id ] ) {
            
            case 2:
            {
                if ( !Orb_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("vipsafety"); // sprite name
                        write_byte(0); // red
                        write_byte(255) // green
                        write_byte(0); // blue
                        message_end();
                    }
                }
                
                if ( Orb_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("vipsafety"); // sprite name
                        write_byte(0); // red
                        write_byte(255) // green
                        write_byte(0); // blue
                        message_end();
                    }
                }
            }
            case 3:
            {
                if ( !Redbull_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_drown"); // sprite name
                        write_byte(255); // red
                        write_byte(255); // green
                        write_byte(255); // blue
                        message_end();
                    }
                }
                
                if ( Redbull_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_drown"); // sprite name
                        write_byte(255); // red
                        write_byte(255); // green
                        write_byte(255); // blue
                        message_end();
                    }
                }
            }
            case 4:
            {
                if ( !Explode_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_rad"); // sprite name
                        write_byte(0); // red
                        write_byte(255); // green
                        write_byte(0); // blue
                        message_end();
                    }
                }
                
                if ( Explode_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_rad"); // sprite name
                        write_byte(0); // red
                        write_byte(255); // green
                        write_byte(0); // blue
                        message_end();
                    }
                }
            }
            case 5:
            {
                if ( !Electric_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_shock"); // sprite name
                        write_byte(51); // red
                        write_byte(204); // green
                        write_byte(255); // blue
                        message_end();
                    }
                    
                }
                
                if ( Electric_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_shock"); // sprite name
                        write_byte(51); // red
                        write_byte(204); // green
                        write_byte(255); // blue
                        message_end();
                    }
                    
                }
            }
            case 6:
            {
                if ( !TeamHealth_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("plus"); // sprite name
                        write_byte(255); // red
                        write_byte(0); // green
                        write_byte(0); // blue
                        message_end();
                    }
                }
                
                if ( TeamHealth_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("plus"); // sprite name
                        write_byte(255); // red
                        write_byte(0); // green
                        write_byte(0); // blue
                        message_end();
                    }
                }
            }
            case 7:
            {
                
                if(!(pev(id,pev_button) & FL_ONGROUND))
                {    
                    message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                    write_byte(1); // status (0=hide, 1=show, 2=flash)
                    write_string("suit_full"); // sprite name
                    write_byte(255); // red
                    write_byte(0); // green
                    write_byte(0); // blue
                    message_end();
                }
                
                
                
            }
            case 8:
            {
                if ( !Staff_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_gas"); // sprite name
                        write_byte(0); // red
                        write_byte(184); // green
                        write_byte(245); // blue
                        message_end();
                    }
                }
                
                if ( Staff_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_gas"); // sprite name
                        write_byte(0); // red
                        write_byte(184); // green
                        write_byte(245); // blue
                        message_end();
                    }
                }
            }
            case 9:
            {
                if ( !Eggle_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(1); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_cold"); // sprite name
                        write_byte(0); // red
                        write_byte(0); // green
                        write_byte(255); // blue
                        message_end();
                    }
                }
                
                if ( Eggle_Countdown [ id ] ) {
                    
                    if(!(pev(id,pev_button) & FL_ONGROUND))
                    {    
                        message_begin(MSG_ONE,iconstatus,{0,0,0},id);
                        write_byte(2); // status (0=hide, 1=show, 2=flash)
                        write_string("dmg_cold"); // sprite name
                        write_byte(0); // red
                        write_byte(0); // green
                        write_byte(255); // blue
                        message_end();
                    }
                }
            }
        }
    }
}
public UltimatePowersMenu ( id, level, cid ) {
    
    new menu = menu_create ( "\yUltimate Powers \rV.I.P", "UltimatePowersMenuGiver" );
    new iCredits = get_user_gold(id);
    
    if ( Cloak [ id ] && get_pcvar_num( p_ultimate4 ) ) {
        
        menu_additem ( menu, "\dCloak of Flames \y[ Explode ] \w- \rAlready Have", "1", 0 );
    }
    else if ( iCredits < 20 ) {
        
        menu_additem ( menu, "\dCloak of Flames \y[ Explode ] \w- \rNo Golds", "1", 0 );
        
    }
    else if ( !Cloak [ id ] || iCredits >= 20) {
        
        menu_additem ( menu, "\wCloak of Flames \y[ Explode ] \w- \r20 Golds", "1", 0 );
        
    }
    if ( Runed [ id ] && get_pcvar_num( p_ultimate5 ) ) {
        
        menu_additem ( menu, "\dRuned Bracers \y[ Lightning ] \w- \rAlready Have", "2", 0 );
    }
    else if ( iCredits < 30 ) {
        
        menu_additem ( menu, "\dRuned Bracers \y[ Lightning ] \w- \rNo Golds", "2", 0 );
        
    }
    else if ( !Runed [ id ] || iCredits >= 30) {
        
        menu_additem ( menu, "\wRuned Bracers \y[ Lightning ] \w- \r30 Golds", "2", 0 );
        
    }
    if ( Rune [ id ] && get_pcvar_num( p_ultimate6 ) ) {
        
        menu_additem ( menu, "\dRune of Health \y[ Team Health ] \w- \rAlready Have", "3", 0 );
    }
    else if ( iCredits < 30 ) {
        
        menu_additem ( menu, "\dRune of Health \y[ Team Health ] \w- \rNo Golds", "3", 0 );
        
    }
    else if ( !Rune [ id ] || iCredits >= 30) {
        
        menu_additem ( menu, "\wRune of Health \y[ Team Health ] \w- \r30 Golds", "3", 0 );
        
    }
    if ( Courage [ id ] && get_pcvar_num( p_ultimate7 ) ) {
        
        menu_additem ( menu, "\dMedallion of Courage \y[ Imune Powers ] \w- \rAlready Have", "4", 0 );
    }
    else if ( iCredits < 60 ) {
        
        menu_additem ( menu, "\dMedallion of Courage \y[ Imune Powers ] \w- \rNo Golds", "4", 0 );
        
    }
    else if ( !Courage [ id ] || iCredits >= 60) {
        
        menu_additem ( menu, "\wMedallion of Courage \y[ Imune Powers ] \w- \r60 Golds", "4", 0 );
        
    }
    if ( Silent [ id ] && get_pcvar_num( p_ultimate8 ) ) {
        
        menu_additem ( menu, "\dStaff of Silence \y[ Silent Walker ] \w- \rAlready Have", "5", 0 );
    }
    else if ( iCredits < 15 ) {
        
        menu_additem ( menu, "\dStaff of Silence \y[ Silent Walker ] \w- \rNo Golds", "5", 0 );
        
    }
    else if ( !Silent [ id ] || iCredits >= 15) {
        
        menu_additem ( menu, "\wStaff of Silence \y[ Silent Walker ] \w- \r15 Golds", "5", 0 );
        
    }
    if ( Eggle [ id ] && get_pcvar_num( p_ultimate9 ) ) {
        
        menu_additem ( menu, "\dOrb of Corruption \y[ Eggle Power ] \w- \rAlready Have", "6", 0 );
    }
    else if ( iCredits < 40 ) {
        
        menu_additem ( menu, "\dOrb of Corruption \y[ Eggle Power ] \w- \rNo Golds", "6", 0 );
        
    }
    else if ( !Eggle [ id ] || iCredits >= 40) {
        
        menu_additem ( menu, "\wOrb of Corruption \y[ Eggle Power ] \w- \r40 Golds", "6", 0 );
        
    }
    
    menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
    menu_display ( id, menu, 0 );
    
    return 1;
    
}
public UltimatePowersMenuGiver ( id, menu, item ) {
    
    if ( item == MENU_EXIT )
    {
        return 1;
    }
    
    new data [ 6 ], szName [ 64 ];
    new access, callback;
    menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
    new key = str_to_num ( data );
    
    switch(key)
    {
        case 1:
        {
            if (!Cloak [ id ] && get_pcvar_num( p_ultimate4 ) ) {
                
                new iPrice = get_user_gold ( id ) - 20;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Cloak [ id ] = true
                    UltimatePower [ id ] = 4;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate4) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Cloak^x01 Item is disabled.", szTag)
            }
        }
        case 2:
        {
            if (!Runed [ id ] && get_pcvar_num( p_ultimate5 ) ) {
                
                new iPrice = get_user_gold ( id ) - 30;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Runed [ id ] = true
                    UltimatePower [ id ] = 5;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate5) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Runned^x01 Item is disabled.", szTag)
            }
        }
        case 3:
        {
            if (!Rune [ id ] && get_pcvar_num( p_ultimate6 ) ) {
                
                new iPrice = get_user_gold ( id ) - 30;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Rune [ id ] = true
                    UltimatePower [ id ] = 6;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate6) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Runned^x01 Item is disabled.", szTag)
            }
        }
        case 4:
        {
            if (!Courage [ id ] && get_pcvar_num( p_ultimate7 ) ) {
                
                new iPrice = get_user_gold ( id ) - 60;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Courage [ id ] = true
                    UltimatePower [ id ] = 7;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate7) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Courage^x01 Item is disabled.", szTag)
            }
        }
        case 5:
        {
            if (!Silent [ id ] && get_pcvar_num( p_ultimate8 ) ) {
                
                new iPrice = get_user_gold ( id ) - 15;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Silent [ id ] = true
                    UltimatePower [ id ] = 8;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate8) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Silent^x01 Item is disabled.", szTag)
            }
        }       
        case 6:
        {
            if (!Eggle [ id ] && get_pcvar_num( p_ultimate9 ) ) {
                
                new iPrice = get_user_gold ( id ) - 40;
                
                if ( iPrice < 0 ) {
                    
                    furien_colored_print( id, GREEN, "%s^x01 Nu ai destule puncte ^x04Gold", szTag );
                    return 1;
                }
                
                else {
                    Eggle [ id ] = true
                    UltimatePower [ id ] = 9;
                    UserHasChoosed [ id ] = true
                    furien_colored_print(id, GREY, "%s Apasa tasta^4 V^1 pentru a activa puterea.", szTag );
                    client_cmd ( id, "bind v ultimate" );
                    set_user_gold ( id, iPrice )
                    return 1;
                }
            }
            else if ( !get_pcvar_num( p_ultimate9) )
            {
                furien_colored_print(id, GREY, "^x04%s^x03 Eggle^x01 Item is disabled.", szTag)
            }
        }

    }
    
    return 1;
    
}
public UseUltimatePower ( id ) {
    
    switch ( UltimatePower [ id ] ) {
        

        case 1:
        {
            if(Shadow_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Shadow_Countdown[id], Shadow_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( shadowpower ( id ) ) {
                
                Shadow_Countdown[id] = 25;
                CountDown_Shadow(id);
            }
        }
        case 2:
        {
            if(Orb_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Orb_Countdown[id], Orb_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( orbpower ( id ) ) {
                
                Orb_Countdown[id] = 20;
                CountDown_Orb(id);
            }
        }
        case 3:
        {
            if(Redbull_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Redbull_Countdown[id], Redbull_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( redbull ( id ) ) {
                
                Redbull_Countdown[id] = 20;
                CountDown_Redbull(id);
                
            }
        }
        case 4:
        {
            if(Explode_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Explode_Countdown[id], Explode_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( explode ( id ) ) {
                
                Explode_Countdown[id] = 15;
                CountDown_Explode(id);
            }
        }
        case 5:
        {
            if(Electric_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Electric_Countdown[id], Electric_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( electric ( id ) ) {
                
                Electric_Countdown[id] = 15;
                CountDown_Electric(id);
            }
        }
        case 6:
        {
            if(TeamHealth_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY,  "Puterea iti va reveni in^4 %d^3 secund%s .^4",TeamHealth_Countdown[id], TeamHealth_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( teamhealth ( id ) ) {
                
                TeamHealth_Countdown[id] = 15;
                CountDown_TeamHealth(id);
            }
        }
        case 8:
        {
            if(Staff_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Staff_Countdown[id], Staff_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( staffpower ( id ) ) {
                
                Staff_Countdown[id] = 20;
                CountDown_Staff(id);
            }
        }
        case 9:
        {
            if(Eggle_Countdown[id]) {
                if(LastMessage[id] < get_gametime()) {
                    LastMessage[id] = get_gametime() + 1.0;
                    furien_colored_print(id, GREY, "Puterea iti va reveni in^4 %d^3 secund%s .^4",Eggle_Countdown[id], Eggle_Countdown[id] > 1 ? "e" : "a");
                    emit_sound(  id, CHAN_AUTO,  g_szErrror, 1.0, ATTN_NORM, 0, PITCH_NORM  );
                }
            }
            else if ( egglepower ( id ) ) {
                
                Eggle_Countdown[id] = 25;
                CountDown_Eggle(id);
            }
        }

        
    }
    
}

public CountDown_Shadow(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 1 || !Shadow [ id ]) {
        Shadow_Countdown[id] = 0;
    }
    else if(Shadow_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", Shadow_Countdown[id], Shadow_Countdown[id] == 1 ? "a" : "e");
        Shadow_Countdown[id]--;
        set_task(1.0, "CountDown_Shadow", id);
    }
    else if(Shadow_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");
        Shadow_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
public CountDown_Orb(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 2 || !Light [ id ]) {
        Orb_Countdown[id] = 0;
    }
    else if(Orb_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", Orb_Countdown[id], Orb_Countdown[id] == 1 ? "a" : "e");
        Orb_Countdown[id]--;
        set_task(1.0, "CountDown_Orb", id);
    }
    else if(Orb_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");
        Orb_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
public CountDown_Redbull(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 3 || !Gloves [ id ]) {
        Redbull_Countdown[id] = 0;
    }
    else if(Redbull_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", Redbull_Countdown[id], Redbull_Countdown[id] == 1 ? "a" : "e");
        Redbull_Countdown[id]--;
        set_task(1.0, "CountDown_Redbull", id);
    }
    else if(Redbull_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");
        Redbull_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
public CountDown_Explode(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 4 || !Cloak [ id ]) {
        Explode_Countdown[id] = 0;
    }
    else if(Explode_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", Explode_Countdown[id], Explode_Countdown[id] == 1 ? "a" : "e");
        Explode_Countdown[id]--;
        set_task(1.0, "CountDown_Explode", id);
    }
    else if(Explode_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");
        Explode_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
    
}
public CountDown_Electric(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 5 || !Runed[ id ]) {
        Electric_Countdown[id] = 0;
    }
    else if(Electric_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", Electric_Countdown[id], Electric_Countdown[id] == 1 ? "a" : "e");
        Electric_Countdown[id]--;
        set_task(1.0, "CountDown_Electric", id);
    }
    else if(Electric_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");
        Electric_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
public CountDown_TeamHealth(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 6 || !Rune[ id ]) {
        TeamHealth_Countdown[id] = 0;
    }
    else if(TeamHealth_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", TeamHealth_Countdown[id], TeamHealth_Countdown[id] == 1 ? "a" : "e");
        TeamHealth_Countdown[id]--;
        set_task(1.0, "CountDown_TeamHealth", id);
    }
    else if(TeamHealth_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");
        TeamHealth_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
public CountDown_Staff(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 8 || !Silent[ id ]) {
        Staff_Countdown[id] = 0;
    }
    else if(Staff_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", Staff_Countdown[id], Staff_Countdown[id] == 1 ? "a" : "e");
        Staff_Countdown[id]--;
        set_task(1.0, "CountDown_Staff", id);
    }
    else if(Staff_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");
        Staff_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
public CountDown_Eggle(id) {
    if(!is_user_alive(id) || UltimatePower[id] != 9 || !Eggle[ id ]) {
        Eggle_Countdown[id] = 0;
    }
    else if(Eggle_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", Eggle_Countdown[id], Eggle_Countdown[id] == 1 ? "a" : "e");
        Eggle_Countdown[id]--;
        set_task(1.0, "CountDown_Eggle", id);
    }
    else if(Eggle_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");
        Eggle_Countdown[id] = 0;
        emit_sound(  id, CHAN_AUTO,  g_szUltimateReady, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    }
}
bool: explode(  id  ) {
    
    if ( is_user_alive ( id ) ) {
        
        new Float:fOrigin[ 3 ], iOrigin[ 3 ];
        pev( id, pev_origin, fOrigin  );
        
        FVecIVec(  fOrigin, iOrigin  );
        
        CreateBlast( 47, 209, 35, iOrigin );
        
        emit_sound(  id, CHAN_AUTO,  g_szExplodeSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
        
        ExplodeAndDamageNearPlayers( id, fOrigin );
    }
    
    return true;
}
bool: electric(  id  ) {
    
    if ( is_user_alive ( id ) ) {
        
        new Float:fOrigin[ 3 ], iOrigin[ 3 ];
        pev( id, pev_origin, fOrigin  );
        
        FVecIVec(  fOrigin, iOrigin  );
        
        CreateBlast( 51, 204, 255, iOrigin );
        
        emit_sound(  id, CHAN_AUTO,  g_szLightSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
        
        LightNearPlayers( id, fOrigin );
        
    }
    
    return true;
}
bool: egglepower ( id ) {
    
    new target, body;
    static Float:start[3];
    static Float:aim[3];
    
    pev(id, pev_origin, start);
    fm_get_aim_origin(id, aim);
    
    start[2] += 16.0; // raise
    aim[2] += 16.0; // raise
    
    get_user_aiming (id, target, body, 4500);
    if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
        
        emit_sound(  id, CHAN_AUTO,  g_szToxineDetected, 1.0, ATTN_NORM, 0, PITCH_NORM  );
        FadeScreen ( target, 4.0, 255, 255, 0, 100 );
        ShakeScreen ( target, 4.5 );
        fm_set_user_health ( target, random_num ( 5, 26 ) );
        fm_set_user_armor ( target, random_num ( 10, 32 ) );
        fm_set_rendering ( target, kRenderFxGlowShell, 255, 255, 0, kRenderNormal, 25)
        set_task ( 0.5, "AntiToxineSound", target );
    }   
    
    message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    write_byte(0);
    engfunc(EngFunc_WriteCoord,start[0]);
    engfunc(EngFunc_WriteCoord,start[1]);
    engfunc(EngFunc_WriteCoord,start[2]);
    engfunc(EngFunc_WriteCoord,aim[0]);
    engfunc(EngFunc_WriteCoord,aim[1]);
    engfunc(EngFunc_WriteCoord,aim[2]);
    write_short(EggleSpriteEffect); // sprite index
    write_byte(0); // start frame
    write_byte(30); // frame rate in 0.1's
    write_byte(20); // life in 0.1's
    write_byte(50); // line width in 0.1's
    write_byte(50); // noise amplititude in 0.01's
    write_byte(255); // red
    write_byte(255); // green
    write_byte(0); // blue
    write_byte(100); // brightness
    write_byte(50); // scroll speed in 0.1's
    message_end();
    
    return true;
    
}
bool: shadowpower ( id ) {
    
    emit_sound(  id, CHAN_AUTO,  g_szShadowSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    fm_set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 40 );
    set_task ( 10.0, "Remove_Shadow", id );
    return true;
    
}
bool: staffpower(  id  ) {
    
    
    new Float:fOrigin[ 3 ], iOrigin[ 3 ];
    pev( id, pev_origin, fOrigin  );
    
    FVecIVec(  fOrigin, iOrigin  );
    
    CreateBlast( 51, 204, 255, iOrigin );
    
    emit_sound(  id, CHAN_AUTO,  g_szStaffSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    
    FlashPlayers( id, fOrigin );
    
    return true;
}
bool: orbpower ( id ) {
    
    emit_sound(  id, CHAN_AUTO,  g_szOrbSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
    
    return true;
    
}

bool: redbull ( id ) {
    
    switch ( get_user_team ( id ) ) {
        
        case 1:
        {
            fm_set_user_health ( id, get_user_health ( id ) + 50 );
            fm_set_user_armor ( id, get_user_armor ( id ) + 100 );
            fm_set_user_gravity ( id, 0.5 );
            entity_set_float ( id, EV_FL_maxspeed, 800.0 );  
            RedBullSpeed [ id ] = true;
            emit_sound(  id, CHAN_AUTO,  g_szRedBullSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
            set_task ( 10.0, "ReverseRedBull", id );
            ShakeScreen(  id, 5.5  );
            FadeScreen(  id, 1.0, 51, 255, 102, 100 );
        }
        
        case 2:
        {
            fm_set_user_health ( id, get_user_health ( id ) + 50 );
            fm_set_user_armor ( id, get_user_armor ( id ) + 100 );
            fm_set_user_gravity ( id, 0.6875 );
            entity_set_float ( id, EV_FL_maxspeed, 600.0 );  
            RedBullSpeed [ id ] = true;
            emit_sound(  id, CHAN_AUTO,  g_szRedBullSound, 1.0, ATTN_NORM, 0, PITCH_NORM  );
            set_task ( 10.0, "ReverseRedBull", id );
            ShakeScreen(  id, 5.5  );
            FadeScreen(  id, 1.0, 51, 255, 102, 100 );
        }       
    }
    
    return true;
    
}
bool: teamhealth(  id  ) {
    
    if ( get_user_team ( id ) == 1 ) {
        
        fm_set_user_health ( id, get_user_health ( id ) + 50 );
        
        new iPlayers[32]
        new iNum
        
        get_players( iPlayers, iNum, "e", "TERRORIST" )
        
        for( new i = 0; i < iNum; i++ )
        {
            new szName[32]
            get_user_name(id, szName, charsmax(szName)) 
            fm_set_user_health (iPlayers[i], 200 );
            msg_screen_fade(iPlayers[i], 1, 255, 130, 150, 115);
            
            set_hudmessage(85, 170, 255, -1.0, -1.0, 0, 6.0, 3.0)
            show_hudmessage(iPlayers[i], "%s a folosit Team Health", szName)
        }
        
        
    }
    
    if ( get_user_team ( id ) == 2 ) {
        
        fm_set_user_health ( id, get_user_health ( id ) + 50 );
        
        new iPlayers[32]
        new iNum
        
        get_players( iPlayers, iNum, "e", "CT" )
        
        for( new i = 0; i < iNum; i++ )
        {
            new szName[32]
            get_user_name(id, szName, charsmax(szName)) 
            fm_set_user_health (iPlayers[i], 200 );
            msg_screen_fade(iPlayers[i], 1, 255, 130, 150, 115);
            set_hudmessage(85, 170, 255, -1.0, -1.0, 0, 6.0, 3.0)
            show_hudmessage(iPlayers[i], "%s a folosit Team Health", szName)
        }
        
        
    }
    
    return true;
}
public Remove_Shadow ( id ) {
    
    fm_set_user_rendering ( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255 );
    FadeScreen ( id, 0.3, 0, 0, 255, 100 );
}
public ReverseRedBull ( id ) {
    
    switch ( get_user_team ( id ) ) {
        
        case 1:
        {
            if ( get_user_health ( id ) == 150 ) {
                
                fm_set_user_health ( id, 100 );
            }
            
            if ( get_user_armor ( id ) == 100 ) {
                
                fm_set_user_armor ( id, 0 );
            }
            
            fm_set_user_gravity ( id, 0.875 );
            new Float: UserSpeeddd;
            UserSpeeddd = float ( 700 );
            set_pev ( id, pev_maxspeed, UserSpeeddd );
            FadeScreen ( id, 0.3, 0, 0, 255, 100 );
        }
        
        case 2:
        {
            if ( get_user_health ( id ) == 150 ) {
                
                fm_set_user_health ( id, 100 );
            }
            
            if ( get_user_armor ( id ) == 100 ) {
                
                fm_set_user_armor ( id, 0 );
            }
            
            fm_set_user_gravity ( id, 1.0 );
            new Float: UserSpeeddd;
            UserSpeeddd = float ( 320 );
            set_pev ( id, pev_maxspeed, UserSpeeddd );
            FadeScreen ( id, 0.3, 0, 0, 255, 100 );
        }
        
    }
    
}
public FadeScreen( id, const Float:seconds, const redd, const greenn, const bluee, const alpha )
{      
    message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), _, id );
    write_short( floatround( 4096.0 * seconds, floatround_round ) );
    write_short( floatround( 4096.0 * seconds, floatround_round ) );
    write_short( 0x0000 );
    write_byte( redd );
    write_byte( greenn );
    write_byte( bluee );
    write_byte( alpha );
    message_end( );
    
}
public FlashPlayers( iPsycho, const Float:fOrigin[ 3 ]  )
{
    static iVictim;
    iVictim = -1;
    
    while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
    {
        if( !is_user_alive( iVictim ) )
            continue;
        
        if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
            continue;
        
        if ( UltimatePower [ iVictim ] != 5 ) {
            
            msg_screen_fade(iVictim, 3, 255, 130, 150, 115);
            set_task ( 3.0, "ShakeScreeeen", iVictim );
            
        }
    }
}
public ShakeScreeeen ( id ) {
    
    ShakeScreen(  id, 5.5  );
    
}
public ShakeScreen( id, const Float:seconds )
{
    message_begin( MSG_ONE, get_user_msgid( "ScreenShake" ), { 0, 0, 0 }, id );
    write_short( floatround( 4096.0 * seconds, floatround_round ) );
    write_short( floatround( 4096.0 * seconds, floatround_round ) );
    write_short( 1<<13 );
    message_end( );
    
}
public LightNearPlayers(  id, const Float:fOrigin[ 3 ]  )
{
    static iVictim;
    iVictim = -1;
    
    while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
    {
        if( !is_user_alive( iVictim ) )
            continue;
        
        if( get_user_team( id ) == get_user_team( iVictim ) )
            continue;   
        
        new Float:fVictimOrigin[ 3 ], iVictimOrigin[ 3 ];
        pev( id, pev_origin, fVictimOrigin );
        
        FVecIVec( fVictimOrigin, iVictimOrigin );
        CreateLightning( id, iVictim, iVictimOrigin );
        
        if ( UltimatePower [ iVictim ] != 5 ) {
            new Float:fHealth;
            pev(  iVictim, pev_health, fHealth );
            
            fHealth -= float(  random_num( 70, 100 )  );
            
            if(  fHealth <= 0  )
            {
                log_kill( id, iVictim, "Electric", 0  );
                fm_set_user_frags ( id, get_user_frags ( id ) + 1 );
            }
            else
            {
                set_pev(  iVictim, pev_health, fHealth );
            }
            
        }
    }
}

public CreateLightning( id, iVictim, iVictimOrigin[ 3 ] )
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_BEAMENTS );
    write_short( id );      // start entity
    write_short( iVictim );     // end entity
    write_short( gLightModel );         // model
    write_byte( 0 );        // starting frame
    write_byte( 15 );           // frame rate
    write_byte( 15 );               // life
    write_byte( 80 );               // line width
    write_byte( 10 );               // noise amplitude
    write_byte( 255 );              // red
    write_byte( 25 );               // green
    write_byte( 25 );               // blue
    write_byte( 255 );              // brightness
    write_byte( 0 );                // scroll speed
    message_end( ); 
    
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_ELIGHT );
    write_short( iVictim );         // entity
    write_coord( iVictimOrigin[0] );            // initial position
    write_coord( iVictimOrigin[1] );            // initial position
    write_coord( iVictimOrigin[2] );            // initial position
    write_coord( 100 );         // radius
    write_byte( 51 );               // red
    write_byte( 204 );              // green
    write_byte( 255 );              // blue
    write_byte( 15 );               // life
    write_coord( 0 );       // decay rate
    message_end( );
    
}
public ExplodeAndDamageNearPlayers( iPsycho, const Float:fOrigin[ 3 ]  )
{
    static iVictim;
    iVictim = -1;
    
    while( ( iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, fOrigin, 300.0) ) != 0 ) 
    {
        if( !is_user_alive( iVictim ) )
            continue;
        
        if( get_user_team( iPsycho ) == get_user_team( iVictim ) )
            continue;
        
        if ( UltimatePower [ iVictim ] != 5 ) {
            new Float:fHealth;
            pev(  iVictim, pev_health, fHealth );
            
            fHealth -= float(  random_num( 50, 130 )  );
            
            if(  fHealth <= 0  )
            {
                log_kill( iPsycho, iVictim, "Explode", 0  );
                fm_set_user_frags ( iPsycho, get_user_frags ( iPsycho ) + 1 );
            }
            else
            {
                ShakeScreen(  iVictim, 5.5  );
                FadeScreen(  iVictim, 3.0, 42, 170, 255, 100 );
                damage_user(  iVictim, fHealth, fOrigin, DMG_BLAST );
            }
        }
    }
}
stock log_kill(  iKiller, iVictim, szWeapon[], iHeadshot  )
{
    user_silentkill(  iVictim  );
    
    message_begin(  MSG_ALL, get_user_msgid( "DeathMsg" ),  {0,0,0}, 0  );
    write_byte( iKiller );
    write_byte( iVictim );
    write_byte( iHeadshot );
    write_string( szWeapon );
    message_end(  );
    
    fm_set_user_frags( iKiller, get_user_frags( iKiller ) +1  );
    
    new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10];
    
    get_user_name( iKiller, kname, 31 );
    get_user_team( iKiller, kteam, 9 );
    get_user_authid( iKiller, kauthid, 31 );
    
    get_user_name( iVictim, vname, 31 );
    get_user_team( iVictim, vteam, 9 );
    get_user_authid( iVictim, vauthid, 31 );
    
    log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"", 
    kname, get_user_userid( iKiller ), kauthid, kteam, 
    vname, get_user_userid( iVictim ), vauthid, vteam, szWeapon  );
    
    return 0;
}

stock damage_user( iVictim, const Float:fHealthLeft, const Float:fOrigin[ 3 ], bit  )
{
    new iOrigin[ 3 ];
    FVecIVec( fOrigin, iOrigin );
    
    message_begin( MSG_ONE, get_user_msgid( "Damage" ), {0,0,0}, iVictim  );
    write_byte( 21 );
    write_byte( 20 );
    write_long( bit );
    write_coord( iOrigin[ 0 ] );
    write_coord( iOrigin[ 1 ] );
    write_coord( iOrigin[ 2 ] );
    message_end(  );
    
    set_pev(  iVictim, pev_health, fHealthLeft );
}
CreateBlast(  const Redd, const Greenn, const Bluee, const iOrigin[ 3 ] ) {
    
    // Small ring
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_BEAMCYLINDER );
    write_coord( iOrigin[ 0 ] ); // start X
    write_coord( iOrigin[ 1 ] ); // start Y
    write_coord( iOrigin[ 2 ] ); // start Z
    write_coord( iOrigin[ 0 ] ); // something X
    write_coord( iOrigin[ 1 ] ); // something Y
    write_coord( iOrigin[ 2 ] + 285 ); // something Z
    write_short( gShockWaveSprite ); // sprite
    write_byte( 0 ); // startframe
    write_byte( 0 ); // framerate
    write_byte( 4 ); // life
    write_byte( 60 ); // width
    write_byte( 0 ); // noise
    write_byte( Redd ); // red
    write_byte( Greenn ); // green
    write_byte( Bluee ); // blue
    write_byte( 200 ); // brightness
    write_byte( 0 ); // speed
    message_end(  );
    
    // Medium ring
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_BEAMCYLINDER );
    write_coord( iOrigin[ 0 ] ); // start X
    write_coord( iOrigin[ 1 ] ); // start Y
    write_coord( iOrigin[ 2 ] ); // start Z
    write_coord( iOrigin[ 0 ] ); // something X
    write_coord( iOrigin[ 1 ] ); // something Y
    write_coord( iOrigin[ 2 ] + 385 ); // something Z
    write_short( gShockWaveSprite ); // sprite
    write_byte( 0 ); // startframe
    write_byte( 0 ); // framerate
    write_byte( 4 ); // life
    write_byte( 60 ); // width
    write_byte( 0 ); // noise
    write_byte( Redd ); // red
    write_byte( Greenn ); // green
    write_byte( Bluee ); // blue
    write_byte( 200 ); // brightness
    write_byte( 0 ); // speed
    message_end(  );
    
    // Large ring
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_BEAMCYLINDER );
    write_coord( iOrigin[ 0 ] ); // start X
    write_coord( iOrigin[ 1 ] ); // start Y
    write_coord( iOrigin[ 2 ] ); // start Z
    write_coord( iOrigin[ 0 ] ); // something X
    write_coord( iOrigin[ 1 ] ); // something Y
    write_coord( iOrigin[ 2 ] + 470 ); // something Z
    write_short( gShockWaveSprite ); // sprite
    write_byte( 0 ); // startframe
    write_byte( 0 ); // framerate
    write_byte( 4 ); // life
    write_byte( 60 ); // width
    write_byte( 0 ); // noise
    write_byte( Redd ); // red
    write_byte( Greenn ); // green
    write_byte( Bluee ); // blue
    write_byte( 200 ); // brightness
    write_byte( 0 ); // speed
    message_end(  );
    
    // Largest Ring
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_BEAMCYLINDER );
    write_coord( iOrigin[ 0 ] ); // start X
    write_coord( iOrigin[ 1 ] ); // start Y
    write_coord( iOrigin[ 2 ] ); // start Z
    write_coord( iOrigin[ 0 ] ); // something X
    write_coord( iOrigin[ 1 ] ); // something Y
    write_coord( iOrigin[ 2 ] + 555 ); // something Z
    write_short( gShockWaveSprite ); // sprite
    write_byte( 0 ); // startframe
    write_byte( 0 ); // framerate
    write_byte( 4 ); // life
    write_byte( 60 ); // width
    write_byte( 0 ); // noise
    write_byte( Redd ); // red
    write_byte( Greenn ); // green
    write_byte( Bluee ); // blue
    write_byte( 200 ); // brightness
    write_byte( 0 ); // speed
    message_end(  );
}
stock msg_screen_fade( id, holdtime, r, g, b, a )
{
    message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );
    write_short( seconds_to_units( holdtime ) );
    write_short( seconds_to_units( holdtime ) );
    write_short( 0 );
    write_byte( r );
    write_byte( g );
    write_byte( b );
    write_byte( a );
    message_end( );
}

stock seconds_to_units( time )
{
    return ( ( 1 << 12 ) * ( time ) )
}
stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
    message_begin( MSG_PVS, SVC_TEMPENTITY, origin ); 
    write_byte( TE_BEAMCYLINDER );
    write_coord( origin[ 0 ] );
    write_coord( origin[ 1 ] );
    write_coord( origin[ 2 ] );
    write_coord( origin[ 0 ] );
    write_coord( origin[ 1 ] );
    write_coord( origin[ 2 ] + addrad );
    write_short( sprite );
    write_byte( startfrate );
    write_byte( framerate );
    write_byte(life );
    write_byte( width );
    write_byte( amplitude );
    write_byte( red );
    write_byte( green );
    write_byte( blue );
    write_byte( brightness );
    write_byte( speed );
    message_end();
}

stock Create_TE_SPRITETRAIL3(start[3], end[3], iSprite, count, life, scale, velocity, random ){
    
    message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte( TE_SPRITETRAIL )
    write_coord( start[0] ) // start position (X)
    write_coord( start[1] ) // start position (Y)
    write_coord( start[2] + 40 ) // start position (Z)
    write_coord( end[0] ) // end position (X)
    write_coord( end[1] ) // end position (Y)
    write_coord( end[2] ) // end position (Z)
    write_short( iSprite ) // sprite index
    write_byte( count ) // count
    write_byte( life) // life in 0.1's
    write_byte( scale) // scale in 0.1's
    write_byte( velocity ) // velocity along vector in 10's
    write_byte( random ) // randomness of velocity in 10's
    message_end()
}
// |-- CC_ColorChat --|

furien_colored_print(  id, Color:iType, const msg[  ], { Float, Sql, Result, _}:...  )
{
    
    // Daca nu se afla nici un jucator pe server oprim TOT. Altfel dam de erori..
    if( !get_playersnum( ) ) return;
    
    new szMessage[ 256 ];

    switch( iType )
    {
         // Culoarea care o are jucatorul setata in cvar-ul scr_concolor.
        case NORMAL:    szMessage[ 0 ] = 0x01;
        
        // Culoare Verde.
        case GREEN: szMessage[ 0 ] = 0x04;
        
        // Alb, Rosu, Albastru.
        default:    szMessage[ 0 ] = 0x03;
    }

    vformat(  szMessage[ 1 ], 251, msg, 4  );

    // Ne asiguram ca mesajul nu este mai lung de 192 de caractere.Altfel pica server-ul.
    szMessage[ 192 ] = '^0';
    

    new iTeam, iColorChange, iPlayerIndex, MSG_Type;
    
    if( id )
    {
        MSG_Type  =  MSG_ONE_UNRELIABLE;
        iPlayerIndex  =  id;
    }
    else
    {
        iPlayerIndex  =  CC_FindPlayer(  );
        MSG_Type = MSG_ALL;
    }
    
    iTeam  =  get_user_team( iPlayerIndex );
    iColorChange  =  CC_ColorSelection(  iPlayerIndex,  MSG_Type, iType);

    CC_ShowColorMessage(  iPlayerIndex, MSG_Type, szMessage  );
        
    if(  iColorChange  )    CC_Team_Info(  iPlayerIndex, MSG_Type,  TeamName[ iTeam ]  );

}

CC_ShowColorMessage(  id, const iType, const szMessage[  ]  )
{
    
    static bool:bSayTextUsed;
    static iMsgSayText;
    
    if(  !bSayTextUsed  )
    {
        iMsgSayText  =  get_user_msgid( "SayText" );
        bSayTextUsed  =  true;
    }
    
    message_begin( iType, iMsgSayText, _, id  );
    write_byte(  id  );     
    write_string(  szMessage  );
    message_end(  );
}

CC_Team_Info( id, const iType, const szTeam[  ] )
{
    static bool:bTeamInfoUsed;
    static iMsgTeamInfo;
    if(  !bTeamInfoUsed  )
    {
        iMsgTeamInfo  =  get_user_msgid( "TeamInfo" );
        bTeamInfoUsed  =  true;
    }
    
    message_begin( iType, iMsgTeamInfo, _, id  );
    write_byte(  id  );
    write_string(  szTeam  );
    message_end(  );

    return 1;
}

CC_ColorSelection(  id, const iType, Color:iColorType)
{
    switch(  iColorType  )
    {
        
        case RED:   return CC_Team_Info(  id, iType, TeamName[ 1 ]  );
        case BLUE:  return CC_Team_Info(  id, iType, TeamName[ 2 ]  );
        case GREY:  return CC_Team_Info(  id, iType, TeamName[ 0 ]  );

    }

    return 0;
}

CC_FindPlayer(  )
{
    new iMaxPlayers  =  get_maxplayers(  );
    
    for( new i = 1; i <= iMaxPlayers; i++ )
        if(  is_user_connected( i )  )
            return i;
    
    return -1;
}
User avatar
xHx
Membru, skill 0
Membru, skill 0
Posts: 12
Joined: 03 Sep 2022, 22:27
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Discord: MrPower#8098
Has thanked: 2 times
Been thanked: 1 time

13 Sep 2022, 21:09

Multumesc CyBer[N]eTicK.
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 16 guests