更新 2.204
2026/8/2
v2.204.0.0BETAMINOR
Seymour2026年8月2日
F7 In-Live ("FFX 編輯器 - In-Live"): RAM 難度 (全域 + per-area + 微調)、強制最終戰鬥與音樂,搭配可運作的原生 F7 選單
hooks/F7InLive.{cpp,h}(新增): 型別化設定 (F7Config) 持久化至modules\config\f7_inlive.json(載入 + 原子性.tmp+MoveFileEx儲存); 閘門f7_inlive.flag/config\f7_inlive.flag/FFXHOOKS_ENABLE_F7=1(OFF 預設).- RAM 難度 (per-battle auto-apply): MinHook 在
ResolveEncounterToken (0x3828B0)上 (read-only last-encounter 場地/羣組擷取) +InitSystemSceneAndActorTable (0x383ED0)(標記 needApply) →F7_DifficultyTryAutoApply等待統計資料就緒後套用 區域→全域 + 在同一個視窗中啟動戰鬥音樂。敵方列表0xD37634(步長 0xF90,當 u16@+0x0E≠0xFFFF 時該欄位被佔用); 偏移量在0x79C130反編譯中於 COPY 上驗證:+0x594 Max_hp,+0x5A8..0x5AF統計,+0x5DA/5DC/5DD元素吸收/抗性/弱點,+0x630innate_auto (3×u16),+0x641statusResist[25],+0x6E4/6E8目前。全域預設: 10 個千分率乘數 (HP/MP/力量/防禦/魔力/魔防/敏捷/命中/迴避/幸運 + 超越擊殺),autoStatusMask(位元 0..24), elemWeak/抗性/Absorb (OR),statusResist[25]; N2 per-area (F7AreaRule[16], 回退值 -1) 透過diffByArea. - 強制最終戰鬥:
F7_ForceLastBattle()— CALLMsBattleEncountExe (0x380DE0)在主執行緒上使用擷取的最後場地/羣組;repeatCount 1..9. - 音樂: 鎖定 (透過
FFXHooksBlock_v1musicOverrideTrackIndex+musicSeq覆寫), battleTrack (MusicHook 待處理 — single-consumption, 45 秒過期), 隨機化 (從播放清單中透過 GetTickCount 挑選), 淡入淡出 (SetMusicHookMinFadeFrames). - 原生 F7 選單: 8 列中樞 + MUSIC (鎖定/戰鬥進入/隨機化/淡入淡出/返回), FORCE (強制最終戰鬥/重複/最後遭遇/返回) 和 DIFF (關閉/獵人/Sin之影/真 Nightmare 預設 + 啟用 + 6 個乘數 + 自動 + 弱點/抗性/吸收 + 立即套用/儲存/返回) 子選單 —
F7RT_STEPPER/TOGGLE/ACTION/INFO/BACK行, 玻璃繪製 + 串聯;f7_inlive.flag也啟動原生的選單 (StartNativeMenuIfEnabled). - 建置 PASS (
build_hooks.ps1 -WithPolyHook -Release, 0 個錯誤; F7InLive.cpp 已在 vcxproj 和 build_hooks.ps1 中註冊). - RT2 in-game
Needs Testing(難度 per-family mutate-observe; 強制擷取→一鍵; 音樂可聽). 文件:docs/reverse/FFX_F7_INLIVE_ARCHITECTURE_2026-08-01.md. ### MINOR
v2.205.0.0