Raised This Month: $51 Target: $400
 12% 

Help / Support Zp jetpack + bazooka 32


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
NewUse
Member
Join Date: Oct 2016
Old 06-16-2018 , 06:03   Zp jetpack + bazooka 32
Reply With Quote #1

Hi im using original plugin zp_extra_jetpack_bazooka32

the problem is when your energy is about to end you can drop the jp and pick it and its will renewed the energy

sombody maybe know how to fix it and do when you drop the jetpack and pick it again the energy stay same

Coded:
PHP Code:
/*|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*

*. 

* [ZP] Extra Item Jetpack+Bazooka 3.2

*

*|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*

*

* Original Plugin:

*           AMX Jetpack

*            BY

*            (c) Copyright 2005, KleeneX 

*            This file is provided as is (no warranties)

*

* CREDITS:

*             KleeneX   |>>>|  Original Plugin (http://forums.alliedmods.net/showthread.php?p=119727)

*            Bad_Bud   |>>>|  TS_Jetpack (http://forums.alliedmods.net/showthread.php?t=55709&highlight=TS_Jetpack)

*             MeRcyLeZZ |>>>|  bug fix, some code from [ZP] Stamina (http://forums.alliedmods.net/showpost.php?p=675697&postcount=1300)

*              mogel     |>>>|  Icon code form Predator-Mod (http://forums.alliedmods.net/showthread.php?t=67305&highlight=predator)

*

*|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*

*

* Plagued Version 3.2 by B!gBud

*



* Allows Humans buy a Jetpack+Bazooka in Zombie Plague [4.0]



*

* CVARS:    

*    zp_jetpack 2         // 0 = Off / 1 = have Knive & Hold ATTACK / 2 = Hold JUMP and DUCK      

*

*    zp_jp_forward_speed 300 // Set the forward speed(when you fly and press FORWARD)

*    zp_jp_up_speed 35    // Set the UP speed(when you press ATTACK and JUMP up)

*    zp_jp_accelerate 100    // How fast you get to the max ForwardSpeed

*

*    zp_jp_rocket_delay 12    // How long you got to wait to shoot the next rocket(in sec.)

*    zp_jp_rocket_speed 1500 // Set the rocket Speed

*    zp_jp_rocket_damage 1500    // Set the max rocket Damage

*    zp_jp_damage_radius 350 // Set the radius of a rocket explosion

*    

*    zp_jp_max_engery 100     // Set the max Energy for the Jetpack

*    zp_jp_engery 10     // Set how many Energy need the JP to fly (time interval is "zp_jp_energy_cal")

*    zp_jp_regain_energy 3    // Set how fast you get JP_Energy back, when you on the ground (time interval is "zp_jp_energy_cal")

*    zp_jp_energy_cal 1.0     // Set time interval for "zp_jp_engery" & "zp_jp_regain_energy"

*    zp_jp_oneround 0    // 0 = jetpack stay on a new round if someone alive / 1 = jetpack for One Round only

*

*|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|**|_/=\_|*/



#include <amxmodx>

#include <fun>

#include <engine>

#include <fakemeta>

#include <hamsandwich>

#include <zombieplague>



#define PLUGINNAME        "Extra Item Jetpack+Bazooka"

#define VERSION            "3.2"

#define AUTHOR            "B!gBud"



#define ACCESS_LEVEL    ADMIN_LEVEL_A

#define VOTE_ACCESS    ADMIN_CFG



#define TE_EXPLOSION    3

#define TE_BEAMFOLLOW    22

#define TE_BEAMCYLINDER    21



#define JETPACK_COST 30 // set how may ammopacks the Jatpack+Rocket cost



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

new ROCKET_SOUND[64] = "weapons/rocketfire1.wav"

new getrocket[64] = "items/9mmclip2.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 flameexplosiontrailwhite

new g_flyEnergy[33], hasjet[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





public plugin_init() {

    
register_plugin(PLUGINNAMEVERSIONAUTHOR)

    

    
g_item_jetpack zp_register_extra_item("Jetpack+Bazooka (one Round)"JETPACK_COSTZP_TEAM_HUMAN)

    
register_clcmd("drop","cmdDrop")

    
register_clcmd("say /jphelp","cmdHelp",0,": Displays Jetpack help")

    

    new 
ver[64]

    
format(ver,63,"%s v%s",PLUGINNAME,VERSION)

    
register_cvar("zp_jp_version",ver,FCVAR_SERVER)    

    

    
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","12.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","350")

    

    
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")

    

    
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_sound("jetpack.wav")

    
precache_sound("jp_blow.wav")

    

    
precache_model(ROCKET_MDL)

    
precache_sound(ROCKET_SOUND)

    
precache_sound(getrocket)

    

    
explosion precache_model("sprites/zerogxplode.spr")

    
trail precache_model("sprites/smoke.spr")

    
flame precache_model("sprites/xfireball3.spr")

    
white precache_model("sprites/white.spr")

}



public 
client_putinserver(id) {

    
fly[id] = false

    rocket
[id] = false

    hasjet
[id] = 0

    g_flyEnergy
[id] = 0

}



public 
client_disconnect(id) {

    
fly[id] = false

    rocket
[id] = false

    hasjet
[id] = 0

    g_flyEnergy
[id] = 0

}



public 
event_round_start()

{

    
remove_jetpacks();

    if (
get_pcvar_num(cvar_oneround) == 1) {

        for (new 
idid <= 32id++) hasjet[id] = 0g_flyEnergy[id] = 0,    fly[id] = false;

    }

}



public 
fm_startFrame(){

        

    
gltime get_gametime()

    static 
id

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

    {

        
jp_forward(id)

    }

}



public 
jp_forward(player) {

    

    if (!
is_user_alive(player) && (zp_get_user_zombie(player) || zp_get_user_nemesis(player) || zp_get_user_survivor(player)))

        return 
FMRES_IGNORED        

        

    
if (!hasjet[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)

    

    new 
clip,ammo

    
new wpnid get_user_weapon(player,clip,ammo)

    if (
wpnid == 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_sound(player,CHAN_ITEM,"jetpack.wav",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,"jp_blow.wav",1.0,ATTN_NORM,1,PITCH_HIGH)

                            
jp_soun[player] = gltime 1.0

                    
}

                }

            }

            
human_fly(player)

            
attack(player)    

        }

        if((
pev(player,pev_button)&IN_ATTACK2)){

                
attack2(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_sound(player,CHAN_ITEM,"jetpack.wav",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,"jp_blow.wav",1.0,ATTN_NORM,1,PITCH_HIGH)

                
jp_soun[player] = gltime 1.0

            
}

        }

        
human_fly(player)

        
attack(player)

    }

    
// Icon Show system

    /*if (!is_user_alive(player) && zp_get_user_zombie(player) && zp_get_user_nemesis(player) && zp_get_user_survivor(player))    

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

                //Icon_Energy({128, 128, 0}, 0, player);

                //Icon_Energy({255, 255, 0}, 0, 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)    

        {

            
// Get our current velocity        

            
new clip,ammo

            
new wpnid get_user_weapon(player,clip,ammo)

            if (
wpnid == CSW_KNIFE

            {

            
// flying

            
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);     // Increase distance counter        

            
}

        }

        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);     // Increase distance counter    

        
}

        
// Walking/Runnig

        
if (pev(playerpev_flags) & FL_ONGROUND)    

            
g_flyEnergy[player] = g_flyEnergy[player] + get_pcvar_num(cvar_regain_energy);// Decrease distance counter

}



public 
attack(player) {

//code snippa from TS_Jetpack 1.0 - Jetpack plugin for The Specialists.

//http://forums.alliedmods.net/showthread.php?t=55709&highlight=jetpack

//By: Bad_Bud

    
if(fly[player])

    {    

        static 
Float:JetpackData[3]

        
pev(player,pev_velocity,JetpackData)

                    

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

        
VelocityByAim(player10Aim)

        
get_user_origin(player,fOrigin)

        
fOrigin[0] -= floatround(Aim[0])

        
fOrigin[1] -= floatround(Aim[1])

        
fOrigin[2] -= floatround(Aim[2])

        

        

        if((
pev(player,pev_button)&IN_FORWARD) && !(pev(playerpev_flags) & FL_ONGROUND))

            {

                

                
message_begin(MSG_ALL,SVC_TEMPENTITY)

                
write_byte(17

                
write_coord(fOrigin[0])

                
write_coord(fOrigin[1])

                
write_coord(fOrigin[2])

                
write_short(flame)

                
write_byte(10)

                
write_byte(255)

                
message_end()    

                

                static 
Float:Speed

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

                    

                if(
Speed!=0.0)//Makes players only lay down if their speed isn't 0; if they are thrusting forward.

                
{

                    
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)

                        

                static 
Float:JetpackData2[3]

                
pev(player,pev_angles,JetpackData2)

                
JetpackData2[2]=0.0//Remove the Z value/

                    

                
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)//Jetpacks get more power on the way down -- it helps landing.

                
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)

        

        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)

        
write_byte(TE_BEAMFOLLOW)

        
write_short(rocket)

        
write_short(trail)

        
write_byte(25)

        
write_byte(5)

        
write_byte(224)

        
write_byte(224)

        
write_byte(255)

        
write_byte(255)

        
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_survivor(id))

        return 
FMRES_IGNORED

    

    
if(hasjet[id]) {

        new 
clip,ammo

        
new wpnid get_user_weapon(id,clip,ammo)

        

        if ( 
wpnid == CSW_KNIFE ) {

            
switchmodel(id)

        }

        return 
PLUGIN_CONTINUE

    
}

    return 
PLUGIN_CONTINUE

}



public 
switchmodel(id) {

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

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

}



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(
is_user_alive(entity)) {

        new 
clip,ammo

        
new weapon get_user_weapon(entity,clip,ammo)

        

        if(
hasjet[entity] && weapon == 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"[Bazooka] Reloaded & Ready !!!")

        
rksound[player] = true

    
}

    else if (
rksound[player])

    {

        

    }

    

}

        

public 
cmdHelp(id) {

    

    new 
g_max get_pcvar_num(cvar_fly_max_engery)

    new 
g_lost get_pcvar_num(cvar_fly_engery)

    new 
g_back get_pcvar_num(cvar_regain_energy)

    new 
g_dmg get_pcvar_num(cvar_RocketDmg)

    new 
g_delay get_pcvar_num(cvar_RocketDelay

    

    new 
jpmotd[2048], title[64], dpos 0

    format
(title,63,"[ZP] %s ver.%s",PLUGINNAME,VERSION)

    

    

    
dpos += format(jpmotd[dpos],2047-dpos,"<html><head><style type=^"text/css^">pre{color:#FF0505;}body{background:#000000;margin-left:16px;margin-top:1px;}</style></head><pre><body>")

    
dpos += format(jpmotd[dpos],2047-dpos,"<b>%s</b>^n^n",title)

    

    
dpos += format(jpmotd[dpos],2047-dpos,"How to use:^n")

    
dpos += format(jpmotd[dpos],2047-dpos,"=============^n^n")

    if(
get_pcvar_num(cvar_jetpack) == 1) {

        
dpos += format(jpmotd[dpos],2047-dpos,"- choose/have Knive & use/hold ATTACK to fly^n")

        
dpos += format(jpmotd[dpos],2047-dpos,"^n")

        
dpos += format(jpmotd[dpos],2047-dpos,"- choose/have Knive(Bazooka) & use ATTACK2 to shoot a Rocket^n^n")

    }

    else if(
get_pcvar_num(cvar_jetpack) == 2){

        
dpos += format(jpmotd[dpos],2047-dpos,"- use/hold JUMP & DUCK to flyn")

        
dpos += format(jpmotd[dpos],2047-dpos,"^n")

        
dpos += format(jpmotd[dpos],2047-dpos,"choose/have Knive(Bazooka) & use ATTACK2 to shoot a Rocket^n^n")

    }

    
dpos += format(jpmotd[dpos],2047-dpos,"INFO's^n")

    
dpos += format(jpmotd[dpos],2047-dpos,"MAX Energy set to : <b>%i Units</b>^n^n"g_max)

    
dpos += format(jpmotd[dpos],2047-dpos,"Jetpack need %i Units per 1 Sec. to work^n"g_lost)

    
dpos += format(jpmotd[dpos],2047-dpos,"Energy regain %i Units per 1 Sec. (when you are on the ground)^n^n"g_back)

    
dpos += format(jpmotd[dpos],2047-dpos,"MAX Rocket Dmg set to: <b>%i dmg</b>^n",g_dmg)

    
dpos += format(jpmotd[dpos],2047-dpos,"New Rocket comes ervry <b>%i Sec.</b>^n^n"g_delay )

    
dpos += format(jpmotd[dpos],2047-dpos,"-Have Fun!^n")

    



    
show_motd(id,jpmotd,title)

}



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]) {

        new 
clip,ammo

        
new weapon get_user_weapon(id,clip,ammo)

        if(
weapon == 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) && is_user_alive(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")

                        
switchmodel(id)

                        
remove_entity(ptr)

                    }

                }

            }

        }else if(
equal(classname"zp_jp_rocket")) {

            new 
Float:fOrigin[3]

            new 
iOrigin[3]

            
entity_get_vector(ptrEV_VEC_originfOrigin)

            
FVecIVec(fOrigin,iOrigin)

            
jp_radius_damage(ptr)

                

            
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)

            
write_byte(TE_EXPLOSION)

            
write_coord(iOrigin[0])

            
write_coord(iOrigin[1])

            
write_coord(iOrigin[2])

            
write_short(explosion)

            
write_byte(30)

            
write_byte(15)

            
write_byte(0)

            
message_end()

                

            
message_begin(MSG_ALL,SVC_TEMPENTITY,iOrigin)

            
write_byte(TE_BEAMCYLINDER)

            
write_coord(iOrigin[0])

            
write_coord(iOrigin[1])

            
write_coord(iOrigin[2])

            
write_coord(iOrigin[0])

            
write_coord(iOrigin[1])

            
write_coord(iOrigin[2]+200)

            
write_short(white)

            
write_byte(0)

            
write_byte(1)

            
write_byte(6)

            
write_byte(8)

            
write_byte(1)

            
write_byte(255)

            
write_byte(255)

            
write_byte(192)

            
write_byte(128)

            
write_byte(5)

            
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 
clip,ammo

    
new weapon get_user_weapon(player,clip,ammo)

        

    if (
itemid == g_item_jetpack)

    {

        
client_print(playerprint_chat"[ZP] say /jphelp for Display the help page")

        
hasjet[player] = 1

        g_flyEnergy
[player] = get_pcvar_num(cvar_fly_max_engery)

        
rocket[player] = true

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

        if(
weapon == CSW_KNIFE){

            
switchmodel(player)

        }

        else

        {

            
engclient_cmd(player,"weapon_knife"),switchmodel(player)

        }

    }

}



stock jp_radius_damage(entity) {

    new 
id entity_get_edict(entity,EV_ENT_owner)

    for(new 
133i++) {

        if(
is_user_alive(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)) {

                        if(
hp damage)

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

                        else

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

                    }

            }

        }

    }

}



stock log_kill(killervictimweapon[], headshot)

{

// code from MeRcyLeZZ

    
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)

    
ExecuteHamB(Ham_Killedvictimkiller2// set last param to 2 if you want victim to gib

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

        
set_user_frags(killer,get_user_frags(killer) +1)

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

        
set_user_frags(killer,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()

    

    
set_user_health(victim,get_user_health(victim)-damage)


NewUse is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 06-30-2018 , 18:49   Re: Zp jetpack + bazooka 32
Reply With Quote #2

i have a very special jetpack only plugin if u want. u can have the bazooka separately.
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
DoPe
Member
Join Date: Feb 2017
Old 07-19-2018 , 12:24   Re: Zp jetpack + bazooka 32
Reply With Quote #3

Hello, i suggest you to use the following code down, it is MUCH better coded, shows how much energy you have in a hud, when you fly the feelinjg is much better and etc... I really suggest you to use it!
Code:
/*
---------------------------------------------------------
   #  #  #    #===    ###    ##    #
  #    ##     #===   #      #  #    #
   #   #      #===    ###    ##    #
---------------------------------------------------------
[ZP] Extra Item: Jetpack + Bazooka 1.1

Plugin made by <VeCo>
---------------------------------------------------------
If you modify the code, please DO NOT change the author!
---------------------------------------------------------
Contacts:
e-mail: [email protected]
skype: veco_kn
---------------------------------------------------------
Changes log:
 -> v 1.0 = First release!
 -> v 1.1 = Now, the bazooka can break func_breakable
	    entities.
	    Fixed bug with the knife model.
---------------------------------------------------------
Don't forget to visit http://www.amxmodxbg.org :)
---------------------------------------------------------
*/

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <zombieplague>

new sprite_explosion,sprite_beamcylinder, jp_itemid,
cvar_cost,cvar_damage,cvar_speed,cvar_reload_time,cvar_radius,
cvar_start_energy,cvar_remove_energy,cvar_heal_energy,cvar_heal_time,cvar_zvelocity,cvar_aimvelocity,
cvar_can_drop,cvar_one_round,
maxplayers,hudsync, has_jetpack[33],can_shoot[33],energy[33]
public plugin_precache()
{
	precache_model("models/v_jetpack.mdl")
	precache_model("models/p_jetpack.mdl")
	precache_model("models/w_jetpack.mdl")
	
	precache_model("models/rpgrocket.mdl")
	
	sprite_explosion = precache_model("sprites/zerogxplode.spr")
	sprite_beamcylinder = precache_model("sprites/white.spr")
	
	precache_sound("weapons/rocketfire1.wav")
	precache_sound("common/bodydrop2.wav")
	precache_sound("items/gunpickup2.wav")
	precache_sound("jetpack.wav")
}

public plugin_init() {
	register_plugin("[ZP] Extra Item: Jetpack + Bazooka", "1.1", "<VeCo>")
	
	cvar_cost = register_cvar("vecjp_cost","35")
	cvar_speed = register_cvar("vecjp_rocket_speed","800")
	cvar_damage = register_cvar("vecjp_damage","400")
	cvar_reload_time = register_cvar("vecjp_reload_time","10.0")
	cvar_radius = register_cvar("vecjp_radius","150")
	cvar_start_energy = register_cvar("vecjp_start_energy","200")
	cvar_remove_energy = register_cvar("vecjp_remove_energy","1")
	cvar_heal_energy = register_cvar("vecjp_heal_energy","10")
	cvar_heal_time = register_cvar("vecjp_heal_time","1.0")
	cvar_zvelocity = register_cvar("vecjp_zvelocity","300")
	cvar_aimvelocity = register_cvar("vecjp_aimvelocity","300")
	cvar_can_drop = register_cvar("vecjp_can_drop","1")
	cvar_one_round = register_cvar("vecjp_one_round","0")
	
	jp_itemid = zp_register_extra_item("Jetpack + bazooka",get_pcvar_num(cvar_cost),ZP_TEAM_HUMAN)
	
	register_clcmd("drop","drop_jetpack")
	
	RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_knife","shoot_jetpack")
	RegisterHam(Ham_Player_Jump,"player","fly_jetpack")
	
	register_touch("weapon_jetpack","player","get_jetpack")
	register_touch("","info_jetpack_rocket","touch_jetpack")
	
	register_event("DeathMsg","hook_death","a")
	register_event("CurWeapon","event_curweapon","be","1=1","2=29")
	
	register_logevent("round_end",2,"1=Round_End")
	
	maxplayers = get_maxplayers()
	hudsync = CreateHudSyncObj()
}

public zp_extra_item_selected(id,itemid)
{
	if(itemid != jp_itemid) return
	
	if(has_jetpack[id])
	{
		client_print(id,print_chat,"[VECJP] You have already own a jetpack.")
		return
	}
	
	has_jetpack[id] = true
	can_shoot[id] = true
	energy[id] = get_pcvar_num(cvar_start_energy)
	
	emit_sound(id,CHAN_AUTO,"items/gunpickup2.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
	
	client_cmd(id,"weapon_knife")
	
	entity_set_string(id,EV_SZ_viewmodel,"models/v_jetpack.mdl")
	entity_set_string(id,EV_SZ_weaponmodel,"models/p_jetpack.mdl")
	
	set_task(get_pcvar_float(cvar_heal_time),"action_heal_user_jetpack",id)
}

public drop_jetpack(id) if(get_pcvar_num(cvar_can_drop) && get_user_weapon(id) == CSW_KNIFE && has_jetpack[id]) action_drop_user_jetpack(id)

public shoot_jetpack(ent)
{
	new id = entity_get_edict(ent,EV_ENT_owner)
	if(!has_jetpack[id]) return HAM_IGNORED
	
	if(!can_shoot[id])
	{
		client_print(id,print_center,"[VECJP] You can't shoot with the jetpack right now. Please wait...")
		return HAM_IGNORED
	}
	
	action_shoot_user_jetpack(id)
	
	return HAM_IGNORED
}

public fly_jetpack(id)
{
	if(!has_jetpack[id]) return HAM_IGNORED
	
	if(!energy[id])
	{
		client_print(id,print_center,"[VECJP] You don't have enough energy to fly.")
		return HAM_IGNORED
	}
	
	if(get_user_button(id) & IN_DUCK) action_fly_user_jetpack(id)
	
	return HAM_IGNORED
}

public action_heal_user_jetpack(id)
{
	if(!is_user_connected(id) || !has_jetpack[id]) return
	
	if(zp_get_user_zombie(id) || zp_get_user_nemesis(id))
	{
		action_remove_user_jetpack(id)
		return
	}
	
	if(entity_get_int(id,EV_INT_flags) & FL_INWATER)
	{
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_KILLBEAM)
		write_short(id)
		message_end()
	}
	
	if(entity_get_int(id,EV_INT_flags) & FL_ONGROUND)
	{
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_KILLBEAM)
		write_short(id)
		message_end()
		
		if(energy[id] < get_pcvar_num(cvar_start_energy))
		{
			energy[id] += get_pcvar_num(cvar_heal_energy)
			if(energy[id] > get_pcvar_num(cvar_start_energy)) energy[id] = get_pcvar_num(cvar_start_energy)
			
			set_hudmessage(255, 0, 0, -1.0, 0.29, 0, 6.0, 1.0, 0.1, 0.2, -1)
			ShowSyncHudMsg(id,hudsync,"Jetpack Energy: [%i / %i]",energy[id],get_pcvar_num(cvar_start_energy))
		}
	}
	
	set_task(get_pcvar_float(cvar_heal_time),"action_heal_user_jetpack",id)
}

public action_drop_user_jetpack(id)
{
	remove_task(id)
	
	has_jetpack[id] = false
	can_shoot[id] = false
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_KILLBEAM)
	write_short(id)
	message_end()
	
	emit_sound(id,CHAN_AUTO,"common/bodydrop2.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
	
	new ent = create_entity("info_target")
	if(ent)
	{
		new Float:origin[3],Float:velocity[3]
		
		entity_get_vector(id,EV_VEC_origin,origin)
		velocity_by_aim(id,60,velocity)
		
		origin[0] += velocity[0]
		origin[1] += velocity[1]
		
		entity_set_string(ent,EV_SZ_classname,"weapon_jetpack")
		entity_set_model(ent,"models/w_jetpack.mdl")
		
		entity_set_int(ent,EV_INT_solid,SOLID_TRIGGER)
		entity_set_int(ent,EV_INT_movetype,MOVETYPE_TOSS)
		
		entity_set_int(ent,EV_INT_iuser1,energy[id])
		
		entity_set_float(ent,EV_FL_gravity,1.0)
		
		entity_set_origin(ent,origin)
	}
	
	energy[id] = 0
}

public action_shoot_user_jetpack(id)
{
	can_shoot[id] = false
	
	emit_sound(id,CHAN_AUTO,"weapons/rocketfire1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
	
	new ent = create_entity("info_target")
	if(ent)
	{
		new Float:origin[3],Float:velocity[3],Float:angles[3]
		
		entity_get_vector(id,EV_VEC_origin,origin)
		velocity_by_aim(id,60,velocity)
		
		origin[0] += velocity[0]
		origin[1] += velocity[1]
		
		velocity[0] = 0.0
		velocity[1] = 0.0
		
		velocity_by_aim(id,get_pcvar_num(cvar_speed),velocity)
		
		entity_set_string(ent,EV_SZ_classname,"info_jetpack_rocket")
		entity_set_model(ent,"models/rpgrocket.mdl")
		
		entity_set_int(ent,EV_INT_solid,SOLID_BBOX)
		entity_set_int(ent,EV_INT_movetype,MOVETYPE_FLY)
		
		entity_set_size(ent,Float:{-0.5,-0.5,-0.5},Float:{0.5,0.5,0.5})
		
		entity_set_vector(ent,EV_VEC_velocity,velocity)
		
		vector_to_angle(velocity,angles)
		entity_set_vector(ent,EV_VEC_angles,angles)
		
		entity_set_edict(ent,EV_ENT_owner,id)
		
		entity_set_int(ent,EV_INT_effects,entity_get_int(ent,EV_INT_effects) | EF_LIGHT)
		
		entity_set_origin(ent,origin)
		
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_BEAMFOLLOW)
		write_short(ent)
		write_short(sprite_beamcylinder)
		write_byte(30)
		write_byte(5)
		write_byte(255)
		write_byte(255)
		write_byte(255)
		write_byte(140)
		message_end()
	}
	
	set_task(get_pcvar_float(cvar_reload_time),"action_reload_user_jetpack",id)
}

public action_fly_user_jetpack(id)
{
	new Float:velocity[3]
	velocity_by_aim(id,get_pcvar_num(cvar_aimvelocity),velocity)
	velocity[2] += float(get_pcvar_num(cvar_zvelocity))
	entity_set_vector(id,EV_VEC_velocity,velocity)
	
	energy[id] -= get_pcvar_num(cvar_remove_energy)
	if(energy[id] < 1) energy[id] = 0
	
	set_hudmessage(255, 0, 0, -1.0, 0.29, 0, 6.0, 1.0, 0.1, 0.2, -1)
	ShowSyncHudMsg(id,hudsync,"Jetpack Energy: [%i / %i]",energy[id],get_pcvar_num(cvar_start_energy))
	
	emit_sound(id,CHAN_AUTO,"jetpack.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_KILLBEAM)
	write_short(id)
	message_end()
	
	if(entity_get_int(id,EV_INT_flags) & FL_INWATER) return
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(TE_BEAMFOLLOW)
	write_short(id)
	write_short(sprite_beamcylinder)
	write_byte(25)
	write_byte(10)
	write_byte(255)
	write_byte(255)
	write_byte(255)
	write_byte(175)
	message_end()
}

public action_reload_user_jetpack(id)
{
	if(!is_user_connected(id) || !has_jetpack[id]) return
	can_shoot[id] = true
	
	client_print(id,print_center,"[VECJP] Your jetpack has been reloaded. Now you can shoot again!")
}

public get_jetpack(ent,id)
{
	if(has_jetpack[id] || zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return
	
	remove_task(id)
	
	has_jetpack[id] = true
	can_shoot[id] = false
	energy[id] = entity_get_int(ent,EV_INT_iuser1)
	
	emit_sound(id,CHAN_AUTO,"items/gunpickup2.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)
	
	client_cmd(id,"weapon_knife")
	
	entity_set_string(id,EV_SZ_viewmodel,"models/v_jetpack.mdl")
	entity_set_string(id,EV_SZ_weaponmodel,"models/p_jetpack.mdl")
	
	set_task(get_pcvar_float(cvar_reload_time),"action_reload_user_jetpack",id)
	set_task(get_pcvar_float(cvar_heal_time),"action_heal_user_jetpack",id)
	
	remove_entity(ent)
}

public touch_jetpack(world,ent)
{
	if(!is_valid_ent(ent)) return
	
	new Float:origin[3], origin_int[3], owner = entity_get_edict(ent,EV_ENT_owner)
	entity_get_vector(ent,EV_VEC_origin,origin)
	
	FVecIVec(origin,origin_int)
	
	new id = -1
	while((id = find_ent_in_sphere(id,origin,float(get_pcvar_num(cvar_radius)))) != 0)
	{
		if(!is_user_connected(owner)) break
		
		if(1 <= id <= maxplayers)
		{
			if(!zp_get_user_zombie(id) && !zp_get_user_nemesis(id)) continue
			ExecuteHamB(Ham_TakeDamage,id, owner,owner, float(get_pcvar_num(cvar_damage)), DMG_ALWAYSGIB)
		} else {
			if(!is_valid_ent(id)) continue
			
			new classname[15]
			entity_get_string(id,EV_SZ_classname,classname,14)
			
			if(!equal(classname,"func_breakable")) continue
			
			ExecuteHamB(Ham_TakeDamage,id, owner,owner, float(get_pcvar_num(cvar_damage)), DMG_ALWAYSGIB)
		}
	}
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY,origin_int)
	write_byte(TE_EXPLOSION)
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2])
	write_short(sprite_explosion)
	write_byte(floatround(get_pcvar_num(cvar_radius) * 0.5))
	write_byte(10)
	write_byte(0)
	message_end()
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY,origin_int)
	write_byte(TE_DLIGHT)
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2])
	write_byte(floatround(get_pcvar_num(cvar_radius) * 0.25))
	write_byte(200)
	write_byte(145)
	write_byte(0)
	write_byte(16)
	write_byte(32)
	message_end()
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY,origin_int)
	write_byte(TE_BEAMCYLINDER)
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2])
	write_coord(origin_int[0])
	write_coord(origin_int[1])
	write_coord(origin_int[2] + get_pcvar_num(cvar_radius))
	write_short(sprite_beamcylinder)
	write_byte(0)
	write_byte(0)
	write_byte(10)
	write_byte(50)
	write_byte(0)
	write_byte(255)
	write_byte(255)
	write_byte(255)
	write_byte(160)
	write_byte(0)
	message_end()
	
	remove_entity(ent)
}

public hook_death()
{
	new id = read_data(2)
	action_remove_user_jetpack(id)
}

public action_remove_user_jetpack(id)
{
	if(get_pcvar_num(cvar_can_drop))
	{
		if(has_jetpack[id] && get_user_weapon(id) == CSW_KNIFE) action_drop_user_jetpack(id)
		
		has_jetpack[id] = false
		can_shoot[id] = false
		energy[id] = 0
		
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_KILLBEAM)
		write_short(id)
		message_end()
	} else {
		has_jetpack[id] = false
		can_shoot[id] = false
		energy[id] = 0
	}
}

public event_curweapon(id)
{
	if(has_jetpack[id] && !zp_get_user_zombie(id))
	{
		entity_set_string(id,EV_SZ_viewmodel,"models/v_jetpack.mdl")
		entity_set_string(id,EV_SZ_weaponmodel,"models/p_jetpack.mdl")
	}
}

public round_end()
{
	remove_entity_name("weapon_jetpack")
	
	if(get_pcvar_num(cvar_one_round))
	{
		for(new i=1;i<maxplayers;i++)
		{
			if(is_user_connected(i))
			{
				has_jetpack[i] = false
				can_shoot[i] = false
				energy[i] = 0
			}
		}
	}
}

public client_connect(id) has_jetpack[id] = false
public client_disconnect(id) has_jetpack[id] = false
All you have to do is to enter the code and edit the models to what models you have, enjoy!
DoPe is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:11.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode