Difference between revisions of "At target"

From Second Life Wiki
Jump to navigation Jump to search
 
(Complete the example so that the object actually moves to the target)
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{LSL_Event|event_id=16|event_delay|event=at_target|p1_type=integer|p1_name=tnum|p1_desc|p2_type=vector|p2_name=targetpos|p2_desc|p3_type=vector|p3_name=ourpos|p3_desc|event_desc=Result of llTarget library function call|constants|spec|caveats|examples|helpers|also_header|also_events|also_functions|also_articles|also_footer|notes|mode|deprecated}}[[Category:LSL_Events]][[Category:LSL_Stub]]
{{LSL_Event|event_id=16|event_delay|event=at_target
|p1_type=integer|p1_name=tnum|p1_desc=[[llTarget]] return
|p2_type=vector|p2_name=targetpos|p2_desc=[[llTarget]] position parameter
|p3_type=vector|p3_name=ourpos|p3_desc=current position (similar to [[llGetPos]])
|event_desc=Result of {{LSLG|llTarget}} library function call
|constants
|spec
|caveats
|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
|also_header
|also_events={{LSL DefineRow||[[not_at_target]]|}}
{{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_footer
|notes
|mode
|deprecated
|cat1=Target
|cat2=Physics
|cat3=At Target
|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 );