# HEROLL 丹药与 Boss 循环逆向纠错报告 > 日期:2026-08-24 > 工具链:IL2CPP 元数据、runtime-decrypted `libil2cpp.so`、radare2 6.2.0、配置表、公开资料交叉检索、TypeScript/Playwright > Scope:[case scope](../work/20260824-heroll-potion-gauge/scope.md) · [timeline](../work/20260824-heroll-potion-gauge/timeline.md) ## 结论 1. `potion.csv` 的 `HealLevel.value=50/80/110…650` 是固定 HP,不是最大生命百分比。独立的 `Potion_PercentHeal(valueA=10)` 才额外增加 10% 最大生命恢复。 2. Boss 循环按负责人实机确认实现:玩家 ROLL 2 次后开启 4 次 ROLL 倒计时;倒计时结束逐个把 4 个非祝福玩家地块变成怪物地块,然后回到 0/2。 3. 旧双击启动器闪退来自 LF-only UTF-8 CMD 与 Windows PowerShell 5.1 的 BOM-less UTF-8 解码问题;已改为 ASCII+CRLF CMD、UTF-8 BOM+CRLF PS1,并加入错误留窗和端到端自测。 ## Evidence | ID | 证据 | 复现 | Hash | |---|---|---|---| | E-001 | `potion.csv` 的 21 级曲线 | 见 [E-001](../work/20260824-heroll-potion-gauge/evidence/E-001.md) | `8049…EFA99` | | E-002 | `GetPotionFinalHeal @ 0x5473568` native 方法体 | 见 [E-002](../work/20260824-heroll-potion-gauge/evidence/E-002.md) | `AC35…00DA` | | E-003 | Gauge 更新、spawn 调用与清零链 | 见 [E-003](../work/20260824-heroll-potion-gauge/evidence/E-003.md) | `43CE…5CD` | | E-004 | 公开资料没有精确基础公式 | 见 [E-004](../work/20260824-heroll-potion-gauge/evidence/E-004.md) | n/a | | E-005 | 负责人实机 2+4+4 规则确认 | 见 [E-005](../work/20260824-heroll-potion-gauge/evidence/E-005.md) | n/a | | E-006 | MVP、浏览器与启动器验收 | 见 [E-006](../work/20260824-heroll-potion-gauge/evidence/E-006.md) | n/a | ## Findings | ID | 状态 | 置信度 | 结论 | |---|---|---|---| | F-001 | validated | high | HealLevel 是固定 HP;PercentHeal 是独立百分比加项 | | F-002 | validated | high | Boss 是 2 ROLL 蓄势 + 4 ROLL 倒计时 + 转换 4 格 | | F-003 | validated | high | 启动器故障由 CMD/PS1 编码与换行兼容性造成 | 完整字段见 [findings.md](../work/20260824-heroll-potion-gauge/findings.md)。 ## Path ```mermaid flowchart LR cfg["HealLevel 固定值"] --> base["基础恢复 HP"] pct["PercentHeal 10% Max HP"] --> add["额外恢复"] base --> sum["相加"] add --> sum adaptive["Adaptive multiplier"] --> final["除以 100 后取整"] sum --> final --> clamp["生命上限钳制"] ``` ```mermaid stateDiagram-v2 [*] --> Build0 Build0 --> Build1: ROLL 1 Build1 --> Countdown4: ROLL 2 Countdown4 --> Countdown3: ROLL 3 Countdown3 --> Countdown2: ROLL 4 Countdown2 --> Countdown1: ROLL 5 Countdown1 --> BossAction: ROLL 6 BossAction --> Convert4: 逐格感染动画 Convert4 --> Build0: 重置循环 ``` 完整调用路径见 [path.md](../work/20260824-heroll-potion-gauge/path.md)。 ## 复现命令 ```powershell C:\Users\toshio\Tools\radare2\bin\radare2.exe -q -c "e asm.lines=false; s 0x5473568; af; pdf; q" work\heroll-stage-2-5\libil2cpp.runtime-decrypted.so cd mvp .\Validate-Heroll-MVP.ps1 cd .. cmd.exe /d /c "set HEROLL_MVP_SELF_TEST=1&& call HEROLL_MVP_双击启动.cmd" ``` ## 遗留边界 - `2 + 4 + 转换 4 格` 的精确时序来自负责人实机确认;bounded native 证据只闭环 Gauge 增量、范围、spawn 调用和清零。 - 其他丹药强化若需要宣称“原作完整还原”,仍应逐个恢复 native 消费者;当前 MVP 保留已实现的验证语义。