fix(tools): 补全新版符号替换(修复透视/雷达仍不可用)

- 双向校验误判:q100_1 / r11l / jyw / t101_1 在新版同名但含义不同(普通数值 / 别的方法),被当作未变而跳过

- 强制替换:q100_1 到 m10b_1(坦克管理)、r11l 到 j11y(坦克列表)、jyw 到 lz4(取实体)、t101_1 到 p10c_1

- 覆盖 hook_gamemode.js(文件名不匹配 hornet_ 被漏掉)

- 物理组件字段 gzh_1 改为 rzf_1(新版 gzh_1 已是 TerminatorCC 字段,非物理)

- 移除已不存在的 xyu(GameMode),改用 gm.lz4()(等价:取 GameMode 实体)

- 重新生成 hornet_bundle.js(10 模块 / 249229 字节)并同步 unpacked
This commit is contained in:
TermiNexus committed 2026-10-17 15:49:50 +08:00
1 parent dcf5dfce5c
commit 56a1356cce
11 files changed
+121 -121

No files matched your search

@@ -55,7 +55,7 @@
// 尝试获取坦克列表(失败也不影响 gameMode 设置)
var tankCount = -1;
try {
var list = gm.q100_1.r11l();
var list = gm.m10b_1.j11y();
tankCount = list.e1();
window.__tankList__ = list;
} catch(e) {
@@ -111,7 +111,7 @@
if (window.__gameMode__) {
// 验证当前引用是否有效
try {
var list = window.__gameMode__.q100_1.r11l();
var list = window.__gameMode__.m10b_1.j11y();
window.__tankList__ = list;
} catch(e) {
// 引用失效(新战斗/退出战斗),重置等待重新捕获
@@ -150,7 +150,7 @@
console.log('ght 实例未捕获,请等待');
return;
}
var list = window.__gameMode__.q100_1.r11l();
var list = window.__gameMode__.m10b_1.j11y();
var count = list.e1();
console.log('=== 坦克列表 (' + count + " 个) ===");
for (var i = 0; i < count; i++) {
@@ -165,7 +165,7 @@
console.log('ght 实例未捕获');
return;
}
var list = window.__gameMode__.q100_1.r11l();
var list = window.__gameMode__.m10b_1.j11y();
var tank = list.g1(idx || 0);
console.log('坦克[' + (idx || 0) + ']:', tank);
console.log('字段:', Object.keys(tank));
@@ -189,7 +189,7 @@
window.__refreshGameMode__ = function() {
if (window.__gameMode__) {
try {
var list = window.__gameMode__.q100_1.r11l();
var list = window.__gameMode__.m10b_1.j11y();
console.log('%c[刷新] ght 引用有效,坦克数:' + list.e1(), 'color:#0f0;font-weight:bold');
return window.__gameMode__;
} catch(e) {
@@ -265,12 +265,12 @@
// ===== 获取坦克位置(G$t 物理组件的 rzf_1 = O$向量) =====
// 返回 {x, y, z},x/y 水平面,z 高度
function GetTankPosition(tank) {
var physicsComp = FindComponentByField(tank, 'gzh_1');
if (physicsComp && physicsComp.gzh_1) {
var physicsComp = FindComponentByField(tank, 'rzf_1');
if (physicsComp && physicsComp.rzf_1) {
return {
x: physicsComp.gzh_1.f20_1,
y: physicsComp.gzh_1.g20_1,
z: physicsComp.gzh_1.h20_1
x: physicsComp.rzf_1.f20_1,
y: physicsComp.rzf_1.g20_1,
z: physicsComp.rzf_1.h20_1
};
}
return null;
@@ -286,7 +286,7 @@
if (tankComp) return;
try {
var comp = (valueList && typeof valueList.g1 === 'function') ? valueList.g1(0) : valueList;
if (comp && comp.t101_1 && comp.k10c_1 !== undefined) tankComp = comp;
if (comp && comp.p10c_1 && comp.k10c_1 !== undefined) tankComp = comp;
} catch(e) {}
});
if (tankComp && tankComp.k10c_1) return tankComp.k10c_1.k3_1;
@@ -340,10 +340,10 @@
var MaxScore = typeof opt.maxScore === 'number' ? opt.maxScore : 8000;
BotSet = new Set();
var gm = window.__gameMode__;
if (!gm || !gm.q100_1) return BotSet;
if (!gm || !gm.m10b_1) return BotSet;
var playerTank = GetPlayerTank(gm);
var list, n;
try { list = gm.q100_1.r11l(); n = list.e1(); } catch (e) { return BotSet; }
try { list = gm.m10b_1.j11y(); n = list.e1(); } catch (e) { return BotSet; }
var Groups = { ally: {}, enemy: {} }; // 组 → { 分数 → [坦克...] }
for (var i = 0; i < n; i++) {
var tank = list.g1(i);
@@ -375,7 +375,7 @@
t = gm.u10b_1;
if (t && (!checkPosition || GetTankPosition(t))) return t;
try {
var tl = gm.q100_1.r11l();
var tl = gm.m10b_1.j11y();
if (tl.e1() > 0) {
t = tl.g1(0);
if (t && (!checkPosition || GetTankPosition(t))) return t;
@@ -416,12 +416,12 @@
function GetCameraInfo(gm) {
var entities = [];
try {
var gameScene = gm.jyw().jz1_1;
var gmEntity = gameScene.xyu("GameMode");
var gameScene = gm.lz4().jz1_1;
var gmEntity = gm.lz4();
if (gmEntity) entities.push(gmEntity);
} catch(e) {}
try {
var tankList = gm.q100_1.r11l();
var tankList = gm.m10b_1.j11y();
var tCount = tankList.e1();
for (var i = 0; i < tCount; i++) {
var t = tankList.g1(i);
@@ -477,7 +477,7 @@
// g16x(startVec, dirVec, maxDist, resultObj, filterObj) = 全局射线检测
function GetUMtComponent(gm) {
try {
var gmEntity = gm.jyw();
var gmEntity = gm.lz4();
if (!gmEntity || !gmEntity.qz1_1 || !gmEntity.qz1_1.s2a_1) return null;
var uMt = null;
gmEntity.qz1_1.s2a_1.forEach(function(valueList, key) {
@@ -770,14 +770,14 @@
// 1. GameMode entity
try {
var gameScene = gm.jyw().jz1_1;
var gmEntity = gameScene.xyu("GameMode");
var gameScene = gm.lz4().jz1_1;
var gmEntity = gm.lz4();
if (gmEntity) entities.push(gmEntity);
} catch(e) {}
// 2. 所有坦克列表中的 entity
try {
var tankList = gm.q100_1.r11l();
var tankList = gm.m10b_1.j11y();
var tCount = tankList.e1();
for (var i = 0; i < tCount; i++) {
var t = tankList.g1(i);
@@ -860,7 +860,7 @@
function getUMtComponent() {
if (UMtComponent) return UMtComponent;
try {
var gmEntity = gm.jyw();
var gmEntity = gm.lz4();
if (!gmEntity || !gmEntity.qz1_1 || !gmEntity.qz1_1.s2a_1) return null;
gmEntity.qz1_1.s2a_1.forEach(function(valueList, key) {
if (UMtComponent) return;
@@ -1272,7 +1272,7 @@
try {
var tankList = null, count = 0;
if (Ready) {
tankList = gm.q100_1.r11l();
tankList = gm.m10b_1.j11y();
count = tankList.e1();
}
radar.tankCount = count;
@@ -2288,11 +2288,11 @@
console.log('[透视] 已挂补给实体观察钩子(金箱子)');
}
// 金箱位置:优先物理组件(与坦克同款 gzh_1),否则退到 bonusData 里的节点世界矩阵/向量
// 金箱位置:优先物理组件(与坦克同款 rzf_1),否则退到 bonusData 里的节点世界矩阵/向量
function GetGoldBoxPosition(Entity) {
var Phys = FindComponentByField(Entity, 'gzh_1');
if (Phys && Phys.gzh_1) {
return { x: Phys.gzh_1.f20_1, y: Phys.gzh_1.g20_1, z: Phys.gzh_1.h20_1 };
var Phys = FindComponentByField(Entity, 'rzf_1');
if (Phys && Phys.rzf_1) {
return { x: Phys.rzf_1.f20_1, y: Phys.rzf_1.g20_1, z: Phys.rzf_1.h20_1 };
}
var Bonus = Entity.j10q_1;
for (var K in Bonus) {
@@ -2419,7 +2419,7 @@
UpdateCam(camInfo, screenW, screenH); // 每帧只算一次相机基(需在相机位置兜底之后),供顶点变换/投影复用
var tankList = gm.q100_1.r11l();
var tankList = gm.m10b_1.j11y();
var count = tankList.e1();
var drawnCount = 0, botDrawn = 0;
@@ -2434,16 +2434,16 @@
if (!tank || tank === playerTank) continue;
if (!EntityProtoHooked) InstallEntityHook(tank); // 借坦克实例找到实体基类原型,挂补给观察钩子
var physicsComp = FindComponentByField(tank, 'gzh_1');
if (!physicsComp || !physicsComp.gzh_1) continue;
var physicsComp = FindComponentByField(tank, 'rzf_1');
if (!physicsComp || !physicsComp.rzf_1) continue;
var tankState = GetTankState(tank);
// 可见坦克 = ACTIVE(3) 或 SEMI_ACTIVE(2)(引擎 s14j() 判定),0/1/4 才跳过
if (tankState !== 2 && tankState !== 3) continue;
var pos = {
x: physicsComp.gzh_1.f20_1,
y: physicsComp.gzh_1.g20_1,
z: physicsComp.gzh_1.h20_1
x: physicsComp.rzf_1.f20_1,
y: physicsComp.rzf_1.g20_1,
z: physicsComp.rzf_1.h20_1
};
// 本帧该坦克是否在移动(供「残留节点」检测:坦克在动而节点矩阵不动 = 旧位置遗留)
@@ -2736,7 +2736,7 @@
var initError = null;
try {
scene = gm.jyw().jz1_1;
scene = gm.lz4().jz1_1;
console.log('[后视] 场景对象:', scene);
// hC 渲染器实例(jr.lye_1)
@@ -3134,7 +3134,7 @@
// ===== UI 标记绘制 =====
function DrawUIMarkers(playerTank, playerPos, camInfo, viewMatrix) {
var tankList = gm.q100_1.r11l();
var tankList = gm.m10b_1.j11y();
var count = tankList.e1();
debugInfo.tankCount = count;
var visibleTanks = 0;
@@ -3465,7 +3465,7 @@
function GetUMtComponent() {
if (UMtComponent) return UMtComponent;
try {
var gmEntity = gm.jyw();
var gmEntity = gm.lz4();
if (!gmEntity || !gmEntity.qz1_1 || !gmEntity.qz1_1.s2a_1) return null;
gmEntity.qz1_1.s2a_1.forEach(function(valueList, key) {
if (UMtComponent) return;
@@ -3623,7 +3623,7 @@
camInfo.pos = { x: playerPos.x, y: playerPos.y, z: playerPos.z + 100 };
}
var tankList = gm.q100_1.r11l();
var tankList = gm.m10b_1.j11y();
var count = tankList.e1();
var threats = [];
@@ -4019,7 +4019,7 @@
var initError = null;
try {
scene = gm.jyw().jz1_1;
scene = gm.lz4().jz1_1;
mainCamera = scene.iyx_1;
ff = scene.gyw_1.d75_1;
if (!mainCamera || !mainCamera.u35_1 || !mainCamera.r35_1 || !mainCamera.o37) {
@@ -4428,7 +4428,7 @@
var scene = null, ff = null, rootNode = null, mainCamera = null, gl = null;
var initError = null;
try {
scene = gm.jyw().jz1_1;
scene = gm.lz4().jz1_1;
ff = scene.gyw_1.d75_1;
rootNode = scene.fyx_1;
mainCamera = scene.iyx_1;
@@ -4822,7 +4822,7 @@
// 坦克标记
var tanks = [];
try {
var list = gm.q100_1.r11l();
var list = gm.m10b_1.j11y();
var n = list.e1();
for (var i = 0; i < n; i++) { var t = list.g1(i); if (t) tanks.push(t); }
} catch(e) {}