Thx im really getting close, now im getting 3 warnings. I know that warnings normally dont mean much, but this is a tag_mismatch on lines 50,50,51 . I dont know why, I checked everything and it doesnt want to work. Heres my new code:
Code:
////////////////////
#include <amxmodx>
#include <engine>
#include <fun>
////////////////////
#define SPEED 10.0
////////////////////
new Float:PlayerOrigin[3]
new Float:flEyeOrigin[3]
new Float:flVelocity[33][3]
new EyeOrigin[3]
new OwnerID[33]
new RpgID[33]
new framemod = 10
new framecount = 0
new smoke
////////////////////
public plugin_init(){
register_plugin("RPG Rocket","0.1","knekter")
register_concmd("rocket","rocket_init")
}
public plugin_precache(){
precache_model("models/rpgrocket.mdl")
smoke = precache_model("sprites/smoke.spr")
return PLUGIN_CONTINUE
}
public rocket_init(id){
// creates the entity
RpgID[id] = create_entity("info_target")
if(RpgID[id] == 0) return PLUGIN_HANDLED
// gives the entity some traits and values
entity_set_string(RpgID[id],EV_SZ_classname,"RPG Rocket")
entity_set_model(RpgID[id],"models/rpgrocket.mdl")
entity_get_vector(id,EV_VEC_origin,PlayerOrigin)
entity_set_origin(RpgID[id],PlayerOrigin)
entity_set_int(RpgID[id],EV_INT_solid,1)
entity_set_int(RpgID[id],EV_INT_movetype,6)
// sets the rockets owner
OwnerID[id] = entity_set_edict(RpgID[id],EV_ENT_owner,id)
get_user_origin(id,EyeOrigin,3)
new pOrigin[3]
pOrigin[0] = floatround(PlayerOrigin[0])
pOrigin[1] = floatround(PlayerOrigin[1])
pOrigin[2] = floatround(PlayerOrigin[2])
new Float:length = get_distance(EyeOrigin,pOrigin)
for(new b = 0; b < 3; b++){
flEyeOrigin[b] = float(EyeOrigin[b])
}
for(new i = 0; i < 3; i++){
flVelocity[id][i] = (flEyeOrigin[i] - PlayerOrigin[i]) * length / SPEED
}
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(22) // TE_BEAMFOLLOW
write_short(RpgID[id]) // the entity to follow
write_short(smoke) // the sprite
write_byte(2) // life
write_byte(10) // width
write_byte(255) // red
write_byte(0) // green
write_byte(0) // blue
write_byte(255) // brightness
message_end()
return PLUGIN_CONTINUE
}
public server_frame(){
framecount++
if(!(framecount%framemod)){
for(new c = 0; c < 33; c++){
if(!RpgID[c]) continue
entity_set_vector(RpgID[c],EV_VEC_velocity,flVelocity[c])
}
}
return PLUGIN_CONTINUE
}