OBD:BINA/OBJC/MELE: Difference between revisions
Jump to navigation
Jump to search
m (saving...) |
|||
Line 1: | Line 1: | ||
{{OBD OBJC Header | {{OBD OBJC Header | type=MELE | prev=FURN | next=NEUT | name=Melee profile | align=center}} | ||
==File Description== | |||
===General part=== | |||
[[image:bin_r_m1.gif]] | |||
{{Table}} | |||
{{OBDth}} | |||
{{OBDtr| 0x00 | char[4] |FF0000| 43 4A 42 4F | OBJC | object collection }} | |||
{{OBDtr| 0x04 | int32 |FFFF00| 84 75 02 00 | 161156 | size of the complete combat part from this postion in bytes }} | |||
{{OBDtr| 0x08 | int32 |00FF00| 27 00 00 00 | 39 | unknown; do not change it }} | |||
{{OBDtr| 0x0C | int32 |00FFFF| 28 15 00 00 | 5416 | size of the following element in bytes }} | |||
{{OBDtrBK}} | |||
{{OBDtr| 0x00 | char[4] |FFC8C8| 45 4C 45 4D | MELE | melee }} | |||
{{OBDtr| 0x04 | int32 |FFFFC8| 76 02 00 00 | 630 | old file ID }} | |||
{{OBDtr| 0x08 | int32 |C8FFC8| 00 00 00 00 | 0 | unknown }} | |||
{{OBDtr| 0x0C | float |C8FFFF| B3 F3 2A 43 | 170.951950 | x-position of unknown }} | |||
{{OBDtr| 0x10 | float |C8FFFF| C7 0D 71 C1 | -15.065864 | y-position (height) of unknown }} | |||
{{OBDtr| 0x14 | float |C8FFFF| CF 29 38 42 | 46.040829 | z-position of unknown }} | |||
{{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the x-axis in degrees }} | |||
{{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the y-axis in degrees }} | |||
{{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z-axis in degrees }} | |||
|} | |||
===Profile part=== | |||
{{Table}} | |||
{{OBDth}} | |||
{{OBDtr| 0x24 | int32 |FFC800| 09 00 00 00 | 9 | melee ID }} | |||
{{OBDtr2|0x28 | char[64] |C800C8| NINJA_Easy | space for notes }} | |||
{{OBDtr2|0x68 | char[64] |C87C64| ninja_easy_1 | character class name (reference to a ninja_easy_1.[[OBD:ONCC|ONCC]] file) }} | |||
{{OBDtr| 0xA8 | int32 |B0C3D4| 64 00 00 00 | 100 | notice in percent; how often AI registeres incoming attack; without noticing it, AI will not block or dodge }} | |||
{{OBDtr| 0xAC | int32 |B0C3D4| 64 00 00 00 | 100 | Dodge base in percent; determines how often AI tries to dodge incoming attacks }} | |||
{{OBDtr| 0xB0 | int32 |B0C3D4| 1E 00 00 00 | 30 | Dodge extra in percent; adds extra chance to dodge incoming attack }} | |||
{{OBDtr| 0xB4 | int32 |B0C3D4| 05 00 00 00 | 5 | Dodge damage amount; amount of damage dealt to character (or incoming in one strong attack) for Dodge extra activation }} | |||
{{OBDtr| 0xB8 | int32 |B0C3D4| 0F 00 00 00 | 15 | 1 vs 1 blocking skill in percent; specifies how often AI blocks incoming attack when blocking one enemy }} | |||
{{OBDtr| 0xBC | int32 |B0C3D4| 14 00 00 00 | 20 | Group blocking skill in percent; looks like amount of possibility that AI will try to block attacks incoming from more enemies }} | |||
{{OBDtr| 0xC0 | float |E7CEA5| 00 00 00 40 | 2.000000 | unknown; always the same ("not blocked"?) }} | |||
{{OBDtr| 0xC4 | float |E7CEA5| 33 33 33 3F | 0.700000 | unknown ("must change stance"?) }} | |||
{{OBDtr| 0xC8 | float |E7CEA5| 00 00 C0 3F | 1.500000 | unknown ("blocked but unblockable"?) }} | |||
{{OBDtr| 0xCC | float |E7CEA5| 9A 99 99 3F | 1.200000 | unknown; always the same ("blocked but has stagger"?) }} | |||
{{OBDtr| 0xD0 | float |E7CEA5| 33 33 33 3F | 0.700000 | unknown; always the same ("blocked but has blockstun"?) }} | |||
{{OBDtr| 0xD4 | float |E7CEA5| 00 00 00 3F | 0.500000 | unknown; always the same ("blocked"?) }} | |||
{{OBDtr| 0xD8 | float |E7CEA5| 00 00 00 40 | 2.000000 | throw danger; still unknown but it has something to do with probability of being thrown; when set very high, AI2 with this MELE is almost unthrowable }} | |||
{{OBDtr| 0xDC | int16 |FFDDDD| 3C 00 | 60 | unknown; always the same }} | |||
{{OBDtr| 0xDE | int16 |FFDDDD| 5A 00 | 90 | unknown }} | |||
{{OBDtr| 0xE0 | int32 |64AAAA| 1A 00 00 00 | 26 | number of attack techniques }} | |||
{{OBDtr| 0xE4 | int32 |64AAAA| 06 00 00 00 | 6 | number of evade/dodge techniques }} | |||
{{OBDtr| 0xE8 | int32 |64AAAA| 07 00 00 00 | 7 | number of maneuver/position techniques }} | |||
{{OBDtr| 0xEC | int32 |64AAAA| 6D 00 00 00 | 109 | number of moves }} | |||
|} | |||
{{Table}} | |||
{{OBDth}} | |||
{{OBDtr| 0x6C | float |E7CEA5| | | }} | |||
{{OBDtr| 0x6C | float |E7CEA5| | | }} | |||
|} | |||
;Melee profiles | ;Melee profiles |
Revision as of 09:43, 24 September 2007
|
File Description
General part
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x00 | char[4] | 43 4A 42 4F | OBJC | object collection |
0x04 | int32 | 84 75 02 00 | 161156 | size of the complete combat part from this postion in bytes |
0x08 | int32 | 27 00 00 00 | 39 | unknown; do not change it |
0x0C | int32 | 28 15 00 00 | 5416 | size of the following element in bytes |
First element (black outline) | ||||
0x00 | char[4] | 45 4C 45 4D | MELE | melee |
0x04 | int32 | 76 02 00 00 | 630 | old file ID |
0x08 | int32 | 00 00 00 00 | 0 | unknown |
0x0C | float | B3 F3 2A 43 | 170.951950 | x-position of unknown |
0x10 | float | C7 0D 71 C1 | -15.065864 | y-position (height) of unknown |
0x14 | float | CF 29 38 42 | 46.040829 | z-position of unknown |
0x18 | float | 00 00 00 00 | 0.000000 | rotation on the x-axis in degrees |
0x1C | float | 00 00 00 00 | 0.000000 | rotation on the y-axis in degrees |
0x20 | float | 00 00 00 00 | 0.000000 | rotation on the z-axis in degrees |
Profile part
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x24 | int32 | 09 00 00 00 | 9 | melee ID |
0x28 | char[64] | NINJA_Easy | space for notes | |
0x68 | char[64] | ninja_easy_1 | character class name (reference to a ninja_easy_1.ONCC file) | |
0xA8 | int32 | 64 00 00 00 | 100 | notice in percent; how often AI registeres incoming attack; without noticing it, AI will not block or dodge |
0xAC | int32 | 64 00 00 00 | 100 | Dodge base in percent; determines how often AI tries to dodge incoming attacks |
0xB0 | int32 | 1E 00 00 00 | 30 | Dodge extra in percent; adds extra chance to dodge incoming attack |
0xB4 | int32 | 05 00 00 00 | 5 | Dodge damage amount; amount of damage dealt to character (or incoming in one strong attack) for Dodge extra activation |
0xB8 | int32 | 0F 00 00 00 | 15 | 1 vs 1 blocking skill in percent; specifies how often AI blocks incoming attack when blocking one enemy |
0xBC | int32 | 14 00 00 00 | 20 | Group blocking skill in percent; looks like amount of possibility that AI will try to block attacks incoming from more enemies |
0xC0 | float | 00 00 00 40 | 2.000000 | unknown; always the same ("not blocked"?) |
0xC4 | float | 33 33 33 3F | 0.700000 | unknown ("must change stance"?) |
0xC8 | float | 00 00 C0 3F | 1.500000 | unknown ("blocked but unblockable"?) |
0xCC | float | 9A 99 99 3F | 1.200000 | unknown; always the same ("blocked but has stagger"?) |
0xD0 | float | 33 33 33 3F | 0.700000 | unknown; always the same ("blocked but has blockstun"?) |
0xD4 | float | 00 00 00 3F | 0.500000 | unknown; always the same ("blocked"?) |
0xD8 | float | 00 00 00 40 | 2.000000 | throw danger; still unknown but it has something to do with probability of being thrown; when set very high, AI2 with this MELE is almost unthrowable |
0xDC | int16 | 3C 00 | 60 | unknown; always the same |
0xDE | int16 | 5A 00 | 90 | unknown |
0xE0 | int32 | 1A 00 00 00 | 26 | number of attack techniques |
0xE4 | int32 | 06 00 00 00 | 6 | number of evade/dodge techniques |
0xE8 | int32 | 07 00 00 00 | 7 | number of maneuver/position techniques |
0xEC | int32 | 6D 00 00 00 | 109 | number of moves |
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x6C | float | |||
0x6C | float |
- Melee profiles
- They are stored globally, as a collection.
- There are 45 of them.
- Structure
- Melee profile header
- List of techniques (split in 3 groups : attack, evade, maneuver)
- List of moves (grouped in sequences corresponding to techniques)
- Messiness
- The move sequences are not listed in the same order as the techniques
- For a structure that's only 16 bytes in size, the moves have really complicated parsing.
- A lot of EXE hacking is necessary in order to understand and master a move's effect
Profile
Header example
- Size is 0xF0 = 240 bytes. Then there's a list of techniques, and a list of moves.
- Amount of techniques and moves used by the profile are declared.
- Amount of moves used by every technique is declared by the technique.
|
- About ONCC lookup
- it seems that typing different ONCC model names here allows the melee profile to use some "trademark" moves:
- all ninjas (easy, med, hard) and super_ninja_1 ONCCs allow p_p_k_k_k_k combo
- konoko_generic and all red (fury) classes allow p_p_k combo, kick/kick back/run kick behind/run kick throws, k_k_kfw combo
- all tanker classes allow kick/kick back/run kick behind/run kick throws
- muro and mutant_muro classes allow p_p_p_p combo.
If you know something else, feel free to complete it. The question about this "trademark" moves is: is it specified in the ONCC or somewhere else ???
- Techniques
- They are listed right after the profile's header. Their number is specified in the header, and their size is 88 bytes each.
- Moves
- They are listed right after the techniques. Their number is specified in the header, and their size is 16 bytes each.
All profiles
In order of appearance in the collection
|
Sorted by ID
- The IDs start at 0 and increase by 1 for every next profile
- with the exception of the last 3, the IDs of which are 55, 56, 57
- (instead of 42, 43, 44)
|
Technique
- The amount of techniques (attack, evade, maneuver) is declared in the header.
- The list starts directly after the header. Every technique takes up 0x58 = 88 bytes.
- The example below is the first (attack) technique of the NINJA_easy profile
|
Technique flags:
- 00 - unknown;
- 01 - Interruptible; execution of moves in this technique is interrupted (technique is taken by engine as finished) when enemy is outside range, which specified by position move (which has to be first in the series of moves; it is the third parameter of the position moves ) or by maneuver move (again the third parameter).
- 02 - unknown; maybe "Generous dir", it seems that AI2 can turn around while attacking with technique that has this flag (or correct distance if it is a maneuver). So basically, it maybe turns on homing ^_-.
--Loser 08:39, 22 July 2007 (CEST)
- For everybody's convenience, I've grouped the techniques with the 0x40 field set to 1 HERE.
- geyser 00:00, 20 November 2006 (CET)
- 0x40 set to 2
- This is true for the following techniques :
- Furies :
- Body Surf Front
- Running Kick
- Running Punch
- Ninjas :
- Lightning Stomp
- Strikers :
- Jump Kick
- Running_Kick
- Running_Punch
- Tankers :
- Circle Left
- Circle Right
- Run/Dive-Left
- Run/Dive-Right
- Run/Drop Kick
- Run/Jump Kick
- Run/Jumpkick Back
- Run/Jumpkick Left
- Run/Jumpkick Right
- Slide
- Furies :
- For an exhaustive listing (complete with actual classes), see HERE.
- That has to be either "Fearless" or "Generous Dir" (whatever that means).
- "Somebody better investigate soon." ^^
- geyser 00:00, 20 November 2006 (CET)
Move
- The amount of moves is declared in the header.
- The list starts directly after the list of techniques.
- Every move takes up 0x10 = 16 bytes.
- The example below is the last move of the NINJA_easy profile
- (actually the one and only move of the Pause technique)
|
- Move types
- 0 : Attack, struct array starts at 0x140A88 in the English EXE
- 16 : Position, struct array starts at 0x1435B0 in the English EXE
- 32 : Maneuver, struct array starts at 0x143AB0 in the English EXE
- 48 : Evade, struct array starts at 0x143E30 in the English EXE
- 64 : Throw, struct array starts at 0x144370 in the English EXE
Blue Box Beta WMDD
- PART 1 - PROFILE
- PART 2 - TECHNIQUE
- PART 3 - MOVE
ONI BINARY DATA |
---|
AKVA << Other file types >> CBPI |
BINA : Binary data |
TMBD << Other BINA >> ONIE |
OBJC : Objects |
FURN << Other OBJC >> NEUT |
MELE : Melee profile |
[[OBD:File types/{{{family}}}|{{{family}}} file]] |