link_receiver.lsl 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // :SHOW:1
  2. // :CATEGORY:Light
  3. // :NAME:Rene Free Lighting System
  4. // :AUTHOR:Rene10957 Resident
  5. // :KEYWORDS: light,lamp,lighting light
  6. // :CREATED:2015-06-11 14:41:20
  7. // :EDITED:2016-03-30 20:29:28
  8. // :ID:1079
  9. // :NUM:1773
  10. // :REV:1.2
  11. // :WORLD:Opensim
  12. // :DESCRIPTION:
  13. // Link receiver for Rene's Free Lighting System
  14. // :CODE:
  15. // :LICENSE: CC0 (Public Domain)
  16. //
  17. // Author: Rene10957 Resident
  18. // Date: 24-01-2014
  19. //
  20. // Drop this into the same prim where the SWITCH is located
  21. // Note: only useful if you are also using the link control script
  22. // License: CC0 (Public Domain).
  23. // To the extent possible under law, Rene10957 has waived all copyright and related or neighboring rights.
  24. // For more information, see http://creativecommons.org/publicdomain/zero/1.0/.
  25. string title = "Link Receiver"; // title
  26. string version = "1.2"; // version
  27. integer silent = TRUE; // silent startup
  28. // Constants
  29. integer msgIn = -975104; // number part of incoming link message
  30. integer msgOut = 10957; // number part of outgoing link message
  31. string separator = ";;"; // separator for link messages
  32. // Functions
  33. string getGroup()
  34. {
  35. string str = llStringTrim(llGetObjectDesc(), STRING_TRIM);
  36. if (llToLower(str) == "(no description)" || str == "") str = "Default";
  37. return str;
  38. }
  39. default
  40. {
  41. state_entry()
  42. {
  43. if (!silent) llWhisper(0, title + " " + version + " ready");
  44. }
  45. on_rez(integer start_param)
  46. {
  47. llResetScript();
  48. }
  49. link_message(integer sender_number, integer number, string msg, key id)
  50. {
  51. if (number != msgIn) return;
  52. list msgList = llParseString2List(msg, [separator], []);
  53. string group = llList2String(msgList, 0);
  54. string command = llList2String(msgList, 1);
  55. key user = (key)llList2String(msgList, 2);
  56. if (llToLower(group) == llToLower(getGroup())) llMessageLinked(LINK_THIS, msgOut, command, user);
  57. }
  58. }