Linux C4 OFFSET
Prompt please offsets on Linux that the thrown out Bomb C4 was not removed at once from the earth
P.S. On Windows everything is in order
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define STEP 10.0
#define VERTICAL_SPEED 20.0
#define HORISONTAL_SPEED 60.0
enum (+= 1) {
STATUS_NONE = 0,
STATUS_EFFECT,
STATUS_KILL
}
new g_CvarTimeout;
public plugin_init() {
register_plugin("Remove Drop Weapon", "0.3", "GordonFreeman & F@nt0M");
register_forward(FM_SetModel, "FM_SetModel_Pre", 0)
register_forward(FM_SetModel, "CWeaponBox_ItemModel")
RegisterHam(Ham_Think, "item_thighpack", "fw_WeaponBoxThink")
RegisterHam(Ham_Think,"weapon_shield","fw_WeaponBoxThink")
RegisterHam(Ham_Think,"weaponbox","fw_WeaponBoxThink")
g_CvarTimeout = register_cvar("weapon_time", "30.0")
}
public FM_SetModel_Pre(const iEntity)
{
#define m_rgpPlayerItems2 39 // CBasePlayerItem *
new szClassName[32]; pev(iEntity, pev_classname, szClassName, charsmax(szClassName));
if(!equal(szClassName, "weaponbox")) return FMRES_IGNORED;
new pWeapon = get_pdata_cbase(iEntity, m_rgpPlayerItems2, 4);
if(!pev_valid(pWeapon))
{
set_pev(iEntity, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
return FMRES_IGNORED;
}
public CWeaponBox_ItemModel(const iEntity) {
if(!pev_valid(iEntity))
return FMRES_IGNORED;
static szClassName[32]
pev(iEntity, pev_classname, szClassName, charsmax(szClassName))
if(equal(szClassName, "item_thighpack"))
{
set_pev(iEntity, pev_impulse, STATUS_NONE);
set_pev(iEntity, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
else if(equal(szClassName, "weapon_shield"))
{
set_task( 0.1, "ChangeNextThinkTime", iEntity )
}
return FMRES_IGNORED;
}
public ChangeNextThinkTime( const iEntity ) {
if( pev_valid(iEntity) ) {
static szClassName[32]
pev(iEntity, pev_classname, szClassName, charsmax(szClassName))
if(equal(szClassName, "weapon_shield")) {
set_pev(iEntity, pev_impulse, STATUS_NONE);
set_pev(iEntity, pev_nextthink, get_gametime() + get_pcvar_float(g_CvarTimeout));
}
}
}
public fw_WeaponBoxThink(iEntity) {
if (!pev_valid(iEntity)) {
return HAM_IGNORED;
}
switch(pev(iEntity, pev_impulse)) {
case STATUS_NONE:{
set_pev(iEntity, pev_movetype, MOVETYPE_FLY);
set_pev(iEntity, pev_solid, SOLID_NOT);
set_pev(iEntity, pev_rendermode, kRenderTransAlpha);
set_pev(iEntity, pev_renderamt, 100.0);
set_pev(iEntity, pev_velocity, Float:{0.0, 0.0, VERTICAL_SPEED});
set_pev(iEntity, pev_avelocity, Float:{0.0, HORISONTAL_SPEED, 0.0})
set_pev(iEntity, pev_impulse, STATUS_EFFECT);
}
case STATUS_EFFECT: {
if (pev(iEntity, pev_renderamt) > 0.0) {
set_pev(iEntity, pev_renderamt, floatmax(0.0, pev(iEntity, pev_renderamt) - STEP));
} else {
set_pev(iEntity, pev_flags, FL_KILLME);
set_pev(iEntity, pev_impulse, STATUS_KILL);
}
}
}
set_pev(iEntity,pev_nextthink,get_gametime() + 0.1)
return HAM_SUPERCEDE;
}
|