OBD:BINA/OBJC/CHAR: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
mNo edit summary
m (→‎Script functions: bg color was too dark to read the text)
 
(37 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{OBD OBJC Header|align=center|type=CHAR|prev=WEAP|next=CMBT|name=Character|onistuff=b_ch}}
{{OBD OBJC Header | align=center | type=CHAR | prev=WEAP | next=CMBT | name=Character |stuff=b_ch}}


==File description==
===Basic setup===
The character's appearance, weapon, position, and misc. spawn flags.


----
[[Image:bin_r_ch.gif]]
----
==Screenshot==
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_ch.gif




==Basic setup==
{{Table}}
;APPEARANCE, WEAPON, POSITION, MISC SPAWN FLAGS
{{OBDth}}
{|{{OBDtable}}
{{OBDtr| 0x00 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | wrapper tag }}
|align=center|
{{OBDtr| 0x04 | int32    |FFFF00| 2C 8B 00 00 | 35628      | size of the complete list in bytes from this position }}
{|{{OBDtable}}
{{OBDtr| 0x08 | int32    |00FF00| 27 00 00 00 | 39        | object list version }}
|- bgcolor="#FFDDBB" align="CENTER"
{{OBDtr| 0x0C | int32    |00FFFF| 20 02 00 00 | 544        | size of the following element in bytes }}
| width="15%" | '''Raw hex'''
{{OBDtrBK}}
| width="15%" | '''Value'''
{{OBDtr| 0x000 | char[4]  |FFC8C8| 52 41 48 43 | CHAR       | tag name }}
| width="70%" | '''Meaning'''
{{OBDtr| 0x004 | int32    |FFFFC8| 87 19 00 00 | 6535       | old file ID }}
|-
{{OBDtr| 0x008 | int32    |C8FFC8| 00 00 00 00 | 0         | unknown }}
| bgcolor="#FFC8C8" | 52 41 48 43
{{OBDtr| 0x00C | float    |C8FFFF| A5 7D 9D 43 | 314.981597 | x position of the character }}
| CHAR
{{OBDtr| 0x010 | float    |C8FFFF| 00 00 D8 C1 | -27.000000 | y position (height) of the character }}
| align="LEFT" | character
{{OBDtr| 0x014 | float    |C8FFFF| 98 09 1E 42 | 39.509368 | z position of the character }}
|-
{{OBDtr| 0x018 | float    |FFC8FF| 00 00 00 00 | 0.000000   | rotation on the x axis in degrees }}
| bgcolor="#FFFFC8" | 87 19 00 00
{{OBDtr| 0x01C | float    |FFC8FF| 00 00 87 43 | 270.000000 | rotation on the y axis in degrees }}
| 6535
{{OBDtr| 0x020 | float    |FFC8FF| 00 00 00 00 | 0.000000   | rotation on the z axis in degrees }}
| align="LEFT" | old file ID
{{OBDtr| 0x024 | bitset32 |FFC800| 01 00 00 00 | 1, 0, 0, 0 | character options; the following bits are used:
|-
:0x '''01''' 00 00 00 - player character
| bgcolor="#C8FFC8" | 00 00 00 00
:0x '''02''' 00 00 00 - random skin
| 0
:0x '''04''' 00 00 00 - not pre-spawned
| align="LEFT" | unknown
:0x '''08''' 00 00 00 - non-combatant
|-
:0x '''10''' 00 00 00 - multi-spawnable
| bgcolor="#C8FFFF" |
:0x '''20''' 00 00 00 - unknown
A5 7D 9D 43
:0x '''40''' 00 00 00 - unkillable
| 314.981597
:0x '''80''' 00 00 00 - superammo
| align="LEFT" | x-position of the character
:0x 00 '''01''' 00 00 - omniscient
|-
:0x 00 '''02''' 00 00 - has [[LSI]]
| bgcolor="#C8FFFF" | 00 00 D8 C1
:0x 00 '''04''' 00 00 - boss
| -27.000000
:0x 00 '''08''' 00 00 - upgrade difficulty (spawns a stronger enemy if you play on medium or hard)
| align="LEFT" | y-position (height) of the character
:0x 00 '''10''' 00 00 - no auto-drop (doesn't drop "used" shield, "used" invisibility and LSI when killed)
|-
}}
| bgcolor="#C8FFFF" | 98 09 1E 42
{{OBDtr2|0x028 | char[64] |B0C3D4| konoko_generic           | character class name (reference to [[OBD:ONCC|ONCCkonoko_generic]]) }}
| 39.509368
{{OBDtr2|0x068 | char[32] |E7CEA5| konoko                   | character name }}
| align="LEFT" | z-position of the character
{{OBDtr2|0x088 | char[64] |FFDDDD| w1_tap                   | weapon class name (reference to [[OBD:ONWC|ONWCw1_tap]] of level 0) }}
|-
| bgcolor="#FFC8FF" | 00 00 00 00
| 0.000000
| align="LEFT" | rotation on the x-axis in degrees
|-
| bgcolor="#FFC8FF" | 00 00 87 43
| 270.000000
| align="LEFT" | rotation on the y-axis in degrees
|-
| bgcolor="#FFC8FF" | 00 00 00 00
| 0.000000
| align="LEFT" | rotation on the z-axis in degrees
|-
| bgcolor="#FFC800" | 01
| 1
| align="LEFT" |option bitset 1 (see below)
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C800C8" | 00
| 0
| align="LEFT" |option bitset 2 (see below)
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C87C64" | 00 00
| 0
| align="LEFT" | unknown; always zero
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#B0C3D4" | <tt>konoko_generic</tt>
| align="LEFT" |link by name to character class (local, konoko_generic.[[OBD:ONCC|ONCC]])
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#E7CEA5" | <tt>konoko</tt>
| align="LEFT" | name of the character
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#FFDDDD" | <tt>w1_tap</tt>
| align="LEFT" |link by name to weapon class (global, w1_tap.[[OBD:ONWC|ONWC]])
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#64AAAA" | not used
| align="LEFT" | unknown; never used in Oni (maybe second weapon)
|}
|}
|}
;Option bitset 1
:1 - player character
:2 - random skin
:4 - not prespawned
:8 - non-combatant
:16 - multi-spawnable
:32 - unknown
:64 - unkillable
:128 - superammo
;Option bitset 2
option 2; it's a bitset; the following options are possible (values in dec):
:1 - boss (whatever that means)
:2 - has LSI
:4 - no auto-drop (whatever that means)
:8 - upgrade difficulty (spawns a stronger enemy if you play on medium or hard)
:16 - omniscient (whatever that means)
:32 - unknown, never used
:64 - unknown, never used
:128 - unknown, never used


===Script functions===
These are the names of the functions in the level script to call when certain things happen to a character.


----
{{Table}}
----
{{OBDth}}
==Script functions==
{{OBDtr2|0x0C8 | char[32] |EBEBEB| unused                  | called when character is spawned }}
;ARE CALLED BY THE SCRIPT ENGINE WHEN CERTAN THINGS HAPPEN TO A CHARACTER
{{OBDtr2|0x0E8 | char[32] |8C8CCC| you_lose                 | called when character dies (health reaches 0); can work multiple times }}
{|{{OBDtable}}
{{OBDtr2|0x108 | char[32] |FF00C8| unused                  | called when character notices an enemy; works only once }}
|align=center|
{{OBDtr2|0x128 | char[32] |F0F096| unused                  | never used in the game data, but it should be called when character is alarmed }}
{|{{OBDtable}}
{{OBDtr2|0x148 | char[32] |00C864| unused                  | called when character is hurt for the first time; works only once }}
|- bgcolor="#FFDDBB" align="CENTER"
{{OBDtr2|0x168 | char[32] |00C8FF| unused                  | called when character is "defeated" (health reaches 1); works only once }}
| width="15%" | '''Raw hex'''
{{OBDtr2|0x188 | char[32] |C80040| unused                  | called when character runs out of ammo by reloading a weapon with the last available clip); works only once, and the character must have the ammo at spawn time }}
| width="15%" | '''Value'''
{{OBDtr2|0x1A8 | char[32] |989898| unused                  | "nopath" function (meant to be called when a character has trouble pathfinding, but isn't) }}
| width="70%" | '''Meaning'''
|-
| colspan="2" bgcolor="#EBEBEB" | not used
| align="LEFT" | script function called when character is spawned
|-
| colspan="2" bgcolor="#8C8CCC" | <tt>you_lose</tt>
| align="LEFT" | script function called when character dies (health reaches 0); can work multiple times
|-
| colspan="2" bgcolor="#FF00C8" | not used
| align="LEFT" | script function called when character notices an enemy; works only once
|-
| colspan="2" bgcolor="#F0F096" | not used
| align="LEFT" | unknown; never used in Oni
|-
| colspan="2" bgcolor="#00C864" | not used
| align="LEFT" | script function called when character is hurt for the first time; works only once
|-
| colspan="2" bgcolor="#00C8FF" | not used
| align="LEFT" | script function called when character is "defeated" (health reaches 1); works only once
|-
| colspan="2" bgcolor="#C80040" | not used
| align="LEFT" | script function called when character runs out of ammo (reloads a weapon with the last clip/cell); works only once, and the character must have the ammo at spawn-time
|-
| colspan="2" bgcolor="#FFCD96" | not used
| align="LEFT" | unknown, some exotic script function call ("should" be called when a character has trouble pathfinding, but isn't)
|}
|}
|}


===Less basic setup===
Inventory, team, jobs, alert/pursuit behavior.


----
{{Table}}
----
{{OBDth}}
==Less basic setup==
{{OBDtr| 0x1C8 | int32    |C8C864| 00 00 00 00 | 0         | +/- delta to the class's base health (stored in the [[OBD:ONCC|ONCC]] file of the character) }}
;INVENTORY, TEAM, JOBS, ALERT/PURSUIT
{{OBDtr| 0x1CC | int32    |0096C8| 00 00 00 00 | 0         | job ID; the following jobs are possible:
{|{{OBDtable}}
|align=center|
{|{{OBDtable}}
|- bgcolor="#FFDDBB" align="CENTER"
| width="15%" | '''Raw hex'''
| width="15%" | '''Value'''
| width="70%" | '''Meaning'''
|-
| bgcolor="#C8C864" | 00 00 00 00
| 0
| align="LEFT" |
additional health (the basic health you'll find in the [[OBD:ONCC|ONCC]] file of the character)
|-
| bgcolor="#0096C8" | 00 00 00 00
| 0
| align="LEFT" |job ID (see below)
|-
| bgcolor="#FF80C0" | 00 00
| 0
| align="LEFT" | patrol path ID (looked up in local [[OBD:BINA/OBJC/PATR|CJBO'''Patrol_Path'''.BINA]])
|-
| bgcolor="#FF80C0" | 00 00
| 0
| align="LEFT" | combat ID (looked up in global [[OBD:BINA/OBJC/CMBT|CJBO'''Combat'''.BINA]])
|-
| bgcolor="#D0C0AF" | 00 00
| 0
| align="LEFT" | melee ID (looked up in global [[OBD:BINA/OBJC/MELE|CJBO'''Melee Profile'''.BINA]])
|-
| bgcolor="#D0C0AF" | 00 00
| 0
| align="LEFT" | neutral ID (looked up in local [[OBD:BINA/OBJC/NEUT|CJBO'''Neutral'''.BINA]])
|-
| bgcolor="#EEDDFF" | 01 00
| 1
| align="LEFT" | amount of ammo (red clips) that can be used
|-
| bgcolor="#EEDDFF" | 00 00
| 0
| align="LEFT" | amount of ammo (red clips) that can be dropped
|-
| bgcolor="#C5FF8A" | 00 00
| 0
| align="LEFT" | amount of energy cells (green clips) that can be used
|-
| bgcolor="#C5FF8A" | 00 00
| 0
| align="LEFT" | amount of energy cells (green clips) that can be dropped
|-
| bgcolor="#C0C0C0" | 00 00
| 0
| align="LEFT" | amount of hypos that can be used
|-
| bgcolor="#C0C0C0" | 00 00
| 0
| align="LEFT" | amount of hypos that can be dropped
|-
| bgcolor="#FF0080" | 00 00
| 0
| align="LEFT" | amount of force shields that can be used
|-
| bgcolor="#FF0080" | 00 00
| 0
| align="LEFT" | amount of force shields that can be dropped
|-
| bgcolor="#FFFFA6" | 00 00
| 0
| align="LEFT" | amount of phase cloaking that can be used (60 = 1 second)
|-
| bgcolor="#FFFFA6" | 00 00
| 0
| align="LEFT" | amount of phase cloaking that can be dropped
|-
| bgcolor="#71FFB8" | 00 00 00 00
| 0
| align="LEFT" | unknown; always zero
|-
| bgcolor="#0000BF" | 00 00 00 00
| 0
| align="LEFT" |team ID (see below)
|-
| bgcolor="#804040" | 64 00 00 00
| 100
| align="LEFT" | ammo filling in percent
|-
| bgcolor="#FF22FF" | 00 00 00 00
| 0
| align="LEFT" |initial alert level (see below)
|-
| bgcolor="#808080" | 00 00 00 00
| 0
| align="LEFT" | minimal alert level
|-
| bgcolor="#FFAA82" | 01 00 00 00
| 1
| align="LEFT" | alert level when starting a job
|-
| bgcolor="#00D900" | 02 00 00 00
| 2
| align="LEFT" | alert level when investigating
|-
| bgcolor="#CACAFF" | 00
| 0
| align="LEFT" | unknown
|-
| bgcolor="#CACAFF" | 00
| 0
| align="LEFT" | unknown
|-
| bgcolor="#CACAFF" | 00
| 0
| align="LEFT" | unknown
|-
| bgcolor="#CACAFF" | 00
| 0
| align="LEFT" | unknown
|-
| bgcolor="#F0F000" | 04 00 00 00
| 4
| align="LEFT" | unknown (pm_pursue_strong?)
|-
| bgcolor="#E7FFCE" | 01 00 00 00
| 1
| align="LEFT" | unknown (pm_pursue_weak?)
|-
| bgcolor="#4F7291" | 04 00 00 00
| 4
| align="LEFT" | unknown (pm_pursue_strong_seen?)
|-
| bgcolor="#FFD6C1" | 04 00 00 00
| 4
| align="LEFT" | unknown (pm_pursue_weak_seen?)
|-
| bgcolor="#FF5E5E" | 00 00 00 00
| 0
| align="LEFT" | unknown (pm_pursue_lost?)
|}
|}
;Job ID
:0 - none
:0 - none
:1 - idle
:1 - idle
Line 288: Line 71:
:3 - patrol
:3 - patrol
:4 - teambattle (never used in Oni)
:4 - teambattle (never used in Oni)
;Team ID
}}
{{OBDtr| 0x1D0 | int16    |FF80C0| 00 00      | 0          | patrol path ID (reference to the [[OBD:BINA/OBJC/PATR|BINACJBOPatrol_Path]] file) }}
{{OBDtr| 0x1D2 | int16    |FF80C0| 00 00      | 0          | combat ID (reference to the [[OBD:BINA/OBJC/CMBT|BINACJBOCombat]] file) }}
{{OBDtr| 0x1D4 | int16    |D0C0AF| 00 00      | 0          | melee ID (reference to the [[OBD:BINA/OBJC/MELE|BINACJBOMelee Profile]] file) }}
{{OBDtr| 0x1D6 | int16    |D0C0AF| 00 00      | 0          | neutral ID (reference to the [[OBD:BINA/OBJC/NEUT|BINACJBONeutral]] file) }}
{{OBDtr| 0x1D8 | int16    |EEDDFF| 01 00      | 1          | amount of ballistic ammo that can be used }}
{{OBDtr| 0x1DA | int16    |EEDDFF| 00 00      | 0          | amount of ballistic ammo that can be dropped }}
{{OBDtr| 0x1DC | int16    |C5FF8A| 00 00      | 0          | amount of energy cells that can be used }}
{{OBDtr| 0x1DE | int16    |C5FF8A| 00 00      | 0          | amount of energy cells that can be dropped }}
{{OBDtr| 0x1E0 | int16    |C0C0C0| 00 00      | 0          | amount of hypos that can be used }}
{{OBDtr| 0x1E2 | int16    |C0C0C0| 00 00      | 0          | amount of hypos that can be dropped }}
{{OBDtr| 0x1E4 | int16    |FF0080| 00 00      | 0          | amount of force shields that can be used }}
{{OBDtr| 0x1E6 | int16    |FF0080| 00 00      | 0          | amount of force shields that can be dropped }}
{{OBDtr| 0x1E8 | int16    |FFFFA6| 00 00      | 0          | amount of phase cloak remaining; this number is in ticks (1/60 second) except if it's 1, in which case it's interpreted to mean "a full phase cloak" }}
{{OBDtr| 0x1EA | int16    |FFFFA6| 00 00      | 0          | will drop phase cloak (true if any value above zero) }}
 
{{OBDtr| 0x1EC | int16    |71FFB8| 00 00      | 0          | unused }}
{{OBDtr| 0x1EE | int16    |71FFB8| 00 00      | 0          | unused }}
 
{{OBDtr| 0x1F0 | int32    |0000BF| 00 00 00 00 | 0          | team ID; the following teams are possible:
:0 - Konoko
:0 - Konoko
:1 - TCTF
:1 - TCTF
Line 297: Line 99:
:6 - Switzerland
:6 - Switzerland
:7 - SyndicateAccessory
:7 - SyndicateAccessory
;Alert level
}}
{{OBDtr| 0x1F4 | int32    |804040| 64 00 00 00 | 100        | fullness of current ammo clip as a percentage }}
{{OBDtr| 0x1F8 | int32    |FF22FF| 00 00 00 00 | 0          | initial alert level; the following alert levels are possible:
:0 - lull
:0 - lull
:1 - low
:1 - low
Line 303: Line 107:
:3 - high
:3 - high
:4 - combat
:4 - combat
}}
{{OBDtr| 0x1FC | int32    |808080| 00 00 00 00 | 0          | minimum alert level }}
{{OBDtr| 0x200 | int32    |FFAA82| 01 00 00 00 | 1          | alert level when starting a job }}
{{OBDtr| 0x204 | int32    |00D900| 02 00 00 00 | 2          | alert level when investigating }}
{{OBDtr| 0x208 | bitset32 |CACAFF| 00 00 00 00 | 0, 0, 0, 0 | alarm groups, see below this table }}
{{OBDtr| 0x20C | int32    |F0F000| 04 00 00 00 | 4          | pursuit mode for strong awareness when alert level lull/low }}
{{OBDtr| 0x210 | int32    |E7FFCE| 01 00 00 00 | 1          | pursuit mode for weak awareness when alert level lull/low }}
{{OBDtr| 0x214 | int32    |4F7291| 04 00 00 00 | 4          | pursuit mode for strong awareness when alert level medium/high/combat }}
{{OBDtr| 0x218 | int32    |FFD6C1| 04 00 00 00 | 4          | pursuit mode for weak awareness when alert level medium/high/combat }}
{{OBDtr| 0x21C | int32    |FF5E5E| 00 00 00 00 | 0          | pursuit mode for lost contact (enemy was identified but then the enemy ran away) }}
{{OBDtr| 0x220 | float    |FF5E5E| 20 02 00 00 | ?          | "facing; internal use only"; used? }}
|}
;Alarm groups
Stored as a bitset. If bit 2^N is ON, the character will be alarmed by script command '''ai2_tripalarm(N)''' or alarm console command '''0060 NN00''' where NN is the hex for N.
:(Since the size of the alarm group field is 4 bytes, there's a maximum of 32 alarm groups, i.e. N ranges from 0 to 31.)
;Pursuit modes:
See {{SectionLink|AI|Reactions and awareness}} and {{SectionLink|AI|Pursuit}} to learn about meaning of CHAR pursuit values.
==Dialog from level0_Tools==
[[Image:Tool dialog - Character Properties 2.png]]
Also available is the following dialog, which is redundant of [[CMBT]] and apparently predates both CHAR and [[AISA]]:


[[Image:Tool dialog - Character Properties 1.png]]


----
----
==Blue Box Beta WMDD==
http://www6.fh-eberswalde.de/user/dkriesch/oni/bina_chara.gif


{{OBD OBJC Footer | type=CHAR | prev=WEAP | next=CMBT | name=Character | family=Level}}


----
{{OBD}}
----
{{OBD OBJC Footer|type=CHAR|prev=WEAP|next=CMBT|name=Character}}

Latest revision as of 17:01, 5 November 2024

ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
WEAP << Other OBJC >> CMBT
CHAR : Character
XML tutorial
Overview @ Oni Stuff
OBD.png

File description

Basic setup

The character's appearance, weapon, position, and misc. spawn flags.

Bin r ch.gif


Offset Type Raw Hex Value Description
0x00 char[4] 43 4A 42 4F OBJC wrapper tag
0x04 int32 2C 8B 00 00 35628 size of the complete list in bytes from this position
0x08 int32 27 00 00 00 39 object list version
0x0C int32 20 02 00 00 544 size of the following element in bytes
First element (black outline)
0x000 char[4] 52 41 48 43 CHAR tag name
0x004 int32 87 19 00 00 6535 old file ID
0x008 int32 00 00 00 00 0 unknown
0x00C float A5 7D 9D 43 314.981597 x position of the character
0x010 float 00 00 D8 C1 -27.000000 y position (height) of the character
0x014 float 98 09 1E 42 39.509368 z position of the character
0x018 float 00 00 00 00 0.000000 rotation on the x axis in degrees
0x01C float 00 00 87 43 270.000000 rotation on the y axis in degrees
0x020 float 00 00 00 00 0.000000 rotation on the z axis in degrees
0x024 bitset32 01 00 00 00 1, 0, 0, 0 character options; the following bits are used:
0x 01 00 00 00 - player character
0x 02 00 00 00 - random skin
0x 04 00 00 00 - not pre-spawned
0x 08 00 00 00 - non-combatant
0x 10 00 00 00 - multi-spawnable
0x 20 00 00 00 - unknown
0x 40 00 00 00 - unkillable
0x 80 00 00 00 - superammo
0x 00 01 00 00 - omniscient
0x 00 02 00 00 - has LSI
0x 00 04 00 00 - boss
0x 00 08 00 00 - upgrade difficulty (spawns a stronger enemy if you play on medium or hard)
0x 00 10 00 00 - no auto-drop (doesn't drop "used" shield, "used" invisibility and LSI when killed)
0x028 char[64] konoko_generic character class name (reference to ONCCkonoko_generic)
0x068 char[32] konoko character name
0x088 char[64] w1_tap weapon class name (reference to ONWCw1_tap of level 0)

Script functions

These are the names of the functions in the level script to call when certain things happen to a character.

Offset Type Raw Hex Value Description
0x0C8 char[32] unused called when character is spawned
0x0E8 char[32] you_lose called when character dies (health reaches 0); can work multiple times
0x108 char[32] unused called when character notices an enemy; works only once
0x128 char[32] unused never used in the game data, but it should be called when character is alarmed
0x148 char[32] unused called when character is hurt for the first time; works only once
0x168 char[32] unused called when character is "defeated" (health reaches 1); works only once
0x188 char[32] unused called when character runs out of ammo by reloading a weapon with the last available clip); works only once, and the character must have the ammo at spawn time
0x1A8 char[32] unused "nopath" function (meant to be called when a character has trouble pathfinding, but isn't)

Less basic setup

Inventory, team, jobs, alert/pursuit behavior.

Offset Type Raw Hex Value Description
0x1C8 int32 00 00 00 00 0 +/- delta to the class's base health (stored in the ONCC file of the character)
0x1CC int32 00 00 00 00 0 job ID; the following jobs are possible:
0 - none
1 - idle
2 - guard (never used in Oni)
3 - patrol
4 - teambattle (never used in Oni)
0x1D0 int16 00 00 0 patrol path ID (reference to the BINACJBOPatrol_Path file)
0x1D2 int16 00 00 0 combat ID (reference to the BINACJBOCombat file)
0x1D4 int16 00 00 0 melee ID (reference to the BINACJBOMelee Profile file)
0x1D6 int16 00 00 0 neutral ID (reference to the BINACJBONeutral file)
0x1D8 int16 01 00 1 amount of ballistic ammo that can be used
0x1DA int16 00 00 0 amount of ballistic ammo that can be dropped
0x1DC int16 00 00 0 amount of energy cells that can be used
0x1DE int16 00 00 0 amount of energy cells that can be dropped
0x1E0 int16 00 00 0 amount of hypos that can be used
0x1E2 int16 00 00 0 amount of hypos that can be dropped
0x1E4 int16 00 00 0 amount of force shields that can be used
0x1E6 int16 00 00 0 amount of force shields that can be dropped
0x1E8 int16 00 00 0 amount of phase cloak remaining; this number is in ticks (1/60 second) except if it's 1, in which case it's interpreted to mean "a full phase cloak"
0x1EA int16 00 00 0 will drop phase cloak (true if any value above zero)
0x1EC int16 00 00 0 unused
0x1EE int16 00 00 0 unused
0x1F0 int32 00 00 00 00 0 team ID; the following teams are possible:
0 - Konoko
1 - TCTF
2 - Syndicate
3 - Neutral
4 - SecurityGuard
5 - RogueKonoko
6 - Switzerland
7 - SyndicateAccessory
0x1F4 int32 64 00 00 00 100 fullness of current ammo clip as a percentage
0x1F8 int32 00 00 00 00 0 initial alert level; the following alert levels are possible:
0 - lull
1 - low
2 - medium
3 - high
4 - combat
0x1FC int32 00 00 00 00 0 minimum alert level
0x200 int32 01 00 00 00 1 alert level when starting a job
0x204 int32 02 00 00 00 2 alert level when investigating
0x208 bitset32 00 00 00 00 0, 0, 0, 0 alarm groups, see below this table
0x20C int32 04 00 00 00 4 pursuit mode for strong awareness when alert level lull/low
0x210 int32 01 00 00 00 1 pursuit mode for weak awareness when alert level lull/low
0x214 int32 04 00 00 00 4 pursuit mode for strong awareness when alert level medium/high/combat
0x218 int32 04 00 00 00 4 pursuit mode for weak awareness when alert level medium/high/combat
0x21C int32 00 00 00 00 0 pursuit mode for lost contact (enemy was identified but then the enemy ran away)
0x220 float 20 02 00 00 ? "facing; internal use only"; used?


Alarm groups

Stored as a bitset. If bit 2^N is ON, the character will be alarmed by script command ai2_tripalarm(N) or alarm console command 0060 NN00 where NN is the hex for N.

(Since the size of the alarm group field is 4 bytes, there's a maximum of 32 alarm groups, i.e. N ranges from 0 to 31.)
Pursuit modes

See AI § Reactions and awareness and AI § Pursuit to learn about meaning of CHAR pursuit values.

Dialog from level0_Tools

Tool dialog - Character Properties 2.png


Also available is the following dialog, which is redundant of CMBT and apparently predates both CHAR and AISA:


Tool dialog - Character Properties 1.png


ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
WEAP << Other OBJC >> CMBT
CHAR : Character
Level file