LlMessageLinked
De DigiWiki.
Version du 25 août 2012 à 19:13 par Djphil (discuter | contributions)
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 } }