is there a tut or somthing like that i can change the weapons? i mean for example give a big explosion to a weapon or change the effects. any thing like weaponmod weapons. like this effect.
PHP Code:
#include <amxmodx>
#include <fakemeta>
new P_MODEL[] = "models/p_rpistol.mdl";
new V_MODEL[] = "models/v_rpistol.mdl";
new W_MODEL[] = "models/w_rpistol.mdl";
new RPROCKET_MODEL[] = "models/rpgrocket.mdl"
new RPROCKET_SOUND[] = "weapons/rp_shot1.wav"
new s_RELOAD_1[] = "weapons/rp_reload.wav";
#define RELOAD_TIME 2.0
#define REFIRE1_RATE 3.0
#define RPROCKET_SPEED 2000
#define RPROCKET_RADIUS 200.0
#define RPROCKET_DAMAGE 150.5
enum
{
anim_idle1,
anim_idle2,
anim_idle3,
anim_fire1,
anim_fire2,
anim_reload,
anim_draw,
anim_holster,
anim_reload2
}
new g_wpnid;
new g_trail, g_explosion;
public plugin_precache()
{
precache_model(P_MODEL);
precache_model(V_MODEL);
precache_model(W_MODEL);
precache_sound(s_RELOAD_1);
precache_model(RPROCKET_MODEL)
precache_sound(RPROCKET_SOUND)
g_trail = precache_model("sprites/zbeam2.spr")
g_explosion = precache_model("sprites/gwave1.spr")
}
public plugin_init()
{
register_plugin("lol", "1", "lol");
register_forward(FM_Touch, "fwd_Touch")
}
stock vec_to_angle(Float:vector[3], Float:output[3])
{
new Float:angles[3]
engfunc(EngFunc_VecToAngles, vector, angles)
output[0] = angles[0]
output[1] = angles[1]
output[2] = angles[2]
}
public ev_attack1(id)
{
new g_weapon_speed = get_user_weapon(id, _, _);
if(g_weapon_speed && CSW_SCOUT)
{
new rocket = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
set_pev(rocket, pev_classname, "rp_rocket")
engfunc(EngFunc_SetModel, rocket, RPROCKET_MODEL)
set_pev(rocket, pev_owner, id)
set_pev(rocket, pev_movetype, MOVETYPE_FLY)
set_pev(rocket, pev_solid, SOLID_BBOX)
set_pev(rocket, pev_mins, Float:{-1.0, -1.0, -1.0})
set_pev(rocket, pev_maxs, Float:{1.0, 1.0, 1.0})
new Float:fStart[3]
set_pev(rocket, pev_origin, fStart)
new Float:fVel[3]
velocity_by_aim(id, RPROCKET_SPEED, fVel)
set_pev(rocket, pev_velocity, fVel)
new Float:fAngles[3]
vec_to_angle(fVel, fAngles)
set_pev(rocket, pev_angles, fAngles)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW)
write_short(rocket)
write_short(g_trail)
write_byte(25)
write_byte(5)
write_byte(224)
write_byte(225)
write_byte(255)
write_byte(255)
message_end()
emit_sound(rocket, CHAN_WEAPON, RPROCKET_SOUND, 1.0, ATTN_NORM, 0, PITCH_NORM);
return PLUGIN_CONTINUE
}
}
public fwd_Touch(ptr, ptd)
{
if(pev_valid(ptr))
{
static classname[32];
pev(ptr, pev_classname, classname, 31);
new Float:fOrigin[3];
pev(ptr, pev_origin, fOrigin);
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, fOrigin, 0);
write_byte(TE_EXPLOSION);
engfunc(EngFunc_WriteCoord, fOrigin[0]);
engfunc(EngFunc_WriteCoord, fOrigin[1]);
engfunc(EngFunc_WriteCoord, fOrigin[2]);
write_short(g_explosion);
write_byte(30);
write_byte(15);
write_byte(0);
message_end();
}
}