Update 2.37
7.6.2026
Monster AI Editor: eine BEWIESENE „Wenn HP unter X%"-Bedingung (IDA+Korpus) + 222 benannte Property-Felder (Ende von "campo 0xNN"). Halyson sagte, IDA zu verwenden, und vermutete "es muss eine Konfigurationsdatei sein, in der die Zeile = eine Zahl ist" — beides voll ins Schwarze. RE in `FFX_recon.i64`: der ATEL-native Dispatch = `handler = (FuncspaceTables[funcId>>12] + 16(funcId&0xFFF))` (Slot +0 CALLPOPA / +12 CALL); `readChrProperty` (0x700F) = `0x7A4D70` → ein `field→property`-Wechsel (`sub_7B2DD0`). Querverwiesen mit FFXDataParser/ScriptConstants.putBattleActorProperty (die "Konfiguration", die der Besitzer intuitiv erfasst hat) + dem Korpus: Feld 0x00 = HP (stat\_hp, die am häufigsten gelesene Property des Korpus — 306×), 0x02 = maxHP (137×), 0x119 = NearDeath (= IDA-Fall 281 `current<max/2`). Arithmetische Opcodes bewiesen (` 0x16` usw.). \#11 REAL ausgeliefert: ein geschützter Snippet "Wenn HP unter X% → Befehl erzwingen" = das `HP100 < maxHPX`-Idiom (korpus-bewiesene Felder 0/2) — die echte Boss-Wut, keine Vermutung mehr (die frühere v2.35.0 war generisch, weil das HP-Feld nicht bewiesen war; jetzt ist es bewiesen). Benennung: neue `FfxLib/Ai/AiChrPropertyNames.cs` (222 benannte Felder, gleiche öffentliche Provenienz wie die Funktionsnamen-Tabelle des Codecs) in den Buff/Stat-Detektor verdrahtet → Statusaktionen zeigen jetzt "Hast/Protes/StatusPoison/HP/maxHP…" statt "campo 0xNN". Gate `--ai2`: HP%-Enrage 346/346 \+ bedingt 346/346; `--ai3` PASS. Doku: `docs/reverse/FFX_AI_NATIVE_DISPATCH_AND_CHRPROPERTY_FIELDMAP_2026-06-07.md` (+ Umbenennungs-Warteschlange für die `.i64`). Ehrlich: Struktur offline bewiesen, In-Game-Effekt = RT2; das 0xDA/218=HP%×256-Gauge existiert in IDA, aber der Korpus nutzt es nicht (ich habe den Pfad genutzt, den die AI tatsächlich verwendet, 0/2). Editor-Build rot wegen WIP der Sphere-Grid-lane (unabhängig); alle meine Dateien sind FfxLib, gate-validiert. \[vorher: `v2.36.0.1`\] — Jarvis-MAGIC
Hinweise lesen