Difference between revisions of "LlTarget"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 11: Line 11:
|caveats
|caveats
|constants
|constants
|examples
|examples=
<Pre>
integer target_id;
vector target_pos;
 
default
{
    state_entry()
    {
        target_pos = llGetPos() + <1.0, 0.0, 0.0>;
        target_id = llTarget(target_pos, 0.5);
    }
    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 + ")"
        );
    }
}
</Pre>
|helpers
|helpers
|also_functions=
|also_functions=

Revision as of 04:43, 27 September 2007

Summary

Function: integer llTarget( vector position, float range );

This function is to have the script know when it has reached a position.
It registers a position with a range that triggers at_target and not_at_target events continuously until unregistered.
Returns an integer that is the handle to unregister the target with llTargetRemove.

• vector position
• float range

A similar function exists for rotations: llRotTarget
This function does not move the object, to do that use llSetPos or llMoveToTarget.

Examples

integer target_id;
vector target_pos;

default
{
    state_entry()
    {
        target_pos = llGetPos() + <1.0, 0.0, 0.0>;
        target_id = llTarget(target_pos, 0.5);
    }
    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 not_at_target positional target events
• at_rot_target not_at_rot_target rotational target events

Functions

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

Deep Notes

Search JIRA for related Issues

Signature

function integer llTarget( vector position, float range );