OsSetLinkStandTarget
From OpenSimulator
(Difference between revisions)
(Created page with "{{osslfunc |function_syntax=osSetLinkStandTarget(integer linkNumber, vector feetTarget) |csharp_syntax= |description= Sets a position, relative to prim local frame, where to p...") |
(Add exemple script) |
||
(One intermediate revision by one user not shown) | |||
Line 5: | Line 5: | ||
Setting it to <0,0,0> disables it, default stand offset and login are used. | Setting it to <0,0,0> disables it, default stand offset and login are used. | ||
This vector is stored on the prim, even if the script is removed | This vector is stored on the prim, even if the script is removed | ||
+ | * linkNumber: the link number of the prim, LINK_THIS or LINK_ROOT | ||
+ | if link number is invalid it will silent fail | ||
|threat_level= None | |threat_level= None | ||
|permissions= true | |permissions= true | ||
|delay=0 | |delay=0 | ||
− | |ossl_example= | + | |ossl_example=<source lang="lsl"> |
+ | // Example of osSetLinkStandTarget | ||
+ | |||
+ | vector target = <0.0, 0.3, 0.55>; | ||
+ | vector rotate = <0.0, 0.0, 90.0>; | ||
+ | vector stand_link_target = <1.0, -1.0, 1.0>; | ||
+ | integer link = 2; | ||
+ | key avatar; | ||
+ | |||
+ | debug(string name) | ||
+ | { | ||
+ | stand_link_target = osGetLinkStandTarget(link); | ||
+ | llOwnerSay("stand_link_target for avatar " + name + " is " + (string)stand_link_target); | ||
+ | } | ||
+ | |||
+ | default | ||
+ | { | ||
+ | state_entry() | ||
+ | { | ||
+ | llUnSit(llAvatarOnSitTarget()); | ||
+ | llSetClickAction(CLICK_ACTION_SIT); | ||
+ | llLinkSitTarget(link, target, llEuler2Rot((rotate * DEG_TO_RAD))); | ||
+ | osSetLinkStandTarget(link, stand_link_target); | ||
+ | } | ||
+ | |||
+ | changed(integer change) | ||
+ | { | ||
+ | if (change & CHANGED_LINK) | ||
+ | { | ||
+ | key user = llAvatarOnSitTarget(); | ||
+ | |||
+ | if (user != NULL_KEY) | ||
+ | { | ||
+ | avatar = user; | ||
+ | debug(osKey2Name(avatar)); | ||
+ | } | ||
+ | |||
+ | else if (user == NULL_KEY) | ||
+ | { | ||
+ | debug(osKey2Name(avatar)); | ||
+ | avatar = NULL_KEY; | ||
+ | } | ||
+ | |||
+ | else | ||
+ | { | ||
+ | llResetScript(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
|additional_info=This function was added in 0.9.2.0 | |additional_info=This function was added in 0.9.2.0 | ||
}} | }} |
Latest revision as of 05:42, 8 February 2020
osSetLinkStandTarget(integer linkNumber, vector feetTarget)
| |
Sets a position, relative to prim local frame, where to place the feet of a standing avatar. The final position may not be exactly that.
Setting it to <0,0,0> disables it, default stand offset and login are used. This vector is stored on the prim, even if the script is removed
if link number is invalid it will silent fail | |
Threat Level | None |
Permissions | Use of this function is always allowed by default |
Extra Delay | 0 seconds |
Example(s) | |
// Example of osSetLinkStandTarget vector target = <0.0, 0.3, 0.55>; vector rotate = <0.0, 0.0, 90.0>; vector stand_link_target = <1.0, -1.0, 1.0>; integer link = 2; key avatar; debug(string name) { stand_link_target = osGetLinkStandTarget(link); llOwnerSay("stand_link_target for avatar " + name + " is " + (string)stand_link_target); } default { state_entry() { llUnSit(llAvatarOnSitTarget()); llSetClickAction(CLICK_ACTION_SIT); llLinkSitTarget(link, target, llEuler2Rot((rotate * DEG_TO_RAD))); osSetLinkStandTarget(link, stand_link_target); } changed(integer change) { if (change & CHANGED_LINK) { key user = llAvatarOnSitTarget(); if (user != NULL_KEY) { avatar = user; debug(osKey2Name(avatar)); } else if (user == NULL_KEY) { debug(osKey2Name(avatar)); avatar = NULL_KEY; } else { llResetScript(); } } } } | |
Notes | |
This function was added in 0.9.2.0 |