OBD:BINA/OBJC/CHAR: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
m (added "{{OBDtrBK}}")
Line 91: Line 91:
{{OBDtr| 0x1E4 | int16    |FF0080| 00 00      | 0          | amount of force shields that can be used }}
{{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| 0x1E6 | int16    |FF0080| 00 00      | 0          | amount of force shields that can be dropped }}
{{OBDtr| 0x1E8 | int16    |FFFFA6| 00 00      | 0          | amount of phase cloaking that can be used (60 = 1 second) }}
{{OBDtr| 0x1E8 | int16    |FFFFA6| 00 00      | 0          | amount of phase cloaking that can be used (60 <nowiki>=</nowiki> 1 second) }}
{{OBDtr| 0x1EA | int16    |FFFFA6| 00 00      | 0          | amount of phase cloaking that can be dropped }}
{{OBDtr| 0x1EA | int16    |FFFFA6| 00 00      | 0          | amount of phase cloaking that can be dropped }}
{{OBDtr| 0x1EC | int32    |71FFB8| 00 00 00 00 | 0          | unknown; always zero }}
{{OBDtr| 0x1EC | int32    |71FFB8| 00 00 00 00 | 0          | unknown; always zero }}
Line 136: Line 136:
: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.
: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)
:(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)


==Bluebox image - Screenshot of the developer character window==
==Bluebox image - Screenshot of the developer character window==

Revision as of 09:48, 21 September 2007

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


Basic setup - Apperance, weapon, position, misc spawn flags

Bin r ch.gif


Offset Type Raw Hex Value Description
First element (black outline)
0x000 char[4] 52 41 48 43 CHAR character
0x004 int32 87 19 00 00 6535 old file ID
0x008 int32 00 00 00 00 0 unknwon
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 folowing bits are used:


0x 01 00 00 00 - player character
0x 02 00 00 00 - random skin
0x 04 00 00 00 - not prespawned
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 - boss (whatever that means)
0x 00 02 00 00 - has LSI
0x 00 04 00 00 - no auto-drop (whatever that means ==> maybe drops nothing when killed )
0x 00 08 00 00 - upgrade difficulty (spawns a stronger enemy if you play on medium or hard)
0x 00 10 00 00 - omniscient (whatever that means)


0x028 char[64] konoko_generic character class name (reference to 00991-konoko_generic.ONCC)
0x068 char[32] konoko character name
0x088 char[32] w1_tap weapon name (reference to 03701-w1_tap.ONWC of level 0)
0x0A8 char[32] unused unknown; never used in Oni (maybe second weapon or it belongs to the weapon name part above)


Script functions - Called by engine when certain things happen to a character

Offset Type Raw Hex Value Description
0x0C8 char[32] unused script function called when character is spawned
0x0E8 char[32] you_lose script function called when character dies (health reaches 0); can work multiple times
0x108 char[32] unused script function called when character notices an enemy; works only once
0x128 char[32] unused alarm function; never used in Oni, it is called when character is alarmed
0x148 char[32] unused script function called when character is hurt for the first time; works only once
0x168 char[32] unused script function called when character is "defeated" (health reaches 1); works only once
0x188 char[32] unused 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
0x1A8 char[32] unused nopath function, 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

Offset Type Raw Hex Value Description
0x1C8 int32 00 00 00 00 0 additional health (the basic health is 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 Patrol_Path.BINA file)
0x1D2 int16 00 00 0 combat ID (reference to the Combat.BINA file)
0x1D4 int16 00 00 0 melee ID (reference to the Melee Profile.BINA file)
0x1D6 int16 00 00 0 neutral ID (reference to the Neutral.BINA file)
0x1D8 int16 01 00 1 amount of ammo (red clips) that can be used
0x1DA int16 00 00 0 amount of ammo (red clips) that can be dropped
0x1DC int16 00 00 0 amount of energy cells (green clips) that can be used
0x1DE int16 00 00 0 amount of energy cells (green clips) 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 cloaking that can be used (60 = 1 second)
0x1EA int16 00 00 0 amount of phase cloaking that can be dropped
0x1EC int32 00 00 00 00 0 unknown; always zero
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 ammo filling in percent
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 minimal 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 unknown (pm_pursue_strong?)
0x210 int32 01 00 00 00 1 unknown (pm_pursue_weak?)
0x214 int32 04 00 00 00 4 unknown (pm_pursue_strong_seen?)
0x218 int32 04 00 00 00 4 unknown (pm_pursue_weak_seen?)
0x21C int32 00 00 00 00 0 unknown (pm_pursue_lost?)


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)

Bluebox image - Screenshot of the developer character window

bina_chara.gif (Coming soon...)


ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
WEAP << Other OBJC >> CMBT
CHAR : Character
[[OBD:File types/{{{family}}}|{{{family}}} file]]