AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   jetpack (https://forums.alliedmods.net/showthread.php?t=262734)

bakir123 05-11-2015 07:40

jetpack
 
i use it jetpack and i want to drop in the hole and drop with sniper and with surviovr
and who didn`t know what i meaning with drop in the hole::
is mean i can't get rid of jetpack with press G near wall,Gap and hole
and if someone infection me will drop auto
look at photo:
https://fbcdn-sphotos-h-a.akamaihd.n...8fde40a9481053

idon't want jetpack in this place, i don't want to appear the jetpack in this place
PHP Code:

#include <amxmodx>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombie_plague_advance>
#include <colorchat>

// HUD messages
const Float:HUD_EVENT_X = -1.0
const Float:HUD_EVENT_Y 0.17
const Float:HUD_INFECT_X 0.05
const Float:HUD_INFECT_Y 0.45
const Float:HUD_SPECT_X = -1.0
const Float:HUD_SPECT_Y 0.8
const Float:HUD_STATS_X 0.02
const Float:HUD_STATS_Y 0.9

#pragma tabsize 0

#define PLUGINNAME        "[ZP] Extra: Jetpack+Bazooka"
#define VERSION            "1.0"
#define AUTHOR            "HCS"

#define MAX_PLAYERS    32

#define ACCESS_LEVEL    ADMIN_LEVEL_A

#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] = "zombie_plague/rocket_fire.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 frame[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}
}

new 
g_iPlayerPos[MAX_PLAYERS+1]

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_RocketDmgcvar_Dmg_rangecvar_jetpackUpSpeedcvar_jetpackAcrate ,cvar_RocketDelaycvar_RocketSpeedcvar_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"JETPACK_COSTZP_TEAM_HUMAN)
    
register_clcmd("drop","cmdDrop")
        
    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","350.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","1700")
    
cvar_RocketDmg=register_cvar("zp_jp_rocket_damage","950")
    
cvar_Dmg_range=register_cvar("zp_jp_damage_radius","600")    
    
    
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_PlayerPreThink"fm_prethink")
    
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] = 0fly[id] = false;
    }
}

public 
fm_startFrame(){ 

    
gltime get_gametime() 
    static 
id 
    
for (id 1id <= 32id++) 
    { 
       
frame[id]++;

    } 
}

public 
fm_prethink(id) {

    if(
is_user_alive(id))
       
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 || 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)
    }    
    
    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_JUMP && pev(player,pev_button)&IN_DUCK) && !(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(9)
                
write_byte(180)
                
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,EV_INT_movetype,6)
                    
set_pev(playerpev_frame0.9)
                }
                    
                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], fOrigin[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_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMFOLLOW)
        
write_short(rocket)
        
write_short(trail)
        
write_byte(25)
        
write_byte(8)
        
write_byte(255)
        
write_byte(255)
        
write_byte(255)
        
write_byte(200)
        
message_end()

                
message_beginMSG_BROADCASTSVC_TEMPENTITY );
                
write_byteTE_BEAMTORUS );
                
write_coordfOrigin[0]); // Start X
                
write_coordfOrigin[1] ); // Start Y
                
write_coordfOrigin[2]); // Start Z
                
write_coordfOrigin[0] ); // End X
                
write_coordfOrigin[1] ); // End Y
                
write_coordfOrigin[2] + 10); // End Z
                
write_shortflame ); // sprite
                
write_byte); // Starting frame
                
write_byte0  ); // framerate * 0.1
                
write_byte); // life * 0.1
                
write_byte50 ); // width
                
write_byte); // noise
                
write_byte); // color r,g,b
                
write_byte255 ); // color r,g,b
                
write_byte); // color r,g,b
                
write_byte255 ); // brightness
                
write_byte); // scroll speed
                
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 
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"")
        
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]) {
        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/p_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)        
        
        
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] = 
                        g_flyEnergy
[id] = get_pcvar_num(cvar_fly_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(55)
            
write_byte(15)
            
write_byte(0)
            
message_end()

                        
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(65)
            
write_byte(15)
            
write_byte(0)
            
message_end()

                        
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(85)
            
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]+650)
            
write_short(white)
            
write_byte(0)
            
write_byte(1)
            
write_byte(6)
            
write_byte(100)
            
write_byte(1)
            
write_byte(255)
            
write_byte(255)
            
write_byte(255)
            
write_byte(200)
            
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]+650)
            
write_short(white)
            
write_byte(0)
            
write_byte(1)
            
write_byte(6)
            
write_byte(100)
            
write_byte(1)
            
write_byte(255)
            
write_byte(255)
            
write_byte(255)
            
write_byte(200)
            
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]+650)
            
write_short(white)
            
write_byte(0)
            
write_byte(1)
            
write_byte(6)
            
write_byte(100)
            
write_byte(1)
            
write_byte(255)
            
write_byte(255)
            
write_byte(255)
            
write_byte(200)
            
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(playerinfector){
    
    
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)
         new 
name[32]  
         
get_user_name(playername31)  
        
    if (
itemid == g_item_jetpack)
    {
            
set_hudmessage(25516825HUD_SPECT_XHUD_SPECT_Y10.05.01.01.0, -1
                
show_hudmessage(player"%s bought a Jetpack!!"name)
        
ColorChat(playerGREY"^4[ZP]^1 Press ^3-CTRL+SPACE-^1 to fly!")
        
ColorChat(playerGREY"^4[ZP]^1 Press ^3-RIGHT CLICK-^1 to shoot!")
        
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)
    new 
packs,name[32];
    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)
                new 
iPos = ++g_iPlayerPos[id]
                if( 
iPos == sizeof(g_flCoords) )
            {
                
iPos g_iPlayerPos[id] = 0
            
}
                
                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)
                            
ColorChat(idGREY"^4[ZP]^1 Damage to ^4%s^1 ::  ^4%i^1 damage"namefloatround(damage))

                            
set_hudmessage04080Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 00.12.50.020.02, -)
                            
show_hudmessageid"%i"floatround(damage) )
                            
                        }
                        else
                        {
                            
log_kill(id,i,"Jetpack Rocket",0)
                            
zp_set_user_ammo_packs idzp_get_user_ammo_packs id ) + );
                                
                        }
                    }
            }
        }
    }
}

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)
        
client_cmd(victim,"spk fvox/flatline.wav")
        
msg_screen_fade(victim125500115)
        
msg_screen_shakevictim255<<1010<<10255<<10 );
}

stock msg_screen_fade(idholdtimergba

        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("ScreenFade"), {000}, 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 ((
<< 10) * (time)) 
}

public 
msg_screen_shakeid,  Amplitud ,  DuracionFrecuencia  ){
 
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("ScreenShake"), {0,0,0}, id); 
    
write_short(255<<10);
    
write_short(10<<10);
    
write_short(255<<10);
    
message_end() 
 




All times are GMT -4. The time now is 20:19.

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