Pluginuri Server furien [Vechiul fury.csBlackDevil.Com]

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
FlyingSnow
Membru, skill +2
Membru, skill +2
Posts: 825
Joined: 01 Oct 2012, 02:22
Detinator Steam: Da
Detinator server CS: Dap.
SteamID: Nu-i public.
Has thanked: 26 times
Been thanked: 52 times
Contact:

11 Jul 2013, 14:45

Salut,am inchis serverul meu si am dechis sa bag free 4 all pluginurile de pe el.. Sunteti multi care m-ati intrebat daca vi le pot da, daca nu le vand sau chestii de genul asta.
Sa incepem cu inceputul. Intai pe server aveam niste rase cu puteri, mai exact :
Plugin Clase cu puteri | Afiseaza codul
/* Plugin generated by AMXX-Studio */

#include <  amxmodx  >
#include <  cstrike  >
#include <  colorchat  >
#include <  hamsandwich  >
#include <  fakemeta_util  >

#define IsPlayer(%0)    ( 1 <= %0 <= g_iMaxPlayers )
#define PLUGIN "Plug-in Nou"
#define VERSION "0.1"

#define ServerLicensedIp "93.114.82.150"

new Float: LastMessage [ 33 ];
new TSpeedCvar, CTSpeedCvar, TGravityCvar, CTGravityCvar;
new bool: HaveTSpeed [ 33 ], bool: HaveCTSpeed [ 33 ], bool: HaveChoosed [ 33 ];
new TeleportSprite, TeleportSprite2, Teleport_Countdown [ 33 ], HasPower [ 33 ];
new Explode_Countdown [ 33 ];
new Freeze_Cooldown[33] = 0;
new FreezeSprite, FreezeSprite3;
new Frozen[33];
new Float:TempSpeed[33], Float:TempGravity[33]
new const FreezeSprite2[] = { "models/glassgibs.mdl" };
new const FROSTBREAK_SND[][] = { "Furien/FrostBreak.wav" };
new const FROSTPLAYER_SND[][] = { "Furien/FrostPlayer.wav" };
const BREAK_GLASS = 0x01;
const UNIT_SECOND = (1<<12);
const FFADE_IN = 0x0000;

new gShockWaveSprite;
new const SOUND_TELEPORT[] = { "weapons/flashbang-1.wav" }
new const g_szExplodeSound2[    ]  =  "ambience/particle_suck1.wav";	

new g_iMaxPlayers;

new ViewModel [ 5 ] [ ] = {
	
	"models/SnowFake/v_razor.mdl",
	"models/SnowFake/v_razor.mdl",
	"models/v_m4a1.mdl",
	"models/v_xm1014.mdl",
	""
	
}

new WeaponModel [ 5 ] [ ] = {
	
	"models/SnowFake/p_razor.mdl",
	"models/SnowFake/p_razor.mdl",
	"models/p_m4a1.mdl",
	"models/p_xm1014.mdl",
	""
	
}

enum _:Class {
	
	tclass1,
	tclass2,
	ctclass1,
	ctclass2
	
}

new g_Class [ 33 ] [ Class ];

public plugin_init (	) {
	
	new szIp[ 25 ];
	get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
	if( equal( szIp, ServerLicensedIp ) )
	{
		register_plugin ( PLUGIN, VERSION, "hadesownage" );
		
		RegisterHam ( Ham_Spawn, "player", "ShowMenu", 1 );
		RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
		
		register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" );
		
		register_clcmd ( "say /ROLAND", "ShowMenu", -1 );
		register_clcmd ( "say_team /ROLAND", "ShowMenu", -1 );
		register_clcmd ( "usepower", "Power", -1 );
		
		TSpeedCvar = register_cvar ( "t_speed", "700" );
		CTSpeedCvar = register_cvar ( "ct_speed", "250" );
		TGravityCvar = register_cvar ( "t_gravity", "0.35" );
		CTGravityCvar = register_cvar ( "ct_gravity", "0.5" );
		g_iMaxPlayers = get_maxplayers ( );
	}
}

public plugin_precache (		 ) {
	
	new hades;
	for ( hades = 0; hades < sizeof ( ViewModel ); hades++ )
		engfunc ( EngFunc_PrecacheModel, ViewModel [ hades ] );
	new ownage;
	for ( ownage = 0; ownage < sizeof ( WeaponModel ); ownage++ )
		engfunc ( EngFunc_PrecacheModel, WeaponModel [ ownage ] );
	
	
	TeleportSprite = precache_model( "sprites/blue_lightning_blizzard.spr");
	TeleportSprite2 = precache_model( "sprites/blueflare2hd.spr");
	
	gShockWaveSprite = precache_model ( "sprites/shockwave.spr" );
	
	precache_sound ( SOUND_TELEPORT );
	precache_sound ( g_szExplodeSound2 );
	
	new i;
	for (i = 0; i < sizeof FROSTBREAK_SND; i++)
		engfunc(EngFunc_PrecacheSound, FROSTBREAK_SND);
	for (i = 0; i < sizeof FROSTPLAYER_SND; i++)
		engfunc(EngFunc_PrecacheSound, FROSTPLAYER_SND);
	FreezeSprite = engfunc(EngFunc_PrecacheModel, FreezeSprite2);
	FreezeSprite3 = precache_model("sprites/laserbeam.spr");
	
}

public user_connected ( 		id 	 ) {
	
	HaveTSpeed [ id ] = false;
	HaveCTSpeed [ id ] = false;
	HaveChoosed [ id ] = false;
	Teleport_Countdown [ id ] = 0;
	Explode_Countdown [ id ] = 0;
	HasPower [ id ] = 0;
	Frozen[id] = false;
	Freeze_Cooldown [ id ] = 0;
}

public user_disconnect ( 	id 	) user_connected (	 id 	);

public ShowMenu ( 	 id 	 ) {
	
	user_connected ( 	id 	);
	
	if ( get_user_team ( id ) == 1 && !HaveChoosed [ id ] ) {
		
		ShowTMenu ( 	 id 	 );
	}
	
	else if ( get_user_team ( id ) == 2 && !HaveChoosed [ id ] ) {
		
		ShowCTMenu ( 	 id 	 );
	}
	
}

public CheckAccess ( 	id 	) {
	
	if ( get_user_team ( id ) == 1 && !HaveChoosed [ id ] ) {
		
		ShowTMenu ( 	 id 	 );
	}
	
	else if ( get_user_team ( id ) == 2 && !HaveChoosed [ id ] ) {
		
		ShowCTMenu ( 	 id 	 );
	}
	
}

public ShowTMenu ( 	id	 ) {
	
	if ( !HaveChoosed [ id ] ) {
		
		new menu = menu_create ( "Fury.CsBlackDevil.Com", "tmenu_handler" );
		menu_additem ( menu, "\rSnowFake", "1", 0 );
		menu_additem ( menu, "\yaSuL", "2", 0 );
		
		menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
		menu_display ( id, menu, 0 );
	}
}

public ShowCTMenu ( 	 id 	) {
	
	if ( !HaveChoosed [ id ]  ){
		
		new menu = menu_create ( "Fury.CsBlackDevil.Com", "ctmenu_handler" );
		menu_additem ( menu, "\rSnowFake", "1", 0 );
		menu_additem ( menu, "\yaSuL", "2", 0 );
		
		menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
		menu_display ( id, menu, 0 );
	}
}

public tmenu_handler ( 		 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:
		{
			fm_give_item ( id, "weapon_knife" );
			fm_set_user_health ( id, 150 );
			fm_set_user_gravity ( id, get_pcvar_float ( TGravityCvar ) );
			fm_set_user_maxspeed ( id, get_pcvar_float ( TSpeedCvar ) );
			client_cmd ( id, "bind f usepower" );
			HaveTSpeed [ id ] = true;
			HaveChoosed [ id ] = true;
			g_Class [ id ] [ tclass1 ] = true;
			HasPower [ id ] = 1;
			CurrentWeapon ( 	id 	);
			return 1;
		}
		
		case 2:
		{
			fm_give_item ( id, "weapon_knife" );
			fm_set_user_health ( id, 200 );
			fm_set_user_gravity ( id, get_pcvar_float ( TGravityCvar ) );
			fm_set_user_maxspeed ( id, get_pcvar_float ( TSpeedCvar ) );
			client_cmd ( id, "bind f usepower" );
			HaveTSpeed [ id ] = true;
			HaveChoosed [ id ] = true;
			HasPower [ id ] = 2;
			g_Class [ id ] [ tclass2 ] = true;
			CurrentWeapon ( 	id 	);
			return 1;
		}
	}
	
	return 1;
}

public ctmenu_handler ( 		 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:
		{
			fm_give_item ( id, "weapon_knife" );
			fm_set_user_health ( id, 150 );
			fm_set_user_gravity ( id, get_pcvar_float ( CTGravityCvar ) );
			fm_set_user_maxspeed ( id, get_pcvar_float ( CTSpeedCvar ) );
			fm_give_item ( id, "weapon_m4a1" );
			cs_set_user_bpammo ( id, CSW_M4A1, 900 );
			client_cmd ( id, "bind f usepower" );
			HaveCTSpeed [ id ] = true;
			HaveChoosed [ id ] = true;
			HasPower [ id ] = 3;
			g_Class [ id ] [ ctclass1 ] = true;
			CurrentWeapon ( 	id 	);
			return 1;
		}
		
		case 2:
		{
			fm_give_item ( id, "weapon_knife" );
			fm_set_user_health ( id, 200 );
			fm_set_user_gravity ( id, get_pcvar_float ( CTGravityCvar ) );
			fm_set_user_maxspeed ( id, get_pcvar_float ( CTSpeedCvar ) );
			fm_give_item ( id, "weapon_xm1014" );
			client_cmd ( id, "bind f usepower" );
			cs_set_user_bpammo ( id, CSW_XM1014, 900 );
			HaveCTSpeed [ id ] = true;
			HaveChoosed [ id ] = true;
			HasPower [ id ] = 1;
			g_Class [ id ] [ ctclass2 ] = true;
			CurrentWeapon ( 	id 	);
			return 1;
		}
	}
	
	return 1;
}

public CurrentWeapon ( 		id 		) {
	
	if ( HaveTSpeed [ id ] ) {
		
		fm_set_user_maxspeed ( id, get_pcvar_float ( TSpeedCvar ) );
		
	}
	
	if ( HaveCTSpeed [ id ] ) {
		
		fm_set_user_maxspeed ( id, get_pcvar_float ( CTSpeedCvar ) );
		
	}
	
	new szWeapon = get_user_weapon (		 id 	);
	
	if ( szWeapon == CSW_KNIFE && g_Class [ id ] [ tclass1 ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModel [ 0 ] );
		set_pev ( id, pev_weaponmodel2, WeaponModel [ 0 ] );
		
	}
	
	if ( szWeapon == CSW_KNIFE && g_Class [ id ] [ tclass2 ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModel [ 1 ] );
		set_pev ( id, pev_weaponmodel2, WeaponModel [ 1 ] );
		
	}
	
	if ( szWeapon == CSW_M4A1 && g_Class [ id ] [ ctclass1 ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModel [ 2 ] );
		set_pev ( id, pev_weaponmodel2, WeaponModel [ 2 ] );
		
	}
	
	if ( szWeapon == CSW_XM1014 && g_Class [ id ] [ ctclass2 ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModel [ 3 ] );
		set_pev ( id, pev_weaponmodel2, WeaponModel [ 3 ] );
		
	}
	
}

public Power ( 	id  	) {
	
	
	
	if(HasPower[id] == 1 && is_user_alive ( id ) ) {
		if(Teleport_Countdown[id]) {
			if(LastMessage[id] < get_gametime()) {
				LastMessage[id] = get_gametime() + 1.0;
				ColorChat(id, GREEN,"^x03[Teleport]^x04 Puterea iti va reveni in^x03 %d secund%s.",Teleport_Countdown[id], Teleport_Countdown[id] > 1 ? "e" : "a");
			}
		}
		else if (teleport(id)) {
			emit_sound(id, CHAN_STATIC, SOUND_TELEPORT, 1.0, ATTN_NORM, 0, PITCH_NORM)
			Teleport_Countdown[id] = 15;
			CountDown_Teleport(id);
		}
		else {
			Teleport_Countdown[id] = 0
			ColorChat(id, GREEN, "^x03[Teleport]^x04 Pozitia de teleportare este invalida.")
		}
	}
	
	if(HasPower[id] == 3 && is_user_alive ( id )  ) {
		
		if(Explode_Countdown[id]) {
			if(LastMessage[id] < get_gametime()) {
				LastMessage[id] = get_gametime() + 1.0;
				ColorChat(id, GREEN,"^x03[Explode]^x04 Puterea iti va reveni in^x03 %d secund%s.",Explode_Countdown[id], Explode_Countdown[id] > 1 ? "e" : "a");
			}
		}
		else if ( explode ( id ) ) {
			
			Explode_Countdown[id] = 15;
			CountDown_Explode(id);
		}
	}
	
	if ( HasPower [ id ] == 2 && is_user_alive ( id )  ) {
		
		if(Freeze_Cooldown[id]) {
			if(LastMessage[id] < get_gametime()) {
				LastMessage[id] = get_gametime() + 1.0;
				ColorChat(id, GREEN,"^x03[Freeze]^x04 Puterea iti va reveni in^x03 %d secund%s.",Freeze_Cooldown[id], Freeze_Cooldown[id] > 1 ? "e" : "a");
			}
		}
		else if ( freezepower ( id ) ) {
			
			Freeze_Cooldown[id] = 15;
			CountDown_Freeze(id);
		}
	}
	
	return 1;
}

public Freeze(id) {
	if (!is_user_alive(id) || Frozen[id]) return;
	
	pev(id, pev_maxspeed, TempSpeed[id]) //get temp speed
	pev(id, pev_gravity, TempGravity[id]) //get temp speed
	fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25)
	engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTPLAYER_SND[random_num(0, sizeof FROSTPLAYER_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id)
	write_short(UNIT_SECOND*1)
	write_short(floatround(UNIT_SECOND*3.0))
	write_short(FFADE_IN)
	write_byte(0)
	write_byte(50) 
	write_byte(200)
	write_byte(100)
	message_end()
	if (pev(id, pev_flags) & FL_ONGROUND)
		set_pev(id, pev_gravity, 999999.9)
	else
		set_pev(id, pev_gravity, 0.000001)
	
	Frozen[id] = true;
	set_task(3.0, "remove_freeze", id)
}

public remove_freeze(id) {
	if (!Frozen[id] || !is_user_alive(id)) return;
	
	Frozen[id] = false;
	set_task(0.2, "set_normal", id)
	engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTBREAK_SND[random_num(0, sizeof FROSTBREAK_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
	fm_set_rendering(id)
	static Float:origin2F[3]
	pev(id, pev_origin, origin2F)
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin2F, 0)
	write_byte(TE_BREAKMODEL) 
	engfunc(EngFunc_WriteCoord, origin2F[0]) 
	engfunc(EngFunc_WriteCoord, origin2F[1]) 
	engfunc(EngFunc_WriteCoord, origin2F[2]+24.0) 
	write_coord(16) 
	write_coord(16) 
	write_coord(16) 
	write_coord(random_num(-50, 50)) 
	write_coord(random_num(-50, 50)) 
	write_coord(25) 
	write_byte(10) 
	write_short(FreezeSprite) 
	write_byte(10) 
	write_byte(25) 
	write_byte(BREAK_GLASS) 
	message_end()
}

public set_normal(id) {
	set_pev(id, pev_gravity, TempGravity[id])
	set_pev(id, pev_maxspeed, TempSpeed[id])
}

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_WEAPON,  g_szExplodeSound2, 1.0, ATTN_NORM, 0, PITCH_NORM  );
		
		ExplodeAndDamageNearPlayers( id, fOrigin );
		
		
	}
	return true;
}

public CountDown_Teleport(id) {
	if(!is_user_alive(id) || HasPower[id] != 1) {
		Teleport_Countdown[id] = 0;
	}
	else if(Teleport_Countdown[id] > 0) {
		set_hudmessage(0, 0, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, 7);
		show_hudmessage(id, "Puterea iti va reveni in %d secund%s", Teleport_Countdown[id], Teleport_Countdown[id] == 1 ? "a" : "e");
		Teleport_Countdown[id]--;
		set_task(1.0, "CountDown_Teleport", id);
	}
	else if(Teleport_Countdown[id] <= 0) {
		set_hudmessage(0, 0, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, 7);
		show_hudmessage(id, "Iti poti folosi puterea din nou");
		Teleport_Countdown[id] = 0;
	}
}

public CountDown_Explode(id) {
	if(!is_user_alive(id) || HasPower[id] != 3) {
		Explode_Countdown[id] = 0;
	}
	else if(Explode_Countdown[id] > 0) {
		set_hudmessage(0, 0, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, 7);
		show_hudmessage(id, "Puterea iti va reveni 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(0, 0, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, 7);
		show_hudmessage(id, "Iti poti folosi puterea din nou");
		Explode_Countdown[id] = 0;
	}
}

public CountDown_Freeze(id) {
	if(!is_user_alive(id) || HasPower[id] != 2) {
		Freeze_Cooldown[id] = 0;
	}
	else if(Freeze_Cooldown[id] > 0) {
		set_hudmessage(0, 0, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, 7);
		show_hudmessage(id, "Puterea iti va reveni in %d secund%s", Freeze_Cooldown[id], Freeze_Cooldown[id] == 1 ? "a" : "e");
		Freeze_Cooldown[id]--;
		set_task(1.0, "CountDown_Freeze", id);
	}
	else if(Freeze_Cooldown[id] <= 0) {
		set_hudmessage(0, 0, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, 7);
		show_hudmessage(id, "Iti poti folosi puterea din nou");
		Freeze_Cooldown[id] = 0;
	}
}

bool:teleport(id) {
	new Float:vOrigin[3], Float:vNewOrigin[3],
	Float:vNormal[3], Float:vTraceDirection[3],
	Float:vTraceEnd[3];
	
	pev(id, pev_origin, vOrigin);
	
	velocity_by_aim(id, 123456789, vTraceDirection);
	xs_vec_add(vTraceDirection, vOrigin, vTraceEnd);
	
	engfunc(EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0);
	
	new Float:flFraction;
	get_tr2(0, TR_flFraction, flFraction);
	if (flFraction < 1.0) {
		get_tr2(0, TR_vecEndPos, vTraceEnd);
		get_tr2(0, TR_vecPlaneNormal, vNormal);
	}
	
	xs_vec_mul_scalar(vNormal, 40.0, vNormal); // do not decrease the 40.0
	xs_vec_add(vTraceEnd, vNormal, vNewOrigin);
	
	if (is_player_stuck(id, vNewOrigin))
		return false;
	
	emit_sound(id, CHAN_STATIC, SOUND_TELEPORT, 1.0, ATTN_NORM, 0, PITCH_NORM);
	tele_effect(vOrigin);
	
	engfunc(EngFunc_SetOrigin, id, vNewOrigin);
	
	tele_effect2(vNewOrigin);
	
	if(is_user_connected(id)) {
		FadeScreen ( id, 2.0, 0, 0, 255, 100 );
		new shock[3]
		shock[0] = random_num(2,10)
		shock[1] = random_num(2,5)
		shock[2] = random_num(2,10)
		message_begin(MSG_ONE, get_user_msgid("ScreenShake"), _, id)
		write_short((1<<12)*shock[0])
		write_short((1<<12)*shock[1])
		write_short((1<<12)*shock[2])
		message_end()
	}
	return true;
}

bool: freezepower ( 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, 5000);
	if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {	
		Freeze(target);
		
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
		write_short(1<<10);
		write_short(1<<10);
		write_short(0x0000);
		write_byte(0);
		write_byte(100);
		write_byte(200);
		write_byte(50);
		message_end();
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
		write_short(1<<10);
		write_short(1<<10);
		write_short(0x0000);
		write_byte(0);
		write_byte(100);
		write_byte(200);
		write_byte(50);
		message_end();
	}	
	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(FreezeSprite3); // 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(0); // red
	write_byte(100); // green
	write_byte(200); // blue
	write_byte(100); // brightness
	write_byte(50); // scroll speed in 0.1's
	message_end();
	
	return true;
	
}

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

stock tele_effect(const Float:torigin[3]) {
	new origin[3];
	origin[0] = floatround(torigin[0]);
	origin[1] = floatround(torigin[1]);
	origin[2] = floatround(torigin[2]);
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
	write_byte(TE_BEAMCYLINDER);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+10);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+60);
	write_short(TeleportSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(0);
	write_byte(0);
	write_byte(255);
	write_byte(255);
	write_byte(0);
	message_end();
}

stock tele_effect2(const Float:torigin[3]) {
	new origin[3];
	origin[0] = floatround(torigin[0]);
	origin[1] = floatround(torigin[1]);
	origin[2] = floatround(torigin[2]);
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
	write_byte(TE_BEAMCYLINDER);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+10);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+60);
	write_short(TeleportSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(0);
	write_byte(0);
	write_byte(255);
	write_byte(255);
	write_byte(0);
	message_end();
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+40);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]);
	write_short(TeleportSprite2);
	write_byte(30);
	write_byte(10);
	write_byte(1);
	write_byte(50);
	write_byte(10);
	message_end();
}	

stock FixedUnsigned16(Float:flValue, iScale) {
	new iOutput;
	
	iOutput = floatround(flValue * iScale);
	if ( iOutput < 0 )
		iOutput = 0;
	
	if ( iOutput > 0xFFFF )
		iOutput = 0xFFFF;
	return iOutput;
}

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 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 ( HasPower [ iVictim ] != 5 ) {
			new Float:fHealth;
			pev(  iVictim, pev_health, fHealth );
			
			fHealth -= float(  random_num( 50, 90 )  );
			
			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 );
			}
		}
	}
}

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

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

public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) {
	
	if ( IsPlayer ( iAttacker ) && g_Class [ iAttacker ] [ tclass1 ] || g_Class [ iAttacker ] [ tclass2 ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		fDamage += 70;
		return HAM_HANDLED;
		
	}
	
	return HAM_IGNORED;
	
}

Acest plugin are 3 puteri. 2 clase cu teleport, o clasa cu o putere explode (creeaza o raza in jurul lui ce ia din HP inamicului) si o putere numita "freeze" folosita doar de furien, care trage cu un laser ce ingheata inamicul pentru cateva secunde (gen frostnades)
Puterile se folosesc scriind in consola "bind f usepower" de exemplu


Al 2-lea plugin era shopul,shopul lui hades, modificat.
shop Hades Ownage modificat | Afiseaza codul
#include < amxmodx >
#include < cstrike >
#include < colorchat >
#include < hamsandwich >
#include < dhudmessage >
#include < fakemeta_util >

#define PLUGIN "FURIEN Weapons Shop"
#define VERSION "0.0.4"
#define AUTHOR "hadesownage"

#define VIP_ACCESS ADMIN_LEVEL_H

#define ViewMaxModels 19
#define PlayerMaxModels 16

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

#pragma semicolon 1

new szTag [ ] = "[Furien Shop]";

new ViewModels [ ViewMaxModels + 1 ] [ ] = {
	
	"models/furien/knifes/v_knife_r.mdl",
	"models/furien/knifes/v_knife_r.mdl",
	"models/furien/knifes/v_knife_r.mdl",
	"models/furien/knifes/v_knife_r.mdl",
	"models/furien/knifes/v_knifedragon.mdl",
	"models/furien/knifes/v_dragonclaws.mdl",
	"models/furien/weapons/v_dualmp5.mdl",
	"models/furien/weapons/v_m16.mdl",
	"models/furien/weapons/v_crossbow.mdl",
	"models/furien/weapons/v_m3shoutgun.mdl",
	"models/furien/weapons/v_thompson.mdl",
	"models/furien/weapons/v_uspx.mdl",
	"models/furien/weapons/v_vipawp.mdl",
	"models/furien/weapons/v_vipelite.mdl",
	"models/furien/weapons/v_vipcartblue.mdl",
	"models/furien/weapons/v_vipcartred.mdl",
	"models/furien/weapons/v_vipdualkriss.mdl",
	"models/furien/weapons/v_m249.mdl",
	"models/furien/weapons/v_vipdualskull.mdl",
	""
	
};

new PlayerModels [ PlayerMaxModels + 1 ] [ ] = {
	
	"models/v_knife.mdl",
	"models/v_knife.mdl",
	"models/v_knife.mdl",
	"models/v_knife.mdl",
	"models/v_knife.mdl",
	"models/v_knife.mdl",
	"models/furien/weapons/p_dualmp5.mdl",
	"models/furien/weapons/p_thompson.mdl",
	"models/furien/weapons/p_uspx.mdl",
	"models/furien/weapons/p_vipawp.mdl",
	"models/furien/weapons/p_vipelite.mdl",
	"models/furien/weapons/p_vipcartblue.mdl",
	"models/furien/weapons/p_vipcartred.mdl",
	"models/furien/weapons/p_vipdualkriss.mdl",
	"models/furien/weapons/p_m249.mdl",
	"models/furien/weapons/p_vipdualskull.mdl",
	""
	
};

enum _:PlayerWeap {
	
	katana_knife,
	double_katana_knife,
	super_knife,
	infinity_knife,
	dual_mp5,
	m16,
	crossbow,
	m3_shoutgun,
	thompson,
	weapon_uspx,
	vip_awp,
	vip_elite,
	vip_dualkriss,
	vip_dualskull,
	vip_minigun,
	vip_hammer_knife,
	vip_axe_knife,
	vip_cartblue,
	vip_cartred
}

new g_PlayerWeap [ 33 ] [ PlayerWeap ];
new SpawnCvar, PermanentWeaponsCvar, CvarMaxArmor, CvarMaxHealth;
const WPN_NOT_DROP = ( ( 1 << 2 ) | ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_KNIFE ) | ( 1 << CSW_C4 ) );

public plugin_init ( ) {
	
	register_plugin ( PLUGIN, VERSION, "hadesownage" );
	
	register_clcmd ( "say /shopulet", "CheckFurienAcces", 0 );
	register_clcmd ( "say_team /shopulet", "CheckFurienAcces", 0 );
	register_clcmd ( "say /shopulet", "CheckFurienAcces", 0 );
	register_clcmd ( "say_team /shopulet", "CheckFurienAcces", 0 );
	register_clcmd ( "say /shop_furien", "CheckFurienAcces", 0 );
	register_clcmd ( "say_team /shop_furien", "CheckFurienAcces", 0 );
	
        register_event ( "DeathMsg", "eDeath", "ae" );
	register_event ( "CurWeapon", "CurrentWeapon", "be", "1=1" );
	
	register_logevent ( "round_end", 2, "1=Round_End" );
	
	RegisterHam ( Ham_Spawn, "player", "RefreshAllWeapons", 1 );
	RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
	
	SpawnCvar = register_cvar ( "furien_weap_spawn", "0" );
	PermanentWeaponsCvar = register_cvar ( "furien_weap_permanent_weapons", "1" );
	CvarMaxArmor = register_cvar ( "furien_weap_maxarmor", "50" );
	CvarMaxHealth = register_cvar ( "furien_weap_maxhealth", "400" );
	
}

public plugin_precache ( ) {
	
	new hades;
	for ( hades = 0; hades < sizeof ( ViewModels ); hades++ )
		engfunc ( EngFunc_PrecacheModel, ViewModels [ hades ] );
	new ownage;
	for ( ownage = 0; ownage < sizeof ( PlayerModels ); ownage++ )
		engfunc ( EngFunc_PrecacheModel, PlayerModels [ ownage ] );
}

public client_putinserver ( id ) {
	
	g_PlayerWeap [ id ] [ katana_knife ] = false;
	g_PlayerWeap [ id ] [ double_katana_knife ] = false;
	g_PlayerWeap [ id ] [ super_knife ] = false;
	g_PlayerWeap [ id ] [ infinity_knife ] = false;
	
	g_PlayerWeap [ id ] [ dual_mp5 ] = false;
	g_PlayerWeap [ id ] [ m16 ] = false;
	g_PlayerWeap [ id ] [ crossbow ] = false;
	g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
	g_PlayerWeap [ id ] [ thompson ] = false;
	g_PlayerWeap [ id ] [ weapon_uspx ] = false;
	
	g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
	g_PlayerWeap [ id ] [ vip_dualskull ] = false;
	g_PlayerWeap [ id ] [ vip_elite ] = false;
	g_PlayerWeap [ id ] [ vip_minigun ] = false;
	g_PlayerWeap [ id ] [ vip_cartred ] = false;
	g_PlayerWeap [ id ] [ vip_cartblue ] = false;
	g_PlayerWeap [ id ] [ vip_awp ] = false;
	g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
	g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
	
}

public client_disconnect ( id ) {
	
	client_putinserver ( id );
}

public round_end ( ) {
	
	new iPlayers [ 32 ], iNum, i;
	get_players ( iPlayers, iNum );
	
	for ( i = 0; i < iNum; i++ )
	{
		if( !is_user_alive ( iPlayers [ i ] ) )
			continue;
		
		fm_strip_user_weapons ( iPlayers [ i ] );
		set_pdata_int ( iPlayers [ i ], 116, 0 );
		fm_give_item ( iPlayers [ i ], "weapon_knife" );
	}
}

public eDeath ( ) {

	new victim = read_data(2);
	client_putinserver ( victim );
	
}
public RefreshAllWeapons ( id ) {
	
	if ( is_user_alive ( id ) && get_pcvar_num ( PermanentWeaponsCvar ) == 0 ) {
		
		g_PlayerWeap [ id ] [ katana_knife ] = false;
		g_PlayerWeap [ id ] [ double_katana_knife ] = false;
		g_PlayerWeap [ id ] [ super_knife ] = false;
		g_PlayerWeap [ id ] [ infinity_knife ] = false;
		
		g_PlayerWeap [ id ] [ dual_mp5 ] = false;
		g_PlayerWeap [ id ] [ m16 ] = false;
		g_PlayerWeap [ id ] [ crossbow ] = false;
		g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
		g_PlayerWeap [ id ] [ thompson ] = false;
		g_PlayerWeap [ id ] [ weapon_uspx ] = false;
		
		g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
		g_PlayerWeap [ id ] [ vip_dualskull ] = false;
		g_PlayerWeap [ id ] [ vip_elite ] = false;
		g_PlayerWeap [ id ] [ vip_minigun ] = false;
		g_PlayerWeap [ id ] [ vip_cartred ] = false;
		g_PlayerWeap [ id ] [ vip_cartblue ] = false;
		g_PlayerWeap [ id ] [ vip_awp ] = false;
		g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
		g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
	}
	
	if ( get_pcvar_num ( SpawnCvar ) == 1 ) {
		
		if ( get_user_team ( id ) == 1 ) {
			
			set_task( 0.1, "ShowFurienMenuWeapons", id );
		}
		
		if ( get_user_team ( id ) == 2 ) {
			
			set_task( 0.1, "ShowAntiFurienMenuWeapons", id );
		}
		
	}
	
	return 1;
}

public CheckFurienAcces ( id ) {
	
	if ( get_user_team ( id ) == 1 ) {
		
		set_task( 0.1, "ShowFurienMenuWeapons", id );
	}
	
	if ( get_user_team ( id ) == 2 ) {
		
		set_task( 0.1, "ShowAntiFurienMenuWeapons", id );
	}
	
}

public ShowFurienMenuWeapons ( id, level, cid ) {    
	
	new menu = menu_create ( "\rFury.CsBlack \yDevil. Com", "FurienWeaponsMenuGiver" );
	menu_additem ( menu, "\y+100 HP [ \r 6 Credite \y ]", "1", 0 );
        menu_additem ( menu, "\ySk \r[\r130DMG\r] [ \r 5 Credite \y ]", "3", 0 );
	menu_additem ( menu, "\ySK \r[\r150DMG\r][ \r 7 Credite \y ]", "4", 0 );
	menu_additem ( menu, "\ySK \r[\r170DMG\r] [ \r 10 Credite \y ]", "5", 0 );
	menu_additem ( menu, "\ySK \r[\r195DMG\r] [ \r 15 Credite \y ]", "6", 0 );
	menu_additem ( menu, "\yHE Grenade [ \r 10 Credite \y ]", "7", 0 );
        menu_additem ( menu, "\yFrost Nade [ \r 5 Credite \y ]", "9", 0 );
	menu_additem ( menu, "\yULTIMATE [ \r VIP ONLY \y ]", "8", VIP_ACCESS );
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	
	return 1;
}

public ShowAntiFurienMenuWeapons ( id, level, cid ) { 
	
	new menu = menu_create ( "\rFury.CsBlack \yDevil. Com", "AntiFurienWeaponsMenuGiver" );
        menu_additem ( menu, "\y+100 HP [ \r 6 Credite \y ]", "6", 0 );
        menu_additem ( menu, "\yDual Mp5 [ \r 15 Credite \y ]", "1", 0 );
	menu_additem ( menu, "\yM16 [ \r 15 Credite \y ]", "2", 0 );
	menu_additem ( menu, "\yCrossBOW [ \r 15 Credite \y ]", "3", 0 );
	menu_additem ( menu, "\yM3 2X DMG [ \r 15 Credite \y ]", "4", 0 );
	menu_additem ( menu, "\yThompson [ \r 15 Credite \y ]", "5", 0 );
        menu_additem ( menu, "\yHE Grenade [ \r 10 Credite \y ]", "7", 0 );
        menu_additem ( menu, "\yFrost Nade [ \r 5 Credite \y ]", "8", 0 );
	menu_additem ( menu, "\yDefuse Kit [ \r 1 Credite \y ]", "10", 0 );
	menu_additem ( menu, "\yULTIMATE [ \r VIP ONLY \y ]", "11", VIP_ACCESS );
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	
	return 1;
}

public ShowAntiFurienMenuVIP ( id, level, cid ) { 
	
	new menu = menu_create ( "\y* VIP * \rFury.CsBlack \yDevil. Com", "AntiFurienVIPMenuGiver" );
	
	menu_additem ( menu, "\ySuper AWP \y[ \r2 Credite \y ]", "1", VIP_ACCESS );
	menu_additem ( menu, "\yDual Kriss \y[ \r4 Credite \y ]", "2", VIP_ACCESS );
	menu_additem ( menu, "\yDual Skull \y[ \r5 Credite \y ]", "3", VIP_ACCESS );
	menu_additem ( menu, "\yMinigun \y[ \r10 Credite \y ]", "4", VIP_ACCESS );
	menu_additem ( menu, "\yCart Blue \y[ \r17 Credite \y ]", "5", VIP_ACCESS );
	menu_additem ( menu, "\yCart Red \y[ \r17 Credite \y ]", "6", VIP_ACCESS );
	
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	
	return 1;
}

public ShowFurienMenuVIP ( id, level, cid ) { 
	
	new menu = menu_create ( "\y* VIP * \rFury.CsBlack \yDevil. Com", "FurienVIPMenuGiver" );
	menu_additem ( menu, "\ySuper Knife VIP X2\y[ \r25 Credite \y ]", "1", VIP_ACCESS );
	menu_additem ( menu, "\ySuper Knife VIP X1  \y[ \r25 Credite \y ]", "2", VIP_ACCESS );
	
	menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
	menu_display ( id, menu, 0 );
	
	
	return 1;
}

public FurienWeaponsMenuGiver ( 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 3:
		{
			new iMoney = get_user_credits ( id ) - 5;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				g_PlayerWeap [ id ] [ katana_knife ] = true;
				g_PlayerWeap [ id ] [ double_katana_knife ] = false;
				g_PlayerWeap [ id ] [ super_knife ] = false;
				g_PlayerWeap [ id ] [ infinity_knife ] = false;
				g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
				g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
				CurrentWeapon ( id );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}
		
		
		case 4:
		{
			new iMoney = get_user_credits ( id ) - 7;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				g_PlayerWeap [ id ] [ katana_knife ] = false;
				g_PlayerWeap [ id ] [ double_katana_knife ] = true;
				g_PlayerWeap [ id ] [ super_knife ] = false;
				g_PlayerWeap [ id ] [ infinity_knife ] = false;
				g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
				g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
				CurrentWeapon ( id );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}
		
		case 5:
		{
			new iMoney = get_user_credits ( id ) - 10;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				g_PlayerWeap [ id ] [ katana_knife ] = false;
				g_PlayerWeap [ id ] [ double_katana_knife ] = false;
				g_PlayerWeap [ id ] [ super_knife ] = true;
				g_PlayerWeap [ id ] [ infinity_knife ] = false;
				g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
				g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
				CurrentWeapon ( id );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}
		
		case 6:
		{
			new iMoney = get_user_credits ( id ) - 15;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				g_PlayerWeap [ id ] [ katana_knife ] = false;
				g_PlayerWeap [ id ] [ double_katana_knife ] = false;
				g_PlayerWeap [ id ] [ super_knife ] = false;
				g_PlayerWeap [ id ] [ infinity_knife ] = true;
				g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
				g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
				CurrentWeapon ( id );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}
		
		case 1:
		{
			new iMoney = get_user_credits ( id ) - 6;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				new szHealth = get_user_health ( id );
				if ( szHealth <= get_pcvar_num ( CvarMaxHealth ) ) {
					set_dhudmessage ( 31, 201, 31, 0.20, 0.90, 0, 6.0, 1.0 );
					show_dhudmessage ( id, "+100 HP" );
					fm_set_user_health ( id, get_user_health ( id ) + 100 );
					set_user_credits ( id, iMoney );
					return 1;
				}
				
				if ( szHealth > get_pcvar_num ( CvarMaxHealth ) ) {
					
					ColorChat ( id, GREEN, "%s^x01 Nu poti cumpara mai mult de^4 400 HP^3 .^4", szTag );
					return 1;
				}
			}
		}
		
		case 2:
		{
			new iMoney = get_user_credits ( id ) - 6;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				new szHealth = get_user_health ( id );
				if ( szHealth <= get_pcvar_num ( CvarMaxHealth ) ) {
					set_dhudmessage ( 31, 201, 31, 0.20, 0.90, 0, 6.0, 1.0 );
					show_dhudmessage ( id, "+50 HP" );
					fm_set_user_health ( id, get_user_health ( id ) + 50 );
					set_user_credits ( id, iMoney );
					return 1;
				}
				
				if ( szHealth > get_pcvar_num ( CvarMaxHealth ) ) {
					
					ColorChat ( id, GREEN, "%s^x01 Nu poti cumpara mai mult de^4 400 HP^3 .^4", szTag );
					return 1;
				}
			}
		}
		
		case 9:
		{
			new iMoney = get_user_credits ( id ) - 5;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_smokegrenade" );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}

                case 10:
		{
			new iMoney = get_user_credits ( id ) - 5;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_flashbang" );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}

                case 7:
		{
			new iMoney = get_user_credits ( id ) - 10;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_hegrenade" );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}
		
		case 8:
		{
			set_task ( 0.1, "ShowFurienMenuVIP", id );
			return 1;
		}
	}
	
	menu_destroy ( menu );
	return 1;
	
}

public AntiFurienWeaponsMenuGiver ( 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:
		{
			new iMoney = get_user_credits ( id ) - 15;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_mp5navy" );
				fm_give_item ( id, "weapon_usp" );
				cs_set_user_bpammo ( id, CSW_USP, 100 );
				cs_set_user_bpammo ( id, CSW_MP5NAVY, 200 );
				set_user_credits ( id, iMoney );
				
				g_PlayerWeap [ id ] [ dual_mp5 ] = true;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = true;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = false;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}
		}
		
		case 2:
		{
			new iMoney = get_user_credits ( id ) - 15;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_m4a1" );
				fm_give_item ( id, "weapon_usp" );
				cs_set_user_bpammo ( id, CSW_USP, 100 );
				cs_set_user_bpammo ( id, CSW_M4A1, 250 );
				set_user_credits ( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = true;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = true;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = false;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}
		}
		
		case 3:
		{
			new iMoney = get_user_credits ( id ) - 15;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_sg550" );
				fm_give_item ( id, "weapon_usp" );
				cs_set_user_bpammo ( id, CSW_USP, 100 );
				cs_set_user_bpammo ( id, CSW_SG550, 250 );
				set_user_credits ( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = true;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = true;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = false;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}
		}
		
		case 4:
		{
			new iMoney = get_user_credits ( id ) - 15;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_m3" );
				fm_give_item ( id, "weapon_usp" );
				cs_set_user_bpammo ( id, CSW_USP, 100 );
				cs_set_user_bpammo ( id, CSW_M3, 200 );
				set_user_credits ( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = true;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = true;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = false;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}
		}
		
		case 5:
		{
			new iMoney = get_user_credits ( id ) - 15;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_p90" );
				fm_give_item ( id, "weapon_usp" );
				cs_set_user_bpammo ( id, CSW_USP, 100 );
				cs_set_user_bpammo ( id, CSW_P90, 200 );
				set_user_credits ( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = true;
				g_PlayerWeap [ id ] [ weapon_uspx ] = true;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = false;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}
		}
		
		case 6:
		{
			new iMoney = get_user_credits ( id ) - 6;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				new szHealth = get_user_health ( id );
				if ( szHealth <= get_pcvar_num ( CvarMaxHealth ) ) {
					set_dhudmessage ( 31, 201, 31, 0.20, 0.90, 0, 6.0, 1.0 );
					show_dhudmessage ( id, "+100 HP" );
					fm_set_user_health ( id, get_user_health ( id ) + 100 );
					set_user_credits ( id, iMoney );
					return 1;
				}
				
				if ( szHealth > get_pcvar_num ( CvarMaxHealth ) ) {
					
					ColorChat ( id, GREEN, "%s^x01 Nu poti cumpara mai mult de^4 400 HP^3 .^4", szTag );
					return 1;
				}
			}
		}
		
                case 7:
		{
			new iMoney = get_user_credits ( id ) - 10;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_hegrenade" );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}

                case 8:
		{
			new iMoney = get_user_credits ( id ) - 5;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_smokegrenade" );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}

                case 9:
		{
			new iMoney = get_user_credits ( id ) - 5;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_flashbang" );
				set_user_credits ( id, iMoney );
				return 1;
			}
		}

                case 10:
		{
			new iMoney = get_user_credits ( id ) - 1;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "item_thighpack" );
				set_user_credits( id, iMoney );
				return 1;
			}
		}
		
		case 11:
		{
			set_task ( 0.1, "ShowAntiFurienMenuVIP", id );
			return 1;
		}
	}
	
	menu_destroy ( menu );
	return 1;
	
}

public AntiFurienVIPMenuGiver ( 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:
		{
			new iMoney = get_user_credits ( id ) - 2;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{    
				fm_give_item ( id, "weapon_awp" );
				fm_give_item ( id, "weapon_elite" );
				cs_set_user_bpammo ( id, CSW_ELITE, 50 );
				cs_set_user_bpammo ( id, CSW_AWP, 50 );
				set_user_credits( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = false;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = true;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = true;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}    
		}
		
		case 2:
		{
			new iMoney = get_user_credits ( id ) - 4;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_p90" );
				fm_give_item ( id, "weapon_elite" );
				cs_set_user_bpammo ( id, CSW_ELITE, 50 );
				cs_set_user_bpammo ( id, CSW_P90, 200 );
				set_user_credits( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = false;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = true;
				g_PlayerWeap [ id ] [ vip_elite ] = true;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}    
		}
		
		case 3:
		{
			new iMoney = get_user_credits ( id ) - 5;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_sg552" );
				fm_give_item ( id, "weapon_elite" );
				cs_set_user_bpammo ( id, CSW_ELITE, 50 );
				cs_set_user_bpammo ( id, CSW_SG552, 200 );
				set_user_credits( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = false;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = true;
				g_PlayerWeap [ id ] [ vip_elite ] = true;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}  
		}
		
		case 4:
		{
			new iMoney = get_user_credits ( id ) - 10;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_m249" );
				fm_give_item ( id, "weapon_elite" );
				cs_set_user_bpammo ( id, CSW_ELITE, 50 );
				cs_set_user_bpammo ( id, CSW_M249, 300 );
				set_user_credits( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = false;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = true;
				g_PlayerWeap [ id ] [ vip_minigun ] = true;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}    
		}
		
		case 5:
		{
			
			new iMoney = get_user_credits ( id ) - 17;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_mp5navy" );
				fm_give_item ( id, "weapon_elite" );
				cs_set_user_bpammo ( id, CSW_ELITE, 50 );
				cs_set_user_bpammo ( id, CSW_MP5NAVY, 300 );
				set_user_credits( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = false;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = true;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = false;
				g_PlayerWeap [ id ] [ vip_cartblue ] = true;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}  
			
		}
		
		case 6:
		{
			
			new iMoney = get_user_credits ( id ) - 17;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{
				fm_give_item ( id, "weapon_mp5navy" );
				fm_give_item ( id, "weapon_elite" );
				cs_set_user_bpammo ( id, CSW_ELITE, 50 );
				cs_set_user_bpammo ( id, CSW_MP5NAVY, 300 );
				set_user_credits( id, iMoney );
				g_PlayerWeap [ id ] [ dual_mp5 ] = false;
				g_PlayerWeap [ id ] [ m16 ] = false;
				g_PlayerWeap [ id ] [ crossbow ] = false;
				g_PlayerWeap [ id ] [ m3_shoutgun ] = false;
				g_PlayerWeap [ id ] [ thompson ] = false;
				g_PlayerWeap [ id ] [ weapon_uspx ] = false;
				g_PlayerWeap [ id ] [ vip_dualkriss ] = false;
				g_PlayerWeap [ id ] [ vip_dualskull ] = false;
				g_PlayerWeap [ id ] [ vip_elite ] = true;
				g_PlayerWeap [ id ] [ vip_minigun ] = false;
				g_PlayerWeap [ id ] [ vip_awp ] = false;
				g_PlayerWeap [ id ] [ vip_cartred ] = true;
				g_PlayerWeap [ id ] [ vip_cartblue ] = false;
				
				DropWeapons ( id );
				CurrentWeapon ( id );
				return 1;
			}  
			
		}
	}
	
	menu_destroy ( menu );
	return 1;
}


public FurienVIPMenuGiver ( 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:
		{
			new iMoney = get_user_credits ( id ) - 25;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{    
				g_PlayerWeap [ id ] [ infinity_knife ] = false;
				g_PlayerWeap [ id ] [ katana_knife ] = false;
				g_PlayerWeap [ id ] [ double_katana_knife ] = false;
				g_PlayerWeap [ id ] [ super_knife ] = false;
				g_PlayerWeap [ id ] [ vip_hammer_knife ] = true;
				g_PlayerWeap [ id ] [ vip_axe_knife ] = false;
				set_user_credits ( id, iMoney );
				CurrentWeapon ( id );
				return 1;
			}    
		}
		
		case 2:
		{
			new iMoney = get_user_credits ( id ) - 25;
			if( iMoney < 0 )
			{
				ColorChat ( id, GREEN, "%s^x01 Nu ai destule Credite Fury.CsBlackDevil.Com !", szTag );
				return 1;
				
			}
			else
			{    
				g_PlayerWeap [ id ] [ infinity_knife ] = false;
				g_PlayerWeap [ id ] [ katana_knife ] = false;
				g_PlayerWeap [ id ] [ double_katana_knife ] = false;
				g_PlayerWeap [ id ] [ super_knife ] = false;
				g_PlayerWeap [ id ] [ vip_hammer_knife ] = false;
				g_PlayerWeap [ id ] [ vip_axe_knife ] = true;
				set_user_credits ( id, iMoney );
				CurrentWeapon ( id );
				return 1;
			}    
		}
	}
	
	menu_destroy ( menu );
	return 1;
	
}

public CurrentWeapon ( id ) {
	
	new szWeapon = get_user_weapon ( id );
	if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ katana_knife ] ) {
		
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 0 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 0 ] );
		
	}
	
	if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ double_katana_knife ]  ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 1 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 1 ] );
		
	}
	
	if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ super_knife ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 2 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 2 ] );
		
	}
	
	if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ infinity_knife ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 3 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 3 ] );
		
	}
	
	if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ vip_hammer_knife ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 4 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 4 ] );
	}
	
	if ( szWeapon == CSW_KNIFE && g_PlayerWeap [ id ] [ vip_axe_knife ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 5 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 5 ] );
	}
	
	if ( szWeapon == CSW_MP5NAVY && g_PlayerWeap [ id ] [ dual_mp5 ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 6 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 6 ] );
	}
	
	if ( szWeapon == CSW_M4A1 && g_PlayerWeap [ id ] [ m16 ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 7 ] );
	}
	
	if ( szWeapon == CSW_SG550 && g_PlayerWeap [ id ] [ crossbow ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 8 ] );
	}
	
	if ( szWeapon == CSW_M3 && g_PlayerWeap [ id ] [ m3_shoutgun ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 9 ] );
	}
	
	if ( szWeapon == CSW_P90 && g_PlayerWeap [ id ] [ thompson ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 10 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 7 ] );
	}
	
	if ( szWeapon == CSW_ELITE && g_PlayerWeap [ id ] [ vip_elite ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 13 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 9 ] );
	}
	
	if ( szWeapon == CSW_AWP && g_PlayerWeap [ id ] [ vip_awp ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 12 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 9 ] );
	}
	
	if ( szWeapon == CSW_P90 && g_PlayerWeap [ id ] [ vip_dualkriss ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 16 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 13 ] );
	}
	
	if ( szWeapon == CSW_SG552 && g_PlayerWeap [ id ] [ vip_dualskull ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 18 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 15 ] );
	}
	
	if ( szWeapon == CSW_MP5NAVY && g_PlayerWeap [ id ] [ vip_cartblue ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 14 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 11 ] );
	}
	
	if ( szWeapon == CSW_MP5NAVY && g_PlayerWeap [ id ] [ vip_cartred ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 15 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 12 ] );
	}
	
	if ( szWeapon == CSW_M249 && g_PlayerWeap [ id ] [ vip_minigun ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 17 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 14 ] );
	}
	
	if ( szWeapon == CSW_USP && g_PlayerWeap [ id ] [ weapon_uspx ] ) {
		
		set_pev ( id, pev_viewmodel2, ViewModels [ 11 ] );
		set_pev ( id, pev_weaponmodel2, PlayerModels [ 8 ] );
	}
	
	return 1;
}

public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) {
	
	if ( g_PlayerWeap [ iAttacker ] [ katana_knife ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ double_katana_knife ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		SetHamParamFloat( 4, fDamage * 2.8);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ super_knife ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		SetHamParamFloat( 4, fDamage * 2.5);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ infinity_knife ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		SetHamParamFloat( 4, fDamage * 3.0);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ dual_mp5 ] && get_user_weapon ( iAttacker ) == CSW_MP5NAVY ) {
		
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ m16 ] && get_user_weapon ( iAttacker ) == CSW_M4A1 ) {
		
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ crossbow ] && get_user_weapon ( iAttacker ) == CSW_SG550 ) {
		
		SetHamParamFloat( 4, fDamage * 2.0);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ m3_shoutgun ] && get_user_weapon ( iAttacker ) == CSW_M3 ) {
		
		SetHamParamFloat( 4, fDamage * 1.8);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ thompson ] && get_user_weapon ( iAttacker ) == CSW_P90 ) {
		
		SetHamParamFloat( 4, fDamage * 2.4);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ vip_elite ] && get_user_weapon ( iAttacker ) == CSW_ELITE ) {
		
		SetHamParamFloat( 4, fDamage * 2.7);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ vip_dualkriss ] && get_user_weapon ( iAttacker ) == CSW_P90 ) {
		
		SetHamParamFloat( 4, fDamage * 3.0);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ vip_hammer_knife ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		SetHamParamFloat( 4, fDamage * 3.5);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ vip_axe_knife ] && get_user_weapon ( iAttacker ) == CSW_KNIFE ) {
		
		SetHamParamFloat( 4, fDamage * 3.5);
		return HAM_HANDLED;
		
	}
	
	if ( g_PlayerWeap [ iAttacker ] [ vip_cartblue ] && get_user_weapon ( iAttacker ) == CSW_MP5NAVY ) {
		
		SetHamParamFloat( 4, fDamage * 3.5);
		return HAM_HANDLED;
		
	}
	
	return HAM_IGNORED;
	
}

stock DropWeapons ( id )  {
	
	new wpn, wpnname [ 32 ];
	wpn = get_user_weapon ( id );
	if ( !( WPN_NOT_DROP & ( 1 << wpn) ) && get_weaponname ( wpn, wpnname, charsmax ( wpnname ) ) ) {
		engclient_cmd ( id, "drop", wpnname );
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/

Am modificat unele arme, am adaugat niste arme noi, gen Crossbow (arbaleta aia) Shopul este pe credite :D.

Un alt plugin ar fi life pe credite :)

Life pe credite | Afiseaza codul
#include < amxmodx >
#include < fakemeta >
#include < hamsandwich >
#include < nvault >

native get_user_credits (id)
native set_user_credits (id,cantitate)

#define PLUGIN_NAME      "Life-Shop"
#define PLUGIN_VERSION   "1.0"
#define PLUGIN_AUTHOR   "ExoTiQ"

#define MAXPLAYERS             32
#define MAX_STATS_SAVED         64

#define LIFE_COST               15  // Pretul cand cumperi viata
#define LIFE_SELL               1  // Pretul cand vinzi viata
#define LIFE_LIMIT               2  // Limita maxima vietilor in menu.

new g_Life[ MAXPLAYERS + 1 ]
new gName[ MAXPLAYERS ]
new vKey[ MAX_STATS_SAVED ]
new vData[ MAX_STATS_SAVED ]

new gVault

public plugin_init ( )
{
   register_plugin ( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR )
   
   register_event( "DeathMsg", "EV_DeathMsg", "a" )
   register_forward(FM_ClientUserInfoChanged, "fwClientUserInfoChanged");
   register_clcmd("say /vieti", "Life_Shop")
   register_clcmd("say /life", "Life_Shop")
}

public client_connect( id )
   load_client_Life( id )

public client_disconnect( id )
   save_client_Life( id )

   
public EV_DeathMsg() {
   new iVictim = read_data( 2 );
   new iTeam = get_user_team( iVictim );
   new iKiller = read_data( 1 );
   
   if( iKiller != iVictim && get_user_team(iKiller) != iTeam ) {
      Life_Shop( iVictim )
   }
   
}
public Life_Shop( id ) 
{
   new szText[ 1024 char ];
   
   formatex( szText, charsmax( szText ), "\yYou Have: \r%d\y Credits^nHave: \r%d\y Life" ,get_user_credits(id) , g_Life[id] );
   
   new menu = menu_create( szText, "Life_handler" );
   
   formatex( szText, charsmax( szText ), "Buy 1 Life \y-  \w%d\y Credits" ,LIFE_COST);
   menu_additem( menu, szText, "1", 0 );
   
   formatex( szText, charsmax( szText ), "Use \y-\r1 Life" );
   menu_additem( menu, szText, "3", 0 );
   
   menu_setprop(menu, MPROP_EXITNAME, "Iesire")
   
   menu_display(id, menu, 0)
}

public Life_handler (id , menu , item ) {
   
   if (item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   
   new s_Data[6], s_Name[64], i_Access, i_Callback
   
   menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
   
   new i_Key = str_to_num(s_Data)
   
   
   new credite = get_user_credits(id)
   
   switch(i_Key)
   {
      case 1:
      {
         if (credite < LIFE_COST)
         {
            Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yYou do not have enough credits to buy !gLifes." )            
            return PLUGIN_HANDLED
         }
         
         if ( g_Life[id] >= LIFE_LIMIT )
         {
            Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yYou have reached the limit !high." )
            return PLUGIN_HANDLED
         }
         
         Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yYou Buy  !g1 Lifea")
         
         g_Life[id] += 1
         
         set_user_credits(id, credite - LIFE_COST)
         Life_Shop( id ) 
      }
      case 2:
      {
         if ( g_Life[id] == 0 )
         {
            Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yDon't have !gLifes.")
            return PLUGIN_HANDLED
         }
         
         Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yYou Sell !g1 Life.")
         
         g_Life[id] -= 1
         
         set_user_credits(id, credite + LIFE_SELL)
         Life_Shop( id ) 
      }
      case 3:
      {
         if ( is_user_alive( id ) )
         {
            Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yYou should be !gdead !y, for use a life.")
            return PLUGIN_HANDLED
         }
         
         if ( g_Life[id] == 0 )
         {
            Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yDon't have a !gLife.")
            return PLUGIN_HANDLED
         }
         
         g_Life[id] -= 1
         
         Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !yYou used !g1 life and received !grespawn.")
         
         ExecuteHam(Ham_CS_RoundRespawn, id)
      }
   }
   menu_destroy(menu)
   return PLUGIN_HANDLED
}
stock save_client_Life( index )
{
   gVault = nvault_open( "Life_Save" )
   
   if( gVault == INVALID_HANDLE )
   {
      set_fail_state( "[Fury.CsBlackDevil.Com] nValut ERROR: =-> Invalid-Handle" )
   }
   
   get_user_name( index, gName, charsmax( gName ) )
   //get_user_name(index,gName,32);
   
   formatex( vKey, charsmax( vKey ), "%sLife",gName )
   formatex( vData, charsmax( vData ), "%d", g_Life[ index ] )
   nvault_set( gVault, vKey, vData )
   nvault_close( gVault )
}

stock load_client_Life( index )
{
   gVault = nvault_open( "Life_Save" )
   
   if( gVault == INVALID_HANDLE )
   {
      set_fail_state( "[Fury.CsBlackDevil.Com] nValut ERROR: =-> Invalid-Handle" )
   }
   
   get_user_name( index, gName, charsmax( gName ) )
   //get_user_name(index,gName,32);
   
   formatex( vKey, charsmax( vKey ), "%sLife",gName )
   g_Life[ index ] = nvault_get( gVault, vKey )
   nvault_close( gVault )
}

 public fwClientUserInfoChanged(id, buffer) {
   if (!is_user_connected(id)) {
      return FMRES_IGNORED;
   }
   static val[32];
   static name[32];
   get_user_name(id, name, 31);
   engfunc(EngFunc_InfoKeyValue, buffer, "name", val, sizeof val- 1);
   if (equal(val, name)) {
      return FMRES_IGNORED;
   }
   engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name);
   Color_Print(id,  "!g[Fury.CsBlackDevil.Com] !teamNU este permisa schimbarea nick-ului pe server !")
   console_print(id,"NU este permisa schimbarea nick-ului pe server !");
   return PLUGIN_HANDLED;
}

stock Color_Print(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   
   replace_all(msg, 190, "!g", "^4") // Green Color
   replace_all(msg, 190, "!y", "^1") // Default Color
   replace_all(msg, 190, "!team", "^3") // Team Color
   
   if (id) players[0] = id; else get_players(players, count, "ch")
        {    
   for (new i = 0; i < count; i++)
   {
      if (is_user_connected(players))
      {
         message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
         write_byte(players);
         write_string(msg);
         message_end();
      }
   }
}
}


Plasma pe credite:)
Plasma pe credite | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>

native get_user_credits (id)
native set_user_credits (id,cantitate)

#define PLUGIN "Ethereal"
#define VERSION "1.0"
#define AUTHOR "sDs|Aragon*"

const PRIMARY_WEAPONS_BITSUM =(1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new BloodDrop, BloodSpray

#define ETHEREAL_WEAPONKEY	103
#define weapon_ethereal		"weapon_galil"
#define CSW_ETHEREAL		CSW_GALIL
#define ethereal_shotdelay	0.15 // Refire rate

new EtherealModel_V[] = "models/Snow/v_galil.mdl";
new EtherealModel_P[] = "models/Snow/p_galil.mdl";
new EtherealModel_W[] = "models/Snow/w_galil.mdl";
new const ethereal_sound[5][] = {
	"weapons/ethereal-1.wav",
	"weapons/ethereal_shoot1.wav",
	"weapons/galil_idle1.wav",
	"weapons/galil_reload.wav",
	"weapons/galil_draw.wav"
};
new const ethereal_generic[3][] = {
	"sprites/SnowS/weapon_ethereal",
	"sprites/SnowS/Ethereal.spr",
	"sprites/SnowS/640hud2.spr"
};
new bool:HasEthereal[33], ethereal_clip[33], ethereal_reload[33], Float:EtherealLastShotTime[33], ethereal_trail, ethereal_explode;
new ethereal, etherealcost, etherealdamage, etherealclip, etherealammo, etherealreloadtime, etherealknockback;

public plugin_init() {
	register_plugin( PLUGIN, VERSION, AUTHOR );
	RegisterHam(Ham_Spawn, "player", "Spawn_Post", 1);
	RegisterHam(Ham_Killed, "player", "PlayerKilled");	
	
	register_clcmd("Ethereal/weapon_ethereal", "hook_ethereal");
	register_event("CurWeapon", "Ethereal_Model", "be", "1=1");	
	register_event("WeapPickup","Ethereal_Model","b","1=19");
	register_forward(FM_SetModel, "Ethereal_SetModel");
	register_forward(FM_CmdStart, "Ethereal_CmdStart");	
	register_forward(FM_UpdateClientData, "Ethereal_UpdateClientData_Post", 1);
	RegisterHam(Ham_Item_Deploy , weapon_ethereal, "Ethereal_Deploy_Post", 1);
	RegisterHam(Ham_Item_AddToPlayer, weapon_ethereal, "Ethereal_AddToPlayer");
	RegisterHam(Ham_Weapon_Reload, weapon_ethereal, "Ethereal_Reload");
	RegisterHam(Ham_Weapon_Reload, weapon_ethereal, "Ethereal_Reload_Post", 1);
	RegisterHam(Ham_Item_PostFrame, weapon_ethereal, "Ethereal_PostFrame");	
	
	ethereal = register_cvar("amx_ethereal", "1");				//| Ethereal 0 Disable -> 1 Enable |//
	etherealcost = register_cvar("amx_etherealcost", "50");		//| Ethereal Cost CREDITE |//
	etherealdamage = register_cvar("amx_ethereal_damage", "80");		//| Ethereal Damage |//
	etherealclip = register_cvar("amx_ethereal_clip", "30");			//| Ethereal Clip |//
	etherealammo = register_cvar("amx_ethereal_ammo", "120");		//| Ethereal Ammo |//
	etherealreloadtime = register_cvar("amx_ethereal_reload_time", "3.03");	//| Ethereal Reload Time |//
	etherealknockback = register_cvar("amx_ethereal_knockback", "3");	//| Ethereal KnockBack |//
	
	register_clcmd("plasma124", "buy_ethereal");
	register_clcmd("plasma124", "buy_ethereal");
	register_clcmd("say /plasma124", "buy_ethereal");
	register_clcmd("say /plasma124", "buy_ethereal");
	register_clcmd("say plasma124", "buy_ethereal");
	register_clcmd("say_team /plasma124", "buy_ethereal");
	register_clcmd("say_team /plasma124", "buy_ethereal");
	register_clcmd("say_team plasma124", "buy_ethereal");
	register_concmd("amx_give_ethereal", "GiveEthereal", ADMIN_IMMUNITY, "Name");
}

public plugin_natives() {
	register_native("get_user_ethereal", "get_user_ethereal", 1);
	register_native("set_user_ethereal", "set_user_ethereal", 1);
}

public get_user_ethereal(id) {
	return HasEthereal[id];
}

public set_user_ethereal(id, ethereal) {
	if(ethereal) {
		if(!HasEthereal[id]) {
			drop_primary_weapons(id);
			HasEthereal[id] = true;
			message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id);
			write_string("Ethereal/weapon_ethereal");	// WeaponName
			write_byte(4);			// PrimaryAmmoID
			write_byte(90);			// PrimaryAmmoMaxAmount
			write_byte(-1);			// SecondaryAmmoID
			write_byte(-1);			// SecondaryAmmoMaxAmount
			write_byte(0);			// SlotID (0...N)
			write_byte(17);			// NumberInSlot (1...N)
			write_byte(CSW_ETHEREAL);	// WeaponID
			write_byte(0);			// Flags
			message_end();
			fm_give_item(id, weapon_ethereal)
			cs_set_user_bpammo(id, CSW_ETHEREAL, get_pcvar_num(etherealammo))
			new clip = fm_get_user_weapon_entity(id, CSW_ETHEREAL);
			cs_set_weapon_ammo(clip, get_pcvar_num(etherealclip));
			set_weapon_anim(id, 2);
		}
	}
	else {
		if(HasEthereal[id]) {
			HasEthereal[id] = false;
		}
	}
}

public Spawn_Post(id) set_user_ethereal(id, 0);

public PlayerKilled(victim, attacker, shouldgib) set_user_ethereal(victim, 0);

//------| Buy Ethereal |------//
public buy_ethereal(id) {
	if(get_user_team(id) == 2) {
		new ethcost = get_pcvar_num(etherealcost);
		if(!get_pcvar_num(ethereal)) {
			ColorChat(id, "^x04[Fury.CsBlackDevil.Com]^x03 Plasma^x04 este dezactivat.");
		}
		else if(!is_user_alive(id)) {
			ColorChat(id, "^x04[Fury.CsBlackDevil.Com]^x03 Nu poti cumpara^x04 Plasma^x03 cat timp esti mort.");
		}
		else if(get_user_ethereal(id)) {
			ColorChat(id, "^x04[Fury.CsBlackDevil.Com]^x03 Ai deja^x04 Plasma.");
		}
		else if(get_user_credits(id) < ethcost) {
			ColorChat(id, "^x04[Fury.CsBlackDevil.Com]^x03 Nu ai suficiente fonduri pentru a cumpara^x04 Plasma^x03. Necesari: ^x04$%d",ethcost);
		}
		else {
			set_user_credits(id, get_user_credits(id) - ethcost);
			ColorChat(id, "^x04[Fury.CsBlackDevil.Com]^x03 Ai cumparat^x04 Plasma.");
			set_user_ethereal(id, true);
		}
	}
}

public GiveEthereal(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
		return PLUGIN_HANDLED;
	}
	
	new arg[23], name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);	
	new player = cmd_target(id, arg, 11);
	if(!player) {
		console_print(id, "Juctorul cu acel nume nu exista.");
		return PLUGIN_HANDLED;
	}
	if(!is_user_alive(player)) {
		return PLUGIN_HANDLED;
	}
	if(!get_user_ethereal(player)) {
		set_user_ethereal(player, true);
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(player, "^x03ADMIN^x04 give you ^x03 Plasma.");
				
			case 2: ColorChat(player, "^x03%s^x04 give you ^x03 Plasma.", name);
			}
	}
	return PLUGIN_HANDLED;
	
}

public hook_ethereal(id) {
	engclient_cmd(id, weapon_ethereal);
}

public Ethereal_Model(id) {
	if(get_user_weapon(id) == CSW_ETHEREAL && get_user_ethereal(id)) {
		set_pev(id, pev_viewmodel2, EtherealModel_V);
		set_pev(id, pev_weaponmodel2, EtherealModel_P);
	}
}

public Ethereal_SetModel(entity, model[]) {
	// Entity is not valid
	if(!is_valid_ent(entity))
		return FMRES_IGNORED;
	
	// Get classname
	static szClassName[33];
	entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName));
	
	// Not a Weapon box
	if(!equal(szClassName, "weaponbox"))
		return FMRES_IGNORED;
	
	new iOwner = entity_get_edict(entity, EV_ENT_owner);	
	new WPN_Ethereal = find_ent_by_owner(-1, weapon_ethereal, entity);
	
	if(get_user_ethereal(iOwner) && is_valid_ent(WPN_Ethereal) && equal(model, "models/w_galil.mdl")) {
		entity_set_int(WPN_Ethereal, EV_INT_impulse, ETHEREAL_WEAPONKEY);
		HasEthereal[iOwner] = false;
		entity_set_model(entity, EtherealModel_W);
		return FMRES_SUPERCEDE;
	}
	return FMRES_IGNORED;
}

public Ethereal_CmdStart(id, uc_handle, seed) {
	if(is_user_alive(id) && is_user_connected(id)) {
		static CurButton;
		CurButton = get_uc(uc_handle, UC_Buttons);
		new Float:flNextAttack = get_pdata_float(id, 83, 5);
		if(CurButton & IN_ATTACK) {
			if(get_user_weapon(id) == CSW_ETHEREAL && get_user_ethereal(id)) {
				
				static ethereal;
				ethereal = fm_find_ent_by_owner(-1, weapon_ethereal, id);	
				
				if(cs_get_weapon_ammo(ethereal) > 0 && !ethereal_reload[id] && flNextAttack <= 0.0) {
					if(get_gametime() - EtherealLastShotTime[id] > ethereal_shotdelay) {
						set_weapon_anim(id, random_num(3,5));
						emit_sound(id, CHAN_WEAPON, ethereal_sound[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
						
						Ethereal_Fire(id);
						
						static Float:Punch_Angles[3];
						
						Punch_Angles[0] = -3.0;
						Punch_Angles[1] = 0.0;
						Punch_Angles[2] = 0.0;
						
						set_pev(id, pev_punchangle, Punch_Angles);
						cs_set_weapon_ammo(ethereal, cs_get_weapon_ammo(ethereal) - 1);
						EtherealLastShotTime[id] = get_gametime();
						
					}	
				}
				CurButton &= ~IN_ATTACK;
				set_uc(uc_handle, UC_Buttons, CurButton);
			}			
		}
		
	}
}

public Ethereal_UpdateClientData_Post(id, sendweapons, cd_handle) {
	if(is_user_alive(id) && is_user_connected(id)) {
		if(get_user_weapon(id) == CSW_ETHEREAL && get_user_ethereal(id)) {	
			set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001);
		}
	}
}

public Ethereal_AddToPlayer(Weapon, id) {
	if(is_valid_ent(Weapon) && is_user_connected(id) && entity_get_int(Weapon, EV_INT_impulse) == ETHEREAL_WEAPONKEY) {
		HasEthereal[id] = true;
		entity_set_int(Weapon, EV_INT_impulse, 0);
	}
	message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, id);
	write_string(HasEthereal[id] ? "Ethereal/weapon_ethereal" : "weapon_galil");	// WeaponName
	write_byte(4);			// PrimaryAmmoID
	write_byte(90);			// PrimaryAmmoMaxAmount
	write_byte(-1);			// SecondaryAmmoID
	write_byte(-1);			// SecondaryAmmoMaxAmount
	write_byte(0);			// SlotID (0...N)
	write_byte(17);			// NumberInSlot (1...N)
	write_byte(CSW_ETHEREAL);	// WeaponID
	write_byte(0);			// Flags
	message_end();
}
public Ethereal_Deploy_Post(entity) {
	static owner;
	owner = fm_get_weapon_ent_owner(entity);
	if(get_user_ethereal(owner)) {
		set_pev(owner, pev_viewmodel2, EtherealModel_V);
		set_pev(owner, pev_weaponmodel2, EtherealModel_P);
		set_weapon_anim(owner, 2);
		set_pdata_float(owner, 83, 1.36, 5);
		static clip;
		clip = cs_get_weapon_ammo(entity);
		if(clip > 0)
			ethereal_reload[owner] = 0;
	}
}
public Ethereal_Reload(ent) {
	if(!pev_valid(ent))
		return HAM_IGNORED;
	
	new id;
	id = pev(ent, pev_owner);
	
	if(!is_user_alive(id) || !get_user_ethereal(id))
		return HAM_IGNORED;
	
	ethereal_clip[id] = -1;
	
	new bpammo = cs_get_user_bpammo(id, CSW_ETHEREAL);
	if(bpammo <= 0)
		return HAM_SUPERCEDE;
	
	new iClip = get_pdata_int(ent, 51, 4);
	if(iClip >= get_pcvar_num(etherealclip))
		return HAM_SUPERCEDE;
	
	ethereal_clip[id] = iClip;
	ethereal_reload[id] = 1;
	
	return HAM_IGNORED;
}
public Ethereal_Reload_Post(ent) {
	if(!pev_valid(ent))
		return HAM_IGNORED;
	
	new id;
	id = pev(ent, pev_owner);
	
	if(!is_user_alive(id) || !get_user_ethereal(id))
		return HAM_IGNORED;
	
	if(ethereal_clip[id] == -1)
		return HAM_IGNORED;
	
	new Float:reload_time = get_pcvar_float(etherealreloadtime);
	
	set_pdata_int(ent, 51, ethereal_clip[id], 4);
	set_pdata_float(ent, 48, reload_time, 4);
	set_pdata_float(id, 83, reload_time, 5);
	set_pdata_int(ent, 54, 1, 4);
	set_weapon_anim(id, 1);
	return HAM_IGNORED;
}
public Ethereal_PostFrame(ent) {
	if(!pev_valid(ent))
		return HAM_IGNORED;
	
	new id;
	id = pev(ent, pev_owner);
	
	if(!is_user_alive(id) || !get_user_ethereal(id))
		return HAM_IGNORED;
	
	new Float:flNextAttack = get_pdata_float(id, 83, 5);
	new bpammo = cs_get_user_bpammo(id, CSW_ETHEREAL);
	
	new iClip = get_pdata_int(ent, 51, 4);
	new fInReload = get_pdata_int(ent, 54, 4);
	
	if(fInReload && flNextAttack <= 0.0) {
		new temp = min(get_pcvar_num(etherealclip) - iClip, bpammo);
		
		set_pdata_int(ent, 51, iClip + temp, 4);
		cs_set_user_bpammo(id, CSW_ETHEREAL, bpammo - temp);		
		set_pdata_int(ent, 54, 0, 4);
		
		fInReload = 0;
		ethereal_reload[id] = 0;
	}		
	
	return HAM_IGNORED;
}
public Ethereal_Fire(id) {
	static Victim, Body, EndOrigin[3], BeamOrigin[3];
	get_user_origin(id, BeamOrigin, 3) ;
	get_user_origin(id, EndOrigin, 3);
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
	write_byte(TE_BEAMENTPOINT);
	write_short(id | 0x1000);
	write_coord(BeamOrigin[0]);	// Start X
	write_coord(BeamOrigin[1]);	// Start Y
	write_coord(BeamOrigin[2]);	// Start Z
	write_short(ethereal_trail);	// Sprite
	write_byte(1);      		// Start frame				
	write_byte(1);     		// Frame rate					
	write_byte(1);			// Life
	write_byte(25);   		// Line width				
	write_byte(0);    		// Noise
	write_byte(0); 			// Red
	write_byte(150);		// Green
	write_byte(0);			// Blue
	write_byte(150);     		// Brightness					
	write_byte(25);      		// Scroll speed					
	message_end();
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(3);
	write_coord(EndOrigin[0]);
	write_coord(EndOrigin[1]);
	write_coord(EndOrigin[2]);
	write_short(ethereal_explode);
	write_byte(10);
	write_byte(15);
	write_byte(4);
	message_end();
	
	get_user_aiming(id, Victim, Body, 999999);
	if(is_user_connected(Victim)) {
		new Float:Damage = float(get_damage_body(Body, get_pcvar_float(etherealdamage)));
		
		new Float:VictimOrigin[3];
		VictimOrigin[0] = float(EndOrigin[0]);
		VictimOrigin[1] = float(EndOrigin[1]);
		VictimOrigin[2] = float(EndOrigin[2]);
		
		if(get_user_health(Victim) - get_pcvar_float(etherealdamage) >= 1 && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id)) {
			make_blood(VictimOrigin, get_pcvar_float(etherealdamage), Victim);
			make_knockback(Victim, VictimOrigin, get_pcvar_float(etherealknockback)*get_pcvar_float(etherealdamage));
			
			ExecuteHam(Ham_TakeDamage, Victim, id, id, Damage, DMG_NERVEGAS);
			
			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Damage"), _, Victim);
			write_byte(0);
			write_byte(0);
			write_long(DMG_NERVEGAS);
			write_coord(0) ;
			write_coord(0);
			write_coord(0);
			message_end();
			
			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), {0,0,0}, Victim);
			write_short(1<<13);
			write_short(1<<14);
			write_short(0x0000);
			write_byte(0);
			write_byte(255);
			write_byte(0);
			write_byte(100) ;
			message_end();
			
			message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, Victim);
			write_short(0xFFFF);
			write_short(1<<13);
			write_short(0xFFFF) ;
			message_end();
		}
		else if(get_user_health(Victim) - get_pcvar_float(etherealdamage) < 1 && is_user_alive(Victim) && !fm_get_user_godmode(Victim) && get_user_team(Victim) != get_user_team(id)) {
			make_blood(VictimOrigin, get_pcvar_float(etherealdamage), Victim);
			make_knockback(Victim, VictimOrigin, get_pcvar_float(etherealknockback)*get_pcvar_float(etherealdamage));
			
			death_message(id, Victim, 1, "ethereal");
		}
	}
	else {
		static ClassName[32];
		pev(Victim, pev_classname, ClassName, charsmax(ClassName));
		if(equal(ClassName, "func_breakable")) {		
			if(entity_get_float(Victim, EV_FL_health) <= get_pcvar_num(etherealdamage)) {
				force_use(id, Victim);
			}
		}
	}
	
	emit_sound(id, CHAN_WEAPON, ethereal_sound[1], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

stock make_blood(const Float:vTraceEnd[3], Float:Damage, hitEnt) {
	new bloodColor = ExecuteHam(Ham_BloodColor, hitEnt);
	if(bloodColor == -1)
		return;
	
	new amount = floatround(Damage);
	
	amount *= 2; //according to HLSDK
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BLOODSPRITE);
	write_coord(floatround(vTraceEnd[0]));
	write_coord(floatround(vTraceEnd[1]));
	write_coord(floatround(vTraceEnd[2]));
	write_short(BloodSpray);
	write_short(BloodDrop);
	write_byte(bloodColor);
	write_byte(min(max(3, amount/10), 16));
	message_end();
}

// Make knockback
public make_knockback(Victim, Float:origin[3], Float:maxspeed) {
	// Get and set velocity
	new Float:fVelocity[3];
	kickback(Victim, origin, maxspeed, fVelocity);
	entity_set_vector(Victim, EV_VEC_velocity, fVelocity);
	
	return(1);
}

// Extra calulation for knockback
stock kickback(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) {
	// Find origin
	new Float:fEntOrigin[3];
	entity_get_vector(ent, EV_VEC_origin, fEntOrigin);
	
	// Do some calculations
	new Float:fDistance[3];
	fDistance[0] = fEntOrigin[0] - fOrigin[0];
	fDistance[1] = fEntOrigin[1] - fOrigin[1];
	fDistance[2] = fEntOrigin[2] - fOrigin[2];
	new Float:fTime =(vector_distance(fEntOrigin,fOrigin) / fSpeed);
	fVelocity[0] = fDistance[0] / fTime;
	fVelocity[1] = fDistance[1] / fTime;
	fVelocity[2] = fDistance[2] / fTime;
	
	return(fVelocity[0] && fVelocity[1] && fVelocity[2]);
}

stock death_message(Killer, Victim, ScoreBoard, const Weapon[]) {
	// Block death msg
	set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET);
	ExecuteHamB(Ham_Killed, Victim, Killer, 2);
	set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT);
	
	// Death
	make_deathmsg(Killer, Victim, 0, Weapon);
	cs_set_user_money(Killer, cs_get_user_money(Killer) + 3000);
	
	// Update score board
	if(ScoreBoard) {
		message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
		write_byte(Killer); // id
		write_short(pev(Killer, pev_frags)); // frags
		write_short(cs_get_user_deaths(Killer)); // deaths
		write_short(0); // class?
		write_short(get_user_team(Killer)); // team
		message_end();
		
		message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
		write_byte(Victim); // id
		write_short(pev(Victim, pev_frags)); // frags
		write_short(cs_get_user_deaths(Victim)); // deaths
		write_short(0); // class?
		write_short(get_user_team(Victim)); // team
		message_end();
	}
}

stock set_weapon_anim(id, anim) {
	set_pev(id, pev_weaponanim, anim);
	if(is_user_connected(id)) {
		message_begin(MSG_ONE, SVC_WEAPONANIM, _, id);
		write_byte(anim);
		write_byte(pev(id, pev_body));
		message_end();
	}
}

stock get_damage_body(body, Float:damage) {
	switch(body) {
		case HIT_HEAD: damage *= 4.0;
			case HIT_STOMACH: damage *= 1.1;
			case HIT_CHEST: damage *= 1.5;
			case HIT_LEFTARM: damage *= 0.77;
			case HIT_RIGHTARM: damage *= 0.77;
			case HIT_LEFTLEG: damage *= 0.75;
			case HIT_RIGHTLEG: damage *= 0.75;
			default: damage *= 1.0;
	}
	
	return floatround(damage);
}	

stock fm_get_user_bpammo(index, weapon) {
	static offset
	switch(weapon) {
		case CSW_AWP: offset = OFFSET_AMMO_338MAGNUM
			case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_AMMO_762NATO
			case CSW_M249: offset = OFFSET_AMMO_556NATOBOX
			case CSW_FAMAS, CSW_M4A1, CSW_AUG, 
			CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_AMMO_556NATO
		case CSW_M3, CSW_XM1014: offset = OFFSET_AMMO_BUCKSHOT
			case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_AMMO_45ACP
			case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_AMMO_57MM
			case CSW_DEAGLE: offset = OFFSET_AMMO_50AE
			case CSW_P228: offset = OFFSET_AMMO_357SIG
			case CSW_GLOCK18, CSW_TMP, CSW_ELITE, 
			CSW_MP5NAVY: offset = OFFSET_AMMO_9MM
		default: offset = 0
	}
	return offset ? get_pdata_int(index, offset) : 0
}

stock fm_set_user_bpammo(index, weapon, amount) {
	static offset
	switch(weapon) {
		case CSW_AWP: offset = OFFSET_AMMO_338MAGNUM
			case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_AMMO_762NATO
			case CSW_M249: offset = OFFSET_AMMO_556NATOBOX
			case CSW_FAMAS, CSW_M4A1, CSW_AUG, 
			CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_AMMO_556NATO
		case CSW_M3, CSW_XM1014: offset = OFFSET_AMMO_BUCKSHOT
			case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_AMMO_45ACP
			case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_AMMO_57MM
			case CSW_DEAGLE: offset = OFFSET_AMMO_50AE
			case CSW_P228: offset = OFFSET_AMMO_357SIG
			case CSW_GLOCK18, CSW_TMP, CSW_ELITE, 
			CSW_MP5NAVY: offset = OFFSET_AMMO_9MM
		default: offset = 0
	}
	
	if(offset) 
		set_pdata_int(index, offset, amount)
	
	return 1
}

// Get Weapon Entity's CSW_ ID
stock fm_get_weapon_ent_id(ent) {
	return get_pdata_int(ent, OFFSET_WEAPONID, 4);
}

// Get Weapon Entity's Owner
stock fm_get_weapon_ent_owner(ent) {
	return get_pdata_cbase(ent, 41, 4);
}

// Drop all primary guns
stock drop_primary_weapons(Player) {
	// Get user weapons
	static weapons[32], num, i, weaponid;
	num = 0; // reset passed weapons count(bugfix)
	get_user_weapons(Player, weapons, num);
	
	// Loop through them and drop primaries
	for(i = 0; i < num; i++) {
		// Prevent re-indexing the array
		weaponid = weapons ;
		
		// We definetely are holding primary gun
		if(((1<<weaponid) & PRIMARY_WEAPONS_BITSUM)) {
			// Get weapon entity
			static wname[32];
			get_weaponname(weaponid, wname, charsmax(wname));
			
			// Player drops the weapon and looses his bpammo
			engclient_cmd(Player, "drop", wname);
		}
	}
}

stock ColorChat(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "^x04", "^4");
	replace_all(msg, 190, "^x01", "^1");
	replace_all(msg, 190, "^x03", "^3");
	
	if(id) players[0] = id;
	else get_players(players, count, "ch"); {
		for(new i = 0; i < count; i++) {
			if(is_user_connected(players)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	} 
}

//------| Parecache Sounds and Models |------//
public plugin_precache() {
	BloodSpray = precache_model("sprites/bloodspray.spr");   // initial blood
	BloodDrop  = precache_model("sprites/blood.spr");	// splattered blood
	
	ethereal_trail = precache_model("sprites/SnowS/ethereal_beam.spr");
	ethereal_explode = precache_model("sprites/SnowS/ethereal_exp.spr");
	
	precache_model(EtherealModel_V);
	precache_model(EtherealModel_P);
	precache_model(EtherealModel_W);	
	
	new i;
	for(i = 0; i < sizeof(ethereal_sound); i++)
		engfunc(EngFunc_PrecacheSound, ethereal_sound);	
	
	for(i = 0; i < sizeof(ethereal_generic); i++)
		engfunc(EngFunc_PrecacheGeneric, ethereal_generic[i]);	
	
}


Credite per kill

Credite per kill | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define VERSION	"2.1"

native get_user_credits(id)
native set_user_credits(id, cantitate)

public plugin_init()
{
	register_plugin("Kill Credite",VERSION,"Gabriel")

	register_event("DeathMsg","death_msg","a")

}

public death_msg()
{
	new iKiller = read_data ( 1 );
	new iVictim = read_data ( 2 );
	
	if ( iKiller == iVictim ) return 1;
	
	set_user_credits ( iKiller, get_user_credits ( iKiller ) + 7 );
	
	return 1;
}


Bomb plant & Defuze

Bomb plant & Defuze | Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <csx>
 
#define PLUGIN "Bomb Events - Credite Furien"
#define VERSION "0.1"
#define AUTHOR "Gabriel"

native get_user_credits(id)
native set_user_credits(id, cantitate)

new pBonus
new dBonus
new eBonus

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("TextMsg", "bomb_planted", "a", "2&%!MRAD_BOMBPL")
	register_event("TextMsg", "bomb_defused", "a", "2&%!MRAD_BOMBDEF")

	pBonus = register_cvar("credit_bonus_plant","100")
	dBonus = register_cvar("credit_bonus_defuse","100")
}

public bomb_planted(id)
{
	new name[32]
	get_user_name(id, name, 31)

	{
	new credit = get_user_credits(id)
	new got = get_pcvar_num(pBonus)
	set_user_credits(id, credit + got)
        color(0, ".v[FURIEN].g Jucatorul .e%s a primit .g%d credite pentru ca a plantat bomba !",name, get_pcvar_num(pBonus))
	}
}

public bomb_defused(id)
{
	new name[32]
	get_user_name(id, name, 31)

	{
	new credit = get_user_credits(id)
	new got = get_pcvar_num(dBonus)
	set_user_credits(id, credit + got)
        color(0, ".v[FURIEN].g Jucatorul .e%s a primit .g%d credite pentru ca ai dezamorsat bomba",name, get_pcvar_num(dBonus))
	}
}

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

	replace_all(msg, 190, ".v", "^4")
	replace_all(msg, 190, ".g", "^1")
	replace_all(msg, 190, ".e", "^3")

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


Donate credits to players.

Donate | Afiseaza codul
#include <amxmodx>
#include <amxmisc>

native get_user_credits (id)
native set_user_credits (id , cantitate)


public plugin_init()
{
	register_plugin("Donate Credits", "1.0", "cyby")
	
	register_clcmd("say", "donare_say")
	register_clcmd("say_team", "donare_say")
}

public donare_say(id)
{
	new citim_mesaj[64]
	
	read_args(citim_mesaj, charsmax(citim_mesaj))
	remove_quotes(citim_mesaj)
	
	new comanda[16]
	new nume[32]
	
	strbreak(citim_mesaj, comanda, charsmax(comanda), nume, charsmax(nume))
	if(equal(comanda, "/donate", 7))
		donate(id, nume)
}

public donate(id, arg[])
{
	new cui[32], count[10]
	strbreak(arg, cui, 31, count, 9)
	
	if (!cui[0] || !count[0])
	{
		color(id, "!g[Fury.CsBlackDevil.Com] !nPentru a dona credite foloseste !g/donate nume credite")
		return
	}
	new credite_trimise = get_user_credits(id)
	new credite
	if (equal(count, "all"))
		credite = credite_trimise
	else
		credite = str_to_num(count)
	
	if (credite <= 0)
	{
		color(id, "!g[Fury.CsBlackDevil.Com] !n Valoarea introdusa de tine este invalida.")
		return
	}
	credite_trimise -= credite
	if (credite_trimise < 0)
	{
		credite+=credite_trimise
		credite_trimise = 0
		
	}
	new primitor = cmd_target(id, cui, (CMDTARGET_ALLOW_SELF))
	if (!primitor || primitor == id)
	{
		color(id, "!g[Fury.CsBlackDevil.Com] !n %s .g nu exista pe server.", cui)
		return
	}
	
	set_user_credits(primitor, get_user_credits(primitor) + credite)
	set_user_credits(id, credite_trimise)
	
	new tNume[32], pNume[32]
	
	get_user_name(id, tNume, 31)
	get_user_name(primitor, pNume, 31)
	
	color(0, "!g[Fury.CsBlackDevil.Com] Jucatorul !g%s !nii trimite lui !g%s o cantitate de !g%d !ncredite", tNume, pNume, credite)
}

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

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

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


Meniul acela de pe server:> sa va puteti creea si voi.. simplu dar dragut.

Menu | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))


public plugin_init()
{
	register_plugin("Simple Menu","x","SnowFake")
	
	register_clcmd("say /menu","FormatMenu")
	register_clcmd("say /meniu","FormatMenu")
}

public FormatMenu(id)
{
	new menu = menu_create("\wFury.CsBlackDevil.Com:", "option_menu")
	
	menu_additem(menu, "\ySHOP MENU", "1", 0)
        menu_additem(menu, "\yVIP MENU [\rONLY\w/\rVIP\r]", "2", 0)
        menu_additem(menu, "\yLife System", "3", 0)
        menu_additem(menu, "\yPLASMA GUN-\r50 \rCREDITE", "4", 0)
        menu_additem(menu, "\wRegulament", "5", 0)
        menu_additem(menu, "\wRadio", "6", 0)
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
	
	menu_display(id, menu, 0)
}

public option_menu(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	
	new data[6], names[64], access, callback
	
	menu_item_getinfo(menu, item, access, data,5, names, 63, callback)
	
	new key = str_to_num(data)
	
	switch(key)
	{
		case 1:
		{
			client_cmd(id,"say /shopulet")
			
			key = (0<<1|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8)
		}
		case 2:
		{
			client_cmd(id,"say /furienvip")
			
			key = (0<<1|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8)
		}
		case 3:
		{
			client_cmd(id,"say /life")
			
			key = (0<<1|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8)
		}
		
                case 4:
		{
			client_cmd(id,"say /plasma124")
			
			key = (0<<1|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8)
		}

                case 5:
		{
			show_motd(id,"reguli.html","Preturi Admine")
			
			key = (0<<1|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8)
		}
		case 6:
		{
			client_cmd(id,"say /radio")
			
			key = (0<<1|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8)
		}
	}
	menu_destroy(menu)
	return PLUGIN_HANDLED
}


Plugin depozit + HUD HP, CREDITS

HP + CREDITE | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>

#define PLUGIN  "Depozit Mooney"
#define AUTHOR  "Aragon*"
#define VERSION "1.0"

new PlayerCredits[33];
new File[128], SymbolsName;

public plugin_init() {      
	register_plugin( PLUGIN, VERSION, AUTHOR );
	register_forward(FM_ClientUserInfoChanged, "ChangeName");
	SymbolsName = register_cvar("fr_name_symbols", "~`"); 	//| Symbols Name Restricted |//	
	
	register_clcmd("say", "Check");
	register_clcmd("say_team", "Check");
	register_clcmd("depozit","Depozit")
	register_clcmd("say /depozit","Depozit")
	register_clcmd("say_team /depozit","Depozit")
	register_clcmd("retrage","Retrage")
	register_clcmd("say /retrage","Retrage")
	register_clcmd("say_team /retrage","Retrage")
	register_clcmd("credits","Show_Credits")
	register_clcmd("credite","Show_Credits")
	register_clcmd("say /credits","Show_Credits")
	register_clcmd("say /credite","Show_Credits")
	register_clcmd("say_team /credits","Show_Credits")
	register_clcmd("say_team /credite","Show_Credits")
	register_clcmd("say /give", "GiveCredits");
	
	register_concmd("amx_give_credits", "Give_Credits", ADMIN_IMMUNITY, "Name/@T/@CT/@All -> Amount");
	register_concmd("amx_reset_credits", "Reset_Credits", ADMIN_IMMUNITY, "Name/@T/@CT/@All");
	
	new DataDir[64]
	get_datadir(DataDir, 63)
	format(File, 127, "%s/FurienCredits.dat", DataDir)
	
}
public plugin_natives() {
	register_native("set_user_credits", "set_user_credits", 1);
	register_native("get_user_credits", "get_user_credits", 1);
}

public client_putinserver(id) {
	LoadCredits(id)
	set_task(1.0, "showinfo", id, _, _, "b")
	set_task(300.0, "unminut", id, _, _, "b")
}

public unminut(id) {
	
	PlayerCredits[id] += 10
	ColorChat(id, "Ai primit 10 credit pentru ca ai jucat 5 minute pe Fury.Cs.BlackDevil.Com !")
	ColorChat(id, "Joaca in continuare si vei primi iar !")
	SaveCredits( id );
}


public showinfo(id) {
	new hp = get_user_health(id)
	new ap = get_user_armor(id)
	new creditee = get_user_credits(id)
	set_hudmessage(255, 200, 3, 0.01, 0.18, 1, 1.0, 1.0)
	show_hudmessage(id, "HP: %d |CREDITE: %d ",hp,creditee)
	
	
}

public set_user_credits(id, credits) {
	PlayerCredits[id] = credits;
	
	SaveCredits(id)
}
public get_user_credits(id) {
	return PlayerCredits[id]
}


//------| Change Name |------//
public ChangeName(id, buffer) {
	if(!is_user_connected(id))
		return FMRES_IGNORED;
	
	static Name[32], Val[32];
	get_user_name(id, Name, sizeof Name - 1);
	engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1);
	
	if(equal(Val, Name))
		return FMRES_IGNORED;
	
	set_task(0.2, "client_connect", id);
	return FMRES_SUPERCEDE;
}

//------| Client connect |------//	
public client_connect(id) {
	static sName[32];
	get_user_name(id, sName, sizeof sName - 1);
	static sChars[32];
	get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);	
	for(new i = 0 ; i < strlen(sName) ; i++) {
		for(new j = 0 ; j < strlen(sChars) ; j++) {
			if(sName[i] == sChars[j]) {
				server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id));
				break;
			}
			else {
				LoadCredits(id);
			}
		}
	}
}

public Depozit(id) {
	if(cs_get_user_money(id) >= 16000) {
		ColorChat(id, "!x03[Depozit]!x04 Ai depozitat!x03 16000$!x04 is ai primit!x03 1!x04 credit.");
		set_user_credits(id, get_user_credits(id) + 1);
		cs_set_user_money(id, cs_get_user_money(id) - 16000);
	}
	else {
		ColorChat(id, "!x03[Depozit]!x04 Iti trebuie!x03 16000$!x04 pentru a putea depozita.");	
	}
	return PLUGIN_HANDLED;
}

public Retrage(id) {
	if(cs_get_user_money(id) >= 16000) {
		ColorChat(id, "!x03[Depozit]!x04 Ai deja!x03 16000$.");
	}
	else if(PlayerCredits[id]) {
		ColorChat(id, "!x03[Depozit]!x04 Ai retras!x03 1!x04 credit din depozit, ai primit!x03 16000$.");
		set_user_credits(id, get_user_credits(id) - 1);
		cs_set_user_money(id, cs_get_user_money(id) + 16000);
	}
	else {
		ColorChat(id, "!x03[Depozit]!x04 Iti trebuie!x03 1 credit!x04 pentru a putea retrage.");	
	}
	return PLUGIN_HANDLED;
}

public Check(id) {
	static Args[32]
	
	read_args(Args, sizeof(Args) - 1);
	remove_quotes(Args);
	
	if(equal(Args, "/give", 5)) {
		replace(Args, sizeof(Args) - 1, "/", "");
		client_cmd(id, "amx_%s", Args);
	}
	
	return PLUGIN_CONTINUE;
}

public GiveCredits(id) {
	new Arg1[32], Arg2[6];
	
	read_argv(1, Arg1, 31);
	read_argv(2, Arg2, 5);
	
	new Target = cmd_target(id, Arg1, 8);
	new Ammount = str_to_num(Arg2);
	
	if(Target == id) {
		ColorChat(id, "!x03Nu poti sa-ti dai credite tie");
	}
	else if(!Target) {
		ColorChat(id, "!x03Acest user nu exista");
	}
	
	else if(Ammount <= 0) {
		ColorChat(id, "!x03Nu poti sa dai o suma negativa sau egala cu 0");
	}
	else if(Ammount > get_user_credits(id)){
		ColorChat(id, "!x03Nu poti sa dai mai multe credite decat ai");
	}
	else {		
		new TargetName[32], Name[32];
		get_user_name(Target, TargetName, 31);
		get_user_name(id, Name, 31);
		
		set_user_credits(id, get_user_credits(id) -  Ammount)
		ColorChat(id, "!x03I-ai dat lui!x04 %s!x03 suma de!x04 %d$", TargetName, Ammount);
		
		set_user_credits(Target, get_user_credits(Target) + Ammount)
		ColorChat(Target, "!x03Ai primit de la !x04%s!x03 suma de!x04 %d$", Name, Ammount);
	}
}

public Show_Credits(id) {
	set_hudmessage(0, 128, 0, 0.03, 0.86, 2, 6.0, 5.0);
	show_hudmessage(id, "Ai %d Credite.", PlayerCredits[id]);
	ColorChat(id, "!x03[Depozit]!x04 Ai!x03 %d!x04 Credite.", PlayerCredits[id]);
	return PLUGIN_HANDLED;
}

public Give_Credits(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
		return PLUGIN_HANDLED;
	}
	new arg[23], gplayers[32], num, i, players, name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);
	new give_credits[5];
	read_argv(2, give_credits, charsmax(give_credits));
	new Credits = str_to_num(give_credits);
	if(equali(arg, "@T")) {
		get_players(gplayers, num, "e", "TERRORIST");
		for(i = 0; i < num; i++) {
			players = gplayers[i];
			if(!is_user_connected(players))
				continue;
			set_user_credits(players, get_user_credits(players) + Credits);
		}
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(0, "!x03ADMIN!x04 give!x03 %i Credits!x04 to all!x03 Ts.", Credits);
				case 2: ColorChat(0, "!x03%s!x04 give!x03 %i Credits!x04 to all!x03 Ts.", name, Credits);
			}
	}
	else if(equali(arg, "@CT")) {
		get_players(gplayers, num, "e", "CT");
		for(i = 0; i < num; i++) {
			players = gplayers[i];
			if(!is_user_connected(players))
				continue;
			set_user_credits(players, get_user_credits(players) + Credits);
		}
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(0, "!x03ADMIN!x04 give!x03 %i Credits!x04 to all!x03 CTs.", Credits);
				case 2: ColorChat(0, "!x03%s!x04 give!x03 %i Credits!x04 to all!x03 CTs.", name, Credits);
			}
	}
	if(equali(arg, "@All")) {
		get_players(gplayers, num, "a");
		for(i = 0; i < num; i++) {
			players = gplayers[i];
			if(!is_user_connected(players))
				continue;
			set_user_credits(players, get_user_credits(players) + Credits);
		}
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(0, "!x03ADMIN!x04 give!x03 %i Credits!x04 to all!x03 Players.", Credits);
				case 2: ColorChat(0, "!x03%s!x04 give!x03 %i Credits!x04 to all!x03 Players.", name, Credits);
			}
	}
	new player = cmd_target(id, arg, 11);
	if(!player) {
		return PLUGIN_HANDLED;
	}
	set_user_credits(player, get_user_credits(player) + Credits);
	switch(get_cvar_num("amx_show_activity")) {
		case 1: ColorChat(player, "!x03ADMIN!x04 give your!x03 %i Credits.", Credits);
			case 2: ColorChat(player, "!x03%s!x04 give your!x03 %i Credits.", name, Credits);
		}
	return PLUGIN_HANDLED;
}

public Reset_Credits(id, level, cid) {
	if(!cmd_access(id, level, cid, 2)) {
		return PLUGIN_HANDLED;
	}
	new arg[23], gplayers[32], num, i, players, name[32];
	get_user_name(id, name, 31);
	read_argv(1, arg, 23);
	if(equali(arg, "@T")) {
		get_players(gplayers, num, "e", "TERRORIST");
		for(i = 0; i < num; i++) {
			players = gplayers[i];
			if(!is_user_connected(players))
				continue;
			set_user_credits(players, 0);
		}
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(0, "!x03ADMIN!x04 reset!x03 Credits!x04 to all!x03 Ts.");
				case 2: ColorChat(0, "!x03%s!x04 reset!x03 Credits!x04 to all!x03 Ts.", name);
			}
	}
	
	else if(equali(arg, "@CT")) {
		get_players(gplayers, num, "e", "CT");
		for(i = 0; i < num; i++) {
			players = gplayers[i];
			if(!is_user_connected(players))
				continue;
			set_user_credits(players, 0);
		}
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(0, "!x03ADMIN!x04 reset!x03 %i Credits!x04 to all!x03 CTs.");
				case 2: ColorChat(0, "!x03%s!x04 reset!x03 %i Credits!x04 to all!x03 CTs.", name);
			}
	}
	if(equali(arg, "@All")) {
		get_players(gplayers, num, "a");
		for(i = 0; i < num; i++) {
			players = gplayers[i];
			if(!is_user_connected(players))
				continue;
			set_user_credits(players, 0);
		}
		switch(get_cvar_num("amx_show_activity")) {
			case 1: ColorChat(0, "!x03ADMIN!x04 reset!x03 Credits!x04 to all!x03 Players.");
				case 2: ColorChat(0, "!x03%s!x04 resetx03 Credits!x04 to all!x03 Players.", name);
			}
	}
	new player = cmd_target(id, arg, 11);
	if(!player) {
		return PLUGIN_HANDLED;
	}
	set_user_credits(player, 0);
	switch(get_cvar_num("amx_show_activity")) {
		case 1: ColorChat(player, "!x03ADMIN!x04 reset your!x03 Credits.");
			case 2: ColorChat(player, "!x03%s!x04 reset your!x03 Credits.", name);
		}
	return PLUGIN_HANDLED;
}

//------| Save Credits |------//
public SaveCredits(id) {
	new Name[32];
	get_user_name(id, Name, 31);
	
	static Data[1024]
	formatex(Data, sizeof(Data) - 1, "^"%i^"", PlayerCredits[id])
	
	new Save[512]
	format(Save, 511, "^"%s^" %s", Name, Data)
	
	new Line[128], Linie, IsPlayer = false, Arg1[32]
	
	new FileOpen = fopen(File, "rt")
	while(!feof(FileOpen)) {
		fgets(FileOpen, Line, 127)
		trim(Line)
		
		parse(Line, Arg1, 31)
		
		if (equali(Arg1, Name)) {
			write_file(File, Save, Linie)
			IsPlayer = true
			break
		}
		
		Linie++
	}
	fclose(FileOpen)
	if (!IsPlayer) {
		write_file(File, Save, -1)
	}
}

//------| Loading Credits |------//
public LoadCredits(id) {
	new Name[32];
	get_user_name(id, Name, 31);
	
	new Line[128], IsPlayer = false, Arg1[32], Arg2[32];
	
	new FileOpen = fopen(File, "rt")
	while(!feof(FileOpen)) {
		fgets(FileOpen, Line, 127)
		trim(Line)
		
		parse(Line, Arg1, 31, Arg2, 31)
		
		if (equali(Arg1, Name)) {
			PlayerCredits[id] = str_to_num(Arg2)
			IsPlayer = true
			break
		}
	}
	fclose(FileOpen)
	
	if (!IsPlayer) {
		PlayerCredits[id] = 1
	}
}

stock ColorChat(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "!x04", "^4");
	replace_all(msg, 190, "!x01", "^1");
	replace_all(msg, 190, "!x03", "^3");
	
	if(id) players[0] = id;
	else get_players(players, count, "ch"); {
		for(new i = 0; i < count; i++) {
			if(is_user_connected(players[i])) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
				write_byte(players[i]);
				write_string(msg);
				message_end();
			}
		}
	} 
}


Bonux Bos fara erori + credite.
Bonus Box care da credite Hp si he-uri. | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <cdt>




#define PLUGIN "Bonus Box"
#define VERSION "1.0"
#define AUTHOR "ONEMDX"


new const item_class_name[] = "dm_item"

new g_models[][] = {"models/cadouct_galben.mdl", "models/cadout_galben.mdl"}

public plugin_precache()
{
	for (new i = 0; i < sizeof g_models; i++)
		precache_model(g_models[i])   
}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_forward(FM_Touch, "fwd_Touch")
	
	register_event("HLTV", "round_start", "a", "1=0", "2=0")
	
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
	
	
}

public fwd_Touch(toucher, touched)
{
	if (!is_user_alive(toucher) || !pev_valid(touched))
		return FMRES_IGNORED
	
	new classname[32]   
	pev(touched, pev_classname, classname, 31)
	if (!equal(classname, item_class_name))
		return FMRES_IGNORED
	
	
	
	give_item(toucher)
	set_pev(touched, pev_effects, EF_NODRAW)
	set_pev(touched, pev_solid, SOLID_NOT)
	
	return FMRES_IGNORED
	
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
	if (!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker)
		return HAM_IGNORED
	
	// Modificat : am scos sansele ca am vazut ca toti vreti la fiecare kill 
	new random = random_num(0,2 )
	
	if (random == 0 || random == 1 || random == 2)
	{
		new origin[3]
		get_user_origin(victim, origin, 0)
		
		addItem(origin)
	}
	
	return HAM_IGNORED
}

public removeEntity(ent)
{
	if (pev_valid(ent))
		engfunc(EngFunc_RemoveEntity, ent)
}

public addItem(origin[3])
{
	new ent = fm_create_entity("info_target")
	set_pev(ent, pev_classname, item_class_name)
	
	engfunc(EngFunc_SetModel,ent, g_models[random_num(0, sizeof g_models - 1)])
	
	set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
	set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
	set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
	engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
	
	set_pev(ent,pev_solid,SOLID_BBOX)
	set_pev(ent,pev_movetype,MOVETYPE_TOSS)
	
	new Float:fOrigin[3]
	IVecFVec(origin, fOrigin)
	set_pev(ent, pev_origin, fOrigin)
	
	set_pev(ent,pev_renderfx,kRenderFxGlowShell)
	
	// Rendere colorate , estetic arata mai bine cu mai multe culori 
	switch(random_num(1,6))
	{
		case 1: set_pev(ent,pev_rendercolor,Float:{0.0,0.0,255.0})
		case 2: set_pev(ent,pev_rendercolor,Float:{0.0,255.0,0.0})
		case 3: set_pev(ent,pev_rendercolor,Float:{255.0,0.0,0.0})
		case 4: set_pev(ent,pev_rendercolor,Float:{255.0,255.0,255.0})
		case 5: set_pev(ent,pev_rendercolor,Float:{0.0,255.0,255.0})
		case 6: set_pev(ent,pev_rendercolor,Float:{255.0,255.0,0.0})
	}
}

public give_item(id)
{
	switch (random_num(0,7)){ 
		case 0:{
			new HP;
			HP = 100;   
			fm_set_user_health(id, get_user_health(id) + HP); 
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + %d Health ",HP); 
		}
		
		case 1:{
			fm_give_item(id,"weapon_hegrenade")
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 1 HE ");
		}
		
		case 2:{
			set_user_credits(id, get_user_credits(id) + 5)	
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 5 CREDITE"); 
                }
		
		case 3:{
			fm_give_item(id, "weapon_smokegrenade")
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 1 SMOKE ");
                }
		
		case 4:{
			set_user_credits(id, get_user_credits(id) + 5)	
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 5 CREDITE");
		}
		
		
                case 5:{
			set_user_credits(id, get_user_credits(id) + 10)	
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 10 CREDITE");
		}

                case 6:{
			set_user_credits(id, get_user_credits(id) + 5)	
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 5 CREDITE");
		}
		case 7:{
			
			set_user_credits(id, get_user_credits(id) + 10)	
			ChatColor(id,"!g* [!teamBOX!g] You receive !team + 10 CREDITE");
			
		}
	}
}

public round_start()
{
	new ent = FM_NULLENT
	static string_class[] = "classname"
	while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, item_class_name))) 
		set_pev(ent, pev_flags, FL_KILLME)
}


stock ChatColor(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)
	
	replace_all(msg, 190, "!g", "^4") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color
	replace_all(msg, 190, "!team", "^3") // Team Color
	replace_all(msg, 190, "!team2", "^0") // Team2 Color
	
	if (id) players[0] = id; else get_players(players, count, "ch")
	{
	for (new i = 0; i < count; i++)
	{
		if (is_user_connected(players[i]))
		{
			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
			write_byte(players[i]);
			write_string(msg);
			message_end();
		}
	}
}
}


Cam astea ar fi, daca mai doriti ceva ce era pe server si am omis, imi dati PM sau ziceti aici. multi dintre voi le voiati, le-am platit ca sa le fac publice..
Imi cer scuze fata de cei ce au muncit sa ma ajute. Dar sv-u l-am inchis. chit ca era 32/32 zi de zi nu merita sa-l tin ON.

P.S: Imi cer scuze de reclama din titlu dar multi stiu sv si doresc pluginurile, si asa sv-u este OFF.


http://www.girlshare.ro/32669254.2 download crossbow si noile arme, restu resurselor le luati de la shopul lui hades.
Last edited by FlyingSnow on 11 Jul 2013, 18:27, edited 1 time in total.
RoyalServer
User avatar
1l13 J.R
Membru, skill +1
Membru, skill +1
Posts: 121
Joined: 25 Jun 2013, 14:59
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 4 times
Been thanked: 1 time
Contact:

11 Jul 2013, 15:02

Ai multumesc :)
http://gamecp.takehost.biz/tracker/?q=2 ... =000Admine moca
ID YAHOO:juravle.ilie
[/b][/size]
User avatar
FlyingSnow
Membru, skill +2
Membru, skill +2
Posts: 825
Joined: 01 Oct 2012, 02:22
Detinator Steam: Da
Detinator server CS: Dap.
SteamID: Nu-i public.
Has thanked: 26 times
Been thanked: 52 times
Contact:

11 Jul 2013, 15:11

Sper sa iti fie de folos.
aSuL-CSBD
Membru, skill 0
Membru, skill 0
Posts: 16
Joined: 10 Jul 2013, 12:31
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 2 times
Contact:

11 Jul 2013, 18:52

Ce sv tau ma ?? De cand si pana cand e al tau ?:)) :)))=))
Crezi ca ma inbunezi cu ceva daca le postezi ? Asta e :)
Si ce ai inchis tu ?? Cum sa il inchizi daca e al meu ? :))

Mor de ras frate :))

Bravo ca le-ai postat multi aveau :) DACA vreti sa faceti ceva cu el nu va sfatuiesc sa o faceti :) La inceput e de treaba ca sa zic asa... dar apoi e o scarba de om :) + El zicea mie sa nu le postez ca nu vrea sa-i ajunga munca pe net :))

Inca o data BRAVO :)
Image

ZOMBIE.CSBLACKDEVIL.COM - ZOMBIE OUTSTANDING / CURAND MODIFICARI + MOD ALIEN BOSS :)
User avatar
PATYA/.#
Membru, skill +1
Membru, skill +1
Posts: 338
Joined: 02 Jul 2013, 09:03
Detinator Steam: Da
Has thanked: 6 times
Been thanked: 14 times

11 Jul 2013, 19:43

aSuL-CSBD wrote:Ce sv tau ma ?? De cand si pana cand e al tau ?:)) :)))=))
Crezi ca ma inbunezi cu ceva daca le postezi ? Asta e :)
Si ce ai inchis tu ?? Cum sa il inchizi daca e al meu ? :))

Mor de ras frate :))

Bravo ca le-ai postat multi aveau :) DACA vreti sa faceti ceva cu el nu va sfatuiesc sa o faceti :) La inceput e de treaba ca sa zic asa... dar apoi e o scarba de om :) + El zicea mie sa nu le postez ca nu vrea sa-i ajunga munca pe net :))

Inca o data BRAVO :)
De ce ai pus si .sma-urile in ftp daca stiai ca nu poti avea incredere in el.. ?
aSuL-CSBD
Membru, skill 0
Membru, skill 0
Posts: 16
Joined: 10 Jul 2013, 12:31
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 2 times
Contact:

11 Jul 2013, 21:21

Mdea, nu gandesti copile :) + invata cei 7ani de acasa:) Cu limbaju asta de taran nu o sa ajungi departe :) Daca ma cobor la nivelul tau de inteligenta "iti cobor toti sfintii si arhanghelii din cer" !:) -; nu as fi vrut sa ma repet dar asta e :)
Putin imi pasa ca ai postat pluginurile, sincer nu imi este "ciuda" dupa cum spui tu :)
Nu vreau sa o dau in off-topic :)
Image

ZOMBIE.CSBLACKDEVIL.COM - ZOMBIE OUTSTANDING / CURAND MODIFICARI + MOD ALIEN BOSS :)
User avatar
luciaus
Membru, skill +1
Membru, skill +1
Posts: 348
Joined: 19 Nov 2012, 22:04
Detinator Steam: Nu
Has thanked: 55 times
Been thanked: 2 times

11 Jul 2013, 21:54

un alt link la modele se poate? numi merge cel dp girlshare
User avatar
FlyingSnow
Membru, skill +2
Membru, skill +2
Posts: 825
Joined: 01 Oct 2012, 02:22
Detinator Steam: Da
Detinator server CS: Dap.
SteamID: Nu-i public.
Has thanked: 26 times
Been thanked: 52 times
Contact:

11 Jul 2013, 22:39

:-? Cauta-le tu pe net.. crossbow si m16 din modul ZM:-? restu armelor le poti lua de la shopul lui hades :D.
aSuL-CSBD
Membru, skill 0
Membru, skill 0
Posts: 16
Joined: 10 Jul 2013, 12:31
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 2 times
Contact:

12 Jul 2013, 08:52

Image

ZOMBIE.CSBLACKDEVIL.COM - ZOMBIE OUTSTANDING / CURAND MODIFICARI + MOD ALIEN BOSS :)
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

12 Jul 2013, 09:51

-x-
Last edited by levin on 16 Apr 2019, 20:17, edited 1 time in total.
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
FlyingSnow
Membru, skill +2
Membru, skill +2
Posts: 825
Joined: 01 Oct 2012, 02:22
Detinator Steam: Da
Detinator server CS: Dap.
SteamID: Nu-i public.
Has thanked: 26 times
Been thanked: 52 times
Contact:

12 Jul 2013, 11:21

Asule daca tot era sv-u tau de ce nu il faci public, include-ul:))?
User avatar
xXxAdyxXx;x
Membru, skill +1
Membru, skill +1
Posts: 448
Joined: 23 Aug 2012, 15:44
Detinator Steam: Da
CS Status: Ma joc !
Detinator server CS: hNs.lunetisitii.ro
SteamID: it_allen90
Location: Suceava/Radauti
Has thanked: 18 times
Been thanked: 32 times
Contact:

12 Jul 2013, 20:01

Alt link pentru modele.. :)
Image
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 10 guests