当前版本
目标筛选掩码
追踪视场角
唯一循环锚点
画面上多出来的那层信息,都来自同一个 tick
骨架只有一条:拿到 LocalPlayer,读世界,画出来。剩下的都是配置。
ESP 实体追踪
遍历 Level 中的 Actor 列表,把每个实体的世界坐标投到屏幕,输出方框、血条与名称。可见性由距离与视场共同裁剪。
Actor / ScreenProjectionHUD 面板
坐标、朝向、FPS、TPS、维度与当前目标数常驻屏幕角落。布局用锚点描述,换分辨率不会错位。
ImGui DrawList目标筛选掩码
玩家 1、实体 2、掉落物 4、自身 8,四个位独立开关,组合成一次位与判断。扫描只走一遍,不重复遍历。
bit mask · 0x0F物品与 NBT 编辑
从背包槽位读到 ItemStack,改数量、改附魔、写自定义 NBT,再经反序列化路径回写,落盘即时生效。
ItemStack / NBT数据驱动 GUI
面板由一组 JSON 描述,带 schema 版本号。换分辨率、换设备都不需要重新排版,旧配置会在加载时被识别并迁移。
JSON · schema 版本化版本适配
游戏每个版本都要重新对一遍位置与结构,适配完成才发版。面板、开关与配置不受影响,覆盖安装照旧沿用。
version tracking一帧之内,只有一条数据链
所有采集都发生在本地玩家的 tick 里:拿到 LocalPlayer,读世界,筛目标,交给渲染。没有另外开线程,也没有散落在各处的循环。
绘制集中在 ImGui 的单帧批次里提交,实体再多也只走一遍遍历。屏幕上的方框、血条和雷达点,是同一份数据的三种画法。
面板与开关由一组 JSON 描述,改布局不用改代码。每份配置带版本号,旧设备上的老配置会被识别并迁移,不会被直接丢掉。
从安装到看见第一帧
四个步骤,中间不需要电脑。
安装并启动
装好之后先打开一次,等初始化走完。之后每次启动都会接着用上次保存的配置。
arm64-v8a
进入世界
世界加载完成后数据开始刷新:坐标、朝向、目标数与雷达同时就位。
20 tps
调出面板
点悬浮入口打开面板,每个开关即时生效,不用退出世界。
HUD
保存配置
布局与开关写入本地配置,下次启动自动加载,覆盖安装也不会清掉。
JSON
更新日志
跟着游戏版本走,适配完成才发版。
v2.0.6
- 适配 游戏 3.10.0.300878
- 修复 重进世界后 Gui 不显示的问题
动手前先看这几条
每个游戏版本都要重新适配一次。换了大版本之后旧的行为可能整体失效,表现是开关没反应、或者面板能开但数据不动 —— 这种情况等对应版本的更新即可,不需要重装。
初始化在启动阶段完成,这期间游戏里不会绘制任何东西。如果你看到的是“系统维护中”,说明当前版本还没适配完成,等更新或者换回上一版。
开关与面板布局存在本地配置文件里,带版本号。版本号低的旧配置会在加载时被识别并迁移,不会被直接丢弃,所以覆盖安装后布局通常还在。
多线程各自开循环会互相踩数据,也容易在实体列表里读到半更新的状态。全部收在 LocalPlayer::normalTick 里,按 tick 串行调度,采集与绘制天然分帧,逻辑简单也不掉帧。
一个纯静态的单文件页面 —— HTML、CSS、JS 全在一个文件里,雷达用 Canvas 实时绘制,没有外部依赖,也没有框架。直接打开就能跑,也方便自己改文案和配色。