TermiNexus
|
5d86bbe1b5
|
chore(bundle): 重新构建 bundle(含栅栏局部坐标判定)
|
2026-10-21 01:06:26 +08:00 |
|
TermiNexus
|
7b7ae0d143
|
fix(ignore): 改用局部坐标的竖直跨度判定栅栏,修正世界/局部坐标混用
三角形顶点是刚体局部坐标(诊断里位置恒为 0,0,0),之前拿局部 z 与车体世界 z 比较导致条件恒不成立。现判据:|法线z|<0.6 且本地竖直跨度>100(地面跨度≈0、栅栏≈200+);诊断输出补 解包type/跨度,位置改用刚体世界坐标以便识别近邻节点。
|
2026-10-21 01:06:20 +08:00 |
|
TermiNexus
|
f3cab9e8e7
|
feat(autotest): 按 zt 回调号自动应答 G.q1wd
- 解码到 LoadDependencies(zt) 后取 X,延迟 300ms 回 G.q1wd(X)(与真实抓包 c2s_0001 逐字节一致)
- 大厅连接保持打开,避免 digest 会话被提前释放
- 实测:链路密钥唯一命中、zt 容器解码、G.q1wd 已被中继识别并转发
|
2026-10-21 00:50:47 +08:00 |
|
TermiNexus
|
ce7ca23bb5
|
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
|
987c916abd
|
feat(ignore): 增加 seen 统计与 ResetStat,便于对比栅栏与地面的形状类型
seen = 本车接触到的所有非坦克形状的 cat/type 直方图(不论是否忽略);新增 ResetStat() 清零,便于「平地 1 秒」与「顶住栅栏 1 秒」两次对比定位栅栏的真实形状类型。
|
2026-10-21 00:45:50 +08:00 |
|
TermiNexus
|
66676268d4
|
feat(ignore): x9o 路径改为忽略本车与任意静态形状的相交查询
接触路径(q9q)仍只忽略立面三角形以防掉地;形状相交查询(x9o)对本车与任意静态形状返回 false,覆盖扫掠/查询式阻挡;新增 skippedOverlap 计数。
|
2026-10-21 00:42:54 +08:00 |
|
TermiNexus
|
ef8de60abe
|
feat(ignore): 同时接管形状相交查询 x9o(真形状检测)
栅栏判定同时作用于接触配对 q9q 与形状相交查询 x9o:命中时返回 false(不相交),覆盖扫掠/查询路径;新增 skippedOverlap/overlapPatched 统计;schema 补 CollisionWorld.Overlap。
|
2026-10-21 00:42:28 +08:00 |
|
TermiNexus
|
b9a777bc5f
|
feat(autotest): 新增双连接接入测试与链路密钥探测
- AutoTest:大厅 Hash Request → 取 digest/空间 id → 空间连接 EnterSpace → 收空间帧
- StreamDecoder:首条密文即穷举单字节链路密钥(K),之后 s2c 自动解密
- 首条空间帧到达后再加密发送 G.q1wd,服务端才会继续下发容器数据
- RunAutoTest.ps1:自动拉起大厅/空间两条中继,跑完自动回收
- 实测通过:握手成功、K 唯一命中、容器 1 条、回编码一致
|
2026-10-21 00:38:59 +08:00 |
|
TermiNexus
|
67f3fa51f9
|
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
|
5b089795cd
|
fix(ignore): 栅栏判定加入高度门槛,避免把地面一起忽略导致掉出地图
上一版 skippedFence 达 4.6 万,说明地面三角也被忽略。现规则:静态形状最高点必须高于本地坦克中心 1m 才可能是栅栏;三角形再要求 |法线z|<0.6。新增 byType 统计(cat/type → 忽略次数)便于确认命中对象。
|
2026-10-21 00:32:24 +08:00 |
|
TermiNexus
|
d6b5a747ce
|
fix(ignore): 恢复非三角形静态碰撞的忽略,栅栏恢复可穿过
上一版把判定收窄为仅陡峭三角形,导致非三角形静态代理(栅栏碰撞体)仍会挡住本地坦克。现判定:静态几何中非三角形一律忽略;三角形按 |法线z|<0.5 忽略,地面/缓坡保留。
|
2026-10-21 00:30:00 +08:00 |
|
TermiNexus
|
2e4f97ac4c
|
feat(ignore): 栅栏诊断输出重叠物体信息(形状 + 邻近场景节点名)
保持原有几何判定(仅陡峭静态三角形);DebugFence(true) 后,本车与任意非坦克形状配对时按签名去重打印 cat/type/法线/位置/7m 内场景节点名,用于确认栅栏对应哪个物体;schema 补 Body.State/PositionVec。
|
2026-10-21 00:25:16 +08:00 |
|
TermiNexus
|
8244e2097a
|
fix(ignore): 放宽栅栏判定并加入静态形状诊断
静态障碍不再只认三角形:非三角形静态碰撞代理直接视为障碍,三角形按法线 |nz|<0.5 判定;新增 __hornetNoClip__.DebugFence(true) 打印静态形状样本(cat/type/三角/nz/是否跳过),用于定位未生效原因。
|
2026-10-21 00:18:51 +08:00 |
|
TermiNexus
|
9adce9bc93
|
feat(protocol): 补齐容器命令与短命令别名机制
- Containers.kt 实现 lt/pt/zt/alias 四种布局,覆盖 ModelService 4 条容器命令
- 生成 ModelRegistry.ByModelId,供 pt 项按 modelId 展开
- 短命令:_setModelCommandAlias 解码后写入别名表,记录链可按别名继续解
- 下行注册补到 681 条;railgun-battle 400 帧复跑仍为 399/399 回编码一致
|
2026-10-21 00:13:12 +08:00 |
|
TermiNexus
|
9754469c22
|
feat(ignore): 面板新增「忽略」区域(坦克按阵营 / 反弹 / 栅栏)
hornet_noclip 改为通用忽略模块:配对过滤支持 关闭/仅敌方/仅友方/全部 的坦克忽略,并新增忽略栅栏(只跳过 |法线z|<0.5 的静态三角形,地面与缓坡保留);面板新增可折叠「忽略」区域,接管忽略坦克下拉、忽略反弹(NoKnockback)、忽略栅栏,各自 localStorage 持久化;schema 补 Shape.Type/Vertex0-2。
|
2026-10-21 00:04:38 +08:00 |
|
TermiNexus
|
a84f87f543
|
feat(tankioffline): 搭建 Kotlin/JS 多模块工程与 S2 全量协议层
- 新增 TankiOffline 多模块骨架(app/core/net/ecs/physics/render/resource/state/battle/ui)
- core 实现帧边界、nullmap 位流、大端读写、varint、fflate 解压
- GenerateProtocol.py 从 names 表生成 644 个模型、679 条下行、361 条上行 Kotlin codec
- 手写 TankState 的 23 字节位打包 codec(真实注册点是 module_87072 的 T5)
- app 增加 Node golden 自检:抓包解码后立即回编码逐字节比对
- 实测 plain/railgun-battle 400 帧:399 条记录全部回编码一致
|
2026-10-21 00:03:18 +08:00 |
|
TermiNexus
|
1518fa6ca6
|
fix(protocol): 适配 e98d0216 版编解码 API 并重生成协议表
- extract_codec_fields:字段工厂 n7f→r7g、读写方法 p7g/o7g→t7h/s7h、槽位初始化 q7g→u7h
- 资源类注册 u83→y84,核心类型按 模块::导出键 解析(Vector3/Long/实体引用)
- mine_downlink:读取器映射按当前 ByteBuffer 修正(t2u=f32、u2u=f64 等),容器槽位泛化
- 重生成 codec_fields/uplink_table/downlink_table:762 下行字段 0 未解,361 上行命令全量有类型
|
2026-10-21 00:03:07 +08:00 |
|
TermiNexus
|
b7d5b9d17a
|
revert(local): 运行链路默认改回 unpacked,src 改为 -UseSrc 可选
保持原有行为:默认加载 3dtank.com/play/static/js/unpacked(含 4 个模块的人工补丁),启动时按需打单包,-Build 强制重打;-UseSrc 才切到 3DTank/src,-Split 作为兼容旧参数等同默认。serve.js 的 --src 能力保留但不启用。
|
2026-10-20 23:06:09 +08:00 |
|
TermiNexus
|
b699f69ecb
|
feat(local): 运行链路默认切到 3DTank/src,启动时按需打单包
serve.js 新增 --src:unpacked/module_*.js、resources.json、index.json 与 unpacked.pack.json 路由到源码目录(加载器与 hornet_bundle 仍走镜像);修复 403 白名单未包含 src 目录。Start-LocalAndRelay 默认跑 src,源码更新或单包缺失时自动打包,-Build 强制重打,-Split 回退切割产物;恢复 ps1 的 UTF-8 BOM 以免 Windows PowerShell 误读中文。
|
2026-10-20 22:53:34 +08:00 |
|
TermiNexus
|
86a132638f
|
chore(extract): 重建 src 到当前包 main.7cfa4058 并修复证据挖掘
3DTank/src 原为 6469b966(client_version 83fabafa)时代的产物,已按 main.7cfa4058(e98d0216)重新 extract(126 代码模块 + 1221 资源);mine_evidence 的组件 getter 正则补上当前版本的 Z\$ 抛错函数,字段证据从 0 恢复到 1740 条;证据来源包改为读取 index.json.bundle。
|
2026-10-20 22:43:37 +08:00 |
|
TermiNexus
|
bc0e26e45a
|
docs(kt): 新增 Kotlin 重构计划(工具清单/阶段/验收)
按 dir.file 的 40/21/65 分类修正范围:仅 40 个游戏本体模块需要复刻;补充现有工具用法、S0-S6 阶段、可启动 JS 验收标准、换版漂移处理与风险回退。
|
2026-10-20 22:31:40 +08:00 |
|
TermiNexus
|
2e2d381e66
|
refactor(schema): 全部工具改为经字段抽象层取值
hornet_lib / hook_gamemode / radar / 透视 / 后视镜 / 瞄准警告 / 自由视角 / 战争沙盘 全部改为 Fld/Mth 常量取值;schema 补齐渲染器、网格、射线、武器、皮肤槽位等 88 项字段与别名;SelfCheck 改为只校验核心字段,避免别名误报。
|
2026-10-20 22:04:07 +08:00 |
|
TermiNexus
|
67306a72c7
|
fix(noclip): 改为拦截碰撞配对,修复关闭后拾取物失效
穿坦克不再修改碰撞 mask(坦克 category 与拾取物触发体共用 bit0,清位会导致拾取失败且关闭后需重生才恢复)。改为包装 module_55088 碰撞世界 ki.q9q,仅跳过双方都是坦克物理组件的配对:地形、拾取物触发、地雷、子弹均保持原样,关闭开关无需还原状态。
|
2026-10-20 20:39:29 +08:00 |
|
TermiNexus
|
281c07f8f3
|
feat(noknockback): 新增拒绝击退开关,中弹不再被推开
在本地坦克实体的 kz7 事件派发处丢弃外力事件(ODt:作用点/方向/强度),坦克物理收不到就不产生位移与旋转;悬挂与行驶仍走 m9k 直调,不受影响。面板新增「拒绝击退」开关。字段名走 hornet_schema。
|
2026-10-20 20:35:19 +08:00 |
|
TermiNexus
|
fcb55812b4
|
fix(schema): 自检跳过常量项,避免 Team.NeutralId 误报失配
|
2026-10-20 20:18:26 +08:00 |
|
TermiNexus
|
afcc868ba9
|
refactor(schema): 新增字段抽象层,透视滤除非本车节点并重做敌我判定
新增 hornet_schema.js 集中维护匿名引擎字段映射与导出键,支持 SelfCheck 自检失配;透视兜底扫描增加车体距离闸门,只保留跟着本车动的节点;敌我改为按队伍编号(k3_1)每帧比对,中立时沿用上次结果,取消一次判定永久锁定;穿坦克改用抽象字段名。
|
2026-10-20 20:18:14 +08:00 |
|
TermiNexus
|
5b60c94b87
|
feat(noclip): 新增穿坦克工具并接入面板开关
清掉本地坦克碰撞形状 mask 的坦克位(bit0),可穿过其他玩家坦克;地形静态几何(category bit4)碰撞保持不变。引擎状态切换会重写 mask,运行期每帧补一次,停止时按原始快照精确还原。
|
2026-10-20 20:06:24 +08:00 |
|
TermiNexus
|
e2a3c4912f
|
feat(garage): 战局空闲预热车库资源,静态资源启用长缓存与异步读
|
2026-10-20 16:48:41 +08:00 |
|
TermiNexus
|
f4921c953f
|
fix(team): 队伍函数按需补加载,开局即用可靠基准锁定敌我
|
2026-10-20 14:28:00 +08:00 |
|
TermiNexus
|
a5209f88ef
|
fix(team): 本地队伍缓存不再随 gm 重建清空,并锁定单局敌我结果
|
2026-10-20 13:43:21 +08:00 |
|
TermiNexus
|
914df6a94d
|
fix(alive): 存活判定改用引擎 s14j()(含 TELEPORT),死亡坦克稳定过滤
|
2026-10-20 13:02:03 +08:00 |
|
TermiNexus
|
cf3ae6f428
|
fix(team): 队伍同步延迟时沿用上次判定,消除敌我颜色跳变
|
2026-10-20 13:01:01 +08:00 |
|
TermiNexus
|
aa086d915b
|
fix(radar): 恢复死亡坦克的红叉标记(含血量辅助判死)
|
2026-10-20 11:29:47 +08:00 |
|
TermiNexus
|
c33424658b
|
fix(team): 队伍基准改用本地拥有坦克并缓存;死亡坦克不再标记
|
2026-10-20 11:20:38 +08:00 |
|
TermiNexus
|
930acdb393
|
fix(client): 下发 host 为空时还原为 cN 服务器地址,修复进战斗短命连接
|
2026-10-20 11:19:09 +08:00 |
|
TermiNexus
|
b7e1d95c3d
|
fix(wireframe): 扫描结果按字段路径缓存并每帧合并,补齐炮塔与车体漏采
|
2026-10-19 22:52:33 +08:00 |
|
TermiNexus
|
a50fcbb199
|
fix(wireframe): 去重键去掉世界坐标并取消扫描节流,修复模型闪烁
|
2026-10-19 22:37:31 +08:00 |
|
TermiNexus
|
f813f4eeae
|
feat(ws-hook): 控制台实时打印每个 WebSocket 的地址、关闭码与存活时长
|
2026-10-19 22:36:34 +08:00 |
|
TermiNexus
|
6a2013a3d9
|
fix(wireframe): 采集改为单路径优先并按 mesh+位置去重,修复重复身体与卡顿
|
2026-10-19 22:32:10 +08:00 |
|
TermiNexus
|
0d08c7e0a1
|
fix(wireframe): 车身改用皮肤根节点并合并结构扫描,修复漏采与只剩炮塔
|
2026-10-19 22:08:33 +08:00 |
|
TermiNexus
|
81ec64f630
|
fix(wireframe): 顶点/索引优先读 CPU 端缓冲区,修复未上传 mesh 采集失败
|
2026-10-19 21:45:54 +08:00 |
|
TermiNexus
|
e10428a3a5
|
feat(client-info): 本地镜像的 ClientInfo 显示 SRV: CN1/CN2
|
2026-10-19 21:43:33 +08:00 |
|
TermiNexus
|
5466aa9078
|
feat(relay): 接管 _reconnectFast,改写战场服地址并按原 host 切换上游
|
2026-10-19 20:59:20 +08:00 |
|
TermiNexus
|
f1e298660a
|
fix(launcher): 兼容 -SRV=1 等号写法(改用 args 手动解析)
|
2026-10-19 20:30:40 +08:00 |
|
TermiNexus
|
4218bcbf9e
|
feat(launcher): 增加 -SRV 1/2 统一切换前后端服务器(c1/c2)
|
2026-10-19 20:29:24 +08:00 |
|
TermiNexus
|
5f20fca064
|
fix(wireframe): 去掉炮塔门槛并加实体节点扫描兜底,修复只有点没有模型
|
2026-10-19 20:14:47 +08:00 |
|
TermiNexus
|
550ea6f779
|
fix(wireframe): GPU 顶点/索引缓冲字段按新版重定位,恢复模型采集
|
2026-10-18 19:37:43 +08:00 |
|
TermiNexus
|
7a1b85e8d0
|
fix(wireframe): 按新版字段修复模型采集与敌我判定
|
2026-10-18 19:10:22 +08:00 |
|
TermiNexus
|
dd6cf7da04
|
chore(sw): 本地镜像禁用 Service Worker(自注销旧注册 + 置空游戏 SW 注册模块)
|
2026-10-18 19:00:52 +08:00 |
|
TermiNexus
|
05dfbdbf1d
|
fix(tools): 按新旧差异修复位置与相机链路(雷达/透视恢复绘制)
|
2026-10-17 16:50:54 +08:00 |
|