Hello, can someone remove the shoot delay for this jetpack+bazzooka plugin please
Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <zp_apocalypse>
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/zp_apocalypse/v_egon.mdl")
precache_model("models/zp_apocalypse/p_egonn.mdl")
precache_model("models/w_egon.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","90")
cvar_speed = register_cvar("vecjp_rocket_speed","1500")
cvar_damage = register_cvar("vecjp_damage","700")
cvar_reload_time = register_cvar("vecjp_reload_time","10.0")
cvar_radius = register_cvar("vecjp_radius","250")
cvar_start_energy = register_cvar("vecjp_start_energy","350")
cvar_remove_energy = register_cvar("vecjp_remove_energy","1")
cvar_heal_energy = register_cvar("vecjp_heal_energy","15")
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","0")
cvar_one_round = register_cvar("vecjp_one_round","0")
jp_itemid = zp_register_extra_item("\r[Item] \wJetPack + Bazooka",get_pcvar_num(cvar_cost),ZP_TEAM_HUMAN)
register_clcmd("hehe","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,"[ZP] You 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/zp_apocalypse/v_egon.mdl")
entity_set_string(id,EV_SZ_weaponmodel,"models/zp_apocalypse/p_egonn.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,"[ZP] 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,"[ZP] 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_egon.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,"[ZP] 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/zp_apocalypse/v_egon.mdl")
entity_set_string(id,EV_SZ_weaponmodel,"models/zp_apocalypse/p_egonn.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/zp_apocalypse/v_egon.mdl")
entity_set_string(id,EV_SZ_weaponmodel,"models/zp_apocalypse/p_egonn.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