Skip to content

历史记录管理

历史记录功能允许你回溯参数的所有变化,方便分析游戏逻辑和调试问题。

打开历史记录

  1. 在调试器面板中找到目标参数
  2. 点击参数卡片右侧的 「原值」 按钮
  3. 弹出历史记录窗口
┌─────────────────────────────────────────────────────┐
│ uids                                      [×]        │
│ BattleUsers                                          │
├─────────────────────────────────────────────────────┤
│ [🔍] [📷] [💾] [📋] [🗑️]                            │
├─────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────┐ │
│ │ 记录 #15                          [📋] [💾]     │ │
│ │ [                                                 │ │
│ │   { "userId": 12345, "name": "Player1" },        │ │
│ │   { "userId": 67890, "name": "Player2" }         │ │
│ │ ]                                                 │ │
│ └─────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ 记录 #14                          [📋] [💾]     │ │
│ │ [                                                 │ │
│ │   { "userId": 12345, "name": "Player1" },        │ │
│ │   { "userId": 11111, "name": "Player3" }         │ │
│ │ ]                                                 │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

记录内容

调试器会记录每次变量被赋值时的完整值:

字段说明
记录 #N序号,数字越大表示越新(最新的在顶部)
值内容该时刻变量的完整快照

记录触发时机:

  • 游戏内部修改变量时
  • 你通过调试器注入修改时
  • 页面刷新后重新进入战斗时

窗口功能

顶部工具栏

按钮功能说明
🔍 过滤重复隐藏连续重复的记录减少冗余,方便查看变化
📷 提取媒体提取该参数中的所有图片/音频适用于包含媒体对象的参数
💾 保存全部将全部历史记录导出为 .txt 文件完整导出,无截断
📋 复制全部将全部历史记录复制到剪贴板完整复制,无截断
🗑️ 清空记录删除该参数的所有历史记录释放内存

单条记录操作

每条记录右侧有两个按钮:

按钮功能
📋 复制单条仅复制当前这条记录
💾 保存单条将当前记录导出为 .txt 文件

媒体提取功能

当参数中包含图片、音频等媒体对象时,可以使用「提取媒体」功能:

支持的类型:

类型导出格式说明
图片(ImageBitmap / Image 等).png自动转换为 PNG
音频(AudioBuffer).wav转换为 WAV 格式
通用 Blob原格式按原类型保存

使用步骤:

  1. 打开历史记录窗口
  2. 点击顶部 📷 按钮
  3. 等待扫描(最多 5 秒)
  4. 浏览器会依次下载所有媒体文件

💡 提示:如果参数中包含大量媒体,建议使用「保存单条」或「保存全部」导出 JSON 格式的原始数据。

智能截断保护

当历史记录数据量过大时,预览窗口会自动截断,防止浏览器卡顿:

预览视图数据量已达安全上限

为防止浏览器内存溢出或卡顿,剩余 23 条更早的历史记录已被隐藏。
请点击顶部菜单的 [保存全部为文件] 导出并查看完整历史记录。

解决方法:

  • 点击 💾 保存全部 导出完整文件
  • 点击 🗑️ 清空记录 释放内存

过滤重复

启用「过滤重复」后:

原始记录(全部):

#15: { name: "Player1", rank: 10 }
#14: { name: "Player1", rank: 10 }  ← 与上一条相同
#13: { name: "Player2", rank: 20 }
#12: { name: "Player2", rank: 20 }  ← 与上一条相同
#11: { name: "Player1", rank: 15 }

过滤后(仅显示变化):

#15: { name: "Player1", rank: 10 }
#13: { name: "Player2", rank: 20 }
#11: { name: "Player1", rank: 15 }

适合观察值的变化趋势,而不是每一条记录。

数据结构格式化

历史记录窗口会以语法高亮的形式显示数据:

json
{
  "userId": 12345,       jv-key(青色)
  "name": "Player1",     jv-string(蓝色)
  "rank": 15,            jv-number(绿色)
  "premium": false,      jv-boolean(紫色)
  "team": null jv-null(红色)
}
类型颜色
键名青色
字符串蓝色
数字绿色
布尔值紫色
null/undefined红色
函数/对象黄色

实战示例

示例1:分析玩家进入/离开

  1. 添加 BattleUsers.uids
  2. 进入战斗,等待玩家变动
  3. 打开历史记录
  4. 比较不同记录的数组长度和内容

示例2:追踪排行榜变化

  1. 添加排行榜相关参数(如 GlobalRanking.data
  2. 观察排名变化时的新值
  3. 使用「过滤重复」只看变化时刻

示例3:提取游戏贴图

  1. 找到包含 ImageCanvas 的参数
  2. 打开历史记录
  3. 点击 📷 提取媒体
  4. 保存所有提取的图片

性能注意事项

注意说明
记录上限无硬性上限,但过多记录会占用内存
大对象单个记录超过 30KB 时预览会被截断
高频变量mouse.position 会快速产生大量记录,建议不要长期监听
清空记录不再需要的历史记录建议及时清空

存储说明

历史记录存储在内存中,不会持久化保存:

操作影响
刷新页面❌ 历史记录丢失
退出战斗❌ 历史记录丢失
关闭浏览器❌ 历史记录丢失

重要数据请及时使用「保存全部」功能导出!

下一步

内部技术交流 · 禁止外传