Jump to content

OBD:AISA: Difference between revisions

92 bytes added ,  6 October 2008
tired; bad memory about FLAG and confusion about ONCC
(note on ONCC lookup; game crashes if ONCC is unavailable)
(tired; bad memory about FLAG and confusion about ONCC)
Line 1: Line 1:
{{OBD_File_Header | type=AISA | prev=AGQR | next=AITR | name=AI Character Setup Array | family=Level | desc=The '''AISA''' contains character creation information for the chr_create script command. | align=center}}
{{OBD_File_Header | type=AISA | prev=AGQR | next=AITR | name=AI Character Setup Array | family=Level | onistuff=aisa | align=center}}




Line 17: Line 17:
{{OBDtr | 0x024 | int16    |C8FFFF| 00 00      | 0    | ignored }}
{{OBDtr | 0x024 | int16    |C8FFFF| 00 00      | 0    | ignored }}
{{OBDtr | 0x026 | int16    |FFC8FF| 00 00      | 0    | team ID (see [[CHAR]] for possible values) }}
{{OBDtr | 0x026 | int16    |FFC8FF| 00 00      | 0    | team ID (see [[CHAR]] for possible values) }}
{{OBDtr | 0x028 | link    |FFC800| 01 DF 03 00 | 991  | link to [[OBD:ONCC|00991-ONCCkonoko_generic]]; must be a valid ONCC }}
{{OBDtr | 0x028 | link    |FFC800| 01 DF 03 00 | 991  | link to [[OBD:ONCC|00991-ONCCkonoko_generic]]; must be a valid ONCC; replaced with first available ONCC if missing }}
{{OBDtr2| 0x02C | char[32] |C87C64| unused            | ignored  }}
{{OBDtr2| 0x02C | char[32] |C87C64| unused            | ignored  }}
{{OBDtr | 0x04C | int32    |C800C8| 00 00 00 00 | 0    | ignored  }}
{{OBDtr | 0x04C | int32    |C800C8| 00 00 00 00 | 0    | ignored  }}
Line 41: Line 41:
;Automatic naming
;Automatic naming
:If the name field is left blank, the engine will generate an automatic name "ai_#", where # is the runtime ID of the character (first empty slot in memory at the time of the spawning). The ID is not zero-padded: "ai_0, "ai_1", ...
:If the name field is left blank, the engine will generate an automatic name "ai_#", where # is the runtime ID of the character (first empty slot in memory at the time of the spawning). The ID is not zero-padded: "ai_0, "ai_1", ...
;Missing ONCC issue
;Missing [[FLAG]] issue
:For [[CHAR]] a.k.a. [[ai2_spawn]], a missing ONCC is resolved by picking the first available ONCC. For [[AISA]] a.k.a. [[chr_create]], as well as for [[ai2_chump]] (hardcoded to spawn ONCCstriker_easy_1), a missing ONCC results in a crash.
:If the flag ID requested by [[chr_create]] is obsolete or otherwise unavailable, chr_create will fail with a message to the console.
;Missing FLAG issue
;Missing [[ONCC]] issue
:If the flag ID requested by [[chr_create]] is obsolete or otherwise unavailable, the game will crash.
:Missing ONCCs are resolved by picking the first available ONCC. If the eventually used ONCC is invalid (e.g., if it has a missing TRAC or if its ONCV is missing from ONVL), Oni will crash. This applies to [[CHAR]] a.k.a. [[ai2_spawn]], [[AISA]] a.k.a. [[chr_create]], and [[ai2_chump]] (hardcoded to spawn ONCCstriker_easy_1).
;Inventory and script events.
;Inventory and script events.
:Since nearly all the inventory fields are ignored, AISA characters can't be spawned with inventory items, and so the "out of ammo" script function is irrelevant. The inventory can still be set with scripting (items that the character can use, not what they drop when killed). The "no path" function doesn't seem to work, neither does it seem to work for [[CHAR]].
:Since nearly all the inventory fields are ignored, AISA characters can't be created with inventory items, and so the "out of ammo" script function is irrelevant. The inventory can still be set with scripting (items that the character can use, not what they drop when killed). The "no path" function doesn't seem to work, neither does it seem to work for [[CHAR]].




{{OBD_File_Footer | type=ASIA | prev=AGQR | next=AITR | name=AI Character Setup Array | family=Level}}
{{OBD_File_Footer | type=AISA | prev=AGQR | next=AITR | name=AI Character Setup Array | family=Level}}