XML:BINA/OBJC/PATR: Difference between revisions
Jump to navigation
Jump to search
m (removing dead link) |
m (putting nav header parameters in more logical order) |
||
Line 1: | Line 1: | ||
{{XML_OBJC_Header | type=PATR | {{XML_OBJC_Header | prev=PART | type=PATR | next=PWRU | name=Patrol Path}} | ||
Revision as of 18:44, 27 March 2021
PATR : Patrol Path | ||
---|---|---|
XML
AKEV << Other file types >> CONS TMBD << Other BINA >> ONIE PART << Other OBJC >> PWRU |
general information
- The xml code on this page is based on onisplit v0.9.61.0
- BINACJBOPatrol Path.oni is level specific. (It can be found in AE/AEInstaller/vanilla/levelX_Final.dat)
- A path can have at most 64 points.
- Corrupting BSL code in patrolscripts
- I suspect that instantly played BSL code breaks patrol paths.
- example:
- patrolscript0001 contains a sleep command and patrolscript0002 will be played.
- But 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.) --paradox-01 (talk) 17:47, 10 November 2012 (CET)
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 a patrol data into there (this includes <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 | whatever this is good for ... |
<Position> | float x3 | x y z position, useless here |
<Rotation> | float x3 | x y z rotation, useless here |
<Name> | string | for BSL command "ai2_dopath" |
<PatrolId> | integer | used in BINA/OBJC/CHAR |
<ReturnToNearest> | flag |
|
<Points> | - | Holds actual content. A path can have at most 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 that 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 Id is 1 then BSL function is named "patrolscript0001" |
<ForkScript ScriptId="..." /> | integer | Forks a BSL function by Id. For example if Id is 2 then BSL function is named "patrolscript0002" |
<IgnorePlayer Value="..." /> | flag |
|
<FaceToFlagAndFire FlagId="..." Frames="..." Spread="..." /> | integer x2, float |