Difference between revisions of "LlAvatarOnSitTarget"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
m |
|||
Line 2: | Line 2: | ||
|func=llAvatarOnSitTarget | |func=llAvatarOnSitTarget | ||
|return_type=key | |return_type=key | ||
|return_text= | |return_text= :Retourne le [[UUID]] de l'avatar assis sur le prim. | ||
|func_footnote= | |func_footnote=SI le prim ne trouve pas de 'sit target' ou si il n'y a pas d'avatar assis sur le prim, alors {{LSL Const|NULL_KEY|key|"00000000-0000-0000-0000-000000000000"|c=Evaluates to false in conditionals just like invalid keys.}} est retourné. | ||
|caveats=* | |caveats=*Un prim n'a pas de 'sit target' sans que [[llSitTarget]] soit crée avec un vecteur '''non nul'''. | ||
* | *Si le prim ne trouve pas de 'sit target' ou si l'avatar est assis sur un prim different,la seule façon de determiner combien et quel avatar est assis sur l'objet est de scanner le link set<sup>[[#Notes|1]]</sup>. | ||
|spec | |spec | ||
|examples=<pre> | |examples=<pre> | ||
Line 12: | Line 12: | ||
state_entry() | state_entry() | ||
{ | { | ||
// | // Creation du sit target, sinon la fonction ne marche pas | ||
llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); | llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); | ||
} | } | ||
Line 19: | Line 19: | ||
if (change & CHANGED_LINK) { | if (change & CHANGED_LINK) { | ||
key av = llAvatarOnSitTarget(); | key av = llAvatarOnSitTarget(); | ||
if (av) {// | if (av) {//VRAI si la clé de l'avatar existe et est valide | ||
llSay(0, " | llSay(0, "Salut " + llKey2Name(av) + ", Merci de vous etre assis"); | ||
} | } | ||
} | } | ||
Line 27: | Line 27: | ||
</pre> | </pre> | ||
|helpers=<pre> | |helpers=<pre> | ||
// | //Donne le numero de link de l'avatar assis | ||
integer GetAgentLinkNumber(key avatar) | integer GetAgentLinkNumber(key avatar) | ||
{ | { | ||
integer linkNum = 1 + llGetNumberOfPrims(); | integer linkNum = 1 + llGetNumberOfPrims(); | ||
key linkKey; | key linkKey; | ||
// | //Apres nous prendrond le linkKey soyez sur qu'il est non nul sinon cela ne marchera pas. | ||
while((linkKey = llGetLinkKey( --linkNum )))// | while((linkKey = llGetLinkKey( --linkNum )))//est ce que la clé est valide? | ||
if(avatar == linkKey)// | if(avatar == linkKey)//est ce le bon avatar? | ||
return linkNum;// | return linkNum;//C'est le bon avatar. | ||
//avatar | //L'avatar n'a pas été trouvé | ||
// | //retounre un nombre, ce n'est pas une balise LINK_* ni un numero de link valide. | ||
return 0x7FFFFFFF;//max int. | return 0x7FFFFFFF;//max int. | ||
}//Written by Strife Onizuka | }//Written by Strife Onizuka | ||
Line 48: | Line 48: | ||
|also_articles | |also_articles | ||
|notes= | |notes= | ||
# | #Pour scanner un link set utliser une fonction comme [[llGetLinkKey]] (voir [[llGetNumberOfPrims#Useful_Snippets]]comme exemple). | ||
# | #La position d'un avatar assis sur un prim peut etre determiné avec [[llGetObjectDetails]] (voir [[llSitTarget#Useful_Snippets]]comme exemple). | ||
|cat1=Avatar | |cat1=Avatar | ||
|cat2=Prim | |cat2=Prim |
Revision as of 01:57, 8 December 2007
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
- Retourne le UUID de l'avatar assis sur le prim.
SI le prim ne trouve pas de 'sit target' ou si il n'y a pas d'avatar assis sur le prim, alors NULL_KEY est retourné.
Caveats
- Un prim n'a pas de 'sit target' sans que llSitTarget soit crée avec un vecteur non nul.
- Si le prim ne trouve pas de 'sit target' ou si l'avatar est assis sur un prim different,la seule façon de determiner combien et quel avatar est assis sur l'objet est de scanner le link set1.
Examples
default { state_entry() { // Creation du sit target, sinon la fonction ne marche pas llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); } changed(integer change) { if (change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); if (av) {//VRAI si la clé de l'avatar existe et est valide llSay(0, "Salut " + llKey2Name(av) + ", Merci de vous etre assis"); } } } }
Useful Snippets
//Donne le numero de link de l'avatar assis integer GetAgentLinkNumber(key avatar) { integer linkNum = 1 + llGetNumberOfPrims(); key linkKey; //Apres nous prendrond le linkKey soyez sur qu'il est non nul sinon cela ne marchera pas. while((linkKey = llGetLinkKey( --linkNum )))//est ce que la clé est valide? if(avatar == linkKey)//est ce le bon avatar? return linkNum;//C'est le bon avatar. //L'avatar n'a pas été trouvé //retounre un nombre, ce n'est pas une balise LINK_* ni un numero de link valide. return 0x7FFFFFFF;//max int. }//Written by Strife Onizuka
Notes
- Pour scanner un link set utliser une fonction comme llGetLinkKey (voir llGetNumberOfPrims#Useful_Snippetscomme exemple).
- La position d'un avatar assis sur un prim peut etre determiné avec llGetObjectDetails (voir llSitTarget#Useful_Snippetscomme exemple).