<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Giuliani+Rossini</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Giuliani+Rossini"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Giuliani_Rossini"/>
	<updated>2026-06-27T14:36:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Link_message&amp;diff=460603</id>
		<title>Link message</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Link_message&amp;diff=460603"/>
		<updated>2009-08-16T02:31:34Z</updated>

		<summary type="html">&lt;p&gt;Giuliani Rossini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Event|event_id=29|event_delay|event=link_message&lt;br /&gt;
|p1_type=integer|p1_name=sender_num|p1_desc=The link number of the prim that contained the script that called [[llMessageLinked]].&lt;br /&gt;
|p2_type=integer|p2_name=num|p2_desc=Second parameter of the llMessageLinked call.&lt;br /&gt;
|p3_type=string|p3_name=str|p3_desc=Third parameter of the llMessageLinked call.&lt;br /&gt;
|p4_type=key|p4_name=id|p4_desc=Fourth parameter of the llMessageLinked call.&lt;br /&gt;
|event_desc=Triggered when the script receives a link message that was sent by a call to [[llMessageLinked]]. llMessageLinked is used to send messages from one script to another.&lt;br /&gt;
|event_footnote=&#039;&#039;&#039;id&#039;&#039;&#039; is often used as a second string field (in LSL the [[key]] type is implemented as a [[string]] with just custom operators). [[typecast|Typecasting]] between [[string]] and [[key]] types has no effect on the data contained. The sizes of &#039;&#039;&#039;str&#039;&#039;&#039; and &#039;&#039;&#039;id&#039;&#039;&#039; are only limited by available script memory.&lt;br /&gt;
|constants&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=*64 link_message events can queue, past that, they are silently dropped!  Don&#039;t do too much in the event if they might be coming in fast.&lt;br /&gt;
*&#039;&#039;&#039;sender_num&#039;&#039;&#039; does not reflect how a message was sent, there is no way to know if it was sent with a LINK_* flag or the [[llGetLinkNumber|specific link number]].&lt;br /&gt;
*If &#039;&#039;&#039;str&#039;&#039;&#039; and &#039;&#039;&#039;id&#039;&#039;&#039; are bigger than available memory the script will crash with a Stack-Heap Collision.&lt;br /&gt;
|examples=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
//This is just an example script, you shouldn&#039;t handle touches within single script this way.&lt;br /&gt;
&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    touch_start(integer c)&lt;br /&gt;
    {&lt;br /&gt;
        llMessageLinked(LINK_THIS, 0, llDetectedName(0), llDetectedKey(0));&lt;br /&gt;
    }&lt;br /&gt;
    link_message(integer source, integer num, string str, key id)&lt;br /&gt;
    {&lt;br /&gt;
        llWhisper(0, str + &amp;quot; (&amp;quot; + (string)id + &amp;quot;) touched me!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers=&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// This is just an example script, you shouldn&#039;t handle link message within single script this way.&lt;br /&gt;
&lt;br /&gt;
default{ // To propagate an unlimited number of arguments of any type.&lt;br /&gt;
	// Presumed, the separator string isn&#039;t used in any source string!&lt;br /&gt;
    state_entry() {    &lt;br /&gt;
        list my_list = [1, 2.0, &amp;quot;a string&amp;quot;, &amp;lt;1, 2, 3&amp;gt;, &amp;lt;1, 2, 3, 4&amp;gt;, llGetOwner()];  &lt;br /&gt;
        string list_parameter = llDumpList2String(my_list, &amp;quot;|&amp;quot;);	// Typecast list to a string&lt;br /&gt;
        llMessageLinked(LINK_THIS, 0, list_parameter, NULL_KEY)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    link_message(integer sender_num, integer num, string list_argument, key id) {&lt;br /&gt;
        list re_list = llParseString2List(list_argument, [&amp;quot;|&amp;quot;], [&amp;quot;&amp;quot;]);	// Typecast string back to a list&lt;br /&gt;
    }    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|also_header&lt;br /&gt;
|also_events&lt;br /&gt;
|also_functions={{LSL DefineRow||[[llMessageLinked]]}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|also_footer&lt;br /&gt;
|notes=A script can hear its own link messages.&lt;br /&gt;
|mode&lt;br /&gt;
|cat1=Link&lt;br /&gt;
|cat2=Communications&lt;br /&gt;
|cat3=Link Message&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Giuliani Rossini</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlAvatarOnSitTarget&amp;diff=28054</id>
		<title>LlAvatarOnSitTarget</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlAvatarOnSitTarget&amp;diff=28054"/>
		<updated>2007-08-14T01:43:18Z</updated>

		<summary type="html">&lt;p&gt;Giuliani Rossini: sp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function|func_id=239|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llAvatarOnSitTarget&lt;br /&gt;
|return_type=key&lt;br /&gt;
|return_text=that is the [[UUID]] of the user seated on the prim.&lt;br /&gt;
|func_footnote=If the prim lacks a sit target or there is no avatar sitting on the prim, then {{LSLG|NULL_KEY}} is returned.&lt;br /&gt;
|caveats=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.&lt;br /&gt;
|spec&lt;br /&gt;
|examples=&amp;lt;pre&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        // set sit target, otherwise this will not work &lt;br /&gt;
        llSitTarget(&amp;lt;0.0, 0.0, 0.1&amp;gt;, ZERO_ROTATION);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    changed(integer change) {&lt;br /&gt;
        if (change &amp;amp; CHANGED_LINK) { &lt;br /&gt;
            key av = llAvatarOnSitTarget();&lt;br /&gt;
            if (av) {//evaluated as true if not NULL_KEY or invalid&lt;br /&gt;
                llSay(0, &amp;quot;Hello &amp;quot; + llKey2Name(av) + &amp;quot;, thank you for sitting down&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|helpers=&amp;lt;pre&amp;gt;&lt;br /&gt;
//Gets the link number of a seated avatar&lt;br /&gt;
integer GetAgentLinkNumber(key avatar)&lt;br /&gt;
{&lt;br /&gt;
    integer linkNum = 1 + llGetNumberOfPrims();&lt;br /&gt;
    key linkKey;&lt;br /&gt;
    //Next we get the linkKey and make sure it&#039;s not null, if it&#039;s null we are done.&lt;br /&gt;
    while((linkKey = llGetLinkKey( --linkNum )))//is the key valid?&lt;br /&gt;
        if(avatar == linkKey)//is it the avatar we want?&lt;br /&gt;
            return linkNum;//It&#039;s the avatar we want so return.&lt;br /&gt;
    //avatar wasn&#039;t found so return a number that isn&#039;t a LINK_* flag that can&#039;t be a valid link number either.&lt;br /&gt;
    return 0x7FFFFFFF;//max int.&lt;br /&gt;
}//Written by Strife Onizuka&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|related&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events={{LSL DefineRow||{{LSLG|changed}}|}}&lt;br /&gt;
|also_functions={{LSL DefineRow||{{LSLG|llSitTarget}}|}}&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|cat1=Avatar&lt;br /&gt;
|cat2=Prim&lt;br /&gt;
|cat3=Sit&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Giuliani Rossini</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlSound&amp;diff=24679</id>
		<title>LlSound</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlSound&amp;diff=24679"/>
		<updated>2007-06-30T07:45:33Z</updated>

		<summary type="html">&lt;p&gt;Giuliani Rossini: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL_Function/inventory|sound|uuid=true|type=sound|volume=volume}}{{LSL_Function&lt;br /&gt;
|func_id=85|func_sleep=0.0|func_energy=10.0&lt;br /&gt;
|func=llSound&lt;br /&gt;
|p1_type=string|p1_name=sound&lt;br /&gt;
|p2_type=float|p2_name=volume&lt;br /&gt;
|p3_type=integer|p3_name=queue|p3_desc=boolean, whether or not to queue the song ({{LSLG|TRUE}}) or interrupt the playing song ({{LSLG|FALSE}}).&lt;br /&gt;
|p4_type=integer|p4_name=loop|p4_desc=boolean, whether or not to loop the song.&lt;br /&gt;
|func_footnote&lt;br /&gt;
|func_desc=Plays &#039;&#039;&#039;sound&#039;&#039;&#039; at &#039;&#039;&#039;volume&#039;&#039;&#039; and whether it should &#039;&#039;&#039;loop&#039;&#039;&#039; or not.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats&lt;br /&gt;
|constants&lt;br /&gt;
|examples&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions&lt;br /&gt;
|also_events&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes&lt;br /&gt;
|deprecated=llPlaySound&lt;br /&gt;
|cat1=Sound&lt;br /&gt;
|cat2&lt;br /&gt;
|cat3&lt;br /&gt;
|cat4&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Giuliani Rossini</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Build_clothing&amp;diff=16022</id>
		<title>Build clothing</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Build_clothing&amp;diff=16022"/>
		<updated>2007-03-24T17:54:18Z</updated>

		<summary type="html">&lt;p&gt;Giuliani Rossini: sp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OSWikiFeatureNav}}&lt;br /&gt;
=== Feature Design Document ===&lt;br /&gt;
Clothing are asset that can be worn on the avatar. They each have at least one texture swatch, a color swatch, some modification sliders, and a unique Inventory icon.&lt;br /&gt;
&lt;br /&gt;
[[Undershirt]]&lt;br /&gt;
&lt;br /&gt;
[[Shirt]]&lt;br /&gt;
&lt;br /&gt;
[[Underpants]]&lt;br /&gt;
&lt;br /&gt;
[[Pants]] &lt;br /&gt;
&lt;br /&gt;
[[Jacket]] &lt;br /&gt;
&lt;br /&gt;
[[Gloves]] &lt;br /&gt;
&lt;br /&gt;
[[Socks]] &lt;br /&gt;
&lt;br /&gt;
[[Shoes]] &lt;br /&gt;
&lt;br /&gt;
[[Dress]]&lt;br /&gt;
&lt;br /&gt;
=== Functional Spec ===&lt;br /&gt;
(none)&lt;br /&gt;
&lt;br /&gt;
=== Test scripts ===&lt;br /&gt;
(none)&lt;br /&gt;
&lt;br /&gt;
=== Discussion for future improvements ===&lt;br /&gt;
(none)&lt;br /&gt;
&lt;br /&gt;
=== Relationship to other features ===&lt;br /&gt;
&amp;lt;b&amp;gt; List of features that need to be tested when this feature changes, and why. &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(none)&lt;br /&gt;
&lt;br /&gt;
=== User Guides ===&lt;br /&gt;
(none)&lt;/div&gt;</summary>
		<author><name>Giuliani Rossini</name></author>
	</entry>
</feed>