19,495
edits
m (Iritscen moved page OBD talk:BINA/OBJC/PATR to XML:BINA/OBJC/PATR without leaving a redirect) |
m (copy-edit) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
= | {{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'''. | |||
* "BINACJBOPatrol Path" is level-specific (level''x''_Final.dat). | |||
| | * 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: | |||
<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== | |||
* <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 24: | 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 57: | Line 77: | ||
{| class="wikitable" width="100%" | |||
!width=400px| XML tag | |||
!width=100px| Content type | |||
! Description | |||
!XML tag | |||
! | |||
! | |||
|- | |- | ||
|<PATR Id="..."> | | <PATR Id="..."> | ||
| | | integer | ||
| | | ID doesn't matter | ||
|- | |- | ||
|<Flags> | | <Flags> | ||
| | | flag | ||
| | | Unknown | ||
|- | |- | ||
|<Position> | | <Position> | ||
| | | float x3 | ||
| | | XYZ position, unused | ||
|- | |- | ||
|<Rotation> | | <Rotation> | ||
| | | float x3 | ||
| | | XYZ rotation, unused | ||
|- | |- | ||
|<Name> | | <Name> | ||
|string | | string | ||
| | | Used by BSL command "ai2_dopath" | ||
|- | |- | ||
|<PatrolId> | | <PatrolId> | ||
| | | integer | ||
| | | Used in [[XML:BINA/OBJC/CHAR|BINA/OBJC/CHAR]] | ||
|- | |- | ||
|valign=top|<ReturnToNearest> | |valign=top| <ReturnToNearest> | ||
|valign=top| flag | |||
| | |||
: 1 (Yes) | |||
|valign=top|1 | : 0 (No) | ||
|- | |- | ||
|<Points> | | <Points> | ||
| | | - | ||
| | | Holds the actual path data (up to 64 points). | ||
|- | |- | ||
|<MoveToFlag FlagId="..." /> | | <MoveToFlag FlagId="..." /> | ||
| | | integer | ||
| | | | ||
|- | |- | ||
|<Stop /> | | <Stop /> | ||
| | | - | ||
| | | | ||
|- | |- | ||
|<Pause Frames="..." /> | | <Pause Frames="..." /> | ||
| | | integer | ||
| | | | ||
|- | |- | ||
|<LookAtFlag FlagId="..." /> | | <LookAtFlag FlagId="..." /> | ||
| | | integer | ||
| | | | ||
|- | |- | ||
|<LookAtPoint X="..." Y="..." Z="..." /> | | <LookAtPoint X="..." Y="..." Z="..." /> | ||
| | | float x3 | ||
| | | | ||
|- | |- | ||
|<MoveAndFaceFlag FlagId="..." /> | | <MoveAndFaceFlag FlagId="..." /> | ||
| | | integer | ||
| | | | ||
|- | |- | ||
|<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="..." /> | ||
| | |valign=top| flag | ||
| | | | ||
: ByAlertLevel | |||
: Stop | |||
: Crouch | |||
: Creep | |||
: WalkNoAim | |||
: Walk | |||
: RunNoAim | |||
: Run | |||
|- | |- | ||
|<MoveToPoint X="..." Y="..." Z="..." /> | | <MoveToPoint X="..." Y="..." Z="..." /> | ||
| | | float x3 | ||
| | | | ||
|- | |- | ||
|valign=top|<LockFacing Facing="..." /> | |valign=top| <LockFacing Facing="..." /> | ||
| | |valign=top| flag | ||
| | | | ||
: Forward | |||
: Backward | |||
: Left | |||
: Right | |||
: Stopped | |||
|- | |- | ||
|<MoveThroughFlag FlagId="..." Distance="..." /> | | <MoveThroughFlag FlagId="..." Distance="..." /> | ||
| | | integer, float | ||
| | | | ||
|- | |- | ||
|valign=top|<MoveThroughPoint X="..." Y="..." Z="..." Distance="..." /> | |valign=top| <MoveThroughPoint X="..." Y="..." Z="..." Distance="..." /> | ||
| | | float x4 | ||
| | | | ||
|- | |- | ||
|<StopLooking /> | | <StopLooking /> | ||
| | | - | ||
| | | | ||
|- | |- | ||
|<FreeFacing /> | | <FreeFacing /> | ||
| | | - | ||
| | | | ||
|- | |- | ||
|<GlanceAtFlagFor FlagId="..." Frames="..." /> | | <GlanceAtFlagFor FlagId="..." Frames="..." /> | ||
| | | integer x2 | ||
| | | | ||
|- | |- | ||
|<MoveNearFlag FlagId="..." Distance="..." /> | | <MoveNearFlag FlagId="..." Distance="..." /> | ||
| | | integer, float | ||
| | | | ||
|- | |- | ||
|<Scan Frames="..." Rotation="..." /> | | <Scan Frames="..." Rotation="..." /> | ||
| | | integer, float | ||
| | | | ||
|- | |- | ||
|<StopScanning /> | | <StopScanning /> | ||
| | | - | ||
| | | | ||
|- | |- | ||
|<MoveToFlagLookAndWait Frames="..." FlagId="..." Rotation="..." /> | | <MoveToFlagLookAndWait Frames="..." FlagId="..." Rotation="..." /> | ||
| | | integer x2, float | ||
| | | | ||
|- | |- | ||
|valign=top|<CallScript ScriptId="..." /> | |valign=top| <CallScript ScriptId="..." /> | ||
| | | 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 | ||
|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="..." /> | ||
| | |valign=top| flag | ||
| | | | ||
: No | |||
: Yes | |||
|- | |- | ||
|<FaceToFlagAndFire FlagId="..." Frames="..." Spread="..." /> | | <FaceToFlagAndFire FlagId="..." Frames="..." Spread="..." /> | ||
| | | integer x2, float | ||
| | | | ||
|} | |} | ||
{{XML}} |