Thread: [Help / Support] Need help [zp jetpack]
View Single Post
ghost95v
Senior Member
Join Date: Apr 2014
Location: somewhere in universe
Old 10-10-2017 , 17:21   Re: Need help [zp jetpack]
Reply With Quote #2

Try this

PHP 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 firetrailexplodeshockwave

new g_flyEnergy[33], hasjet[33]

new 
g_iPlayerPos[33]

new 
cvar_jetpackcvar_jetpackSpeedcvar_jetpackUpSpeedcvar_jetpackAcrate ,cvar_RocketDelaycvar_RocketSpeedcvar_RocketDmgcvar_Dmg_rangecvar_fly_max_engerycvar_fly_engerycvar_regain_energyg_item_jetpackcvar_cal_timecvar_oneround



new bool:g_bAlive[33]



new const 
Float:g_flCoords[][] = { {0.500.40}, {0.560.44}, {0.600.50}, {0.560.56},

            {
0.500.60}, {0.440.56}, {0.400.50}, {0.440.44} }



#define EFFECT_LENGTH 3 // timpu cat sa tina efectul



public plugin_init() 

{

    
register_plugin(PLUGINNAMEVERSIONAUTHOR)

    

    
g_item_jetpack zp_register_extra_item("Jetpack+Bazooka"32ZP_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")

    

    
RegisterHamHam_Spawn"player""OnSpawn")

    
RegisterHamHam_Killed"player""OnKilled")

    

    
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

{
        
client_cmd(id"bind g drop")
    
fly[id] = false

    rocket
[id] = false

    hasjet
[id] = 0

    g_flyEnergy
[id] = 0

}



public 
client_disconnect(id

{

    
g_bAliveid ] = false



    fly
[id] = false

    rocket
[id] = false

    hasjet
[id] = 0

    g_flyEnergy
[id] = 0

}



public 
OnSpawnid )

{

    if( 
is_user_aliveid ) )

        
g_bAliveid ] = true

}



public 
OnKilledid 

    
g_bAliveid ] = false;



public 
event_round_start()

{

    
remove_jetpacks();

    if (
get_pcvar_num(cvar_oneround) == 1

    {

        for (new 
idid <= 32id++) 

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

    }

}



public 
fm_startFrame()

{

    static 
id;

    
gltime get_gametime()

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

    {

        
jp_forward(id)

    }

}



public 
jp_forward(Player

{    

    if (!
hasjet[Player]||!g_bAlivePlayer ] || (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(Playerpev_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_soundPlayerCHAN_ITEMjetpack_fly1.0ATTN_NORM1PITCH_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_soundPlayerCHAN_ITEMjetpack_blow1.0ATTN_NORM1PITCH_HIGH )

                        
jp_soun[Player] = gltime 1.0

                    
}

                }

            }

            
human_fly(Player)

            
attack(Player)    

        }    

    }

    if((
get_pcvar_num(cvar_jetpack) == && !(pev(Playerpev_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_soundPlayerCHAN_ITEMjetpack_fly1.0ATTN_NORM1PITCH_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_soundPlayerCHAN_ITEMjetpack_blow1.0ATTN_NORM1PITCH_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({02550}, 1Player); // 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({2552550}, 1Player); // 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({2552150}, 2Player);

    }

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

    {

        
Icon_Energy({25500}, 1Player);

    }

    

    return 
FMRES_IGNORED

}



public 
jp_energy(Player

{

    if (!(
pev(Playerpev_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) == && !(pev(Playerpev_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(Playerpev_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], FloatSpeedFloat:JetpackData2[3];



        
pev(Player,pev_velocity,JetpackData);



        if(
pev(Player,pev_button)&IN_FORWARD && !(pev(Playerpev_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_beginMSG_BROADCASTSVC_TEMPENTITY );            

                
write_byteTE_SPRITE );

                
write_coordOrigin] );

                
write_coordOrigin] );

                
write_coordOrigin] );

                
write_shortfire );

                
write_byte);

                
write_byte200 );

                
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
(rocketEV_SZ_classname"zp_jp_rocket")

        
entity_set_model(rocketROCKET_MDL)

        

        
entity_set_size(rocketFloat:{0.00.00.0}, Float:{0.00.00.0})

        
entity_set_int(rocketEV_INT_movetypeMOVETYPE_FLY)

        
entity_set_int(rocketEV_INT_solidSOLID_BBOX)

        

        new 
Float:vSrc[3]

        
entity_get_vector(playerEV_VEC_originvSrc)

        

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

        
VelocityByAim(player64Aim)

        
entity_get_vector(player,EV_VEC_origin,origin)

        

        
vSrc[0] += Aim[0]

        
vSrc[1] += Aim[1]

        
entity_set_origin(rocketvSrc)

        

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

        
VelocityByAim(playerget_pcvar_num(cvar_RocketSpeed), velocity)

        

        
entity_set_vector(rocketEV_VEC_velocityvelocity)

        
vector_to_angle(velocityangles)

        
entity_set_vector(rocketEV_VEC_anglesangles)

        
entity_set_edict(rocket,EV_ENT_owner,player)

        
entity_set_float(rocketEV_FL_takedamage1.0)



        
set_pev(rocketpev_effectsEF_LIGHT)

        

        
message_beginMSG_BROADCASTSVC_TEMPENTITY );

        
write_byteTE_BEAMFOLLOW );

        
write_shortrocket );

        
write_shorttrail );

        
write_byte25 );

        
write_byte);

        
write_byte161 );

        
write_byte161 );

        
write_byte161 );

        
write_byterandom_num150170 ) );

        
message_end( );



        
emit_sound(rocketCHAN_WEAPONROCKET_SOUND1.0ATTN_NORM0PITCH_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(idpev_viewmodel2"models/v_egon.mdl")

            
set_pev(idpev_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(entitychannel, const sample[]) 

{

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

        return 
FMRES_IGNORED;

    

    if( !
g_bAliveentity ] )

        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], modePlayer

{

    
message_begin(MSG_ONE_UNRELIABLEget_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], modePlayer

{

    

    
Icon_Show("item_longjump"colormodePlayer)

}



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_EmitSoundPlayerCHAN_WEAPONgetrocket1.0ATTN_NORM0PITCH_NORM)

        
client_print(Playerprint_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(Player64Aim)

        
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({2552550}, 0Player)

        
Icon_Energy({1281280}, 0Player )

        
Icon_Energy({02550}, 0Player)

        

        
hasjet[Player] = 0

        rocket
[Player] = false

    
}    

}



public 
pfn_touch(ptrptd

{

    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 && 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 
FloatOrigin];

            
pevptrpev_originOrigin );

            
jp_radius_damage(ptr)

            

            
message_beginMSG_BROADCASTSVC_TEMPENTITY );

            
write_byteTE_EXPLOSION );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) );

            
write_shortexplode );

            
write_byterandom_num1525 ) );

            
write_byte15 );

            
write_byte);

            
message_end( );

                

            
message_beginMSG_BROADCASTSVC_TEMPENTITY );

            
write_byteTE_BEAMCYLINDER );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) );

            
write_coordfloatroundOrigin] ) + ( 450 + ( random_num0) * 100 ) ) );

            
write_shortshockwave );

            
write_byte);

            
write_byte);

            
write_byte);

            
write_byterandom_num03  ) * 40 );

            
write_byte);

            
write_byte121 );

            
write_byte121 );

            
write_byte121 );

            
write_byterandom_num150240 ) );

            
write_byte);

            
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(Playerinfector)

{

    
Icon_Energy({02550}, 0Player);

    
cmdDrop(Player);

    
hasjet[Player] = 0;

    
g_flyEnergy[Player] = 0;

    
rocket[Player] = false;

}



public 
zp_extra_item_selected(Playeritemid)

{

    new 
szName32 ];

    
get_user_namePlayerszNamesizeof szName ) -);

        

    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_hudmessage2551195, -1.00.8010.05.01.01.0, -);

        
show_hudmessage0"%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 
133i++) 

    {

        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 idzp_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(0150150Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 02.01.00.10.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(killervictimweapon[], headshot)

{

    
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)

    
ExecuteHamB(Ham_Killedvictimkiller2

    
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)



    

    
message_begin(MSG_BROADCASTget_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(killerkname31)

    
get_user_team(killerkteam9)

    
get_user_authid(killerkauthid31)

 

    
get_user_name(victimvname31)

    
get_user_team(victimvteam9)

    
get_user_authid(victimvauthid31)

        

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

    
knameget_user_userid(killer), kauthidkteam

     
vnameget_user_userid(victim), vauthidvteamweapon)



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

}



stock msg_screen_fadeidholdtimergb)

{

        
message_beginMSG_ONE_UNRELIABLEget_user_msgid"ScreenFade" ), { 00}, id );

        
write_shortseconds_to_unitsholdtime ) );

        
write_shortseconds_to_unitsholdtime ) );

        
write_short);

        
write_byte);

        
write_byte);

        
write_byte);

        
write_byte);

        
message_end( );

}



stock seconds_to_unitstime )

{

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

}  



stock fm_set_user_health(idhealth)

{

    
health set_pev(idpev_healthfloat(health)) : dllfunc(DLLFunc_ClientKillid)

    

    return 
1

}



stock fm_get_user_health(id)

{

    return 
pev(idpev_health)

}



stock fm_set_user_frags(idfrags

{

    
set_pevidpev_fragsfloat(frags))



    return 
1

}  



stock fm_get_user_frags(id)

{

    return 
pev(idpev_frags)


__________________
ghost95v is offline
Send a message via Skype™ to ghost95v