diff --git a/3dtank.com/play/static/js/unpacked/hornet_bundle.js b/3dtank.com/play/static/js/unpacked/hornet_bundle.js index ce8f284..58154fc 100644 --- a/3dtank.com/play/static/js/unpacked/hornet_bundle.js +++ b/3dtank.com/play/static/js/unpacked/hornet_bundle.js @@ -6720,9 +6720,11 @@ return !!(Local && IsTankShape(Shape) && OwnerOf(Shape) === Local); } - function IsFencePair(ShapeA, ShapeB) { - return (IsLocalTankShape(ShapeA) && IsFenceLike(ShapeB)) || - (IsLocalTankShape(ShapeB) && IsFenceLike(ShapeA)); + // 「本车 ↔ 任意静态形状」:用于形状相交查询(x9o)这条路径。 + // 扫掠/查询被挡时返回 false 即可穿过;地面支撑走的是射线(l9m),不经过 x9o。 + function IsLocalStaticPair(ShapeA, ShapeB) { + return (IsLocalTankShape(ShapeA) && IsStaticShape(ShapeB)) || + (IsLocalTankShape(ShapeB) && IsStaticShape(ShapeA)); } // ===== 诊断:识别「正在和什么物体重叠」===== @@ -6904,9 +6906,9 @@ Proto[MOverlap] = function (ShapeA, ShapeB) { if (Stat.running && Stat.ignoreFence) { try { - if (IsFencePair(ShapeA, ShapeB)) { + if (IsLocalStaticPair(ShapeA, ShapeB)) { Stat.skippedOverlap++; - return false; // 查询结果:不相交 + return false; // 查询结果:不相交(穿栅栏走这条路径) } } catch (e) {} } diff --git a/3dtank_bundle.js b/3dtank_bundle.js index ce8f284..58154fc 100644 --- a/3dtank_bundle.js +++ b/3dtank_bundle.js @@ -6720,9 +6720,11 @@ return !!(Local && IsTankShape(Shape) && OwnerOf(Shape) === Local); } - function IsFencePair(ShapeA, ShapeB) { - return (IsLocalTankShape(ShapeA) && IsFenceLike(ShapeB)) || - (IsLocalTankShape(ShapeB) && IsFenceLike(ShapeA)); + // 「本车 ↔ 任意静态形状」:用于形状相交查询(x9o)这条路径。 + // 扫掠/查询被挡时返回 false 即可穿过;地面支撑走的是射线(l9m),不经过 x9o。 + function IsLocalStaticPair(ShapeA, ShapeB) { + return (IsLocalTankShape(ShapeA) && IsStaticShape(ShapeB)) || + (IsLocalTankShape(ShapeB) && IsStaticShape(ShapeA)); } // ===== 诊断:识别「正在和什么物体重叠」===== @@ -6904,9 +6906,9 @@ Proto[MOverlap] = function (ShapeA, ShapeB) { if (Stat.running && Stat.ignoreFence) { try { - if (IsFencePair(ShapeA, ShapeB)) { + if (IsLocalStaticPair(ShapeA, ShapeB)) { Stat.skippedOverlap++; - return false; // 查询结果:不相交 + return false; // 查询结果:不相交(穿栅栏走这条路径) } } catch (e) {} } diff --git a/tools/hornet_noclip.js b/tools/hornet_noclip.js index 6a0a428..4c3de0c 100644 --- a/tools/hornet_noclip.js +++ b/tools/hornet_noclip.js @@ -195,9 +195,11 @@ return !!(Local && IsTankShape(Shape) && OwnerOf(Shape) === Local); } - function IsFencePair(ShapeA, ShapeB) { - return (IsLocalTankShape(ShapeA) && IsFenceLike(ShapeB)) || - (IsLocalTankShape(ShapeB) && IsFenceLike(ShapeA)); + // 「本车 ↔ 任意静态形状」:用于形状相交查询(x9o)这条路径。 + // 扫掠/查询被挡时返回 false 即可穿过;地面支撑走的是射线(l9m),不经过 x9o。 + function IsLocalStaticPair(ShapeA, ShapeB) { + return (IsLocalTankShape(ShapeA) && IsStaticShape(ShapeB)) || + (IsLocalTankShape(ShapeB) && IsStaticShape(ShapeA)); } // ===== 诊断:识别「正在和什么物体重叠」===== @@ -379,9 +381,9 @@ Proto[MOverlap] = function (ShapeA, ShapeB) { if (Stat.running && Stat.ignoreFence) { try { - if (IsFencePair(ShapeA, ShapeB)) { + if (IsLocalStaticPair(ShapeA, ShapeB)) { Stat.skippedOverlap++; - return false; // 查询结果:不相交 + return false; // 查询结果:不相交(穿栅栏走这条路径) } } catch (e) {} }