De DigiWiki.
default
{
// assumptions // object name: LSLWiki // script name: _lslwiki
state_entry()
{
llMessageLinked(LINK_THIS, 0, llGetScriptName(), "");
}
link_message(integer sender_num, integer num, string msg, key id)
{
llOwnerSay(msg);
// the owner of object LSLWiki will hear
// LSLWiki:_lslwiki
}
}
Infinite Loop
Message_Control(integer l, integer n) // Message_Total_Lack_Of_Control
{
integer r = (++n); // Increment the value of n.
llMessageLinked( l, r, "", ""); // Send the result to l
}
default
{
state_entry()
{
Message_Control(LINK_SET, 0); // Tell all the scripts in the object that we have state_entered.
}
link_message(integer Sender, integer Number, string String, key Key) // This script is in the object too.
{
Message_Control(Sender, Number); // No filtering condition exists.
llOwnerSay(((string)Number)); // Look at all the pretty numbers!
}
}
default
{
// Quick and dirty debugging link_messages
link_message(integer sender_num, integer num, string msg, key id)
{
llSay(DEBUG_CHANNEL, llList2CSV([sender_num, num, msg, id]));
}
}
// This is just an example script, you shouldn't handle link message within single script this way.
default
{
// To propagate an unlimted number of arguments of any type.
// Presumed, the separator string isn't used in any source string!
state_entry()
{
list my_list = [1, 2.0, "a string", <1, 2, 3>, <1, 2, 3, 4>, llGetOwner()];
string list_parameter = llDumpList2String(my_list, "|"); // Convert the list to a string
llMessageLinked(LINK_THIS, 0, list_parameter, "")
}
link_message(integer sender_num, integer num, string list_argument, key id)
{
list re_list = llParseString2List(list_argument, ["|"], []); // Parse the string back to a list
}
}