feat(ignore): 增加 seen 统计与 ResetStat,便于对比栅栏与地面的形状类型
seen = 本车接触到的所有非坦克形状的 cat/type 直方图(不论是否忽略);新增 ResetStat() 清零,便于「平地 1 秒」与「顶住栅栏 1 秒」两次对比定位栅栏的真实形状类型。
This commit is contained in:
1 parent
f455fe5c35
commit
d4a260ac92
3 files changed
+63
-9
No files matched your search
@@ -6591,6 +6591,7 @@
|
|||||||
skippedFence: 0,
|
skippedFence: 0,
|
||||||
skippedOverlap: 0, // x9o 形状相交查询被拦下的次数
|
skippedOverlap: 0, // x9o 形状相交查询被拦下的次数
|
||||||
byType: {}, // cat/type → 被忽略次数(诊断)
|
byType: {}, // cat/type → 被忽略次数(诊断)
|
||||||
|
seen: {}, // cat/type → 本车接触到的非坦克形状次数(诊断)
|
||||||
patched: false,
|
patched: false,
|
||||||
overlapPatched: false
|
overlapPatched: false
|
||||||
};
|
};
|
||||||
@@ -6848,6 +6849,13 @@
|
|||||||
var FenceShape = null;
|
var FenceShape = null;
|
||||||
if (TankA && OwnerOf(ShapeA) === Local) FenceShape = ShapeB;
|
if (TankA && OwnerOf(ShapeA) === Local) FenceShape = ShapeB;
|
||||||
else if (TankB && OwnerOf(ShapeB) === Local) FenceShape = ShapeA;
|
else if (TankB && OwnerOf(ShapeB) === Local) FenceShape = ShapeA;
|
||||||
|
|
||||||
|
// 统计:本车接触到的所有非坦克形状(不论是否跳过)→ cat/type 直方图
|
||||||
|
if (FenceShape) {
|
||||||
|
var SeenKey = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
||||||
|
Stat.seen[SeenKey] = (Stat.seen[SeenKey] || 0) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (FenceShape && IsFenceLike(FenceShape)) {
|
if (FenceShape && IsFenceLike(FenceShape)) {
|
||||||
Stat.skippedFence++;
|
Stat.skippedFence++;
|
||||||
var Key = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
var Key = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
||||||
@@ -6855,8 +6863,7 @@
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 诊断:本车与任意非坦克形状配对但没跳过 → 记录样本(含被挡住的栅栏)
|
// 诊断:本车与任意非坦克形状配对但没跳过 → 记录样本(含被挡住的栅栏)
|
||||||
if (TankA && OwnerOf(ShapeA) === Local && !TankB) RecordFenceSample(ShapeB);
|
if (FenceShape) RecordFenceSample(FenceShape);
|
||||||
if (TankB && OwnerOf(ShapeB) === Local && !TankA) RecordFenceSample(ShapeA);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -7003,8 +7010,19 @@
|
|||||||
running: Stat.running, mode: Stat.mode, ignoreFence: Stat.ignoreFence,
|
running: Stat.running, mode: Stat.mode, ignoreFence: Stat.ignoreFence,
|
||||||
skippedTank: Stat.skippedTank, skippedFence: Stat.skippedFence,
|
skippedTank: Stat.skippedTank, skippedFence: Stat.skippedFence,
|
||||||
skippedOverlap: Stat.skippedOverlap,
|
skippedOverlap: Stat.skippedOverlap,
|
||||||
byType: Stat.byType, patched: Stat.patched, overlapPatched: Stat.overlapPatched
|
byType: Stat.byType, seen: Stat.seen,
|
||||||
|
patched: Stat.patched, overlapPatched: Stat.overlapPatched
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
// 清零统计:便于「平地 1 秒」与「顶住栅栏 1 秒」两次对比 seen 里的 cat/type
|
||||||
|
ResetStat: function () {
|
||||||
|
Stat.skippedTank = 0;
|
||||||
|
Stat.skippedFence = 0;
|
||||||
|
Stat.skippedOverlap = 0;
|
||||||
|
Stat.byType = {};
|
||||||
|
Stat.seen = {};
|
||||||
|
FenceSampleKeys = {};
|
||||||
|
console.log('[忽略] 统计已清零');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+21
-3
@@ -6591,6 +6591,7 @@
|
|||||||
skippedFence: 0,
|
skippedFence: 0,
|
||||||
skippedOverlap: 0, // x9o 形状相交查询被拦下的次数
|
skippedOverlap: 0, // x9o 形状相交查询被拦下的次数
|
||||||
byType: {}, // cat/type → 被忽略次数(诊断)
|
byType: {}, // cat/type → 被忽略次数(诊断)
|
||||||
|
seen: {}, // cat/type → 本车接触到的非坦克形状次数(诊断)
|
||||||
patched: false,
|
patched: false,
|
||||||
overlapPatched: false
|
overlapPatched: false
|
||||||
};
|
};
|
||||||
@@ -6848,6 +6849,13 @@
|
|||||||
var FenceShape = null;
|
var FenceShape = null;
|
||||||
if (TankA && OwnerOf(ShapeA) === Local) FenceShape = ShapeB;
|
if (TankA && OwnerOf(ShapeA) === Local) FenceShape = ShapeB;
|
||||||
else if (TankB && OwnerOf(ShapeB) === Local) FenceShape = ShapeA;
|
else if (TankB && OwnerOf(ShapeB) === Local) FenceShape = ShapeA;
|
||||||
|
|
||||||
|
// 统计:本车接触到的所有非坦克形状(不论是否跳过)→ cat/type 直方图
|
||||||
|
if (FenceShape) {
|
||||||
|
var SeenKey = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
||||||
|
Stat.seen[SeenKey] = (Stat.seen[SeenKey] || 0) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (FenceShape && IsFenceLike(FenceShape)) {
|
if (FenceShape && IsFenceLike(FenceShape)) {
|
||||||
Stat.skippedFence++;
|
Stat.skippedFence++;
|
||||||
var Key = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
var Key = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
||||||
@@ -6855,8 +6863,7 @@
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 诊断:本车与任意非坦克形状配对但没跳过 → 记录样本(含被挡住的栅栏)
|
// 诊断:本车与任意非坦克形状配对但没跳过 → 记录样本(含被挡住的栅栏)
|
||||||
if (TankA && OwnerOf(ShapeA) === Local && !TankB) RecordFenceSample(ShapeB);
|
if (FenceShape) RecordFenceSample(FenceShape);
|
||||||
if (TankB && OwnerOf(ShapeB) === Local && !TankA) RecordFenceSample(ShapeA);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -7003,8 +7010,19 @@
|
|||||||
running: Stat.running, mode: Stat.mode, ignoreFence: Stat.ignoreFence,
|
running: Stat.running, mode: Stat.mode, ignoreFence: Stat.ignoreFence,
|
||||||
skippedTank: Stat.skippedTank, skippedFence: Stat.skippedFence,
|
skippedTank: Stat.skippedTank, skippedFence: Stat.skippedFence,
|
||||||
skippedOverlap: Stat.skippedOverlap,
|
skippedOverlap: Stat.skippedOverlap,
|
||||||
byType: Stat.byType, patched: Stat.patched, overlapPatched: Stat.overlapPatched
|
byType: Stat.byType, seen: Stat.seen,
|
||||||
|
patched: Stat.patched, overlapPatched: Stat.overlapPatched
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
// 清零统计:便于「平地 1 秒」与「顶住栅栏 1 秒」两次对比 seen 里的 cat/type
|
||||||
|
ResetStat: function () {
|
||||||
|
Stat.skippedTank = 0;
|
||||||
|
Stat.skippedFence = 0;
|
||||||
|
Stat.skippedOverlap = 0;
|
||||||
|
Stat.byType = {};
|
||||||
|
Stat.seen = {};
|
||||||
|
FenceSampleKeys = {};
|
||||||
|
console.log('[忽略] 统计已清零');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+21
-3
@@ -66,6 +66,7 @@
|
|||||||
skippedFence: 0,
|
skippedFence: 0,
|
||||||
skippedOverlap: 0, // x9o 形状相交查询被拦下的次数
|
skippedOverlap: 0, // x9o 形状相交查询被拦下的次数
|
||||||
byType: {}, // cat/type → 被忽略次数(诊断)
|
byType: {}, // cat/type → 被忽略次数(诊断)
|
||||||
|
seen: {}, // cat/type → 本车接触到的非坦克形状次数(诊断)
|
||||||
patched: false,
|
patched: false,
|
||||||
overlapPatched: false
|
overlapPatched: false
|
||||||
};
|
};
|
||||||
@@ -323,6 +324,13 @@
|
|||||||
var FenceShape = null;
|
var FenceShape = null;
|
||||||
if (TankA && OwnerOf(ShapeA) === Local) FenceShape = ShapeB;
|
if (TankA && OwnerOf(ShapeA) === Local) FenceShape = ShapeB;
|
||||||
else if (TankB && OwnerOf(ShapeB) === Local) FenceShape = ShapeA;
|
else if (TankB && OwnerOf(ShapeB) === Local) FenceShape = ShapeA;
|
||||||
|
|
||||||
|
// 统计:本车接触到的所有非坦克形状(不论是否跳过)→ cat/type 直方图
|
||||||
|
if (FenceShape) {
|
||||||
|
var SeenKey = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
||||||
|
Stat.seen[SeenKey] = (Stat.seen[SeenKey] || 0) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (FenceShape && IsFenceLike(FenceShape)) {
|
if (FenceShape && IsFenceLike(FenceShape)) {
|
||||||
Stat.skippedFence++;
|
Stat.skippedFence++;
|
||||||
var Key = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
var Key = FenceShape[FShapeCategory] + '/' + FenceShape[FShapeType];
|
||||||
@@ -330,8 +338,7 @@
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// 诊断:本车与任意非坦克形状配对但没跳过 → 记录样本(含被挡住的栅栏)
|
// 诊断:本车与任意非坦克形状配对但没跳过 → 记录样本(含被挡住的栅栏)
|
||||||
if (TankA && OwnerOf(ShapeA) === Local && !TankB) RecordFenceSample(ShapeB);
|
if (FenceShape) RecordFenceSample(FenceShape);
|
||||||
if (TankB && OwnerOf(ShapeB) === Local && !TankA) RecordFenceSample(ShapeA);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -478,8 +485,19 @@
|
|||||||
running: Stat.running, mode: Stat.mode, ignoreFence: Stat.ignoreFence,
|
running: Stat.running, mode: Stat.mode, ignoreFence: Stat.ignoreFence,
|
||||||
skippedTank: Stat.skippedTank, skippedFence: Stat.skippedFence,
|
skippedTank: Stat.skippedTank, skippedFence: Stat.skippedFence,
|
||||||
skippedOverlap: Stat.skippedOverlap,
|
skippedOverlap: Stat.skippedOverlap,
|
||||||
byType: Stat.byType, patched: Stat.patched, overlapPatched: Stat.overlapPatched
|
byType: Stat.byType, seen: Stat.seen,
|
||||||
|
patched: Stat.patched, overlapPatched: Stat.overlapPatched
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
// 清零统计:便于「平地 1 秒」与「顶住栅栏 1 秒」两次对比 seen 里的 cat/type
|
||||||
|
ResetStat: function () {
|
||||||
|
Stat.skippedTank = 0;
|
||||||
|
Stat.skippedFence = 0;
|
||||||
|
Stat.skippedOverlap = 0;
|
||||||
|
Stat.byType = {};
|
||||||
|
Stat.seen = {};
|
||||||
|
FenceSampleKeys = {};
|
||||||
|
console.log('[忽略] 统计已清零');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user