OBD:BINA/OBJC/CHAR: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
Line 10: Line 10:
{{Table}}
{{Table}}
{{OBDth}}
{{OBDth}}
{{OBDtr| 0x00 | char[4]  |FF0000| 43 4A 42 4F | OBJC      | object collection }}
{{OBDtr| 0x04 | int32    |FFFF00| 2C 8B 00 00 | 35628      | size of the complete collection from this postion in bytes }}
{{OBDtr| 0x08 | int32    |00FF00| 27 00 00 00 | 39        | unknown; do not change it }}
{{OBDtr| 0x0C | int32    |00FFFF| 20 02 00 00 | 544        | size of the following element in bytes }}
{{OBDtrBK}}
{{OBDtrBK}}
{{OBDtr| 0x000 | char[4]  |FFC8C8| 52 41 48 43 | CHAR      | character }}
{{OBDtr| 0x000 | char[4]  |FFC8C8| 52 41 48 43 | CHAR      | character }}
Line 44: Line 48:
{{OBDtr2|0x0A8 | char[32] |64AAAA| unused                  | unknown; never used in Oni (maybe second weapon or it belongs to the weapon name part above) }}
{{OBDtr2|0x0A8 | char[32] |64AAAA| 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==
==Script functions - Called by engine when certain things happen to a character==

Revision as of 12:23, 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
0x00 char[4] 43 4A 42 4F OBJC object collection
0x04 int32 2C 8B 00 00 35628 size of the complete collection from this postion in bytes
0x08 int32 27 00 00 00 39 unknown; do not change it
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 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]]