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);
{
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;
if (!autocvar_g_nades)
return FALSE; // allow turning them off mid match
- if(forbidWeaponUse())
+ if(forbidWeaponUse(self))
return FALSE;
if (!IS_PLAYER(self))