Raised This Month: $ Target: $400
 0% 

[help] jetpack reload


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
sayf118
Member
Join Date: Jul 2017
Old 07-09-2017 , 17:53   [help] jetpack reload
Reply With Quote #1

please help me i want this:
when i buy a jetpack i want it reloaded
when a new round start i want jetpack reloaded too

PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <zombie_plague_advance>
#include <colorchat>
#include <xs>

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

#define ROCKET_SOUND "zombie_plague/rocket_fire.wav"
#define JETPACK_FLY "zombie_plague/jetpack.wav"
#define JETPACK_SOUND "zombie_plague/jp_blow.wav"

new Float:fDamageDealt[33], Float:g_flyEnergy[33], Float:fLastShot[33]
new 
bool:hasjet[33], bool:g_hamczbots
new flameexplosiontrailshockwaveg_item_jetpackiMsgScreenShakeiMsgScreenFade
new cvar_fuelcvar_RocketDmgcvar_Dmg_rangecvar_RocketDelaycvar_botquota
new g_playername[33][32]

public 
plugin_init()
{
    
register_plugin("[ZP] Extra: Jetpack+Bazooka""1.1""Chuha")
    
register_cvar("zp_jpb_version""1.1"FCVAR_SERVER|FCVAR_SPONLY)
    
    
g_item_jetpack zp_register_extra_item("Jetpack + Bazooka"35ZP_TEAM_HUMAN)
    
    
cvar_fuel=register_cvar("zp_jp_show_fuel","0")    
    
cvar_RocketDelay=register_cvar("zp_jp_rocket_delay","15")
    
cvar_RocketDmg=register_cvar("zp_jp_rocket_damage","1000")
    
cvar_Dmg_range=register_cvar("zp_jp_damage_radius","180")    
    
    
RegisterHam(Ham_Killed"player""OnKilled")
    
RegisterHam(Ham_Item_Deploy"weapon_knife""OnDeployKnifePost"1)
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
register_forward(FM_CmdStart"OnCmdStart")
    
register_forward(FM_ClientUserInfoChanged"fw_ClientUserInfoChanged")
    
register_clcmd("drop","cmdDrop")

    
register_touch("zp_jpb""player""OnTouchJetpack")
    
register_touch("zp_jpb_rocket""*""OnTouchRocket")
    
    
cvar_botquota get_cvar_pointer("bot_quota")
    
iMsgScreenShake get_user_msgid("ScreenShake")
    
iMsgScreenFade get_user_msgid("ScreenFade")


public 
plugin_precache()
{
    
precache_model("models/p_egon.mdl")
    
precache_model("models/v_egon.mdl")
    
precache_model("models/rpgrocket.mdl")
    
precache_sound("items/gunpickup2.wav")
    
precache_sound("fvox/flatline.wav")
    
precache_sound(JETPACK_FLY)
    
precache_sound(JETPACK_SOUND)    
    
precache_sound(ROCKET_SOUND)
    
    
explosion precache_model("sprites/zerogxplode.spr")
    
trail precache_model("sprites/smoke.spr")
    
flame precache_model("sprites/xfireball3.spr")
    
shockwave precache_model("sprites/shockwave.spr")
}

public 
client_putinserver(id)
{
    
hasjet[id] = false
    fLastShot
[id] = 0.0
    g_flyEnergy
[id] = 0.0
    fDamageDealt
[id] = 0.0

    get_user_name
(idg_playername[id], charsmax(g_playername[]))

    if (
is_user_bot(id) && !g_hamczbots && cvar_botquotaset_task(0.1"register_ham_czbots"id)
}

public 
OnDeployKnifePost(ent)
{
    new 
id get_pdata_cbase(ent414)

    if(
pev_valid(id) && hasjet[id]) switchmodel(id)
}

// Register Ham Forwards for CZ bots
public register_ham_czbots(id)
{
    
// Make sure it's a CZ bot and it's still connected
    
if (g_hamczbots || !is_user_connected(id) || !get_pcvar_num(cvar_botquota)) return;
    
    
RegisterHamFromEntity(Ham_Killedid"OnKilled")
    
    
// Ham forwards for CZ bots succesfully registered
    
g_hamczbots true
}

public 
fw_ClientUserInfoChanged(id)
{
    
get_user_name(idg_playername[id], charsmax(g_playername[]))
}

public 
client_disconnect(id)
{
    
drop_jetpack(id)
}

public 
OnKilled(idatkgibs)
{    
    
drop_jetpack(id)
    
g_flyEnergy[id] = 0.0
}

public 
zp_user_infected_pre(playerinfector)
{    
    
drop_jetpack(player)
    
g_flyEnergy[player] = 0.0
}

public 
event_round_start()
{
    
remove_entity_name("zp_jpb")
}

public 
OnCmdStart(player)
{
    if (!
hasjet[player]) return;

    
    static 
button
    button 
entity_get_int(playerEV_INT_button)   

    if (
button IN_ATTACK2)
    {
        static 
Float:ctime
        ctime 
get_gametime()

        if (
fLastShot[player] < ctime)
        {
            
fLastShot[player] = ctime get_pcvar_float(cvar_RocketDelay)

            new 
pEntity create_entity("info_target")
            if (!
is_valid_ent(pEntity)) return;

            
engfunc(EngFunc_SetModelpEntity"models/rpgrocket.mdl")

            
set_pev(pEntitypev_classname"zp_jpb_rocket")
            
set_pev(pEntitypev_movetypeMOVETYPE_FLY)
            
set_pev(pEntitypev_solidSOLID_BBOX)
            
set_pev(pEntitypev_effectsEF_LIGHT)
            
set_pev(pEntitypev_ownerplayer)

            new 
Float:VAngle[3]
            
pev(playerpev_v_angleVAngle)
            
engfunc(EngFunc_MakeVectorsVAngle)

            new 
Float:Forward[3], Float:Velocity[3]
            
global_get(glb_v_forwardForward)
            
Forward[0] *= 64.0
            Forward
[1] *= 64.0
            Forward
[2] *= 64.0
                    
            global_get
(glb_v_forwardVelocity)
            
Velocity[0] *= 1750.0
            Velocity
[1] *= 1750.0
            Velocity
[2] *= 1750.0

            
new Float:Origin[3]
            
pev(playerpev_originOrigin)
            
Origin[0] += Forward[0]
            
Origin[1] += Forward[1]

            
set_pev(pEntitypev_originOrigin)
            
set_pev(pEntitypev_velocityVelocity)

            new 
FloatAngles[3]
            
engfunc(EngFunc_VecToAnglesVelocityAngles)
            
set_pev(pEntitypev_anglesAngles)
        
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMFOLLOW)
            
write_short(pEntity)
            
write_short(trail)
            
write_byte(25)
            
write_byte(5)
            
write_byte(191)
            
write_byte(191)
            
write_byte(191)
            
write_byte(200)
            
message_end()
        
            
emit_sound(pEntityCHAN_WEAPONROCKET_SOUND1.0ATTN_NORM0PITCH_NORM)
        }
    }
    
    if (
button IN_JUMP && button IN_DUCK && (g_flyEnergy[player] > 5.0))
    {
        
g_flyEnergy[player] -= 1.0
        
        
static Float:Velocity[3], Float:Angles[3], Float:Forward[3], Float:dummy1[3], Float:dummy2[3]
        
pev(playerpev_velocityVelocity)
        
pev(playerpev_anglesAngles)
        
Angles[2] = 0.0
        
        engfunc
(EngFunc_AngleVectorsAnglesForwarddummy1dummy2)
        
Angles[0] = Forward[0], Angles[1] = Forward[1], Angles[2] = Forward[2]
        
Angles[0] *= 300.0
        Angles
[1] *= 300.0
        
        Velocity
[0] = Angles[0]
        
Velocity[1] = Angles[1
        
        if (
Velocity[2] < 300.0Velocity[2] += 35.0  
        
        set_pev
(playerpev_velocityVelocity)    
        
        if (
random_num(03) == 0)
        {
            new 
Float:Origin[3]
            
pev(playerpev_originOrigin)
            
            
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYOrigin0)
            
write_byte(TE_SPRITE)
            
engfunc(EngFunc_WriteCoord,Origin[0])
            
engfunc(EngFunc_WriteCoord,Origin[1])
            
engfunc(EngFunc_WriteCoord,Origin[2])
            
write_short(flame)
            
write_byte(8)
            
write_byte(200)
            
message_end()
            
            if (
g_flyEnergy[player] > 80.0emit_sound(playerCHAN_ITEMJETPACK_FLY1.0ATTN_NORM0PITCH_NORM)
            else 
emit_sound(playerCHAN_ITEMJETPACK_SOUND1.0ATTN_NORM0PITCH_NORM)
        }
    }
    
    if (!(
button IN_JUMP && button IN_DUCK) && (g_flyEnergy[player] < 250.0)) g_flyEnergy[player] += 0.5
    
    
if (get_pcvar_num(cvar_fuel) == 1)
    {
        
set_hudmessage(01912550.010.3406.00.10.00.0, -1)
        
show_hudmessage(player"Jetpack's fuel: %.0f"g_flyEnergy[player])
    }    
}

switchmodel(id)
{
    
entity_set_string(idEV_SZ_viewmodel,"models/v_egon.mdl")
    
entity_set_string(idEV_SZ_weaponmodel,"models/p_egon.mdl")
}

public 
cmdDrop(id)
{
    if (
hasjet[id] && get_user_weapon(id) == CSW_KNIFE)
    {
        new 
Float:Aim[3], Float:origin[3]
        
entity_get_vector(idEV_VEC_originorigin)
        
VelocityByAim(id64Aim)
        
        
origin[0] += Aim[0]
        
origin[1] += Aim[1]
        
        new 
Trace 0
        engfunc
(EngFunc_TraceHulloriginoriginIGNORE_MONSTERS IGNORE_GLASSHULL_HUMAN0Trace)
        if (
get_tr2(TraceTR_StartSolid) || get_tr2(TraceTR_AllSolid) || !get_tr2(TraceTR_InOpen)) return PLUGIN_HANDLED;
        else
        {
            
drop_jetpack(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
}

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(jetpackEV_SZ_classname"zp_jpb")
        
entity_set_model(jetpack"models/p_egon.mdl")    
        
        
entity_set_size(jetpackFloat:{-16.0, -16.0, -16.0}, Float:{16.016.016.0})
        
entity_set_int(jetpackEV_INT_solidSOLID_TRIGGER)
        
        
entity_set_int(jetpackEV_INT_movetypeMOVETYPE_TOSS)
        
        
entity_set_vector(jetpackEV_VEC_originorigin)       
        
        
hasjet[player] = false
    
}    
}

public 
OnTouchJetpack(entid)
{
    if (
is_valid_ent(ent) && is_user_alive(id))
    {
        if (
hasjet[id] || zp_get_user_zombie(id)) return PLUGIN_HANDLED;
        
        
hasjet[id] = true
        g_flyEnergy
[id] = (g_flyEnergy[id] > 0.0 g_flyEnergy[id] : 250.0)
        
emit_sound(idCHAN_STATIC"items/gunpickup2.wav"VOL_NORMATTN_NORM0PITCH_NORM)
        
engclient_cmd(id"weapon_knife")
        
switchmodel(id)
        
remove_entity(ent)
    }
    
    return 
PLUGIN_CONTINUE
}

public 
OnTouchRocket(entid)
{
    if (!
is_valid_ent(ent)) return;
    
    new 
Float:atkOrigin[3]
    
entity_get_vector(entEV_VEC_originatkOrigin)

    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordatkOrigin[0])
    
engfunc(EngFunc_WriteCoordatkOrigin[1])
    
engfunc(EngFunc_WriteCoordatkOrigin[2])
    
write_short(explosion)
    
write_byte(31)
    
write_byte(15)
    
write_byte(0)
    
message_end()
            
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordatkOrigin[0])
    
engfunc(EngFunc_WriteCoordatkOrigin[1])
    
engfunc(EngFunc_WriteCoordatkOrigin[2])
    
write_short(explosion)
    
write_byte(30)
    
write_byte(15)
    
write_byte(0)
    
message_end()
            
    for (new 
Iter 0Iter 4Iter++)
    {                
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BEAMCYLINDER)
        
engfunc(EngFunc_WriteCoordatkOrigin[0])
        
engfunc(EngFunc_WriteCoordatkOrigin[1])
        
engfunc(EngFunc_WriteCoordatkOrigin[2])
        
engfunc(EngFunc_WriteCoordatkOrigin[0])
        
engfunc(EngFunc_WriteCoordatkOrigin[1])
        
engfunc(EngFunc_WriteCoordatkOrigin[2] + 350.0 Iter*100.0)
        
write_short(shockwave)
        
write_byte(0)
        
write_byte(0)
        
write_byte(4)
        
write_byte(Iter*40)
        
write_byte(0)
        
write_byte(121)
        
write_byte(121)
        
write_byte(121)
        
write_byte(random_num(150240))
        
write_byte(0)
        
message_end()
    }

    if (
is_valid_ent(id))
    {
        new 
classname[32]
        
entity_get_string(idEV_SZ_classnameclassname31)
                
        if (
equal(classname"func_breakable")) force_use(entid)
    }
    
    new 
attacker entity_get_edict(entEV_ENT_owner)

    if (!
is_user_connected(attacker))
    {
        
remove_entity(ent)
        return;
    }
    
    new 
victim = -1
    
while((victim engfunc(EngFunc_FindEntityInSpherevictimatkOriginget_pcvar_float(cvar_Dmg_range))) != 0)
    {
        if (!
is_user_alive(victim) || !zp_get_user_zombie(victim)) continue;

        new 
Float:damage get_pcvar_float(cvar_RocketDmg) - entity_range(entvictim)*1.5

        
new Float:victimhp entity_get_float(victimEV_FL_health)

        static 
Float:fVelocity[3]
        
pev(victimpev_velocityfVelocity)
        
xs_vec_mul_scalar(fVelocity2.75fVelocity)
        
fVelocity[2] *= 1.75
        set_pev
(victimpev_velocityfVelocity)

        if (
zp_get_user_nemesis(victim) || zp_get_user_assassin(victim)) damage *= 1.25
                    
        client_cmd
(victim"spk fvox/flatline.wav")

        
message_begin(MSG_ONE_UNRELIABLEiMsgScreenShake_victim)
        
write_short(255 << 10)
        
write_short(10 << 10)
        
write_short(255 << 10)
        
message_end()

        
message_begin(MSG_ONE_UNRELIABLEiMsgScreenFade_victim)
        
write_short((<< 10)*3)
        
write_short((<< 10)*3)
        
write_short(0)
        
write_byte(255)
        
write_byte(0)
        
write_byte(0)
        
write_byte(235)
        
message_end()
                    
        if (
victimhp damage)
        {                       
            
ExecuteHam(Ham_TakeDamagevictimentattackerdamageDMG_BLAST)
            
fDamageDealt[attacker] += damage
            
while(fDamageDealt[attacker] > 500)
            {
                new 
packs zp_get_user_ammo_packs(attacker)
                
zp_set_user_ammo_packs(attackerpacks+1)
                
fDamageDealt[attacker] -= 500
            
}
        }
        else
            
ExecuteHamB(Ham_Killedvictimattacker2// set last param to 2 if you want victim to gib    

             
ColorChat(attackerGREY"^x04[ZP]^x01 Damage to ^x04%s^x01 ::^x04 %.0f^x01 damage"g_playername[victim], damage)
    }
    
    
remove_entity(ent)
}

public 
zp_extra_item_selected(playeritemid)
{
         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(0"%s bought a Jetpack!!"name)
                
        if (
hasjet[player]) drop_jetpack(player)
        
ColorChat(0GREY"^x04[ZP]^x03 %s^x01 has purchased a^x04 Jetpack + Bazooka"g_playername[player])
        
ColorChat(playerGREY"^x04[ZP]^x01 Press^x03 CTRL+SPACE^x01 to fly!")
        
ColorChat(playerGREY"^x04[ZP]^x01 Press^x03 RIGHT CLICK^x01 to shoot!")
        
hasjet[player] = true
        g_flyEnergy
[player] = 250.0
        emit_sound
(playerCHAN_STATIC"items/gunpickup2.wav"VOL_NORMATTN_NORM0PITCH_NORM)
        
engclient_cmd(player"weapon_knife")
        
switchmodel(player)
    }

sayf118 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 01:09.


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