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{{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). | ||
{{Footnotes}} | |||
|cat1=Avatar | |cat1=Avatar | ||
|cat2=Prim | |cat2=Prim |
Revision as of 23:35, 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[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).
- ^ To scan a link set using a function such as llGetLinkKey (see llGetNumberOfPrims for an examples).