Difference between revisions of "At target"

From Second Life Wiki
Jump to navigation Jump to search
m (LSL at target moved to At target: removing prefix)
(Complete the example so that the object actually moves to the target)
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{LSL_Event|event_id=16|event_delay|event=at_target
{{LSL_Event|event_id=16|event_delay|event=at_target
|p1_type=integer|p1_name=tnum|p1_desc
|p1_type=integer|p1_name=tnum|p1_desc=[[llTarget]] return
|p2_type=vector|p2_name=targetpos|p2_desc
|p2_type=vector|p2_name=targetpos|p2_desc=[[llTarget]] position parameter
|p3_type=vector|p3_name=ourpos|p3_desc
|p3_type=vector|p3_name=ourpos|p3_desc=current position (similar to [[llGetPos]])
|event_desc=Result of {{LSLG|llTarget}} library function call
|event_desc=Result of {{LSLG|llTarget}} library function call
|constants
|constants
|spec
|spec
|caveats
|caveats
|examples
|examples=
<source lang="lsl2">
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 + ")"
        );
    }
}
</source>
|helpers
|helpers
|also_header
|also_header
|also_events
|also_events={{LSL DefineRow||[[not_at_target]]|}}
|also_functions
{{LSL DefineRow||[[at_rot_target]]|}}
{{LSL DefineRow||[[not_at_rot_target]]|}}
|also_functions={{LSL DefineRow||[[llTarget]]|Setup a target position}}
{{LSL DefineRow||[[llTargetRemove]]|Stop a target position}}
{{LSL DefineRow||[[llRotTarget]]|Setup a target rotation}}
{{LSL DefineRow||[[llRotTargetRemove]]|Stop a target rotation}}
|also_articles
|also_articles
|also_footer
|also_footer
Line 18: Line 56:
|deprecated
|deprecated
|cat1=Target
|cat1=Target
|cat2
|cat2=Physics
|cat3
|cat3=At Target
|cat4
|cat4
}}
}}

Revision as of 15:32, 22 February 2016

Description

Event: at_target( integer tnum, vector targetpos, vector ourpos ){ ; }

Result of llTarget library function call

• integer tnum llTarget return
• vector targetpos llTarget position parameter
• vector ourpos current position (similar to llGetPos)

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

•  not_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 at_target( integer tnum, vector targetpos, vector ourpos );