Thread: [Help / Support] Need help [zp jetpack]
View Single Post
Author Message
Ali0mer
Senior Member
Join Date: Jan 2016
Location: Iraq
Old 10-10-2017 , 16:36   Need help [zp jetpack]
Reply With Quote #1

Hi guys.


I need help i download a plugin (jetpack+bazooka) but it has problem
The problem is when i try to Press "G" It dropped right?
In this plugin is not working this command....
I want it to be dropped when i press "G"


Code
Code:
#include amxmodx

#include engine

#include fakemeta

#include hamsandwich

#include zombie_plague_advance

#include zp50_colorchat



#define PLUGINNAME		"Extra Item Jetpack+Bazooka"

#define VERSION			"3.2"

#define AUTHOR			"B!gBud "



#define TE_EXPLOSION	3

#define TE_BEAMFOLLOW	22

#define TE_BEAMCYLINDER	21



#define JETPACK_COST 30



new ROCKET_MDL[64] = "models/rpgrocket.mdl"

new ROCKET_SOUND[64] = "JetpackBazooka/rocket_fire.wav"

new getrocket[64] = "JetpackBazooka/gun_pickup.wav"

new jetpack_blow[64] = "JetpackBazooka/jetpack_blow.wav"

new jetpack_fly[64] = "JetpackBazooka/jetpack_fly.wav"



new bool:fly[33] = false

new bool:rocket[33] = false

new bool:rksound[33] = false

new bool:shot[33] = false



new Float:gltime = 0.0

new Float:last_Rocket[33] = 0.0

new Float:jp_cal[33] = 0.0

new Float:jp_soun[33] = 0.0

new fire, trail, explode, shockwave

new g_flyEnergy[33], hasjet[33]

new g_iPlayerPos[33]

new cvar_jetpack, cvar_jetpackSpeed, cvar_jetpackUpSpeed, cvar_jetpackAcrate ,cvar_RocketDelay, cvar_RocketSpeed, cvar_RocketDmg, cvar_Dmg_range, cvar_fly_max_engery, cvar_fly_engery, cvar_regain_energy, g_item_jetpack, cvar_cal_time, cvar_oneround



new bool:g_bAlive[33]



new const Float:g_flCoords[][] = { {0.50, 0.40}, {0.56, 0.44}, {0.60, 0.50}, {0.56, 0.56},

			{0.50, 0.60}, {0.44, 0.56}, {0.40, 0.50}, {0.44, 0.44} }



#define EFFECT_LENGTH 3 // timpu cat sa tina efectul



public plugin_init() 

{

	register_plugin(PLUGINNAME, VERSION, AUTHOR)

	

	g_item_jetpack = zp_register_extra_item("Jetpack+Bazooka", 32, ZP_TEAM_HUMAN)

	

	register_clcmd("drop","cmdDrop")

	

	cvar_jetpack = register_cvar("zp_jetpack", "2")

	

	cvar_jetpackSpeed=register_cvar("zp_jp_forward_speed","300.0")

	cvar_jetpackUpSpeed=register_cvar("zp_jp_up_speed","35.0")

	cvar_jetpackAcrate=register_cvar("zp_jp_accelerate","100.0")

	

	cvar_RocketDelay=register_cvar("zp_jp_rocket_delay","15.0")

	cvar_RocketSpeed=register_cvar("zp_jp_rocket_speed","1500")

	cvar_RocketDmg=register_cvar("zp_jp_rocket_damage","1500")

	cvar_Dmg_range=register_cvar("zp_jp_damage_radius","650")

	

	cvar_fly_max_engery = register_cvar("zp_jp_max_engery", "100")

	cvar_fly_engery = register_cvar("zp_jp_engery", "10")

	cvar_regain_energy = register_cvar("zp_jp_regain_energy", "3")

	cvar_cal_time = register_cvar("zp_jp_energy_cal", "1.0")

	cvar_oneround = register_cvar("zp_jp_oneround", "0")

	

	register_event("CurWeapon", "check_models", "be")

	register_event("DeathMsg", "player_die", "a")

	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

	

	RegisterHam( Ham_Spawn, "player", "OnSpawn", 1 )

	RegisterHam( Ham_Killed, "player", "OnKilled", 1 )

	

	register_forward(FM_StartFrame, "fm_startFrame")

	register_forward(FM_EmitSound, "emitsound")

}



public plugin_precache() 

{

	precache_model("models/p_egon.mdl")

	precache_model("models/v_egon.mdl")

	precache_model("models/w_egon.mdl")

	

	precache_model(ROCKET_MDL)

	precache_sound(ROCKET_SOUND)

	precache_sound(getrocket)

	precache_sound(jetpack_fly)

	precache_sound(jetpack_blow)

	

	fire = precache_model( "sprites/xfireball3.spr" )

	trail = precache_model( "sprites/laserbeam.spr" )

	

	explode = precache_model("sprites/zerogxplode.spr") // zeroxplode.spr

	shockwave = precache_model("sprites/shockwave.spr")

}



public client_putinserver(id) 

{

	fly[id] = false

	rocket[id] = false

	hasjet[id] = 0

	g_flyEnergy[id] = 0

}



public client_disconnect(id) 

{

	g_bAlive[ id ] = false



	fly[id] = false

	rocket[id] = false

	hasjet[id] = 0

	g_flyEnergy[id] = 0

}



public OnSpawn( id )

{

	if( is_user_alive( id ) )

		g_bAlive[ id ] = true

}



public OnKilled( id ) 

	g_bAlive[ id ] = false;



public event_round_start()

{

	remove_jetpacks();

	if (get_pcvar_num(cvar_oneround) == 1) 

	{

		for (new id; id <= 32; id++) 

		hasjet[id] = 0, g_flyEnergy[id] = 0, fly[id] = false;

	}

}



public fm_startFrame()

{

	static id;

	gltime = get_gametime()

	for (id = 1; id <= 32; id++)

	{

		jp_forward(id)

	}

}



public jp_forward(Player) 

{	

	if (!hasjet[Player]||!g_bAlive[ Player ] || (zp_get_user_zombie(Player) || zp_get_user_nemesis(Player) || zp_get_user_assassin(Player) || zp_get_user_survivor(Player) || zp_get_user_sniper(Player)))

		return FMRES_IGNORED 	

		

	if(jp_cal[Player] < gltime)

	{

		jp_energy(Player); jp_cal[Player] = gltime + get_pcvar_float(cvar_cal_time)

	}

	

	check_rocket(Player)



	if(pev(Player,pev_button)&IN_ATTACK2)

	{

		attack2(Player)	

	}

	

	if(get_user_weapon(Player) == CSW_KNIFE)

	{

		if(get_pcvar_num(cvar_jetpack) == 1)

		{

			if(!(pev(Player, pev_flags)&FL_ONGROUND) && pev(Player,pev_button)&IN_ATTACK)

			{

				if((g_flyEnergy[Player] > get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[Player] <= get_pcvar_num(cvar_fly_max_engery)))

				{

					if(jp_soun[Player] < gltime)

					{

						emit_sound( Player, CHAN_ITEM, jetpack_fly, 1.0, ATTN_NORM, 1, PITCH_HIGH )

						jp_soun[Player] = gltime + 1.0

					}

				}			

				else if((g_flyEnergy[Player] > 0) && (g_flyEnergy[Player] < get_pcvar_num(cvar_fly_max_engery)*0.3))

				{

					if(jp_soun[Player] < gltime)

					{

						emit_sound( Player, CHAN_ITEM, jetpack_blow, 1.0, ATTN_NORM, 1, PITCH_HIGH )

						jp_soun[Player] = gltime + 1.0

					}

				}

			}

			human_fly(Player)

			attack(Player)	

		}	

	}

	if((get_pcvar_num(cvar_jetpack) == 2 && !(pev(Player, pev_flags)&FL_ONGROUND)) && (pev(Player,pev_button)&IN_JUMP && pev(Player,pev_button)&IN_DUCK))

	{			

		if((g_flyEnergy[Player] > get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[Player] <= get_pcvar_num(cvar_fly_max_engery)))

		{

			if(jp_soun[Player] < gltime){

				emit_sound( Player, CHAN_ITEM, jetpack_fly, 1.0, ATTN_NORM, 1, PITCH_HIGH )

				jp_soun[Player] = gltime + 1.0

			}

		}					

		else if((g_flyEnergy[Player] > 0) && (g_flyEnergy[Player] < get_pcvar_num(cvar_fly_max_engery)*0.3))

		{

			if(jp_soun[Player] < gltime)

			{

				emit_sound( Player, CHAN_ITEM, jetpack_blow, 1.0, ATTN_NORM, 1, PITCH_HIGH )

				jp_soun[Player] = gltime + 1.0

			}

		}

		human_fly(Player)

		attack(Player)

	}

	if((g_flyEnergy[Player] >= get_pcvar_num(cvar_fly_max_engery)*0.8) && (g_flyEnergy[Player] <= get_pcvar_num(cvar_fly_max_engery)))

	{

		Icon_Energy({0, 255, 0}, 1, Player); // Green

	}

	else if((g_flyEnergy[Player] >= get_pcvar_num(cvar_fly_max_engery)*0.5) && (g_flyEnergy[Player] < get_pcvar_num(cvar_fly_max_engery)*0.8))

	{

		Icon_Energy({255, 255, 0}, 1, Player); // yellow

	}

	else if((g_flyEnergy[Player] >= get_pcvar_num(cvar_fly_max_engery)*0.3) && (g_flyEnergy[Player] < get_pcvar_num(cvar_fly_max_engery)*0.5))

	{

		Icon_Energy({255, 215, 0}, 2, Player);

	}

	else if((g_flyEnergy[Player] > 0) && (g_flyEnergy[Player] < get_pcvar_num(cvar_fly_max_engery)*0.3))

	{

		Icon_Energy({255, 0, 0}, 1, Player);

	}

	

	return FMRES_IGNORED

}



public jp_energy(Player) 

{

	if (!(pev(Player, pev_flags)&FL_ONGROUND) && pev(Player,pev_button)&IN_ATTACK)	

	{	

		if(get_user_weapon(Player) == CSW_KNIFE)

		{

			if(g_flyEnergy[Player] > get_pcvar_num(cvar_fly_max_engery)*0.09)

				g_flyEnergy[Player] = g_flyEnergy[Player] - get_pcvar_num(cvar_fly_engery);		

		}

	}

	else if ((get_pcvar_num(cvar_jetpack) == 2 && !(pev(Player, pev_flags)&FL_ONGROUND)) && (pev(Player,pev_button)&IN_JUMP && pev(Player,pev_button)&IN_DUCK))

	{

		if(g_flyEnergy[Player] > get_pcvar_num(cvar_fly_max_engery)*0.09)

			g_flyEnergy[Player] = g_flyEnergy[Player] - get_pcvar_num(cvar_fly_engery);	

	}

		

	if (pev(Player, pev_flags) & FL_ONGROUND)	

		g_flyEnergy[Player] = g_flyEnergy[Player] + get_pcvar_num(cvar_regain_energy);

}



public attack(Player) 

{

	if(fly[Player])

	{	

		static Float:JetpackData[3], Origin[3], Float: Speed, Float:JetpackData2[3];



		pev(Player,pev_velocity,JetpackData);



		if(pev(Player,pev_button)&IN_FORWARD && !(pev(Player, pev_flags) & FL_ONGROUND))

		{

			if(!random_num(0,2)){ //asta va reduce si din lag si scade Reliable Channel Overflow

				get_user_origin(Player,Origin);



				message_begin( MSG_BROADCAST, SVC_TEMPENTITY );			

				write_byte( TE_SPRITE );

				write_coord( Origin[ 0 ] );

				write_coord( Origin[ 1 ] );

				write_coord( Origin[ 2 ] );

				write_short( fire );

				write_byte( 8 );

				write_byte( 200 );

				message_end( );

			}



			Speed=floatsqroot(JetpackData[0]*JetpackData[0]+JetpackData[1]*JetpackData[1])

					

			if(Speed!=0.0)

			{

				set_pev(Player,pev_gaitsequence,0)

				set_pev(Player,pev_sequence,111)

			}

			

			if(Speed<get_pcvar_float(cvar_jetpackSpeed))

				Speed+=get_pcvar_float(cvar_jetpackAcrate)



			pev(Player,pev_angles,JetpackData2)

			JetpackData2[2]=0.0

			

			angle_vector(JetpackData2,ANGLEVECTOR_FORWARD,JetpackData2)

			JetpackData2[0]*=Speed

			JetpackData2[1]*=Speed

			

			JetpackData[0]=JetpackData2[0]

			JetpackData[1]=JetpackData2[1]

		}

		

		if(JetpackData[2]<get_pcvar_float(cvar_jetpackSpeed)&&JetpackData[2]>0.0)

			JetpackData[2]+=get_pcvar_float(cvar_jetpackUpSpeed)

		else if(JetpackData[2]<0.0)

			JetpackData[2]+=(get_pcvar_float(cvar_jetpackUpSpeed)*1.15)

		

		set_pev(Player,pev_velocity,JetpackData)

	}

}



public attack2(player) {

		

	if (rocket[player])

	{

		new rocket = create_entity("info_target")

		if(rocket == 0) return PLUGIN_CONTINUE

		

		entity_set_string(rocket, EV_SZ_classname, "zp_jp_rocket")

		entity_set_model(rocket, ROCKET_MDL)

		

		entity_set_size(rocket, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0})

		entity_set_int(rocket, EV_INT_movetype, MOVETYPE_FLY)

		entity_set_int(rocket, EV_INT_solid, SOLID_BBOX)

		

		new Float:vSrc[3]

		entity_get_vector(player, EV_VEC_origin, vSrc)

		

		new Float:Aim[3],Float:origin[3]

		VelocityByAim(player, 64, Aim)

		entity_get_vector(player,EV_VEC_origin,origin)

		

		vSrc[0] += Aim[0]

		vSrc[1] += Aim[1]

		entity_set_origin(rocket, vSrc)

		

		new Float:velocity[3], Float:angles[3]

		VelocityByAim(player, get_pcvar_num(cvar_RocketSpeed), velocity)

		

		entity_set_vector(rocket, EV_VEC_velocity, velocity)

		vector_to_angle(velocity, angles)

		entity_set_vector(rocket, EV_VEC_angles, angles)

		entity_set_edict(rocket,EV_ENT_owner,player)

		entity_set_float(rocket, EV_FL_takedamage, 1.0)



		set_pev(rocket, pev_effects, EF_LIGHT)

		

		message_begin( MSG_BROADCAST, SVC_TEMPENTITY );

		write_byte( TE_BEAMFOLLOW );

		write_short( rocket );

		write_short( trail );

		write_byte( 25 );

		write_byte( 5 );

		write_byte( 161 );

		write_byte( 161 );

		write_byte( 161 );

		write_byte( random_num( 150, 170 ) );

		message_end( );



		emit_sound(rocket, CHAN_WEAPON, ROCKET_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM)

		

		shot[player] = true

		last_Rocket[player] = gltime + get_pcvar_num(cvar_RocketDelay)

	}

	return PLUGIN_CONTINUE

}



public check_models(id) 

{

	if (zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_assassin(id) || zp_get_user_survivor(id) || zp_get_user_sniper(id))

		return FMRES_IGNORED

	

	if(hasjet[id]) 

	{

		if(get_user_weapon(id) == CSW_KNIFE) 

		{

			set_pev(id, pev_viewmodel2, "models/v_egon.mdl")

			set_pev(id, pev_weaponmodel2, "models/p_egon.mdl")

		}

		else

		{

			return PLUGIN_CONTINUE

		}

		return PLUGIN_CONTINUE

	}

	return PLUGIN_CONTINUE

}



public remove_jetpacks() 

{

	new nextitem  = find_ent_by_class(-1,"zp_jp_jetpack")

	while(nextitem) 

	{

		remove_entity(nextitem)

		nextitem = find_ent_by_class(-1,"zp_jp_jetpack")

	}

	return PLUGIN_CONTINUE

}



public emitsound(entity, channel, const sample[]) 

{

	if( !( 1 <= entity <= 32 ) )

		return FMRES_IGNORED;

	

	if( !g_bAlive[ entity ] )

		return FMRES_IGNORED;

	

	if(hasjet[entity] && get_user_weapon(entity) == CSW_KNIFE) {

		if(equal(sample,"weapons/knife_slash1.wav")) return FMRES_SUPERCEDE

		if(equal(sample,"weapons/knife_slash2.wav")) return FMRES_SUPERCEDE

		

		if(equal(sample,"weapons/knife_deploy1.wav")) return FMRES_SUPERCEDE

		if(equal(sample,"weapons/knife_hitwall1.wav")) return FMRES_SUPERCEDE

		

		if(equal(sample,"weapons/knife_hit1.wav")) return FMRES_SUPERCEDE

		if(equal(sample,"weapons/knife_hit2.wav")) return FMRES_SUPERCEDE

		if(equal(sample,"weapons/knife_hit3.wav")) return FMRES_SUPERCEDE

		if(equal(sample,"weapons/knife_hit4.wav")) return FMRES_SUPERCEDE

		

		if(equal(sample,"weapons/knife_stab.wav")) return FMRES_SUPERCEDE

	}

	

	return FMRES_IGNORED

}



public Icon_Show(icon[], color[3], mode, Player) 

{

	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("StatusIcon"), {0,0,0}, Player);

	write_byte(mode); 	// status (0=hide, 1=show, 2=flash)

	write_string(icon); 	// sprite name

	write_byte(color[0]); 	// red

	write_byte(color[1]); 	// green

	write_byte(color[2]); 	// blue

	message_end();



}



public Icon_Energy(color[3], mode, Player) 

{

	

	Icon_Show("item_longjump", color, mode, Player)

}



public human_fly(Player) 

{

	

	if (g_flyEnergy[Player] <= get_pcvar_num(cvar_fly_max_engery)*0.1)

	{

		jp_off(Player);	

	}

	if (g_flyEnergy[Player] > get_pcvar_num(cvar_fly_max_engery)*0.1)

	{

		jp_on(Player);

	}

}



public jp_on(Player) 

	fly[Player] = true



public jp_off(Player) 

	fly[Player] = false



public check_rocket(Player) 

{	

	if (last_Rocket[Player] > gltime)

	{	

		rk_forbidden(Player)

		rksound[Player] = true

	}

	else

	{	

		if (shot[Player])

		{

			rksound[Player] = false

			shot[Player] = false

		}

		rk_sound(Player)

		rk_allow(Player)

	}

}



public rk_allow(Player) 

	rocket[Player] = true



public rk_forbidden(Player) 

	rocket[Player] = false



public rk_sound(Player) {



	if (!rksound[Player])

	{

		engfunc(EngFunc_EmitSound, Player, CHAN_WEAPON, getrocket, 1.0, ATTN_NORM, 0, PITCH_NORM)

		client_print(Player, print_center, "You can shot with Bazooka NOW!")

		rksound[Player] = true

	}

	else if (rksound[Player])

	{

		

	}

}



public player_die() 

{

	new id = read_data(2)

	if(hasjet[id]) 

	{

		drop_jetpack(id)

		hasjet[id] = 0

		rocket[id] = false

		g_flyEnergy[id] = 0

	}

	

	return PLUGIN_CONTINUE

}



public cmdDrop(id) 

{

	if(hasjet[id]) 

	{

		if(get_user_weapon(id) == CSW_KNIFE) 

		{

			drop_jetpack(id)

			if(!zp_get_user_zombie(id))

			{

				entity_set_string(id,EV_SZ_viewmodel,"models/v_knife.mdl")

				entity_set_string(id,EV_SZ_weaponmodel,"models/p_knife.mdl")

			}

			return PLUGIN_HANDLED

		}

	}

	return PLUGIN_CONTINUE

}



public drop_jetpack(Player) 

{

	if(hasjet[Player]) 

	{

		new Float:Aim[3],Float:origin[3]

		VelocityByAim(Player, 64, Aim)

		entity_get_vector(Player,EV_VEC_origin,origin)

		

		origin[0] += Aim[0]

		origin[1] += Aim[1]

		

		new jetpack = create_entity("info_target")

		entity_set_string(jetpack,EV_SZ_classname,"zp_jp_jetpack")

		entity_set_model(jetpack,"models/w_egon.mdl")	

		

		entity_set_size(jetpack,Float:{-16.0,-16.0,-16.0},Float:{16.0,16.0,16.0})

		entity_set_int(jetpack,EV_INT_solid,1)

		

		entity_set_int(jetpack,EV_INT_movetype,6)

		

		entity_set_vector(jetpack,EV_VEC_origin,origin)

		

		Icon_Energy({255, 255, 0}, 0, Player)

		Icon_Energy({128, 128, 0}, 0, Player )

		Icon_Energy({0, 255, 0}, 0, Player)

		

		hasjet[Player] = 0

		rocket[Player] = false

	}	

}



public pfn_touch(ptr, ptd) 

{

	if(is_valid_ent(ptr)) {

		new classname[32]

		entity_get_string(ptr,EV_SZ_classname,classname,31)

		

		if(equal(classname, "zp_jp_jetpack")) 

		{

			if(is_valid_ent(ptd)) 

			{

				new id = ptd

				if(id > 0 && id < 34) 

				{

					if(!hasjet[id] && !zp_get_user_zombie(id) && g_bAlive[id]) 

					{

						hasjet[id] = 1

						g_flyEnergy[id] = get_pcvar_num(cvar_fly_max_engery)

						rocket[id] = true

						client_cmd(id,"spk items/gunpickup2.wav")

						engclient_cmd(id,"weapon_knife")

						remove_entity(ptr)

					}

				}

			}

		}

		else if(equal(classname, "zp_jp_rocket")) 

		{	

			new Float: Origin[ 3 ];

			pev( ptr, pev_origin, Origin );

			jp_radius_damage(ptr)

			

			message_begin( MSG_BROADCAST, SVC_TEMPENTITY );

			write_byte( TE_EXPLOSION );

			write_coord( floatround( Origin[ 0 ] ) );

			write_coord( floatround( Origin[ 1 ] ) );

			write_coord( floatround( Origin[ 2 ] ) );

			write_short( explode );

			write_byte( random_num( 15, 25 ) );

			write_byte( 15 );

			write_byte( 0 );

			message_end( );

				

			message_begin( MSG_BROADCAST, SVC_TEMPENTITY );

			write_byte( TE_BEAMCYLINDER );

			write_coord( floatround( Origin[ 0 ] ) );

			write_coord( floatround( Origin[ 1 ] ) );

			write_coord( floatround( Origin[ 2 ] ) );

			write_coord( floatround( Origin[ 0 ] ) );

			write_coord( floatround( Origin[ 1 ] ) );

			write_coord( floatround( Origin[ 2 ] ) + ( 450 + ( random_num( 0, 3 ) * 100 ) ) );

			write_short( shockwave );

			write_byte( 0 );

			write_byte( 0 );

			write_byte( 4 );

			write_byte( random_num( 0, 3  ) * 40 );

			write_byte( 0 );

			write_byte( 121 );

			write_byte( 121 );

			write_byte( 121 );

			write_byte( random_num( 150, 240 ) );

			write_byte( 0 );

			message_end( );

			

			if(is_valid_ent(ptd)) 

			{

				new classname2[32]

				entity_get_string(ptd,EV_SZ_classname,classname2,31)

				

				if(equal(classname2,"func_breakable"))

					force_use(ptr,ptd)

			}

			

			remove_entity(ptr)

		}

	}

	return PLUGIN_CONTINUE

}



public zp_user_infected_pre(Player, infector)

{

	Icon_Energy({0, 255, 0}, 0, Player);

	cmdDrop(Player);

	hasjet[Player] = 0;

	g_flyEnergy[Player] = 0;

	rocket[Player] = false;

}



public zp_extra_item_selected(Player, itemid)

{

	new szName[ 32 ];

	get_user_name( Player, szName, sizeof ( szName ) -1 );

		

	if (itemid == g_item_jetpack)

	{

		zp_colored_print(0, "^3%s^1 bought^4 JetPack Bazooka^1 !", szName)



		zp_colored_print(Player, "Press ^3CTRL+SPACE^1 to fly!")

		zp_colored_print(Player, "Press ^3RIGHT CLICK^1 to shoot!")



		set_hudmessage( 255, 119, 5, -1.0, 0.80, 1, 0.0, 5.0, 1.0, 1.0, -1 );

		show_hudmessage( 0, "%s bought JetPack Bazooka!", szName );



		hasjet[Player] = 1

		g_flyEnergy[Player] = get_pcvar_num(cvar_fly_max_engery)

		rocket[Player] = true

		client_cmd(Player,"spk items/gunpickup2.wav")

		engclient_cmd(Player,"weapon_knife")

	}

}



stock jp_radius_damage(entity) 

{

	new id = entity_get_edict(entity,EV_ENT_owner)

	new packs,name[32];

	for(new i = 1; i < 33; i++) 

	{

		if(g_bAlive[i]) 

		{

			new dist = floatround(entity_range(entity,i))

			

			if(dist <= get_pcvar_num(cvar_Dmg_range)) 

			{

				new hp = get_user_health(i)

				new Float:damage = get_pcvar_float(cvar_RocketDmg)-(get_pcvar_float(cvar_RocketDmg)/get_pcvar_float(cvar_Dmg_range))*float(dist)

				

				new Origin[3]

				get_user_origin(i,Origin)

				

				if(zp_get_user_zombie(id) != zp_get_user_zombie(i)) 

				{

					get_user_name(i,name,31);

					if(damage>=800)

						packs = 2;

					else

						packs = 1;

							

					if(hp > damage)

					{

						zp_set_user_ammo_packs ( id, zp_get_user_ammo_packs ( id ) + packs );

						jp_take_damage(i,floatround(damage),Origin,DMG_BLAST)

						

						new iPos = ++g_iPlayerPos[id]

						if (iPos == sizeof(g_flCoords))

						{

							iPos = g_iPlayerPos[id] = 0

						}

						set_hudmessage(0, 150, 150, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 2.0, 1.0, 0.1, 0.1, -1)

						show_hudmessage(id, "%d", floatround(damage))

						zp_colored_print(id, "You make^3 %i^1 damage on^3 %s^1 with Bazooka.", floatround(damage), name);

					}

					else

					{

						log_kill(id,i,"Jetpack Rocket",0)

						zp_colored_print(id, "You killed^3 %s^1 with Bazooka.", name);

					}

				}

			}

		}

	}

}



stock log_kill(killer, victim, weapon[], headshot)

{

	set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)

	ExecuteHamB(Ham_Killed, victim, killer, 2) 

	set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)



	

	message_begin(MSG_BROADCAST, get_user_msgid("DeathMsg"))

	write_byte(killer)

	write_byte(victim)

	write_byte(headshot)

	write_string(weapon)

	message_end()

	

	if(get_user_team(killer)!=get_user_team(victim))

		fm_set_user_frags(killer,fm_get_user_frags(killer) +1)

	if(get_user_team(killer)==get_user_team(victim))

		fm_set_user_frags(killer,fm_get_user_frags(killer) -1)

		

	new kname[32], vname[32], kauthid[32], vauthid[32], kteam[10], vteam[10]



	get_user_name(killer, kname, 31)

	get_user_team(killer, kteam, 9)

	get_user_authid(killer, kauthid, 31)

 

	get_user_name(victim, vname, 31)

	get_user_team(victim, vteam, 9)

	get_user_authid(victim, vauthid, 31)

		

	log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"%s^"", 

	kname, get_user_userid(killer), kauthid, kteam, 

 	vname, get_user_userid(victim), vauthid, vteam, weapon)



 	return PLUGIN_CONTINUE;

}



stock jp_take_damage(victim,damage,origin[3],bit) {

	message_begin(MSG_ONE,get_user_msgid("Damage"),{0,0,0},victim)

	write_byte(21)

	write_byte(20)

	write_long(bit)

	write_coord(origin[0])

	write_coord(origin[1])

	write_coord(origin[2])

	message_end()

	

	fm_set_user_health(victim,fm_get_user_health(victim)-damage)



	client_cmd(victim,"spk fvox/flatline.wav")



	msg_screen_fade(victim, EFFECT_LENGTH, 255, 0, 0, 115);

}



stock msg_screen_fade( id, holdtime, r, g, b, a )

{

        message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ), { 0, 0, 0 }, id );

        write_short( seconds_to_units( holdtime ) );

        write_short( seconds_to_units( holdtime ) );

        write_short( 0 );

        write_byte( r );

        write_byte( g );

        write_byte( b );

        write_byte( a );

        message_end( );

}



stock seconds_to_units( time )

{

        return ( ( 1 << 12 ) * ( time ) )

}  



stock fm_set_user_health(id, health)

{

	health > 0 ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id)

	

	return 1

}



stock fm_get_user_health(id)

{

	return pev(id, pev_health)

}



stock fm_set_user_frags(id, frags) 

{

	set_pev( id, pev_frags, float(frags))



	return 1

}  



stock fm_get_user_frags(id)

{

	return pev(id, pev_frags)

}
Ali0mer is offline
Send a message via Skype™ to Ali0mer