70c1767d-87d8-7cbb-7031-e1cc30aef23d_script.lsl 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //
  2. // The line above should be left blank to avoid script errors in OpenSim.
  3. /*
  4. * btn_connect_hud.lsl
  5. * Part of the Sloodle project (www.sloodle.org)
  6. *
  7. * Copyright (c) 2011-06 contributors (see below)
  8. * Released under the GNU GPL v3
  9. *
  10. * Contributors:
  11. * Edmund Edgar
  12. * Paul Preibisch
  13. */
  14. string view_url;
  15. string admin_url;
  16. string sloodleserverroot = "";
  17. string paramstr;
  18. integer SLOODLE_CHANNEL_OBJECT_DIALOG = -3857343;
  19. integer SLOODLE_CHANNEL_SCOREBOARD_SHARED_MEDIA_SET_ADMIN_URL_CHANNEL= -1639271128; // This is the channel that the scoreboard shouts out its admin URL
  20. integer SLOODLE_CHANNEL_SCOREBOARD_SHARED_MEDIA_CHANGE_ADMIN_URL_CHANNEL= -1639271129; // This is the channel that the scoreboard shouts out its admin URL WHEN It has changed due to a region event (lost its url etc)
  21. integer SLOODLE_SCOREBOARD_CONNECT_HUD= -1639271130; // channel which gets sent a linked message by the connect a hud button when it is touched.
  22. sloodle_handle_command(string str)
  23. {
  24. // llOwnerSay(str);
  25. list bits = llParseString2List(str,["|"],[]);
  26. integer numbits = llGetListLength(bits);
  27. string name = llList2String(bits,0);
  28. string value1 = "";
  29. string value2 = "";
  30. if (numbits > 1) value1 = llList2String(bits,1);
  31. if (numbits > 2) value2 = llList2String(bits,2);
  32. if (name == "set:sloodleserverroot") sloodleserverroot = value1;
  33. }
  34. default
  35. {
  36. on_rez(integer start_param) {
  37. llResetScript();
  38. }
  39. state_entry() {
  40. paramstr = "&sloodleobjuuid=" + (string)llGetKey();
  41. view_url= sloodleserverroot+"/mod/sloodle/mod/scoreboard-1.0/shared_media/index.php?" + paramstr;
  42. admin_url = sloodleserverroot+"/mod/sloodle/mod/scoreboard-1.0/shared_media/index.php?" + paramstr + "&mode=admin";
  43. }
  44. link_message(integer sender_num, integer num, string str, key id) {
  45. if (num == SLOODLE_CHANNEL_OBJECT_DIALOG) {
  46. // Split the message into lines
  47. list lines = llParseString2List(str, ["\n"], []);
  48. integer numlines = llGetListLength(lines);
  49. integer i = 0;
  50. for (i=0; i < numlines; i++) {
  51. sloodle_handle_command(llList2String(lines, i));
  52. }
  53. }
  54. }
  55. touch_start( integer total_number)
  56. {
  57. if (llDetectedKey(0)!=llGetOwner())return;
  58. llMessageLinked(LINK_ALL_OTHERS, SLOODLE_SCOREBOARD_CONNECT_HUD, "", llDetectedKey(0));
  59. // llOwnerSay("Connecting HUD "+(string)SLOODLE_SCOREBOARD_CONNECT_HUD);
  60. llTriggerSound("SND_TRANSMIT_SCOREBOARD_ID_TO_HUD", 1);
  61. }
  62. }
  63. // Please leave the following line intact to show where the script lives in Git:
  64. // SLOODLE LSL Script Git Location: mod/scoreboard-1.0/objects/default/assets/sloodle_connect_button.lslp