TermiNexus
|
ee2cba3273
|
fix(ignore): 改用局部坐标的竖直跨度判定栅栏,修正世界/局部坐标混用
三角形顶点是刚体局部坐标(诊断里位置恒为 0,0,0),之前拿局部 z 与车体世界 z 比较导致条件恒不成立。现判据:|法线z|<0.6 且本地竖直跨度>100(地面跨度≈0、栅栏≈200+);诊断输出补 解包type/跨度,位置改用刚体世界坐标以便识别近邻节点。
|
2026-10-21 01:06:20 +08:00 |
|
TermiNexus
|
b2deca31be
|
fix(ignore): 解包 type 4 克隆形状后再做三角形判定
type 4 是克隆包装(hu.c9w_1 = 原形状.d21()),地图三角形都以它出现,之前按三角形判定永远不命中。现在 IsTriangle/TriangleNormalZ/ShapeMaxZ/ShapePoint 统一先解包 c9w_1,再套「高于车体 1m + |法线z|<0.6」规则;schema 补 Shape.Clone。
|
2026-10-21 00:49:13 +08:00 |
|
TermiNexus
|
d4a260ac92
|
feat(ignore): 增加 seen 统计与 ResetStat,便于对比栅栏与地面的形状类型
seen = 本车接触到的所有非坦克形状的 cat/type 直方图(不论是否忽略);新增 ResetStat() 清零,便于「平地 1 秒」与「顶住栅栏 1 秒」两次对比定位栅栏的真实形状类型。
|
2026-10-21 00:45:50 +08:00 |
|
TermiNexus
|
f455fe5c35
|
feat(ignore): x9o 路径改为忽略本车与任意静态形状的相交查询
接触路径(q9q)仍只忽略立面三角形以防掉地;形状相交查询(x9o)对本车与任意静态形状返回 false,覆盖扫掠/查询式阻挡;新增 skippedOverlap 计数。
|
2026-10-21 00:42:54 +08:00 |
|
TermiNexus
|
0e8af39bfe
|
feat(ignore): 同时接管形状相交查询 x9o(真形状检测)
栅栏判定同时作用于接触配对 q9q 与形状相交查询 x9o:命中时返回 false(不相交),覆盖扫掠/查询路径;新增 skippedOverlap/overlapPatched 统计;schema 补 CollisionWorld.Overlap。
|
2026-10-21 00:42:28 +08:00 |
|
TermiNexus
|
2ba8df0245
|
fix(ignore): 只忽略立面三角形,type 1/4 静态代理不再跳过(修复掉地)
实测 byType={16/4:26530,16/1:4620} 表明被跳过的是非三角形地形代理,导致穿地。现判定只对 type=8 三角形生效:最高点高于车体中心 1m 且 |法线z|<0.6;非三角形静态一律保留。
|
2026-10-21 00:36:30 +08:00 |
|
TermiNexus
|
580a456032
|
fix(ignore): 栅栏判定加入高度门槛,避免把地面一起忽略导致掉出地图
上一版 skippedFence 达 4.6 万,说明地面三角也被忽略。现规则:静态形状最高点必须高于本地坦克中心 1m 才可能是栅栏;三角形再要求 |法线z|<0.6。新增 byType 统计(cat/type → 忽略次数)便于确认命中对象。
|
2026-10-21 00:32:24 +08:00 |
|
TermiNexus
|
bfc3821dc7
|
fix(ignore): 恢复非三角形静态碰撞的忽略,栅栏恢复可穿过
上一版把判定收窄为仅陡峭三角形,导致非三角形静态代理(栅栏碰撞体)仍会挡住本地坦克。现判定:静态几何中非三角形一律忽略;三角形按 |法线z|<0.5 忽略,地面/缓坡保留。
|
2026-10-21 00:30:00 +08:00 |
|
TermiNexus
|
69defa85e7
|
feat(ignore): 栅栏诊断输出重叠物体信息(形状 + 邻近场景节点名)
保持原有几何判定(仅陡峭静态三角形);DebugFence(true) 后,本车与任意非坦克形状配对时按签名去重打印 cat/type/法线/位置/7m 内场景节点名,用于确认栅栏对应哪个物体;schema 补 Body.State/PositionVec。
|
2026-10-21 00:25:16 +08:00 |
|
TermiNexus
|
63c08ab165
|
fix(ignore): 放宽栅栏判定并加入静态形状诊断
静态障碍不再只认三角形:非三角形静态碰撞代理直接视为障碍,三角形按法线 |nz|<0.5 判定;新增 __hornetNoClip__.DebugFence(true) 打印静态形状样本(cat/type/三角/nz/是否跳过),用于定位未生效原因。
|
2026-10-21 00:18:51 +08:00 |
|
TermiNexus
|
7481dad24e
|
feat(ignore): 面板新增「忽略」区域(坦克按阵营 / 反弹 / 栅栏)
hornet_noclip 改为通用忽略模块:配对过滤支持 关闭/仅敌方/仅友方/全部 的坦克忽略,并新增忽略栅栏(只跳过 |法线z|<0.5 的静态三角形,地面与缓坡保留);面板新增可折叠「忽略」区域,接管忽略坦克下拉、忽略反弹(NoKnockback)、忽略栅栏,各自 localStorage 持久化;schema 补 Shape.Type/Vertex0-2。
|
2026-10-21 00:04:38 +08:00 |
|
TermiNexus
|
66a74df6e3
|
refactor(schema): 全部工具改为经字段抽象层取值
hornet_lib / hook_gamemode / radar / 透视 / 后视镜 / 瞄准警告 / 自由视角 / 战争沙盘 全部改为 Fld/Mth 常量取值;schema 补齐渲染器、网格、射线、武器、皮肤槽位等 88 项字段与别名;SelfCheck 改为只校验核心字段,避免别名误报。
|
2026-10-20 22:04:07 +08:00 |
|
TermiNexus
|
5a3440229e
|
fix(noclip): 改为拦截碰撞配对,修复关闭后拾取物失效
穿坦克不再修改碰撞 mask(坦克 category 与拾取物触发体共用 bit0,清位会导致拾取失败且关闭后需重生才恢复)。改为包装 module_55088 碰撞世界 ki.q9q,仅跳过双方都是坦克物理组件的配对:地形、拾取物触发、地雷、子弹均保持原样,关闭开关无需还原状态。
|
2026-10-20 20:39:29 +08:00 |
|
TermiNexus
|
bea22bb5f9
|
feat(noknockback): 新增拒绝击退开关,中弹不再被推开
在本地坦克实体的 kz7 事件派发处丢弃外力事件(ODt:作用点/方向/强度),坦克物理收不到就不产生位移与旋转;悬挂与行驶仍走 m9k 直调,不受影响。面板新增「拒绝击退」开关。字段名走 hornet_schema。
|
2026-10-20 20:35:19 +08:00 |
|
TermiNexus
|
692b812e58
|
fix(schema): 自检跳过常量项,避免 Team.NeutralId 误报失配
|
2026-10-20 20:18:26 +08:00 |
|
TermiNexus
|
972928e848
|
refactor(schema): 新增字段抽象层,透视滤除非本车节点并重做敌我判定
新增 hornet_schema.js 集中维护匿名引擎字段映射与导出键,支持 SelfCheck 自检失配;透视兜底扫描增加车体距离闸门,只保留跟着本车动的节点;敌我改为按队伍编号(k3_1)每帧比对,中立时沿用上次结果,取消一次判定永久锁定;穿坦克改用抽象字段名。
|
2026-10-20 20:18:14 +08:00 |
|
TermiNexus
|
6e79057856
|
feat(noclip): 新增穿坦克工具并接入面板开关
清掉本地坦克碰撞形状 mask 的坦克位(bit0),可穿过其他玩家坦克;地形静态几何(category bit4)碰撞保持不变。引擎状态切换会重写 mask,运行期每帧补一次,停止时按原始快照精确还原。
|
2026-10-20 20:06:24 +08:00 |
|
TermiNexus
|
fcc4901a1f
|
feat(garage): 战局空闲预热车库资源,静态资源启用长缓存与异步读
|
2026-10-20 16:48:41 +08:00 |
|
TermiNexus
|
ce1ffbeb60
|
fix(team): 队伍函数按需补加载,开局即用可靠基准锁定敌我
|
2026-10-20 14:28:00 +08:00 |
|
TermiNexus
|
f07f182fd8
|
fix(team): 本地队伍缓存不再随 gm 重建清空,并锁定单局敌我结果
|
2026-10-20 13:43:21 +08:00 |
|
TermiNexus
|
781ba862b7
|
fix(alive): 存活判定改用引擎 s14j()(含 TELEPORT),死亡坦克稳定过滤
|
2026-10-20 13:02:03 +08:00 |
|
TermiNexus
|
8906ba6764
|
fix(team): 队伍同步延迟时沿用上次判定,消除敌我颜色跳变
|
2026-10-20 13:01:01 +08:00 |
|
TermiNexus
|
62357fcd9f
|
fix(radar): 恢复死亡坦克的红叉标记(含血量辅助判死)
|
2026-10-20 11:29:47 +08:00 |
|
TermiNexus
|
2520a91bf1
|
fix(team): 队伍基准改用本地拥有坦克并缓存;死亡坦克不再标记
|
2026-10-20 11:20:38 +08:00 |
|
TermiNexus
|
aa3bcba363
|
fix(wireframe): 扫描结果按字段路径缓存并每帧合并,补齐炮塔与车体漏采
|
2026-10-19 22:52:33 +08:00 |
|
TermiNexus
|
41b94ef0f9
|
fix(wireframe): 去重键去掉世界坐标并取消扫描节流,修复模型闪烁
|
2026-10-19 22:37:31 +08:00 |
|
TermiNexus
|
797f28c8cd
|
fix(wireframe): 采集改为单路径优先并按 mesh+位置去重,修复重复身体与卡顿
|
2026-10-19 22:32:10 +08:00 |
|
TermiNexus
|
af8cde08d2
|
fix(wireframe): 车身改用皮肤根节点并合并结构扫描,修复漏采与只剩炮塔
|
2026-10-19 22:08:33 +08:00 |
|
TermiNexus
|
526adc760c
|
fix(wireframe): 顶点/索引优先读 CPU 端缓冲区,修复未上传 mesh 采集失败
|
2026-10-19 21:45:54 +08:00 |
|
TermiNexus
|
1dd7143e67
|
fix(wireframe): 去掉炮塔门槛并加实体节点扫描兜底,修复只有点没有模型
|
2026-10-19 20:14:47 +08:00 |
|
TermiNexus
|
dcf9a57456
|
fix(wireframe): GPU 顶点/索引缓冲字段按新版重定位,恢复模型采集
|
2026-10-18 19:37:43 +08:00 |
|
TermiNexus
|
86b9322a9f
|
fix(wireframe): 按新版字段修复模型采集与敌我判定
|
2026-10-18 19:10:22 +08:00 |
|
TermiNexus
|
a34cae5474
|
fix(tools): 按新旧差异修复位置与相机链路(雷达/透视恢复绘制)
|
2026-10-17 16:50:54 +08:00 |
|
TermiNexus
|
9506648877
|
fix(lib): 位置探测增加矩阵式兜底([12],[13],[14] 平移分量)
- 旧版位置来自物理组件的世界变换矩阵(K$ 实例,非普通向量),新版字段平移后无法靠名字命中
- 兜底 2:遍历组件找长度 >=15 的矩阵对象,取 [12]/[13]/[14] 作为平移(引擎惯用布局)
|
2026-10-17 16:29:06 +08:00 |
|
TermiNexus
|
67b2ff4a80
|
fix(lib): 坦克位置改为多级字段探测(修复雷达/透视为空)
- 根因:物理组件的位置向量字段每构建都平移,本次 pz7_1→gzh_1→rzf_1 的映射全都指错(gzh_1 是 TerminatorCC、rzf_1 是 RicochetSfxData)
- GetTankPosition 改为多级探测:先试一组成员字段(xzq_1/uzq_1/azr_1/bzr_1/dzr_1/izr_1/jzr_1…),再兜底遍历组件找带 f20_1/g20_1/h20_1 的 O\$ 向量
- 透视的坦克绘制与金箱位置都改用 GetTankPosition
|
2026-10-17 16:19:54 +08:00 |
|
TermiNexus
|
1cc1afdb08
|
fix(hook): GameMode hook 目标改为新版导出键(jc/ic),修复所有工具静默失效
- 根因:新版导出键语义漂移 —— \$.ac 变成两字段数据类 \、\ \$.zb 变成 ydt,不再是「取 gmt 实例 / ght 类」
- 新版对应关系:\ \$.jc = dct(scene) 取 ght 实例;\ \$.ic = wct 即 ght 类;\ \$.kc = gct(scene) 取 GameMode 实体
- hook 目标改为 \ \$.jc,并继续 hook wct.prototype 全方法作为兜底
- 重新生成 hornet_bundle.js 并同步 unpacked
|
2026-10-17 15:57:40 +08:00 |
|
TermiNexus
|
56a1356cce
|
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
|
2026-10-17 15:49:50 +08:00 |
|
TermiNexus
|
dcf5dfce5c
|
fix(tools): 工具链符号对齐新版 bundle(修复 HORNET 功能大面积失效)
- 根因:新版 main.7cfa4058 重拆后游戏符号整体平移,工具里写死的字段名(pyt_1/q100_1/r11l/oyz/jyw/cyw_1/dyw_1…)全部对不上 → 找不到组件/相机/场景
- 新增 tools/apply_symbol_map.js:按 map_symbols 映射批量替换,4 道安全规则:① 长名或含下划线 ② 排除 JS 关键字/内置名黑名单 ③ 游戏符号命名特征(含数字或 _数字 结尾) ④ 双向校验(旧名在新 bundle 仍存在→视为未变跳过;新名不存在→映射错误丢弃)
- 单遍替换,避免链式污染(映射表新旧同名复用时会被二次替换)
- 应用到 12 个 hornet_*.js 共 231 处(跳过 25764 个未变符号)
- 重新生成 hornet_bundle.js(10 模块 / 249263 字节)并同步 unpacked
|
2026-10-16 14:55:39 +08:00 |
|
TermiNexus
|
469f913619
|
fix(page): 修复 index.html 主文件引用失配(新主文件没被加载,自动刷新拦截等全部失效)
- 根因:index.html 写死 main.9f4e7a89.js,重拆后主文件改名 main.7cfa4058.js → 请求旧名 404,新主文件里的 HORNET 注入 / 自动刷新拦截 / F5 兜底压根没加载
- 3DTank/web/index.html:引用改为 main.7cfa4058.js
- tools/serve.js:Resolve 增加兜底 —— 请求 main.<hash>.js 但文件不存在时,回退到目录里最新的 main.<hash>.js(以后换 bundle 无需再改 HTML)
- tools/split.js:拆分完成后自动改写 index.html 的主文件引用(防复发)
|
2026-10-16 14:23:02 +08:00 |
|
TermiNexus
|
fd0dffe31b
|
feat(bundle): 迁移到新版 main.7cfa4058.js(重做拆分 + 移植 7 处针对性修改)
- 拆分:tools/split.js 重切新版(1347 模块 / 126 代码模块),主文件 main.7cfa4058.js,语法验证通过
- 修复 split.js 内自动刷新拦截的 \\n 转义:它在模板字符串里,必须写 \\\\n,否则生成的主文件字符串断行、语法报错
- 符号映射:map_symbols.js 对齐旧→新(qyr→ryz、w187→c18o、z4t→jtn、vgt→rkt、Bmt→Ezt、Qjt→Fjt、txt→Gjt、k15b→s15n、azi_1→vzr_1…)
- 移植 7 处针对性修改:炮塔摆头不回弹(vSt.ryz)、摆头不过冲(case 0)、精准跟手(case 1/2)、悬浮底盘 raw 两级(Ezt.n36 + Zmt 实际速度)、电磁炮蓄力时长(jtn.c18o)
- 重新打包 unpacked.pack.json(127 文件 / 版本 96833eb2b0cf8909)
|
2026-10-16 14:20:15 +08:00 |
|
TermiNexus
|
cbeb78baba
|
feat(page): 自动刷新拦截改为默认开启(便于查看 err toast)
- 原来默认关闭(需 localStorage.hornetBlockReload=1),游戏一遇到致命错误/断线就 location.reload() 刷页,err toast 一闪即没
- 现改为默认开启:localStorage.hornetBlockReload='0' 才关闭;F5 仍然放行一次
- 同步源文件 tools/split.js 与产物 main.9f4e7a89.js
- 注意:拦截期间游戏无法靠刷页重连,只能反复内部重连(临时排查用)
|
2026-10-16 14:14:51 +08:00 |
|
TermiNexus
|
529868b194
|
feat(wireframe): 3D 透视里给人机坦克标「人机」文字
- hornet_3d_wireframe:坦克绘制后在其上方投影并写「人机」(先描黑边再填黄字,任何背景下可读)
- 复用 lib.ScanBots / IsBot,节流约每 0.3 秒扫描一次;雷达的方块标记保留
|
2026-10-15 15:47:52 +08:00 |
|
TermiNexus
|
2b64211173
|
feat(radar): 人机识别标记(同队装备分数相同且 < 8000)
- hornet_lib:新增 GetGearScore(BattleGearScoreCC.score → 组件 cjf_1)、ScanBots(按队伍分组,同分且低于阈值判为人机)、GetBotSet/IsBot
- hornet_radar:约每 0.3 秒扫一次;人机画「灰方块 + 黄框」,真人仍「实心圆 + 白边」;顶部统计加 Bot 计数
- 重新生成 hornet_bundle.js 并同步到 unpacked
|
2026-10-15 15:27:34 +08:00 |
|
TermiNexus
|
92b5ca6e9b
|
refactor(panel): 移除左上角常驻 HUD(「3DTank 控制台」小窗)
- tools/hornet_panel.js:HUD 不再挂载到页面(等于不显示),原样式与 appendChild 一并去掉
- 保留 hud 对象与 UpdateHud 循环:循环里还负责 TryAutoEnable()(按保存状态自动开启工具)
- 重新生成 hornet_bundle.js 并同步到 unpacked
|
2026-10-15 15:15:28 +08:00 |
|
TermiNexus
|
d4c8a843e2
|
feat(panel): 电磁炮锁定时长固定默认 1.5s(面板默认开启覆盖)
面板回填逻辑改为「未显式关闭即开启」,默认值 1.5s(实测满伤的最小值);取消勾选仍可回退原版 3~5s。z4t.w187 的 HORNET-TAG 同步。
|
2026-10-12 11:08:01 +08:00 |
|
TermiNexus
|
db8a92a2f7
|
feat(panel): Alt+T 面板新增「电磁炮设置」——锁定/蓄力时长可实时调
启用时长覆盖(checkbox) + 锁定/蓄力(s) 滑块 0.1~5.0/步进0.05,拖动立即写入 window.__hornetLockSec__ 并持久化到 localStorage(hornet_lock_on/hornet_lock_sec)。实测门槛:1.5s/2.0s 满伤,1.0s/0.1s 无伤害。
|
2026-10-12 11:01:36 +08:00 |
|
TermiNexus
|
d33e7b0eba
|
change(mirror): 从模板中移除 Service Worker 注册(排查断联用)
- tools/split.js 模板与已部署 main 同步删除 SW 注册块;hornet_sw.js 本体与 serve.js 的 /hornet_sw.js 路由保留
- index.html(本地,未入库)加一次性注销,清掉已装的 SW(需再刷一次生效)
|
2026-10-11 20:16:07 +08:00 |
|
TermiNexus
|
562835c284
|
fix(mirror): Service Worker 默认关闭(URL 加 #sw 才启用),排查 SW 是否导致断联
- main 加载器与 split.js 模板同步:默认注销已注册的 SW(单包缓存接管),#sw 显式启用,#nosw 仍可强制关闭
- 注意:注销在下次导航生效,需刷新两次
|
2026-10-11 20:11:02 +08:00 |
|
TermiNexus
|
5dd5560090
|
fix(relay): 透传客户端真实握手头(Origin/UA/Referer),消除与浏览器直连的唯一差异;镜像加 #nosw 旁路
- 上游改按 Req.headers 的 origin/user-agent/referer 透传(缺省才回退常量),避免上游按 Origin 返回与本地构建不匹配的响应(客户端握手失败自行 close=1005)
- main 加载器与 split.js 模板同步:hash 含 #nosw 时注销已注册的 Service Worker,便于排查镜像页接管问题
|
2026-10-11 19:47:19 +08:00 |
|
TermiNexus
|
4005213226
|
feat(tools): 新版本工具链移植 + 本地镜像单包加载,中继改为原样直发与异步有序落盘
- hornet 工具链:无 ght 启动;透视冻结节点拖拽跟随、金箱标记、性能优化;雷达死亡红叉;鼠标稳定器;窗口布局持久化
- 本地镜像:切割与单包加载(pack_unpacked.js)+ SW 单包缓存 + F5 兜底刷新;入口更新为 main.9f4e7a89.js
- 中继 wss_server.js:转发改 socket 反压的原样直发(零等待零缓存);落盘改单条有序异步队列(默认开启);新增反压看门狗(默认 60s)
|
2026-10-11 19:35:54 +08:00 |
|