Difference between revisions of "LlExecCharacterCmd"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
{{Pathfinding alpha}}
{{Pathfinding alpha}}
{{LSL_Function|
{{LSL_Function|
func=llExecPathingCmd|
func=llExecCharacterCmd|
func_desc=Send a command to the pathing system.|
func_desc=Send a command to the pathing system.|
func_footnote=Currently only supports stopping the current pathfinding operation.|
func_footnote=Currently only supports stopping the current pathfinding operation.|
Line 10: Line 10:
p2_name=options|
p2_name=options|
p2_desc=No options currently used.|
p2_desc=No options currently used.|
constants={{LSL Constants/ExecPathingCmd}}|
constants={{LSL Constants/ExecCharacterCmd}}|
caveats=* If another script in the same object issues PATH_CMD_STOP then pathing in all scripts is cancelled.|
caveats=* If another script in the same object issues CHARACTER_CMD_STOP then pathing in all scripts is cancelled.|
examples=
examples=
<lsl>
<lsl>

Revision as of 16:20, 14 February 2012

Summary

Function: llExecCharacterCmd( integer command, list options );

Send a command to the pathing system.

• integer command Command to be sent.
• list options No options currently used.

Currently only supports stopping the current pathfinding operation.

Command Value Description & Required Parameters
CHARACTER_CMD_JUMP 0x1 Makes the character jump.

The option list is required to start with a height parameter: [float height]

• float height height to jump, between 0.1m and 2.0m
CHARACTER_CMD_SMOOTH_STOP 0x2 Stops any current pathfinding operation in a smooth like fashion.
CHARACTER_CMD_STOP 0x0 Stops any current pathfinding operation.

Caveats

  • If another script in the same object issues CHARACTER_CMD_STOP then pathing in all scripts is cancelled.

Examples

<lsl> default {

   state_entry()
   {
       llCreateCharacter([CHARACTER_DESIRED_SPEED, 50.0]);
       state awake;
   }

}

state awake {

   state_entry()
   {
       llOwnerSay("entering guarding");
       list points = [llGetPos() + <5,0,0>, llGetPos() - <5,0,0>];
       llPatrolPoints(points, []);
   }
   
   touch_start(integer total_number)
   {
       state sleep;
   }

}

state sleep {

   state_entry()
   {
       llOwnerSay("entering sleeping");
       llExecCharacterCmd(CHARACTER_CMD_STOP, []);
   }
   
   touch_start(integer total_number)
   {
       state awake;
   }

}

</lsl>

Deep Notes

Signature

function void llExecCharacterCmd( integer command, list options );