Code:
#include <amxmodx>
#include <engine>
new Explosion;
public plugin_init()
{
register_plugin("Test Rocket","1.0","zXCaptainXz")
register_clcmd("create_rocket","create_rocket")
register_touch("amxx_rocket","*","fw_touch")
}
public plugin_precache() {
precache_model("models/rpgrocket.mdl")
Explosion = precache_model("sprites/zerogxplode.spr")
}
public create_rocket(id)
{
new ent = create_entity("info_target")
if(!ent)
return PLUGIN_HANDLED;
entity_set_string(ent, EV_SZ_classname, "amxx_rocket")
entity_set_model(ent, "models/rpgrocket.mdl")
new Float:min[3] = {-1.0, -1.0, -1.0}
new Float:max[3] = {1.0, 1.0, 1.0}
entity_set_vector(ent, EV_VEC_mins,min)
entity_set_vector(ent, EV_VEC_maxs,max)
new Float:origin[3]
entity_get_vector(id, EV_VEC_origin, origin)
new Float:velocity[3]
VelocityByAim(id, 50, velocity)
new Float:angle[3]
vector_to_angle(velocity,angle)
entity_set_origin(ent, origin)
entity_set_vector(ent, EV_VEC_angles,angle)
entity_set_vector(ent, EV_VEC_velocity, velocity)
entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(ent, EV_ENT_owner, id)
entity_set_float(ent, EV_FL_health, 10000.0)
entity_set_float(ent, EV_FL_takedamage, 100.0)
entity_set_float(ent, EV_FL_dmg_take, 100.0)
emit_sound(ent, CHAN_WEAPON, "weapons/rocketfire1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
emit_sound(ent, CHAN_VOICE, "weapons/rocket1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED;
}
public fw_touch(ent, touched)
{
if(!is_valid_ent(touched))
{
client_cmd(0, "stopsound")
remove_entity(ent)
return
}
new Float:origin[3], Float:velocity[3], Float:angle[3]
entity_get_vector(ent, EV_VEC_angles,angle)
entity_get_vector(ent, EV_VEC_origin, origin)
entity_get_vector(ent, EV_VEC_velocity, velocity)
remove_entity(ent)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(3)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_short(Explosion)
write_byte(100)
write_byte(15)
write_byte(0)
message_end()
ent = 0;
ent = create_entity("info_target")
if(!ent)
return;
entity_set_string(ent, EV_SZ_classname, "amxx_rocket")
entity_set_model(ent, "models/rpgrocket.mdl")
new Float:min[3] = {-1.0, -1.0, -1.0}
new Float:max[3] = {1.0, 1.0, 1.0}
entity_set_vector(ent, EV_VEC_mins,min)
entity_set_vector(ent, EV_VEC_maxs,max)
entity_set_origin(ent, origin)
entity_set_vector(ent, EV_VEC_angles,angle)
entity_set_vector(ent, EV_VEC_velocity, velocity)
entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(ent, EV_ENT_owner, touched)
entity_set_float(ent, EV_FL_health, 10000.0)
entity_set_float(ent, EV_FL_takedamage, 100.0)
entity_set_float(ent, EV_FL_dmg_take, 100.0)
}