XML:BINA/OBJC/PATR: Difference between revisions
m (OBJC means "Objects", not "Object Collection") |
m (copy-edit) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{XML_OBJC_Header | type=PATR | {{XML_OBJC_Header | prev=PART | type=PATR | next=PWRU | name=Patrol Path}} | ||
==General information== | |||
* The XML on this page is based on OniSplit '''v0.9.61.0'''. | |||
* The | * "BINACJBOPatrol Path" is level-specific (level''x''_Final.dat). | ||
* | |||
* A path can have at most 64 points. | * A path can have at most 64 points. | ||
;Corrupting BSL code in patrol scripts | |||
:I ([[User:Paradox-01|Paradox]]) suspect that ''instantly'' played BSL code breaks patrol paths. Example: patrolscript0001 contains a sleep command and patrolscript0002 will be played. If you remove the sleep command, the patrol path will break. (This was tested in level 1 SP1 with A_t48 and his patrol_48.) | |||
XML code - patrolscript points: | XML code - patrolscript points: | ||
| Line 42: | Line 33: | ||
} | } | ||
==BSL support== | |||
* <font color="#777777">ai2_showpaths = 1</font> | * <font color="#777777">ai2_showpaths = 1</font> | ||
* ai2_dopath ''ai_name path_name'' | * ai2_dopath ''ai_name path_name'' | ||
==File structure== | |||
== | |||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
<Oni> | <Oni> | ||
| Line 56: | Line 45: | ||
</Oni> | </Oni> | ||
'''''[...]''''' means at least one patrol block. Paste all | '''''[...]''''' means at least one patrol block. Paste all your patrol data in there (this includes the <PATR Id="..."> and </PATR> tag). | ||
''' | '''Example''' | ||
<PATR Id="8283"> | <PATR Id="8283"> | ||
| Line 91: | Line 79: | ||
{| class="wikitable" width="100%" | {| class="wikitable" width="100%" | ||
!width=400px| XML tag | !width=400px| XML tag | ||
!width=100px| | !width=100px| Content type | ||
! | ! Description | ||
|- | |- | ||
| <PATR Id="..."> | | <PATR Id="..."> | ||
| integer | | integer | ||
| | | ID doesn't matter | ||
|- | |- | ||
| <Flags> | | <Flags> | ||
| flag | | flag | ||
| | | Unknown | ||
|- | |- | ||
| <Position> | | <Position> | ||
| float x3 | | float x3 | ||
| | | XYZ position, unused | ||
|- | |- | ||
| <Rotation> | | <Rotation> | ||
| float x3 | | float x3 | ||
| | | XYZ rotation, unused | ||
|- | |- | ||
| <Name> | | <Name> | ||
| string | | string | ||
| | | Used by BSL command "ai2_dopath" | ||
|- | |- | ||
| <PatrolId> | | <PatrolId> | ||
| integer | | integer | ||
| | | Used in [[XML:BINA/OBJC/CHAR|BINA/OBJC/CHAR]] | ||
|- | |- | ||
|valign=top| <ReturnToNearest> | |valign=top| <ReturnToNearest> | ||
| Line 126: | Line 114: | ||
| <Points> | | <Points> | ||
| - | | - | ||
| Holds actual | | Holds the actual path data (up to 64 points). | ||
|- | |- | ||
| <MoveToFlag FlagId="..." /> | | <MoveToFlag FlagId="..." /> | ||
| Line 154: | Line 142: | ||
| <Loop>...</Loop> | | <Loop>...</Loop> | ||
| | | | ||
| Patrol path tags can be enclosed by | | Patrol path tags can be enclosed by this loop tag. | ||
|- | |- | ||
|valign=top| <MovementMode Mode="..." /> | |valign=top| <MovementMode Mode="..." /> | ||
| Line 169: | Line 157: | ||
|- | |- | ||
| <MoveToPoint X="..." Y="..." Z="..." /> | | <MoveToPoint X="..." Y="..." Z="..." /> | ||
| float x3 | | float x3 | ||
| | | | ||
|- | |- | ||
| Line 219: | Line 207: | ||
|valign=top| <CallScript ScriptId="..." /> | |valign=top| <CallScript ScriptId="..." /> | ||
| integer | | integer | ||
|Calls a BSL function by | |Calls a BSL function by ID. For example if the ID is 1 then the BSL function is named "patrolscript0001". | ||
|- | |- | ||
|valign=top| <ForkScript ScriptId="..." /> | |valign=top| <ForkScript ScriptId="..." /> | ||
| integer | | integer | ||
|Forks a BSL function by | |Forks a BSL function by ID. For example if the ID is 2 then the BSL function is named "patrolscript0002". | ||
|- | |- | ||
|valign=top| <IgnorePlayer Value="..." /> | |valign=top| <IgnorePlayer Value="..." /> | ||
Latest revision as of 01:21, 3 April 2021
| PATR : Patrol Path |
| |
|---|---|---|
| XML
AKEV << Other file types >> CONS TMBD << Other BINA >> ONIE PART << Other OBJC >> PWRU |
General information
- The XML on this page is based on OniSplit v0.9.61.0.
- "BINACJBOPatrol Path" is level-specific (levelx_Final.dat).
- A path can have at most 64 points.
- Corrupting BSL code in patrol scripts
- I (Paradox) suspect that instantly played BSL code breaks patrol paths. Example: patrolscript0001 contains a sleep command and patrolscript0002 will be played. If you remove the sleep command, the patrol path will break. (This was tested in level 1 SP1 with A_t48 and his patrol_48.)
XML code - patrolscript points:
<Points> <ScriptId ScriptId="1" /> <ScriptId ScriptId="2" /> <ScriptId ScriptId="3" /> </Points>
BSL code:
func patrolscript0001
{
dmsg "1"
chr_animate 0 KONOKOpowerup
sleep 1
}
func patrolscript0002
{
dmsg "2"
}
func patrolscript0003
{
dmsg "3"
}
BSL support
- ai2_showpaths = 1
- ai2_dopath ai_name path_name
File structure
<?xml version="1.0" encoding="utf-8"?>
<Oni>
<Objects>
[...]
</Objects>
</Oni>
[...] means at least one patrol block. Paste all your patrol data in there (this includes the <PATR Id="..."> and </PATR> tag).
Example
<PATR Id="8283">
<Header>
<Flags></Flags>
<Position>-408.598755 60.1162872 -1402.20361</Position>
<Rotation>0 0 0</Rotation>
</Header>
<OSD>
<Name>patrol_32</Name>
<PatrolId>32</PatrolId>
<ReturnToNearest>1</ReturnToNearest>
<Points>
<IgnorePlayer Value="Yes" />
<MovementMode Mode="Run" />
<MoveToFlag FlagId="545" />
<Loop>
<MoveToFlagLookAndWait Frames="120" FlagId="545" Rotation="5" />
<IgnorePlayer Value="No" />
<MoveThroughFlag FlagId="145" Distance="0" />
<MovementMode Mode="ByAlertLevel" />
<MoveToFlagLookAndWait Frames="300" FlagId="144" Rotation="60" />
<MoveThroughFlag FlagId="145" Distance="0" />
<MoveToFlagLookAndWait Frames="300" FlagId="146" Rotation="90" />
</Loop>
</Points>
</OSD>
</PATR>
| XML tag | Content type | Description |
|---|---|---|
| <PATR Id="..."> | integer | ID doesn't matter |
| <Flags> | flag | Unknown |
| <Position> | float x3 | XYZ position, unused |
| <Rotation> | float x3 | XYZ rotation, unused |
| <Name> | string | Used by BSL command "ai2_dopath" |
| <PatrolId> | integer | Used in BINA/OBJC/CHAR |
| <ReturnToNearest> | flag |
|
| <Points> | - | Holds the actual path data (up to 64 points). |
| <MoveToFlag FlagId="..." /> | integer | |
| <Stop /> | - | |
| <Pause Frames="..." /> | integer | |
| <LookAtFlag FlagId="..." /> | integer | |
| <LookAtPoint X="..." Y="..." Z="..." /> | float x3 | |
| <MoveAndFaceFlag FlagId="..." /> | integer | |
| <Loop>...</Loop> | Patrol path tags can be enclosed by this loop tag. | |
| <MovementMode Mode="..." /> | flag |
|
| <MoveToPoint X="..." Y="..." Z="..." /> | float x3 | |
| <LockFacing Facing="..." /> | flag |
|
| <MoveThroughFlag FlagId="..." Distance="..." /> | integer, float | |
| <MoveThroughPoint X="..." Y="..." Z="..." Distance="..." /> | float x4 | |
| <StopLooking /> | - | |
| <FreeFacing /> | - | |
| <GlanceAtFlagFor FlagId="..." Frames="..." /> | integer x2 | |
| <MoveNearFlag FlagId="..." Distance="..." /> | integer, float | |
| <Scan Frames="..." Rotation="..." /> | integer, float | |
| <StopScanning /> | - | |
| <MoveToFlagLookAndWait Frames="..." FlagId="..." Rotation="..." /> | integer x2, float | |
| <CallScript ScriptId="..." /> | integer | Calls a BSL function by ID. For example if the ID is 1 then the BSL function is named "patrolscript0001". |
| <ForkScript ScriptId="..." /> | integer | Forks a BSL function by ID. For example if the ID is 2 then the BSL function is named "patrolscript0002". |
| <IgnorePlayer Value="..." /> | flag |
|
| <FaceToFlagAndFire FlagId="..." Frames="..." Spread="..." /> | integer x2, float |
