Actualización 2.37
7/6/2026
Editor Monster AI: una condición PROBADA "Si HP está por debajo del X%" (IDA+corpus) + 222 campos de propiedad con nombre (final de "campo 0xNN"). Halyson dijo que usara IDA y adivinó "debe ser un archivo de configuración donde la línea = un número" - ambos acertados. RE en `FFX_recon.i64`: el despacho nativo ATEL = `handler = (FuncspaceTables[funcId>>12] + 16(funcId&0xFFF))` (ranura +0 CALLPOPA / +12 CALL); `readChrProperty` (0x700F) = `0x7A4D70` → un interruptor `field→property` (`sub_7B2DD0`). Referencia cruzada con FFXDataParser/ScriptConstants.putBattleActorProperty (la "configuración" que el propietario intuyó) + el corpus: campo 0x00 = HP (stat_hp, la propiedad más leída del corpus: 306×), 0x02 = maxHP (137×), 0x119 = NearDeath (= IDA caso 281 `current<max/2`). Códigos de operación aritméticos probados (` 0x16`, etc.). #11 REAL enviado: un fragmento protegido "Si HP está por debajo del X% → forzar comando" = el modismo `HP100 < maxHPX` (campos probados en corpus 0/2): la verdadera ira del jefe, ya no es una suposición (la versión anterior de v2.35.0 era genérica porque el campo HP no estaba probado; ahora sí lo está). Denominación: el nuevo `FfxLib/Ai/AiChrPropertyNames.cs` (222 campos con nombre, la misma procedencia pública que la tabla de nombres de funciones del códec) conectado al detector de mejoras/estadísticas → las acciones de estado ahora muestran "Prisa/Coraza/StatusPoison/HP/maxHP…" en lugar de "campo 0xNN". Puerta `--ai2`: HP%-enrage 346/346 + condicional 346/346; `--ai3` PASS. Documentos: `docs/reverse/FFX_AI_NATIVE_DISPATCH_AND_CHRPROPERTY_FIELDMAP_2026-06-07.md` (+ cola de cambio de nombre para `.i64`). Honesto: estructura probada fuera de línea, efecto en el juego = RT2; el indicador 0xDA/218=HP%×256 existe en IDA pero el corpus no lo usa (usé la ruta que realmente usa AI, 0/2). El editor está en rojo debido al WIP del carril Sphere Grid (no relacionado); Todos mis archivos son FfxLib, validados por puerta.
Leer notas