diff --git a/3dtank.com/play/static/js/unpacked/hornet_bundle.js b/3dtank.com/play/static/js/unpacked/hornet_bundle.js index 56f394f..e0936a8 100644 --- a/3dtank.com/play/static/js/unpacked/hornet_bundle.js +++ b/3dtank.com/play/static/js/unpacked/hornet_bundle.js @@ -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) {} diff --git a/3dtank_bundle.js b/3dtank_bundle.js index 56f394f..e0936a8 100644 --- a/3dtank_bundle.js +++ b/3dtank_bundle.js @@ -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) {} diff --git a/tools/hook_gamemode.js b/tools/hook_gamemode.js index 6a8c1ad..05b9d46 100644 --- a/tools/hook_gamemode.js +++ b/tools/hook_gamemode.js @@ -47,7 +47,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) { @@ -103,7 +103,7 @@ if (window.__gameMode__) { // 验证当前引用是否有效 try { - var list = window.__gameMode__.q100_1.r11l(); + var list = window.__gameMode__.m10b_1.j11y(); window.__tankList__ = list; } catch(e) { // 引用失效(新战斗/退出战斗),重置等待重新捕获 @@ -142,7 +142,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++) { @@ -157,7 +157,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)); @@ -181,7 +181,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) { diff --git a/tools/hornet_3d_wireframe.js b/tools/hornet_3d_wireframe.js index e07f6d9..4ae4c40 100644 --- a/tools/hornet_3d_wireframe.js +++ b/tools/hornet_3d_wireframe.js @@ -771,11 +771,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) { @@ -902,7 +902,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; @@ -917,16 +917,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 }; // 本帧该坦克是否在移动(供「残留节点」检测:坦克在动而节点矩阵不动 = 旧位置遗留) diff --git a/tools/hornet_aim_warning.js b/tools/hornet_aim_warning.js index ca55af0..e37ede3 100644 --- a/tools/hornet_aim_warning.js +++ b/tools/hornet_aim_warning.js @@ -127,7 +127,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; @@ -285,7 +285,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 = []; diff --git a/tools/hornet_freelook.js b/tools/hornet_freelook.js index 307e984..6223f1a 100644 --- a/tools/hornet_freelook.js +++ b/tools/hornet_freelook.js @@ -33,7 +33,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) { diff --git a/tools/hornet_lib.js b/tools/hornet_lib.js index f265391..5fd4376 100644 --- a/tools/hornet_lib.js +++ b/tools/hornet_lib.js @@ -50,12 +50,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; @@ -71,7 +71,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; @@ -125,10 +125,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); @@ -160,7 +160,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; @@ -201,12 +201,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); @@ -262,7 +262,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) { diff --git a/tools/hornet_radar.js b/tools/hornet_radar.js index c2d9834..250945e 100644 --- a/tools/hornet_radar.js +++ b/tools/hornet_radar.js @@ -56,14 +56,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); @@ -146,7 +146,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; @@ -558,7 +558,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; diff --git a/tools/hornet_rearview.js b/tools/hornet_rearview.js index ba2cc93..60c640a 100644 --- a/tools/hornet_rearview.js +++ b/tools/hornet_rearview.js @@ -81,7 +81,7 @@ var initError = null; try { - scene = gm.jyw().jz1_1; + scene = gm.lz4().jz1_1; console.log('[后视] 场景对象:', scene); // hC 渲染器实例(jr.lye_1) @@ -479,7 +479,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; diff --git a/tools/hornet_tank_test.js b/tools/hornet_tank_test.js index 968e8e0..6a81cc7 100644 --- a/tools/hornet_tank_test.js +++ b/tools/hornet_tank_test.js @@ -52,7 +52,7 @@ t = gm.t10b_1; if (t) return t; try { - var tl = gm.q100_1.r11l(); + var tl = gm.m10b_1.j11y(); if (tl.e1() > 0) return tl.g1(0); } catch(e) {} return null; diff --git a/tools/hornet_warsandbox.js b/tools/hornet_warsandbox.js index dc6f293..bec9b6b 100644 --- a/tools/hornet_warsandbox.js +++ b/tools/hornet_warsandbox.js @@ -87,7 +87,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; @@ -481,7 +481,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) {}