door script.lsl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // :CATEGORY:Teleport
  2. // :NAME:Elven Door Teleport System
  3. // :AUTHOR:Ferd Frederix
  4. // :KEYWORDS:
  5. // :CREATED:2014-12-04 12:10:43
  6. // :EDITED:2014-12-04
  7. // :ID:1056
  8. // :NUM:1677
  9. // :REV:1
  10. // :WORLD:Second Life
  11. // :DESCRIPTION:
  12. // DESCRIPTION: []::Elven Door teleport System
  13. // :CODE:
  14. // door swing script
  15. integer open = 0;
  16. opendoor()
  17. {
  18. if (open == TRUE)
  19. return;
  20. llSetLocalRot( llEuler2Rot(<0,0,120> * DEG_TO_RAD) );
  21. open = TRUE;
  22. llSetTimerEvent(30.0);
  23. }
  24. closedoor()
  25. {
  26. llSetLocalRot( llEuler2Rot(<0,0,-90> * DEG_TO_RAD) );
  27. open = FALSE;
  28. }
  29. default
  30. {
  31. state_entry()
  32. {
  33. closedoor();
  34. }
  35. touch_start(integer total_number)
  36. {
  37. if (open)
  38. {
  39. llSetTimerEvent(0.1); //close door
  40. }
  41. else
  42. {
  43. opendoor();
  44. llMessageLinked(LINK_ALL_OTHERS, 0,"rez","");
  45. }
  46. }
  47. timer()
  48. {
  49. closedoor();
  50. llSetTimerEvent(0.0);
  51. }
  52. link_message(integer sender_num,integer num, string str, key id)
  53. {
  54. //llOwnerSay("Heard:" + str);
  55. if (str =="open")
  56. {
  57. llSetTimerEvent(30.0);
  58. opendoor();
  59. }
  60. else if (str =="close")
  61. {
  62. llSetTimerEvent(0.0);
  63. closedoor();
  64. }
  65. }
  66. on_rez(integer p)
  67. {
  68. llResetScript();
  69. }
  70. }