Difference between revisions of "LlPatrolPoints"

From Second Life Wiki
Jump to navigation Jump to search
(Add PATROL_PAUSE_AT_WAYPOINTS in programming example)
m (duplicate text)
Line 1: Line 1:
{{Pathfinding alpha}}
{{Pathfinding alpha}}
{{LSL_Function|
{{LSL_Function
func=llPatrolPoints|
|func=llPatrolPoints
func_desc=Sets the object patrolling between the points specified in patrolPoints.|
|func_desc=Sets the object patrolling between the points specified in patrolPoints.
func_footnote=The list patrolPoints is a list of vectors defining the patrol path.|
|p1_type=list|p1_name=patrolPoints|p1_desc=A list of vectors for the character to travel through sequentially.  The list must contain at least two entries.
p1_type=list|
|p2_type=list|p2_name=options|p2_desc=Currently, the only option is PATROL_PAUSE_AT_WAYPOINTS which defaults to FALSE but allows you to request that characters slow down and momentarily pause at each waypoint. Otherwise, characters will continue to move to the next waypoint at full speed.
p1_name=patrolPoints|
|caveats=
p1_desc=A list of vectors for the character to travel through sequentially.  The list must contain at least two entries.|
p2_type=list|
p2_name=options|
p2_desc=Currently, the only option is PATROL_PAUSE_AT_WAYPOINTS which defaults to FALSE but allows you to request that characters slow down and momentarily pause at each waypoint. Otherwise, characters will continue to move to the next waypoint at full speed.|
caveats=
* Must use llCreateCharacter or script won't compile
* Must use llCreateCharacter or script won't compile
* Vertical positions specified for any vectors should be chosen to be as close as possible to the actual height of the terrain requested. Large difference between the provided vertical position and the actual terrain/object will result in failure of the behavior.
* Vertical positions specified for any vectors should be chosen to be as close as possible to the actual height of the terrain requested. Large difference between the provided vertical position and the actual terrain/object will result in failure of the behavior.
* The patrolPoints list requires a minimum of two entries.
* The patrolPoints list requires a minimum of two entries.
* If a vector in the list is outside the nav volume (e.g.: too high,) it will be ignored.|
* If a vector in the list is outside the nav volume (e.g.: too high,) it will be ignored.
examples=
|constants={{LSL_Constants/llPatrolPoints}}
|examples=
<lsl>
<lsl>
default
default
Line 31: Line 27:
     }
     }
}
}
</lsl> |
</lsl>  
also_functions=
|also_functions=
* [[llCreateCharacter]]
* [[llCreateCharacter]]
* [[llDeleteCharacter]]
* [[llDeleteCharacter]]
Line 43: Line 39:
* [[llPursue]]
* [[llPursue]]
* [[llUpdateCharacter]]
* [[llUpdateCharacter]]
* [[llWanderWithin]]|
* [[llWanderWithin]]
also_events=
|also_events=
* [[path_update]]
* [[path_update]]
}}
}}

Revision as of 14:45, 15 August 2012

Summary

Function: llPatrolPoints( list patrolPoints, list options );

Sets the object patrolling between the points specified in patrolPoints.

• list patrolPoints A list of vectors for the character to travel through sequentially. The list must contain at least two entries.
• list options Currently, the only option is PATROL_PAUSE_AT_WAYPOINTS which defaults to FALSE but allows you to request that characters slow down and momentarily pause at each waypoint. Otherwise, characters will continue to move to the next waypoint at full speed.

Option V Parameters Default Description
PATROL_PAUSE_AT_WAYPOINTS ] 0 integer boolean ] FALSE ] Whether the character should pause briefly after reaching each patrol point.

Caveats

  • Must use llCreateCharacter or script won't compile
  • Vertical positions specified for any vectors should be chosen to be as close as possible to the actual height of the terrain requested. Large difference between the provided vertical position and the actual terrain/object will result in failure of the behavior.
  • The patrolPoints list requires a minimum of two entries.
  • If a vector in the list is outside the nav volume (e.g.: too high,) it will be ignored.

Examples

<lsl> default {

   state_entry()
   {
       llCreateCharacter([CHARACTER_MAX_SPEED, 25, CHARACTER_DESIRED_SPEED, 15.0]);
       //MAX_SPEED is @ 20 by default
   }
   touch_start(integer total_number)
   {
       list points = [llGetPos() + <5,0,0>, llGetPos() - <5,0,0>];
       llPatrolPoints(points, [PATROL_PAUSE_AT_WAYPOINTS, TRUE]);
   }

}

</lsl>

Deep Notes

Signature

function void llPatrolPoints( list patrolPoints, list options );