These are my 2 options .-.
PHP Code:
stock bool:player_in_duct(id)
{
new Float:origin[3]
pev(id, pev_origin, origin)
origin[2] += 10.0
engfunc(EngFunc_TraceHull, origin, origin, IGNORE_MONSTERS, pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, id, 0 )
new Float:fFraction
get_tr2(0, TR_flFraction, fFraction)
if (!get_tr2(0, TR_AllSolid) && fFraction < 1.0)
return true
return false
}
PHP Code:
stock bool:player_in_duct2(id)
{
const IN_SOLID_AREA = (1<<TR_StartSolid)
new Float:origin[3]
pev(id, pev_origin, origin)
origin[2] += 10.0
if(!(trace_hull(origin, pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, id) & IN_SOLID_AREA))
return true
return false
}
I'm not sure of trace_hull, I've never used it. I stole some Connor's code
Will be testing later