# AVsitter2™ Developer Link Message Reference The following [link messages](http://wiki.secondlife.com/wiki/Link_message) are used in AVsitter2. This list is not intended for the casual user. Public API info for general users can be found [here](https://avsitter.github.io/avsitter2.html). This page may provide additional info if the purpose of a link message is not initially clear. **AVsitter2 uses link messages in the range 90000-90500.** ### 90000 Play an animation defined in AVpos notecard. lMessageLinked(LINK_THIS,90000,,); Where for : "" = try to play the pose for all SITTERS. UUID = try to play the pose to avatar by UUID. integer = apply the pose to a sitter e.g. SITTER 0. ### 90001 Play an overlay animation ([AV]adjuster, [AV]faces). llMessageLinked(LINK_THIS,90001,,); ### 90002 Stop an additional animation ([AV]adjuster, [AV]faces). llMessageLinked(LINK_THIS,90002,,); ### 90003 Same as 90000 but ignored by [AV]sequence script to prevent from stopping sequences when [AV]sequence itself plays poses. ### 90004 Same as 90005 but returns to top level of the menu (used by [AV]root-RLV when press [MENU]). ### 90005 Give the menu. Optionally set controller avatar and submenu. llMessageLinked(LINK_SET,90005,"",); llMessageLinked(LINK_SET,90005,,[|]); TOMENU=-1 ensures when sitters first sit they will get [AV]select menu if the [AV]seclect] script is present ### 90006 Register touch or sit to [AV]root-security script from [AV]sitA after permissions granted. llMessageLinked(LINK_SET,90006,"",); llMessageLinked(LINK_SET,90006,,); // for AVselect! FUNCTION=-1 ensures when sitters first sit they will get [AV]select menu if the [AV]seclect] script is present ### 90007 [AV]root-security passes touch to [AV]root-control. llMessageLinked(LINK_SET,90007,"",); ### 90009 Bring up [AV]select menu, sent by [AV]sitB. llMessageLinked(LINK_SET,90009,"",); ### 90010 Same as 90000 but ignores ETYPE. ### 90011 [AV]adjuster tells [AV]sitA scripts to set the llSetLinkCamera(). ### 90012 [AV]root-security passes touch or sit to [AV]root-RLV. llMessageLinked(LINK_THIS, 90012,,); ### 90014 [AV]root-RLV notifies user scripts of the controlling avatar & captive avatars. llMessageLinked(LINK_SET,90014,llDumpList2String([CONTROLLER_UUID,llDumpList2String(CAPTIVES,",")],"|"),""); ### 90020 Tells a script to [DUMP] settings. llMessageLinked(LINK_THIS,90020,,); ### 90021 Tells [AV]adjuster to ask the next script to [DUMP] settings. llMessageLinked(LINK_THIS,90021,,); ### 90022 Tell [AV]adjuster a read out settings [DUMP] line. llMessageLinked(LINK_THIS,90022,,); ### 90030 Tell [AV]sit scripts and [AV]adjuster to [SWAP] between two sitters. llMessageLinked(LINK_THIS,90030,,); ### 90033 [AV]control tells listeners in [AV]sit & [AV]root-security scripts to reset after capture to prevent captive using an open menu, and when someone "takes control of menu". llMessageLinked(LINK_SET,90033,"",""); ### 90045 [AV]sitA gives info about the pose just played. Received by many scripts. link_message(integer sender, integer num, string msg, key id){ if(num==90045){ // The avatar UUID key AVATAR_UUID = id; // Extract the data into a list list data = llParseStringKeepNulls(msg,["|"],[]); // The SITTER# the pose is playing for integer SITTER_NUMBER = (integer)llList2String(data,0); // The name of the pose string POSE_NAME = llList2String(data,1); // The animation file string ANIM_FILE = llList2String(data,2); // The SET# integer SET = (integer)llList2String(data,3); // A list of UUIDs of all sitting avatars separated by the ( @ ) character list ALL_SITTERS = llParseStringKeepNulls(llList2String(data,4),["@"],[]); // The name the SYNC pose the avatar is leaving string OLD_SYNC_NAME = llList2String(data,5); // TRUE if the pose is a SYNC pose integer IS_SYNC = (integer)llList2String(data,6); } } ### 90050 A pose is selected from the menu default{ link_message(integer sender, integer num, string msg, key id){ if(num==90050){ key AVATAR_UUID = id; list data = llParseStringKeepNulls(msg,["|"],[]); string SITTER_NUMBER = llList2String(data,0); string POSE_NAME = llList2String(data,1); string SET = llList2String(data,2); } } } ### 90051 Same as 90050 but when a TOMENU is selected from the menu. ### 90055 [AV]sitB sends anim info to other scripts. llMessageLinked(LINK_THIS,90055,,); Where is if we want to send a 90045 in response. ### 90056 Same as 90055 but sent from [AV]sitA when an avatar sits (so helper sticks know where to go). ### 90057 Sent by [AV]adjuster when helper moves, so [AV]sitA can update position. llMessageLinked(LINK_THIS,90057,,); ### 90060 Welcome new sitter! llMessageLinked(LINK_SET,90060,"",); ### 90065 Goodbye Sitter! Received by several scripts. llMessageLinked(LINK_SET,90065,,); ### 90070 Update list of SITTERS in various scripts after permissions granted. Received by several scripts. llMessageLinked(LINK_THIS,90070,,); ### 90075 Used by oldschool HELPER 1 method - ask to animate. ### 90076 Used by oldschool HELPER 1 method - stop animate. ### 90100 Menu choice from [AV]sitA. Also sent by [AV]sitB for [RLV] button and by [AV]root-RLV-extra for [BACK] ### 90101 Menu choice. Sent and received by several scripts. llMessageLinked(LINK_SET,90101,,); ### 90150 [AV]sitA for SITTER 0 requests all [AV]sitA scripts re-place their sittarget. ### 90171 [AV]adjuster add PROP line to [AV]prop. ### 90172 [AV]adjuster add ANIM line to [AV]faces. ### 90173 [AV]menu add PROP line to [AV]prop. ### 90174 [AV]adjuster add CAMERA line to [AV]camera. ### 90200 Default integer for a BUTTON line in the AVpos notecard. Used to rez props. If UUID is specified, menu is returned to that avatar. A second UUID can be specified to rez the prop for one avatar, but return the menu to another. ### 90220 Same as 90200 but no menu is returned. ### 90201 [AV]sitA asks for info about what plugins are available. ### 90202 Reply that script exists in root: [AV]root-security (and [AV]root-RLV). ### 90203 (not used) Reply that script exists in root: [AV]texture. ### 90204 (not used) Reply that script exists in root: [AV]color. ### 90205 Toggle sound in the [AV]sequence script. ### 90206 [AV]root-RLV sends information to [AV]control. ### 90207 RLV sends hovertext details. ### 90208 [AV]root-RLV tells [AV]root-RLV-extra to open "Un/Dress" menu. ### 90209 [AV]root-RLV tells [AV]root-RLV-extra to open "Restrict" menu. ### 90210 Default integer for a SEQUENCE line in the AVpos notecard. Used by [AV]sequence. ### 90211 [AV]control sends [CAPTURE] message to [AV]root-RLV. llMessageLinked(LINK_THIS,90211,"",); ### 90230 Control [AV]camera with BUTTON or link message. llMessageLinked(LINK_THIS,90230,,); ### 90298 [AV]djuster tells [AV]sitA to show SitTargets (/5 targets). ### 90299 [AV]sitA resets [AV]sitB llMessageLinked(LINK_THIS,90299,,""); ### 90300 [AV]sitA, [AV]adjuster updates [AV]sitB. ### 90301 More [AV]sitA, [AV]adjuster updates to [AV]sitB. ### 90302 [AV]sitA sends initial notecard settings data to [AV]sitB. ### 90500 [AV]prop reports on prop events (ATTACHED,DETACHED,REZ,DEREZ). default{ link_message(integer sender, integer num, string msg, key id){ if(num==90500){ list data = llParseStringKeepNulls(msg,["|"],[]); key AVATAR_UUID = id; string EVENT = llList2String(data,0); string SITTER_NUMBER = llList2String(data,1); string PROP_NAME = llList2String(data,2); string PROP_OBJECT = llList2String(data,3); string PROP_GROUP = llList2String(data,4); string PROP_UUID = llList2String(data,5); llOwnerSay(llDumpList2String([EVENT, SITTER_NUMBER, PROP_NAME, PROP_OBJECT, PROP_GROUP, PROP_UUID, AVATAR_UUID],",")); } } }