Difference between revisions of "LlAvatarOnSitTarget"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 5: Line 5:
|func_footnote=If the prim lacks a sit target or there is no avatar sitting on the prim, then {{LSL Const|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=Evaluates to false in conditionals just like invalid keys.}} is returned.
|func_footnote=If the prim lacks a sit target or there is no avatar sitting on the prim, then {{LSL Const|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=Evaluates to false in conditionals just like invalid keys.}} is returned.
|caveats=*A prim does not have a sit target unless [[llSitTarget]] has been called with a '''nonzero''' vector as the first argument.
|caveats=*A prim does not have a sit target unless [[llSitTarget]] has been called with a '''nonzero''' vector as the first argument.
*If the prim lacks a sit target or the avatar is seated upon a different prim, the only way to determine how many and which avatars are seated upon the object is to scan the link set<sup>[[#Notes|1]]</sup>.
*If the prim lacks a sit target or the avatar is seated upon a different prim, the only way to determine how many and which avatars are seated upon the object is to scan the link set{{Footnote|To scan a link set using a function such as [[llGetLinkKey]] (see [[llGetNumberOfPrims#Useful_Snippets|llGetNumberOfPrims]] for an examples).|To scan a link set using a function such as llGetLinkKey (see llGetNumberOfPrims for an examples).}}.
|spec
|spec
|examples=<lsl>default
|examples=<lsl>default
Line 43: Line 43:
{{LSL DefineRow||[[llGetLinkKey]]}}
{{LSL DefineRow||[[llGetLinkKey]]}}
|also_articles={{LSL DefineRow||[[CHANGED_LINK]]|}}
|also_articles={{LSL DefineRow||[[CHANGED_LINK]]|}}
|notes=
|notes=The position of an avatar on a sit target can be determined with the use of [[llGetObjectDetails]] (see [[llSitTarget#Useful_Snippets|llSitTarget]] for an example).
#To scan a link set using a function such as [[llGetLinkKey]] (see [[llGetNumberOfPrims#Useful_Snippets]] for examples).
{{Footnotes}}
#The position of an avatar on a sit target can be determined with the use of [[llGetObjectDetails]] (see [[llSitTarget#Useful_Snippets]] for example).
|cat1=Avatar
|cat1=Avatar
|cat2=Prim
|cat2=Prim

Revision as of 22:35, 25 May 2008

Summary

Function: key llAvatarOnSitTarget( );
0.0 Forced Delay
10.0 Energy

Returns a key that is the UUID of the user seated on the prim.

If the prim lacks a sit target or there is no avatar sitting on the prim, then NULL_KEY is returned.

Caveats

  • A prim does not have a sit target unless llSitTarget has been called with a nonzero vector as the first argument.
  • If the prim lacks a sit target or the avatar is seated upon a different prim, the only way to determine how many and which avatars are seated upon the object is to scan the link set[1].

Examples

<lsl>default {

   state_entry()
   {
       // set sit target, otherwise this will not work 
       llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
   }
   changed(integer change) {
       if (change & CHANGED_LINK) { 
           key av = llAvatarOnSitTarget();
           if (av) {//evaluated as true if not NULL_KEY or invalid
               llSay(0, "Hello " + llKey2Name(av) + ", thank you for sitting down");
           }
       }
   }
}</lsl>

Useful Snippets

<lsl>//Gets the link number of a seated avatar integer GetAgentLinkNumber(key avatar) {

   integer linkNum = 1 + llGetNumberOfPrims();
   key linkKey;
   //Next we get the linkKey and make sure it's not null, if it's null we are done.
   while((linkKey = llGetLinkKey( --linkNum )))//is the key valid?
       if(avatar == linkKey)//is it the avatar we want?
           return linkNum;//It's the avatar we want so return.
   //avatar wasn't not found
   //return a number that isn't a LINK_* flag not a valid link number either.
   return 0x7FFFFFFF;//max int.

}//Written by Strife Onizuka</lsl>

Notes

The position of an avatar on a sit target can be determined with the use of llGetObjectDetails (see llSitTarget for an example).

  1. ^ To scan a link set using a function such as llGetLinkKey (see llGetNumberOfPrims for an examples).

See Also

Events

•  changed

Functions

•  llSitTarget
•  llGetLinkKey

Articles

•  CHANGED_LINK

Deep Notes

Signature

function key llAvatarOnSitTarget();