XML:BINA/OBJC/MELE: Difference between revisions

added explanation of ThrowDanger, DazedMinFrames, DazedMaxFrames and Importance; added missing flags
m (typo)
(added explanation of ThrowDanger, DazedMinFrames, DazedMaxFrames and Importance; added missing flags)
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{XML_OBJC_Header | type=MELE | prev=FURN | next=NEUT | name=Melee profiles }}
{{XML_OBJC_Header| prev=FLAG | type=MELE | next=NEUT | name=Melee Profile}}
{{finish}}
{{finish}}


===general information===
==General information==
* The xml code on this page is compatible with onisplit '''v0.9.61.0'''
* The XML on this page was tested with OniSplit v'''0.9.61.0'''.
* BINACJBOMelee Profile.oni is '''global''' (It's stored in '''level0_'''...)
* There is only one global "BINACJBOMelee Profile" stored in level0_Final in vanilla Oni.
<!--
* A local file can also be used (stored in level'xx'_Final) for level-specific melee profiles. However, please note that if a character is spawned and does not have a profile in the local file, the global one is NOT read. In other words, the local file completely replaces the level0_Final one.
===file structure===-->
* It was partly through MELE modding that Loser was able to create his famous video of [https://www.youtube.com/watch?v=NQE-LjM9GqM parkouring Mukade] (see [[Special:Permalink/13881|HERE]] and search for "taped" for the beginning of his technical explanation).


==File structure==
[...]


===melee Ids===
==Melee IDs==
{| class="wikitable" width="100%"
{| class="wikitable" width="100%"
! Id
! Id
Line 155: Line 157:
|}
|}


 
===New IDs===
'''new Ids'''
These IDs are available when Custom Characters Melee Profile (AE mod package 23901) is installed, which customizes the global melee file.
 
<nowiki>*</nowiki> can be used with "SMP - Fight Club" (pkg #82000) installed.


{| class="wikitable" width="100%"
{| class="wikitable" width="100%"
! width=32px| Id
! width=32px| ID
! style="text-align:left"| Name
! style="text-align:left"| Name
|-
|-
Line 168: Line 168:
|-
|-
| 121 *
| 121 *
| CASEY
| Casey
|-
|-
| 122 *
| 122 *
| hayate
| Hayate/Hanako
|-
|-
| 123 *
| 123 *
Line 177: Line 177:
|-
|-
| 124 *
| 124 *
| kojiro
| Kojiro
|-
|125*
| Sarai
|-
|126*
| BGI_Hammer
|-
|}
|}


 
==Tags==
===tags===
{| class="wikitable" width="100%"
{| class="wikitable" width="100%"
!width=150px| XML tag
!width=150px| XML tag
!width=120px| content type
!width=120px| Content type
! description
! Description
|-
| <?xml version="1.0" encoding="utf-8"?>
| float, flag
| Don't change this.
|-
| <Oni>
| -
|
|-
|-
| <Objects>
| <Objects>
| -
| -
| Holds the melee profiles, starting with <MELE Id="..."> and ending with </MELE>
| Holds the melee profiles, starting with <MELE Id="..."> and ending with </MELE>.
|-
|-
| <MELE Id="...">
| <MELE Id="...">
Line 229: Line 227:
| <Name>
| <Name>
| char[64]
| char[64]
| space for notes
| Space for notes.
|-
|-
| <CharacterClass>
| <CharacterClass>
Line 237: Line 235:
| <Notice>
| <Notice>
| integer
| integer
| Notice in percent; how often AI registeres incoming attack; without noticing it, AI will not block or dodge.
| Read as a percentage; how often the AI registers an incoming attack; without noticing it, the AI will not block or dodge.
|-
|-
| <Dodge>
| <Dodge>
Line 245: Line 243:
| <Base>
| <Base>
| int32
| int32
| Dodge base in percent; determines how often AI tries to dodge incoming attacks.
| Dodge base as percentage; determines how often AI tries to dodge incoming attacks.
|-
|-
| <Extra>
| <Extra>
| int32
| int32
| Dodge extra in percent; adds extra chance to dodge incoming attack.
| Dodge extra as percentage; adds extra chance to dodge incoming attack.
|-
|-
| <ExtraDamageThreshold>
| <ExtraDamageThreshold>
Line 261: Line 259:
| <Single>
| <Single>
| int32
| int32
| 1 vs 1 blocking skill in percent; specifies how often AI blocks incoming attack when blocking one enemy.
| One-on-one blocking skill as percentage; how often an AI blocks an incoming attack when facing one enemy.
|-
|-
| <Group>
| <Group>
| int32
| int32
| Group blocking skill in percent; looks like amount of possibility that AI will try to block attacks incoming from more enemies.
| Group blocking skill as percentage; appears to be the chance that an AI will try to block attacks coming from multiple enemies.
|-
|-
| <NotBlocked>
| <NotBlocked>
| float
| float
| Modifier of an AI2 chance for performing such a technique against its target that target is not able to block at the moment of the technique start (striker's kick forward aganist crouching enemy or finishing off staggered enemy or simply attacking running enemy).
| AI's chance for choosing a technique that the target cannot block at the moment of the technique start (e.g. Striker's forward kick against a crouching enemy, finishing off a staggered enemy, or simply attacking a running enemy).
|-
|-
| <MustChangeStance>
| <MustChangeStance>
| float
| float
| Modifier for a chance to perform technique which will force enemy to change his stance if he wants to defend the technique (stand/crouch).
| AI's chance to perform a technique which will force enemy to change his stance (stand/crouch) if he wants to defend against the technique.
|-
|-
| <BlockedButUnblockable>
| <BlockedButUnblockable>
| float
| float
| Modifier for a chance to perform technique which contains unblockable attack even if enemy is in correct defensive stance to "guard" the technique.
| AI's chance to use an attack which is unblockable attack even if the enemy is in the correct defensive stance to "guard" against it.
|-
|-
| <BlockedButHasStagger>
| <BlockedButHasStagger>
| float
| float
| Blocked but has stagger; modifier for a chance to perform technique which will get blocked but target will be block-staggered.
| AI's chance to perform a technique which will stagger the target if the target blocks it.
|-
|-
| <BlockedButHasBlockstun>
| <BlockedButHasBlockstun>
| float
| float
| Modifier for a chance to perform technique which will get blocked, but target will be block-stunned (will be forced to stay in block pose for more than one cycle of idle block animation).
| AI's chance to perform technique which will block-stun target if the target blocks it (forced to stay in block pose for more than one cycle of the idle block animation).
|-
|-
| <Blocked>
| <Blocked>
| float
| float
| Modifier for a chance to perform a technique even tough this technique aims for target which is in correct stance and ready to block this technique at the moment of the technique's start.
| AI's chance to perform a technique even though the target is in the correct to block it at the moment of the technique's start.
|-
|-
| <ThrowDanger>
| <ThrowDanger>
| float
| float
| Still unknown but it has something to do with probability of being thrown; when set very high, AI2 with this MELE is almost unthrowable.
| A throwing-into-danger weight multiplier; how many times more likely it is that the AI will want to throw its target if the throw will place the target into a danger square.
|-
|-
| <DazedMinFrames>
| <DazedMinFrames>
| int16
| int16
| ?
| Minimum "down" time when character is knocked down.
|-
|-
| <DazedMaxFrames>
| <DazedMaxFrames>
| int16
| int16
| ?
| Maximum "down" time when character is knocked down.
|-
|-
| <Attacks>
| <Attacks>
Line 309: Line 307:
<Maneuvers>
<Maneuvers>
| -
| -
| Use special single tags if you don't want content for one of those parts
| Use special single tags if you don't want content for one of these parts:
: <Attacks />
: <Attacks />
: <Evades />
: <Evades />
: <Maneuvers />
: <Maneuvers />
Use following order: Attacks, Evades and Maneuvers. Onisplit will not accept e.g. Maneuvers, Attacks, Evades.
You must use them in the above order; for instance OniSplit will not accept Maneuvers, Attacks, Evades.
|-
|-
| <Technique>
| <Technique>
Line 321: Line 319:
| <Name>
| <Name>
| char[64]
| char[64]
| space for notes (technique's name)
| Space for notes (used to hold technique's name)
|-
|-
| <Flags>
| <Flags>
Line 327: Line 325:
|
|
: None
: None
: Interruptible (?)
: Interruptible
: Unknown2 (?)
: GenerousDir
: Fearless
 
See [[OBD:BINA/OBJC/MELE|OBD page]] for explanations.
|-
|-
| <Weight>
| <Weight>
| int32
| int32
| Techniques with higher weight are preferred by engine, if more techniques that can be used at one moment; have same weight, engine calls them in order as they are listed in MELE.
| Techniques with higher weights are preferred by the engine, when there is more than one technique that can be used at the moment; when they have the same weight, the engine calls them in the order in which they're listed in MELE.
|-
|-
| <Importance>
| <Importance>
| int32
| int32
| ?
| Unused.
|-
|-
| <RepeatDelay>
| <RepeatDelay>
| int32
| int32
| Repeat delay in frames; after technique is used, it is ignored by engine for this time interval.
| In frames; after a technique is used, it is ignored by the engine for this time interval.
|-
|-
| <Moves>
| <Moves>
| -
| -
| Can holds position, attack, throw, maneuver, evade tags.
| Can hold Position, Attack, Throw, Maneuver and Evade tags.
|}
|}


 
===<Moves> tags===
====tags of <Moves>====
The parameters of Maneuver and Position are float values.
Parameters of maneuver and position are float values.


* <Attack Type="..." />
* <Attack Type="..." />
Line 437: Line 437:
JR_P
JR_P
JR_K
JR_K
</pre>
Labels:
<pre>
P = punch
K = kick
F = forward
B = backward
L = left
R = right
J = jumping
H = heavy (i.e., super move)
C = crouching
CS = crouch start (starting from a crouch)
D = downward?
GETUP, SLIDE = self-explanatory
R = running
</pre>
</pre>


Line 531: Line 548:
<Position Type="RunJumpBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
<Position Type="RunJumpBack" MinRunInDist="..." MaxRunInDist="..." ToleranceRange="..." />
</pre>
</pre>


{{XML}}
{{XML}}