10.lsl 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // :CATEGORY:Tour
  2. // :NAME:swan tour guide
  3. // :AUTHOR:Ferd Frederix
  4. // :CREATED:2013-09-06
  5. // :EDITED:2013-11-27 13:38:09
  6. // :ID:854
  7. // :NUM:1545
  8. // :REV:1
  9. // :WORLD:Second Life
  10. // :DESCRIPTION:
  11. // Tour Guide setup prim.
  12. // Rez this from inventory to m,ake a route. Use the recorder to gather the route
  13. // :CODE:
  14. integer wanted = 0;
  15. integer debugger = 1;
  16. list prims;
  17. debug(string message)
  18. {
  19. if (debugger)
  20. llOwnerSay(message);
  21. }
  22. default
  23. {
  24. state_entry()
  25. {
  26. llListen(300,"","","");
  27. wanted++;
  28. llRegionSay(300,"number");
  29. llSetTimerEvent(5.0); // 5 seconds to hear from all prims
  30. llOwnerSay("Setting coordinates");
  31. }
  32. listen(integer channel,string name, key id, string message)
  33. {
  34. if (message == "die")
  35. llDie();
  36. else if (message =="where")
  37. llRegionSay(300,llGetObjectName() + "|" + (string) llGetPos() + "|" + llGetObjectDesc());
  38. else if (message =="number")
  39. llRegionSay(300,llGetObjectName());
  40. else if (wanted)
  41. {
  42. prims += (integer) message; // add to memory list
  43. }
  44. }
  45. timer()
  46. {
  47. wanted = 0;
  48. prims = llListSort(prims,1,0); // sort descending
  49. integer num = (integer) llList2Integer(prims,0); // get highest number
  50. llSetObjectName((string) (num + 10)); // leave room for more prims to be added
  51. llOwnerSay("Name set to " + llGetObjectName() + ". You can add text to be spoken when the tour reaches this location by adding some text to the description of this object.");
  52. llSetTimerEvent(0);
  53. }
  54. on_rez(integer p)
  55. {
  56. llResetScript();
  57. }
  58. }