XML:BINA/OBJC/CMBT: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) m (bad combination of link and background color, for better visibility let's use a text here) |
m (copy edit) |
||
Line 1: | Line 1: | ||
{{XML_OBJC_Header | type=CMBT | prev=CONS | next=DOOR | name=Combat profiles }} | {{XML_OBJC_Header | type=CMBT | prev=CONS | next=DOOR | name=Combat profiles }} | ||
=== | ===General information=== | ||
* The | * The XML code on this page is compatible with OniSplit v0.9.61.0 | ||
* BINACJBOCombat.oni is '''global''' (It's stored in '''level0_'''...) | * BINACJBOCombat.oni is '''global''' (It's stored in '''level0_'''...) | ||
=== | ===File structure=== | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
<Oni> | <Oni> | ||
Line 16: | Line 16: | ||
''[...]'' stands for a combat profile. You can add new profiles between the <Objects> </Objects> tags. | ''[...]'' stands for a combat profile. You can add new profiles between the <Objects> </Objects> tags. | ||
'''example: | '''example: ID 0 (Stand_and_Fire)''' | ||
{|width=200px border=0 cellspacing=20 cellpadding=0 style="float:right" | {|width=200px border=0 cellspacing=20 cellpadding=0 style="float:right" | ||
|'''combat ranges''' | |'''combat ranges''' | ||
Line 63: | Line 63: | ||
=== | ===Tags=== | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=150px| XML tag | !width=150px| XML tag | ||
Line 112: | Line 112: | ||
|valign="top"| integer | |valign="top"| integer | ||
| Used by CHAR and ONCC. | | Used by CHAR and ONCC. | ||
: A table of combat | : A table of combat IDs can be found '''[[OBD_talk:BINA/OBJC/CMBT|HERE]]'''. | ||
|- style="background-color:#BBBBFF" | |- style="background-color:#BBBBFF" | ||
| <Behaviors> | | <Behaviors> | ||
Line 138: | Line 138: | ||
| <MediumRange> | | <MediumRange> | ||
| flag | | flag | ||
| the flags | | uses the same flags as <LongRange> | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <ShortRange> | | <ShortRange> | ||
| flag | | flag | ||
| the flags | | uses the same flags as <LongRange> | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <MediumRetreat> | | <MediumRetreat> | ||
| flag | | flag | ||
| the flags | | uses the same flags as <LongRange> | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <LongRetreat> | | <LongRetreat> | ||
| flag | | flag | ||
| the flags | | uses the same flags as <LongRange> | ||
|- style="background-color:#BBBBFF" | |- style="background-color:#BBBBFF" | ||
| <Combat> | | <Combat> | ||
Line 158: | Line 158: | ||
| <MediumRange> | | <MediumRange> | ||
| float | | float | ||
| you can | | you can show the combat ranges on-screen with the scripting command "ai2_showcombatranges = 1" | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
|valign="top"| <MeleeOverride> | |valign="top"| <MeleeOverride> | ||
Line 179: | Line 179: | ||
| <ShortRange> | | <ShortRange> | ||
| float | | float | ||
| you can | | you can show the combat ranges on-screen with the scripting command "ai2_showcombatranges = 1" | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <PursuitDistance> | | <PursuitDistance> | ||
Line 191: | Line 191: | ||
| <Hurt> | | <Hurt> | ||
| integer | | integer | ||
| | | number of ticks to panic when hurt (60 ticks = 1 second) | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <GunFire> | | <GunFire> | ||
| integer | | integer | ||
| | | number of ticks to panic when hearing gunfire | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <Melee> | | <Melee> | ||
| integer | | integer | ||
| | | number of ticks to panic when melee occurs nearby | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <Sight> | | <Sight> | ||
| integer | | integer | ||
| | | number of ticks to panic when seeing someone hostile | ||
|- style="background-color:#BBBBFF" | |- style="background-color:#BBBBFF" | ||
| <Alarm> | | <Alarm> | ||
Line 211: | Line 211: | ||
| <SearchDistance> | | <SearchDistance> | ||
| float | | float | ||
| | | Maximum distance from AI that search is performed for an [[XML:BINA/OBJC/CONS#tags|alarm console]]. | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
| <EnemyIgnoreDistance> | | <EnemyIgnoreDistance> | ||
| float | | float | ||
| Enemies which are inside this range are not ignored but AI doesn't attack them. | | Enemies which are inside this range are not ignored, but the AI doesn't attack them. | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
|valign="top"| <EnemyAttackDistance> | |valign="top"| <EnemyAttackDistance> | ||
|valign="top"| float | |valign="top"| float | ||
| This one specifies an "attack range" around an AI running for an alarm. When there is an enemy inside, AI stops running for the console and | | This one specifies an "attack range" around an AI running for an alarm. When there is an enemy inside, the AI stops running for the console and attacks the enemy (if the AI knows about him, of course). Nevertheless the AI still keeps in mind that it should run for the console. So when there is no enemy inside this range and the fight timer runs out, the AI resumes running to the specified console. | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
|valign="top"| <DamageThreshold> | |valign="top"| <DamageThreshold> | ||
|valign="top"| integer | |valign="top"| integer | ||
| Specifies how long AI, which is running for the console, remembers someone hurt it. Until this timer runs | | Specifies how long the AI, which is running for the console, remembers someone hurt it. Until this timer runs out, the AI doesn't tend to use its desired console; it stays in fight stance near the console, ready to fight. If someone hurts the AI which is running for the console, then escapes and then tries to hurt it again while this timer isn't finished yet, the AI remembers him and immediately attacks him the moment he steps inside '''<EnemyAttackDistance>'''. | ||
|- style="background-color:#DDDDFF" | |- style="background-color:#DDDDFF" | ||
|valign="top"| <FightTimer> | |valign="top"| <FightTimer> | ||
|valign="top"| integer | |valign="top"| integer | ||
| | | | ||
When AI, which is running for the console, is engaged in a fight and enemy manages to disappear (either by phase | When the AI, which is running for the console, is engaged in a fight and the enemy manages to disappear (either by phase cloak or simply by hiding), the AI tries to chase him or looks for him. FightTimer specifies how long should the AI chase/look for the enemy. For chasing, the timer starts when the enemy is outside '''<EnemyAttackDistance>'''. Of course when the enemy escapes even from '''<EnemyIgnoreDistance>''', the AI abandons him automatically. | ||
|} | |} | ||
{{XML}} | {{XML}} |
Revision as of 17:32, 18 March 2014
CMBT : Combat profiles | ||
---|---|---|
XML
AKEV << Other file types >> CONS TMBD << Other BINA >> ONIE CONS << Other OBJC >> DOOR |
General information
- The XML code on this page is compatible with OniSplit v0.9.61.0
- BINACJBOCombat.oni is global (It's stored in level0_...)
File structure
<?xml version="1.0" encoding="utf-8"?> <Oni> <Objects> [...] </Objects> </Oni>
[...] stands for a combat profile. You can add new profiles between the <Objects> </Objects> tags.
example: ID 0 (Stand_and_Fire)
combat ranges |
<CMBT Id="368"> <Header> <Flags></Flags> <Position>-223.332321 17.8324356 -116.511253</Position> <Rotation>0 0 0</Rotation> </Header> <OSD> <Name>Stand_and_Fire</Name> <CombatId>0</CombatId> <Behaviors> <LongRange>HoldAndFire</LongRange> <MediumRange>HoldAndFire</MediumRange> <ShortRange>HoldAndFire</ShortRange> <MediumRetreat>HoldAndFire</MediumRetreat> <LongRetreat>HoldAndFire</LongRetreat> </Behaviors> <Combat> <MediumRange>120</MediumRange> <MeleeOverride>IfPunched</MeleeOverride> <NoGunBehavior>Melee</NoGunBehavior> <ShortRange>40</ShortRange> <PursuitDistance>200</PursuitDistance> </Combat> <Panic> <Hurt>600</Hurt> <GunFire>900</GunFire> <Melee>600</Melee> <Sight>1200</Sight> </Panic> <Alarm> <SearchDistance>300</SearchDistance> <EnemyIgnoreDistance>80</EnemyIgnoreDistance> <EnemyAttackDistance>0</EnemyAttackDistance> <DamageThreshold>30</DamageThreshold> <FightTimer>360</FightTimer> </Alarm> </OSD> </CMBT>
Tags
XML tag | content type | description |
---|---|---|
<?xml version="1.0" encoding="utf-8"?> | float, flag | Ignore this. |
<Oni> | - | |
<Objects> | - | Encloses the profiles, starting with <CMBT Id="..."> and ending with </CMBT>. |
<CMBT Id="..."> | integer | Ignore this. |
<Header> | - | |
<Flags> | flag | Ignore this. |
<Position> | float x3 | Ignore this. |
<Rotation> | float x3 | Ignore this. |
<OSD> | - | |
<Name> | char[64] | Name of the profile (making it easier to remember what the content does). |
<CombatId> | integer | Used by CHAR and ONCC.
|
<Behaviors> | - | Behavior at different ranges. |
<LongRange> | flag |
|
<MediumRange> | flag | uses the same flags as <LongRange> |
<ShortRange> | flag | uses the same flags as <LongRange> |
<MediumRetreat> | flag | uses the same flags as <LongRange> |
<LongRetreat> | flag | uses the same flags as <LongRange> |
<Combat> | - | |
<MediumRange> | float | you can show the combat ranges on-screen with the scripting command "ai2_showcombatranges = 1" |
<MeleeOverride> | flag |
|
<NoGunBehavior> | flag |
|
<ShortRange> | float | you can show the combat ranges on-screen with the scripting command "ai2_showcombatranges = 1" |
<PursuitDistance> | float | |
<Panic> | - | |
<Hurt> | integer | number of ticks to panic when hurt (60 ticks = 1 second) |
<GunFire> | integer | number of ticks to panic when hearing gunfire |
<Melee> | integer | number of ticks to panic when melee occurs nearby |
<Sight> | integer | number of ticks to panic when seeing someone hostile |
<Alarm> | - | |
<SearchDistance> | float | Maximum distance from AI that search is performed for an alarm console. |
<EnemyIgnoreDistance> | float | Enemies which are inside this range are not ignored, but the AI doesn't attack them. |
<EnemyAttackDistance> | float | This one specifies an "attack range" around an AI running for an alarm. When there is an enemy inside, the AI stops running for the console and attacks the enemy (if the AI knows about him, of course). Nevertheless the AI still keeps in mind that it should run for the console. So when there is no enemy inside this range and the fight timer runs out, the AI resumes running to the specified console. |
<DamageThreshold> | integer | Specifies how long the AI, which is running for the console, remembers someone hurt it. Until this timer runs out, the AI doesn't tend to use its desired console; it stays in fight stance near the console, ready to fight. If someone hurts the AI which is running for the console, then escapes and then tries to hurt it again while this timer isn't finished yet, the AI remembers him and immediately attacks him the moment he steps inside <EnemyAttackDistance>. |
<FightTimer> | integer |
When the AI, which is running for the console, is engaged in a fight and the enemy manages to disappear (either by phase cloak or simply by hiding), the AI tries to chase him or looks for him. FightTimer specifies how long should the AI chase/look for the enemy. For chasing, the timer starts when the enemy is outside <EnemyAttackDistance>. Of course when the enemy escapes even from <EnemyIgnoreDistance>, the AI abandons him automatically. |