更新 2.40
2026/6/9
v2.40.0BETA
Seymour
AI 組譯器:一個堆疊校正器(等級1+2)— 當編輯清空堆疊時發出警告,並說明如何修復
- 擁有者要求一個「mini-AI 校正器」來協助修復組譯錯誤。驗證器已經能抓出無效的操作碼/懸浮跳躍/索引 OOB,但不是#1 hand-edit 錯誤:堆疊不平衡。現在它辦到了。RE-grounded (FFXDataParser): 新的
FfxLib/Ai/AiStackModel.cs= per-opcode 堆疊效果(來自OPCODE_STACKPOPS)+ 269個函式的參數個數(ScriptFuncLib輸入計數;存取器 = 主體?+索引+值?)。AiValidator模擬堆疊深度(在進入點/jump-target 重設為0)並報告下溢。關鍵誠實轉折: 解析器的參數個數並不總是符合真實的 VM(已證明:setSelfFloating 0x7029解析器說2,語料庫推送1)— 因此它不採用絕對計數(這會在有效代碼上 false-positive),而是比較 ORIGINAL 與 EDITED 堆疊:參數個數的雜訊在兩者中都存在並相互抵消,只留下 YOUR 編輯所破壞的部分。訊息(等級2)以淺白語言說明在哪裡清空 + 如何修復(「放回原本是引數的 PUSH;每個陳述式都會推送 THEN 呼叫的引數」)。Auto-surfaces 在驗證面板中。關卡--ai2:驗證器清潔 346/346(語料庫上零誤報)+ stack-break 捕獲 1/1(證明它能抓出一個被移除的 arg-push);--ai3PASS;RT0 byte-identical(僅分析,零位元組)。編輯器建置零錯誤。誠實: 它能偵測編輯所引入的內容;某些函式的精細參數個數 = 公開的 RE(語料庫校準 = 未來)
v2.39.2
v2.40.1BETA
Seymour
AI 組合器:一個「嘗試修復」按鈕(第3級,誠實的 auto-fix)
- 關閉校正器:一個在「驗證/儲存」旁的 🪄 嘗試修復 按鈕。誠實規則(擁有者自身的): 僅套用有 SINGLE 正確答案的修復;其餘僅建議,絕不猜測。在組合器模型中(該模型從操作碼本身推導出
HasOperand),唯一明確的修復是還原您標記為刪除的一行,而該行結果是跳躍/進入點的 TARGET — 它 MUST 保留(re-pointing 分支會改變行為 = 猜測)。該按鈕在迴圈中 re-validates,un-removes 那些懸空目標(解決了 #1 "I 移除了某些東西然後壞掉了" 的情況),而對於錯誤 WITHOUT 單一解答(無效操作碼、jump-index OOB、Level-1 堆疊下溢),它在報告中說明該怎麼做,但 NOT 碰觸它們 — "I 不要猜測您的意圖"。報告修復了多少 + 還有多少仍需您決定。MonsterAiEditor_DataModel.Assembler.TryAutoFixAssembler(使用 gate-testedAiValidator;從不編輯運算元/操作碼也不移除任何內容)。編輯器建置零錯誤;--ai2/--ai3PASS(RT0 byte-identical — 它僅切換 VM 的刪除標記,無位元組變更)。誠實: 猜測意圖的 auto-fix = 隱性錯誤,因此該按鈕設計上保守
v2.40.0