Charger 7:
Code: Select all
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <zombieplague>
new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
new g_event, Float:TargetOrigin[33][3]
new g_has[33], g_clip[33], oldweap[33]
new ammo[33], mode[33], damaged[33], sprite
new charger
public plugin_init()
{
register_plugin("[Weapon]: Charger-7", "1.0", "YunusReyiz")
register_event("CurWeapon","CurrentWeapon","be","1=1")
register_forward(FM_SetModel, "SetModel")
register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
register_forward(FM_PlaybackEvent, "PlaybackEvent")
register_forward(FM_CmdStart, "CmdStart")
RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "player", "TraceAttack")
RegisterHam(Ham_Item_AddToPlayer, "weapon_m249", "AddToPlayer")
RegisterHam(Ham_Item_PostFrame, "weapon_m249", "ItemPostFrame")
RegisterHam(Ham_Weapon_Reload, "weapon_m249", "Reload")
RegisterHam(Ham_Weapon_Reload, "weapon_m249", "Reload_Post", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m249", "PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_m249", "PrimaryAttack_Post", 1)
RegisterHam(Ham_Weapon_WeaponIdle, "weapon_m249", "IdleAnim", 1)
charger = zp_register_extra_item("Charger-7", 40, ZP_TEAM_HUMAN)
//register_clcmd("say c7", "give_weapon")
}
public plugin_precache()
{
precache_model("models/v_charger7.mdl")
precache_model("models/p_charger7.mdl")
precache_model("models/w_charger7.mdl")
precache_sound("weapons/charger7-1.wav")
precache_sound("weapons/charger7-2.wav")
sprite = precache_model("sprites/laserbeam.spr")
register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
}
public TraceAttack(ent, attacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
{
if(!is_user_alive(attacker))
return
new g_currentweapon = get_user_weapon(attacker)
if(g_currentweapon != CSW_M249) return
if(!g_has[attacker]) return
get_tr2(ptr, TR_vecEndPos, TargetOrigin[attacker])
if(ent)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DECAL)
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][0])
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][1])
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][2])
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
write_short(ent)
message_end()
}
else
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][0])
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][1])
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][2])
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
message_end()
}
if(mode[attacker])
{
SetHamParamFloat(3, float(390))
static Float:StartOrigin[3]
get_position(attacker, 40.0, 6.0, -7.0, StartOrigin)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 1, 20, 0, 0, 255, 255, 175, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 2, 20, 0, 0, 225, 225, 150, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 3, 20, 0, 0, 200, 200, 130, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 4, 20, 0, 0, 175, 175, 110, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 5, 20, 0, 0, 150, 150, 90, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 6, 20, 0, 0, 125, 125, 70, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 7, 20, 0, 0, 100, 100, 50, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 8, 20, 0, 0, 75, 75, 40, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 9, 20, 0, 0, 50, 50, 20, 0)
create_beampoints(StartOrigin, TargetOrigin[attacker], sprite, 0, 0, 10, 20, 0, 0, 25, 25, 10, 0)
}
else
{
SetHamParamFloat(3, float(39))
damaged[attacker]++
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_GUNSHOTDECAL)
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][0])
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][1])
engfunc(EngFunc_WriteCoord,TargetOrigin[attacker][2])
write_short(attacker)
write_byte(GUNSHOT_DECALS[random_num (0, sizeof GUNSHOT_DECALS -1)])
message_end()
}
public TakeDamage(victim, inflictor, attacker, Float:damage) if (victim != attacker && is_user_connected(attacker) && get_user_weapon(attacker) == CSW_M249 && g_has[attacker] && mode[attacker] == 0) damaged[attacker]++
public PrecacheEvent_Post(type, const name[]) if(equal("events/m249.sc", name)) g_event = get_orig_retval()
public client_disconnect(id) g_has[id] = false
public zp_extra_item_selected(id, itemid)
{
if(itemid != charger)
return
give_weapon(id)
}
public SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED
static iOwner
iOwner = entity_get_edict(entity, EV_ENT_owner)
if(equal(model, "models/w_m249.mdl"))
{
static iStoredAugID
iStoredAugID = find_ent_by_owner(-1, "weapon_m249", entity)
if(!is_valid_ent(iStoredAugID))
return FMRES_IGNORED
if(g_has[iOwner])
{
entity_set_int(iStoredAugID, EV_INT_impulse, 45488)
g_has[iOwner] = false
entity_set_model(entity, "models/w_charger7.mdl")
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public CmdStart(id, uc_handle, seed)
{
if(!g_has[id])
return
if(!is_user_alive(id))
return
if(get_pdata_int(get_pdata_cbase(id, 373), 43, 4) != CSW_M249 || get_pdata_float(id, 83) > 0.0)
return
new iButtons = get_uc(uc_handle, UC_Buttons)
if(/*!(iButtons & IN_ATTACK) && */(iButtons & IN_ATTACK2))
{
//iButtons &= ~IN_ATTACK2
set_uc(uc_handle, UC_Buttons, iButtons)
if(get_pdata_float(get_pdata_cbase(id, 373), 47, 4) <= 0.0 && ammo[id] > 0)
{
if(get_pdata_int(get_pdata_cbase(id, 373), 51) <= 0 && ammo[id] < 0)
return
set_pdata_float(id, 83, 1.2, 5)
mode[id] = 1
ExecuteHamB(Ham_Weapon_PrimaryAttack, find_ent_by_owner(-1, "weapon_m249", id))
}
}
else if(!(iButtons & IN_ATTACK2) && (iButtons & IN_ATTACK)) mode[id] = 0
}
public give_weapon(id)
{
new iWep2 = give_item(id,"weapon_m249")
if( iWep2 > 0 )
{
cs_set_weapon_ammo(iWep2, 100)
cs_set_user_bpammo (id, CSW_M249, 200)
set_anim(id, 2)
set_pdata_float(id, 83, 1.0, 5)
}
g_has[id] = true
damaged[id] = 0
}
public AddToPlayer(wpn, id)
{
if(!is_valid_ent(wpn) || !is_user_connected(id))
return HAM_IGNORED
if(entity_get_int(wpn, EV_INT_impulse) == 45488)
{
g_has[id] = true
entity_set_int(wpn, EV_INT_impulse, 0)
}
return HAM_IGNORED
}
public IdleAnim(Weapon)
{
new id = get_pdata_cbase(Weapon, 41, 4)
if(!is_user_alive(id) || !g_has[id] || get_user_weapon(id) != CSW_M249)
return HAM_IGNORED;
if(get_pdata_float(Weapon, 48, 4) <= 0.25)
{
if(ammo[id] > 0) set_anim(id, 1)
else if(ammo[id] == 0) set_anim(id, 0)
set_pdata_float(Weapon, 48, 4.0, 4)
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public CurrentWeapon(id) replace_weapon_models(id, read_data(2))
replace_weapon_models(id, weaponid)
{
switch (weaponid)
{
case CSW_M249:
{
if(g_has[id])
{
set_pev(id, pev_viewmodel2, "models/v_charger7.mdl")
set_pev(id, pev_weaponmodel2, "models/p_charger7.mdl")
if(oldweap[id] != CSW_M249)
{
if(ammo[id] > 0) set_anim(id, 9)
else if(ammo[id] == 0) set_anim(id, 8)
set_pdata_float(id, 83, 1.0, 5)
}
}
}
}
oldweap[id] = weaponid
}
public UpdateClientData_Post(Player, SendWeapons, CD_Handle)
{
if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_M249 || !g_has[Player]))
return FMRES_IGNORED
set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
return FMRES_HANDLED
}
public PrimaryAttack(ent)
{
new id = get_pdata_cbase(ent, 41, 4)
if (!g_has[id]) return
}
public PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if ((eventid != g_event))
return FMRES_IGNORED
if (!(1 <= invoker <= get_maxplayers()))
return FMRES_IGNORED
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
return FMRES_SUPERCEDE
}
public PrimaryAttack_Post(ent)
{
new id = get_pdata_cbase(ent, 41, 4)
if(!is_user_alive(id) || !g_has[id])
return
if(damaged[id] >= 6 && ammo[id] < 20)
{
ammo[id]++
damaged[id] = 0
}
if(mode[id] == 1)
{
static fm; fm = fm_find_ent_by_owner(-1, "weapon_m249", id)
if(pev_valid(fm)) cs_set_weapon_ammo(fm, cs_get_weapon_ammo(fm) + 1)
emit_sound(id, CHAN_WEAPON, "weapons/charger7-2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
ammo[id]--
}
else emit_sound(id, CHAN_WEAPON, "weapons/charger7-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
if(ammo[id] > 0) set_anim(id, 3)
else set_anim(id, 2)
}
stock create_beampoints(Float:StartPosition[3], Float:TargetPosition[3], SpritesID, StartFrame, Framerate, Life, LineWidth, Amplitude, Red, Green, Blue, Brightness, Speed)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMPOINTS)
engfunc(EngFunc_WriteCoord, StartPosition[0])
engfunc(EngFunc_WriteCoord, StartPosition[1])
engfunc(EngFunc_WriteCoord, StartPosition[2])
engfunc(EngFunc_WriteCoord, TargetPosition[0])
engfunc(EngFunc_WriteCoord, TargetPosition[1])
engfunc(EngFunc_WriteCoord, TargetPosition[2])
write_short(SpritesID)
write_byte(StartFrame)
write_byte(Framerate)
write_byte(Life)
write_byte(LineWidth)
write_byte(Amplitude)
write_byte(Red)
write_byte(Green)
write_byte(Blue)
write_byte(Brightness)
write_byte(Speed)
message_end()
}
public client_PreThink(id)
{
if(!is_user_alive(id) || !g_has[id] || get_user_weapon(id) != CSW_M249)
return
set_hudmessage(200, 200, 200, 0.45, 0.88, 0, 0.1, 0.1,0.0,0.0)
show_hudmessage(id, "Ammo: %d", ammo[id])
}
stock set_anim(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}
public ItemPostFrame(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has[id])
return HAM_IGNORED
static iClipExtra
iClipExtra = 100
new Float:flNextAttack = get_pdata_float(id, 83, 5)
new iBpAmmo = cs_get_user_bpammo(id, CSW_M249)
new iClip = get_pdata_int(weapon_entity, 51, 4)
new fInReload = get_pdata_int(weapon_entity, 54, 4)
if( fInReload && flNextAttack <= 0.0 )
{
new j = min(iClipExtra - iClip, iBpAmmo)
set_pdata_int(weapon_entity, 51, iClip + j, 4)
cs_set_user_bpammo(id, CSW_M249, iBpAmmo-j)
set_pdata_int(weapon_entity, 54, 0, 4)
fInReload = 0
}
return HAM_IGNORED
}
public Reload(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has[id])
return HAM_IGNORED
static iClipExtra
if(g_has[id])
iClipExtra = 100
g_clip[id] = -1
new iBpAmmo = cs_get_user_bpammo(id, CSW_M249)
new iClip = get_pdata_int(weapon_entity, 51, 4)
if (iBpAmmo <= 0)
return HAM_SUPERCEDE
if (iClip >= iClipExtra)
return HAM_SUPERCEDE
g_clip[id] = iClip
return HAM_IGNORED
}
public Reload_Post(weapon_entity)
{
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED
if (!g_has[id])
return HAM_IGNORED
if (g_clip[id] == -1)
return HAM_IGNORED
set_pdata_int(weapon_entity, 51, g_clip[id], 4)
set_pdata_int(weapon_entity, 54, 1, 4)
if(ammo[id] > 0) set_anim(id, 7)
else if(ammo[id] == 0) set_anim(id, 6)
return HAM_IGNORED
}
stock get_position(id,Float:forw, Float:right, Float:up, Float:vStart[])
{
static Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
pev(id, pev_origin, vOrigin)
pev(id, pev_view_ofs, vUp) //for player
xs_vec_add(vOrigin, vUp, vOrigin)
pev(id, pev_v_angle, vAngle) // if normal entity ,use pev_angles
angle_vector(vAngle, ANGLEVECTOR_FORWARD, vForward) //or use EngFunc_AngleVectors
angle_vector(vAngle, ANGLEVECTOR_RIGHT, vRight)
angle_vector(vAngle, ANGLEVECTOR_UP, vUp)
vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
Code: Select all
/*
[ZP] ExtraItem: Knock Weapon
Plugin by Shidla [SGC]
Credits:
Idea: Koshak | ICQ: 283-361-228 (zombie-mod.ru)
Test: Koshak
Shidla [SGC] | 2011 | ICQ: 312-298-513 | http://Shidla.Gm-Project.NET/ | http://Shidla.QuZ.SU/
1.0 [Final Version]
*/
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>
#include <cstrike>
#include <zombieplague>
#define is_valid_player(%1) (1 <= %1 <= 32)
#define KNOCK_WEAP CSW_XM1014
new CNOC_V_MODEL[64] = "models/zombie_plague/v_knock_weap.mdl";
new CNOC_P_MODEL[64] = "models/zombie_plague/p_knock_weap.mdl";
new weap_push, weap_radius, weap_nofall, weap_fx, weap_iammo, weap_one_round, g_extra_weap;
new lastammo[33], lastweap[33];
new g_Explosion;
new NoFallDamage[33], g_Has_Cnoc_Weapon[33];
public plugin_init()
{
register_plugin("[ZP] Knock Weapon", "1.0", "Emp` | Shidla");
register_cvar("Shidla", "[ZP] Knock Weapon v.1.0", FCVAR_SERVER|FCVAR_SPONLY)
register_cvar("zp_knock_weap", "[ZP] Knock Weapon v.1.0", FCVAR_SERVER|FCVAR_SPONLY)
g_extra_weap = zp_register_extra_item("Cnoc XM1014", 25, ZP_TEAM_HUMAN);
weap_push = register_cvar("zp_weap_knock","800.0");
weap_radius = register_cvar("zp_weap_radius","400.0");
weap_nofall = register_cvar("zp_weap_nofall","1");
weap_fx = register_cvar("zp_weap_fx","3");
weap_iammo = register_cvar("zp_weap_iammo","1");
weap_one_round = register_cvar("zp_weap_oneround","1");
register_event("CurWeapon","make_tracer", "be", "1=1");
register_event("HLTV", "NewRound", "a", "1=0", "2=0");
register_forward(FM_PlayerPreThink,"fw_playerprethink");
register_forward(FM_PlayerPostThink,"fw_playerpostthink");
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled");
}
public plugin_precache()
{
g_Explosion = precache_model("sprites/zerogxplode.spr");
precache_model(CNOC_V_MODEL);
precache_model(CNOC_P_MODEL);
}
public zp_extra_item_selected(id, item)
{
if(item == g_extra_weap)
{
if(g_Has_Cnoc_Weapon[id])
{
client_print(id, print_chat, "[ZP] Already have Cnoc XM1014");
return ZP_PLUGIN_HANDLED;
}
else
{
g_Has_Cnoc_Weapon[id] = true;
fm_give_item(id, "weapon_xm1014")
fm_give_item(id, "ammo_buckshot")
}
}
return PLUGIN_CONTINUE;
}
public make_tracer(id)
{
new weap = read_data(2); // id of the weapon
if(weap == KNOCK_WEAP && is_user_alive(id) && is_valid_player(id) && !zp_get_user_zombie(id) && g_Has_Cnoc_Weapon[id])
{
set_pev(id, pev_viewmodel2, CNOC_V_MODEL);
set_pev(id, pev_weaponmodel2, CNOC_P_MODEL);
}
if(g_Has_Cnoc_Weapon[id] && is_user_alive(id) && is_valid_player(id) && !zp_get_user_zombie(id))
{
new Float:maxboost = get_pcvar_float(weap_push);
if(!maxboost)
return;
new ammo = read_data(3); // ammo left in clip
if(weap == KNOCK_WEAP && is_user_alive(id) && is_valid_player(id) && !zp_get_user_zombie(id))
{
if(lastweap[id] == 0)
lastweap[id] = weap;
if(lastammo[id] > ammo && lastweap[id] == weap)
{
new Vec[3], Float:fVec[3], Float:origin[3];
get_user_origin(id, Vec, 3);
IVecFVec(Vec, fVec);
pev(id, pev_origin, origin);
new Float:dist = get_distance_f(origin, fVec);
new Float:radius = get_pcvar_float(weap_radius);
if(dist <= radius)
{
new Float:boost = maxboost -((maxboost * dist) / radius);
set_velocity_from_origin(id, fVec, boost);
}
new fx = get_pcvar_num(weap_fx);
if(fx & 1)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
write_coord(Vec[0]);
write_coord(Vec[1]);
write_coord(Vec[2]);
write_short(g_Explosion);
write_byte(30);
write_byte(15);
write_byte(0);
message_end();
}
if(fx & 2)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION2);
write_coord(Vec[0]);
write_coord(Vec[1]);
write_coord(Vec[2]);
write_byte(188); // start color
write_byte(10); // num colors
message_end();
}
if(get_pcvar_num(weap_iammo))
{
new wpn[32];
get_weaponname(weap,wpn,31);
if(ammo == 1)
{
new iWPNidx = -1;
while((iWPNidx = fm_find_ent_by_class(iWPNidx, wpn)))
{
if(id == pev(iWPNidx, pev_owner))
{
cs_set_weapon_ammo(iWPNidx, 11);
ammo = 11;
break;
}
}
}
}
}
lastammo[id] = ammo;
lastweap[id] = weap;
}
}
return;
}
public fw_playerprethink(id)
{
NoFallDamage[id] = get_pcvar_num(weap_nofall);
}
public fw_playerpostthink(id)
{
if(NoFallDamage[id])
set_pev(id, pev_watertype, -3);
}
public fw_PlayerKilled(victim, attacker, shouldgib)
{
if(is_user_connected(victim) && is_valid_player(victim))
{
g_Has_Cnoc_Weapon[victim] = false;
}
}
public zp_user_infected_post(id)
{
if(zp_get_user_zombie(id))
{
g_Has_Cnoc_Weapon[id] = false;
}
}
public NewRound()
{
if(get_pcvar_num(weap_one_round))
arrayset(g_Has_Cnoc_Weapon, false, 33);
}
public zp_user_humanized_post(player, survivor)
{
g_Has_Cnoc_Weapon[survivor] = false;
}
/*==========================================*/
/*================== Stocks ==================*/
/*==========================================*/
stock get_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3])
{
new Float:fEntOrigin[3];
pev(ent, pev_origin, fEntOrigin);
// Velocity = Distance / Time
new Float:fDistance[3];
fDistance[0] = fEntOrigin[0] - fOrigin[0];
fDistance[1] = fEntOrigin[1] - fOrigin[1];
fDistance[2] = fEntOrigin[2] - fOrigin[2];
new Float:fTime =(vector_distance(fEntOrigin,fOrigin) / fSpeed);
fVelocity[0] = fDistance[0] / fTime;
fVelocity[1] = fDistance[1] / fTime;
fVelocity[2] = fDistance[2] / fTime;
return(fVelocity[0] && fVelocity[1] && fVelocity[2]);
}
// Sets velocity of an entity(ent) away from origin with speed(speed)
stock set_velocity_from_origin(ent, Float:fOrigin[3], Float:fSpeed)
{
new Float:fVelocity[3];
get_velocity_from_origin(ent, fOrigin, fSpeed, fVelocity)
set_pev(ent, pev_velocity, fVelocity);
return(1);
}