Difference between revisions of "LlAvatarOnSitTarget"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
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 | *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 (for an example of this, see [[llGetNumberOfPrims#Useful_Snippets|llGetNumberOfPrims]]). | ||
|spec | |spec | ||
|examples=<lsl>default | |examples=<lsl>default | ||
Line 44: | Line 44: | ||
|also_articles={{LSL DefineRow||[[CHANGED_LINK]]|}} | |also_articles={{LSL DefineRow||[[CHANGED_LINK]]|}} | ||
|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). | |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). | ||
|cat1=Avatar | |cat1=Avatar | ||
|cat2=Prim | |cat2=Prim |
Revision as of 23:38, 25 May 2008
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: key llAvatarOnSitTarget( );239 | Function ID |
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 (for an example of this, see llGetNumberOfPrims).
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).