/* Plugin generated by AMXX-Studio */ #include #include #include #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author" static const mrocket[] = "models/rpgrocket.mdl"; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("stozek", "test"); } public plugin_precache() precache_model(mrocket); public test(id){ const Float:fSpeed = 700.0; new Float:fAngles[3]; pev(id,pev_angles,fAngles) new Float:fVeloc[3][3],Float:fTmp[3],Float:fForward[3]; angle_vector(fAngles,ANGLEVECTOR_FORWARD,fForward); xs_vec_normalize(fForward,fForward); xs_vec_mul_scalar(fForward,fSpeed,fForward); xs_vec_copy(fVeloc[1],fForward); xs_vec_normalize(fForward,fForward); angle_vector(fAngles,ANGLEVECTOR_RIGHT,fTmp); xs_vec_normalize(fTmp,fTmp) for(new i = 0;i<3;i++){ fTmp[i] = fForward[i] + ( fTmp[i] * floatsin(30.0,degrees) ) } xs_vec_normalize(fTmp,fTmp); xs_vec_mul_scalar(fTmp,fSpeed,fTmp) xs_vec_copy(fVeloc[0],fTmp); angle_vector(fAngles,ANGLEVECTOR_RIGHT,fTmp); xs_vec_neg(fTmp,fTmp); xs_vec_normalize(fTmp,fTmp) for(new i = 0;i<3;i++){ fTmp[i] = fForward[i] + ( fTmp[i] * floatsin(30.0,degrees) ) } xs_vec_normalize(fTmp,fTmp); xs_vec_mul_scalar(fTmp,fSpeed,fTmp) xs_vec_copy(fVeloc[2],fTmp); MakeEnt(id, fVeloc[0]); MakeEnt(id, fVeloc[1]); MakeEnt(id, fVeloc[2]); } public MakeEnt(id, Float:fVeloc[3]) { if(is_user_alive(id)) { new Float: Origin[3], Float:Angles[3]; pev(id, pev_origin, Origin); pev(id, pev_angles, Angles) new ent = Spawn_Ent("info_target"); set_pev(ent, pev_classname,"Effect_Piesc_Mocy"); set_pev(ent, pev_movetype, MOVETYPE_FLY); engfunc(EngFunc_SetModel, ent, mrocket); set_pev(ent,pev_owner,id); set_pev(ent,pev_solid,SOLID_BBOX); Origin[2] += 8.0; set_pev(ent, pev_origin, Origin); set_pev(ent, pev_angles, Angles) set_pev(ent, pev_velocity, fVeloc); } } stock Spawn_Ent(const classname[]) { new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, classname)) set_pev(ent, pev_origin, {0.0, 0.0, 0.0}) dllfunc(DLLFunc_Spawn, ent) return ent }