diff --git a/3dtank.com/play/static/js/unpacked/hornet_bundle.js b/3dtank.com/play/static/js/unpacked/hornet_bundle.js index a90fcf4..54ae4d7 100644 --- a/3dtank.com/play/static/js/unpacked/hornet_bundle.js +++ b/3dtank.com/play/static/js/unpacked/hornet_bundle.js @@ -6672,10 +6672,12 @@ return !IsTankShape(Shape); } - // 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形 - // 保持原方案:只按几何判定,不做任何物体白名单 + // 「栅栏类」= 静态几何里除地面/缓坡以外的部分: + // · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留 + // · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略 function IsFenceLike(Shape) { if (!IsStaticShape(Shape)) return false; + if (!IsTriangle(Shape)) return true; return IsSteepTriangle(Shape); } diff --git a/3dtank_bundle.js b/3dtank_bundle.js index a90fcf4..54ae4d7 100644 --- a/3dtank_bundle.js +++ b/3dtank_bundle.js @@ -6672,10 +6672,12 @@ return !IsTankShape(Shape); } - // 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形 - // 保持原方案:只按几何判定,不做任何物体白名单 + // 「栅栏类」= 静态几何里除地面/缓坡以外的部分: + // · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留 + // · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略 function IsFenceLike(Shape) { if (!IsStaticShape(Shape)) return false; + if (!IsTriangle(Shape)) return true; return IsSteepTriangle(Shape); } diff --git a/tools/hornet_noclip.js b/tools/hornet_noclip.js index 38adb39..529f876 100644 --- a/tools/hornet_noclip.js +++ b/tools/hornet_noclip.js @@ -148,10 +148,12 @@ return !IsTankShape(Shape); } - // 「栅栏类」= 静态几何中法线接近水平(墙/栅栏/悬崖立面)的三角形 - // 保持原方案:只按几何判定,不做任何物体白名单 + // 「栅栏类」= 静态几何里除地面/缓坡以外的部分: + // · 三角形:法线接近水平(墙/栅栏/悬崖立面)→ 忽略;法线朝上(地面/缓坡)→ 保留 + // · 非三角形静态碰撞代理(盒/柱等):地图里这类基本都不是可站立地面 → 忽略 function IsFenceLike(Shape) { if (!IsStaticShape(Shape)) return false; + if (!IsTriangle(Shape)) return true; return IsSteepTriangle(Shape); }