Difference between revisions of "Not at target"

From Second Life Wiki
Jump to navigation Jump to search
(Complete the example so that the object actually moves)
 
(2 intermediate revisions by 2 users not shown)
Line 3: Line 3:
|event_delay
|event_delay
|event=not_at_target
|event=not_at_target
|event_desc=Triggered if an object has not yet reached the the target set by the call to [[llTarget]].
|event_desc=Triggered if an object has not yet reached the target set by the call to [[llTarget]].
|event_footnote=This event may be triggered multiple times if the target has not been reached.
|event_footnote=This event may be triggered multiple times if the target has not been reached.
|constants
|constants
Line 9: Line 9:
|caveats
|caveats
|examples=
|examples=
<lsl>
<source lang="lsl2">
integer target_id;
integer target_id;
vector target_pos;
vector target_pos;
Line 17: Line 17:
     state_entry()
     state_entry()
     {
     {
         target_pos = llGetPos() + <1.0, 0.0, 0.0>;
         target_pos = llGetPos() + <5.0, 0.0, 0.0>;
         target_id = llTarget(target_pos, 0.5);
         target_id = llTarget(target_pos, 0.5);
        llSetStatus(STATUS_PHYSICS, TRUE);
        llMoveToTarget(target_pos, 0.4);
     }
     }
     at_target(integer tnum, vector targetpos, vector ourpos)
     at_target(integer tnum, vector targetpos, vector ourpos)
Line 39: Line 41:
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|also_header
|also_header

Latest revision as of 14:20, 21 February 2016

Description

Event: not_at_target( ){ ; }

Triggered if an object has not yet reached the target set by the call to llTarget.

This event may be triggered multiple times if the target has not been reached.

Caveats


Examples

integer target_id;
vector target_pos;

default
{
    state_entry()
    {
        target_pos = llGetPos() + <5.0, 0.0, 0.0>;
        target_id = llTarget(target_pos, 0.5);
        llSetStatus(STATUS_PHYSICS, TRUE);
        llMoveToTarget(target_pos, 0.4);
    }
    at_target(integer tnum, vector targetpos, vector ourpos)
    {
        if (tnum == target_id)
        {
            llOwnerSay("object is within range of target");
            llOwnerSay("target position: " + (string)targetpos + ", object is now at: " + (string)ourpos);
            llOwnerSay("this is " + (string)llVecDist(targetpos, ourpos) + " meters from the target");
            llTargetRemove(target_id);
        }
    }
    not_at_target()
    {
        llOwnerSay(
            "not there yet - object is at " + (string)llGetPos() + 
            ", which is " + (string)llVecDist(target_pos, llGetPos()) + 
            " meters from the target (" + (string)target_pos + ")"
        );
    }
}

See Also

Events

•  at_target
•  at_rot_target
•  not_at_rot_target

Functions

•  llTarget Setup a target position
•  llTargetRemove Stop a target position
•  llRotTarget Setup a target rotation
•  llRotTargetRemove Stop a target rotation

Deep Notes

Signature

event void not_at_target(  );