OBD:BINA/OBJC/MELE: Difference between revisions
Jump to navigation
Jump to search
m (minor oops) |
m (added everything I know) |
||
Line 75: | Line 75: | ||
|- | |- | ||
| BGCOLOR="#C87C64" COLSPAN=2 | <TT>ninja_easy_1</TT> | | BGCOLOR="#C87C64" COLSPAN=2 | <TT>ninja_easy_1</TT> | ||
| ALIGN=LEFT | link by name to an [[OBD:ONCC|ONCC]] model (actually looked up by the melee profile) | | ALIGN=LEFT | link by name to an [[OBD:ONCC|ONCC]] model (actually looked up by the melee profile); see below | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 64 00 00 00 | | BGCOLOR="#B0C3D4" | 64 00 00 00 | ||
| 100 | | 100 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | Notice (%); how often AI registeres incoming attack; without registration, AI will not block or dodge | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 64 00 00 00 | | BGCOLOR="#B0C3D4" | 64 00 00 00 | ||
| 100 | | 100 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | Dodge base (%); determines how often AI tries to dodge incoming attacks | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 1E 00 00 00 | | BGCOLOR="#B0C3D4" | 1E 00 00 00 | ||
| 30 | | 30 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | Dodge extra (%); it is weird => see below | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 05 00 00 00 | | BGCOLOR="#B0C3D4" | 05 00 00 00 | ||
| 5 | | 5 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | Dodge damage amount; see below | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 0F 00 00 00 | | BGCOLOR="#B0C3D4" | 0F 00 00 00 | ||
| 15 | | 15 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | 1 vs 1 blocking skill (%); specifies how often AI blocks incoming attack when blocking one enemy | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 14 00 00 00 | | BGCOLOR="#B0C3D4" | 14 00 00 00 | ||
| 20 | | 20 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | Group blocking skill (%); looks like amount of possibility that AI will try to block attacks incoming from more enemies | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 00 00 00 40 | | BGCOLOR="#E7CEA5" | 00 00 00 40 | ||
Line 154: | Line 154: | ||
|} | |} | ||
|} | |} | ||
---- | |||
;Overall (only my theory): I think that every attack creates some invisible field around attacking limb (so here is possibility of some bond with unknown values in the attack part of TRAM) where is said *Here is field of some attack*. When AI collides with it, it decides thanks to Notice value if attack is accepted or not. If not, attack is ignored and AI is damaged. If yes, AI knows there is attack and decides what to do: Either nothing, dodge or block. All that is based on percentages of those possibilities. If there is same possibility of blocking and dodging, engine randomly choses one. Point is that even if AI recognized there is attack, it can do nothing and obtain damage as well as blocking it or trying to dodge it. So here we have random element. | |||
;Dodge extra | |||
:This seems to be some added chance to dodge incoming attack if attack, which is aimed at AI, causes equal or greater damage then specified in *Dodge damage amount*. But this is very questionable as it shows really some weird stuff. | |||
;About ONCC models: It seems that by selecting certain model engine allows this melee profile to execute certain moves, used by ONCC class. Example: You edit comguy melee profile (ID 04), by adding ''back kick throw'' move into it. In game, any AI who uses it will never try to perform ''back kick throw'' move.If you turn on melee checking in dev console, it says NOATTACKNOTHROW with this move. Then you edit melee profile once again, this time you change ONCC class from ''comguy_1'' to ''konoko''. And voila: AI will try to perform it even if it causes crash of ONI ^_^. | |||
; | |||
:I am very sorry Geyser, but rest is unchecked. I tried, but I have no clue at the moment.--[[User:Loser|Loser]] 18:00, 31 December 2006 (CET) | |||
---- | |||
;Techniques | ;Techniques | ||
:They are listed right after the profile's header. Their number is specified in the header, and their size is 88 bytes each. | :They are listed right after the profile's header. Their number is specified in the header, and their size is 88 bytes each. | ||
;Moves | ;Moves | ||
:They are listed right after the techniques. Their number is specified in the header, and their size is 16 bytes each. | :They are listed right after the techniques. Their number is specified in the header, and their size is 16 bytes each. | ||
===All profiles=== | ===All profiles=== | ||
====In order of appearance in the collection==== | ====In order of appearance in the collection==== |
Revision as of 17:00, 31 December 2006
|
- 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.
|
- Overall (only my theory)
- I think that every attack creates some invisible field around attacking limb (so here is possibility of some bond with unknown values in the attack part of TRAM) where is said *Here is field of some attack*. When AI collides with it, it decides thanks to Notice value if attack is accepted or not. If not, attack is ignored and AI is damaged. If yes, AI knows there is attack and decides what to do: Either nothing, dodge or block. All that is based on percentages of those possibilities. If there is same possibility of blocking and dodging, engine randomly choses one. Point is that even if AI recognized there is attack, it can do nothing and obtain damage as well as blocking it or trying to dodge it. So here we have random element.
- Dodge extra
- This seems to be some added chance to dodge incoming attack if attack, which is aimed at AI, causes equal or greater damage then specified in *Dodge damage amount*. But this is very questionable as it shows really some weird stuff.
- About ONCC models
- It seems that by selecting certain model engine allows this melee profile to execute certain moves, used by ONCC class. Example: You edit comguy melee profile (ID 04), by adding back kick throw move into it. In game, any AI who uses it will never try to perform back kick throw move.If you turn on melee checking in dev console, it says NOATTACKNOTHROW with this move. Then you edit melee profile once again, this time you change ONCC class from comguy_1 to konoko. And voila: AI will try to perform it even if it causes crash of ONI ^_^.
- I am very sorry Geyser, but rest is unchecked. I tried, but I have no clue at the moment.--Loser 18:00, 31 December 2006 (CET)
- 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
|
- Guesses
- The unknown parameters can be :
- the technique's "weight"
- the technique's "repeat delay" (probably the one at 0x4C)
- things (flags?) called "Interruptible", "Generous Dir" and "Fearless"
- 0x40 set to 1
- interruptible : technique will be stopped when opponent is outside specified range
- Loser
- A range specified where? Some moves have ranges as parameters, but a technique has a set of moves.
- Do you mean that one of the technique parameters (either 0x44 or 0x48) is a range? Please confirm.
- geyser 00:00, 20 November 2006 (CET)
- 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]] |