return;
vector locout = self.origin + '0 0 1' * (1 - self.realowner.mins_z - 24);
+ tracebox(locout, self.realowner.mins, self.realowner.maxs, locout, MOVE_NOMONSTERS, self.realowner);
+ locout = trace_endpos;
makevectors(self.realowner.angles);
void nade_monster_boom()
{
- entity e = spawnmonster(self.pokenade_type, 0, self.realowner, self.realowner, self.origin, FALSE, 1);
+ entity e = spawnmonster(self.pokenade_type, 0, self.realowner, self.realowner, self.origin, FALSE, FALSE, 1);
- //e.monster_lifetime = time + autocvar_g_nades_pokenade_monster_lifetime;
+ if(autocvar_g_nades_pokenade_monster_lifetime > 0)
+ e.monster_lifetime = time + autocvar_g_nades_pokenade_monster_lifetime;
e.monster_skill = MONSTER_SKILL_INSANE;
}
void nade_touch()
{
+ if(trace_dphitcontents & (DPCONTENTS_PLAYERCLIP | DPCONTENTS_MONSTERCLIP)) { return; }
PROJECTILE_TOUCH;
//setsize(self, '-2 -2 -2', '2 2 2');
//UpdateCSQCProjectile(self);
_nade.event_damage = nade_damage;
_nade.customizeentityforclient = func_null;
_nade.exteriormodeltoclient = world;
+ _nade.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_PLAYERCLIP | DPCONTENTS_BOTCLIP;
_nade.traileffectnum = 0;
_nade.teleportable = TRUE;
_nade.pushable = TRUE;
{
// somewhat hide the model, but keep the glow
//self.effects = 0;
- //self.alpha = -1;
- return FALSE; // or not
+ if(self.traileffectnum)
+ self.traileffectnum = 0;
+ self.alpha = -1;
}
else
{
//self.effects = EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION;
+ if(!self.traileffectnum)
+ self.traileffectnum = particleeffectnum(Nade_TrailEffect(Nade_ProjectileFromID(self.nade_type, FALSE), self.team));
self.alpha = 1;
}
if (!autocvar_g_nades)
return FALSE; // allow turning them off mid match
- if(forbidWeaponUse())
+ if(forbidWeaponUse(self))
return FALSE;
if (!IS_PLAYER(self))