Advertisement
MiddKnight

Untitled

Mar 13th, 2017
1,031
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. float   TIMER_CLOSE = 3600.0;
  2. integer DIRECTION   = -1;
  3. integer DOOR_OPEN   = 1;
  4. integer DOOR_CLOSE  = 2;
  5. integer chan=-8767876;
  6. vector  mypos;
  7.                          
  8. door(integer what)
  9. {   rotation    rot;
  10.     rotation    delta;
  11.     llSetTimerEvent(0);
  12.     if( what == DOOR_OPEN )
  13.     {   llTriggerSound("latch", 0.8);
  14.         llSleep(0.95);
  15.         llTriggerSound("wood_drag35", 0.8);
  16.         rot = llGetRot();
  17.         delta = llEuler2Rot(<0, 0, -DIRECTION * (DEG_TO_RAD * 45)>);
  18.         rot = delta * rot;
  19.         llSetRot(rot);
  20.     }
  21.     else if( what == DOOR_CLOSE)
  22.     {   rot = llGetRot();
  23.         delta = llEuler2Rot(<0, 0, DIRECTION * (DEG_TO_RAD * 45)>);
  24.         rot = delta * rot;
  25.         llSetRot(rot);
  26.         llTriggerSound("wood_drag29", 0.8);
  27.         llSleep(0.05);
  28.         llTriggerSound("latch", 0.8);
  29.     }
  30. }
  31.  
  32. default
  33. {   on_rez(integer start_param)
  34.     {   llResetScript();
  35.     }
  36. //    state_entry()
  37. //    {   mypos = llGetPos();
  38. //        llListen(chan,"",NULL_KEY,"");    
  39. //    }
  40.     touch_start(integer total_number)
  41.     {   door(DOOR_OPEN);
  42.         state is_open;
  43.     }
  44. //    listen(integer channel, string name, key id, string message)
  45. //    {   if(message=="switch")
  46. //            door(DOOR_OPEN);
  47. //            state is_open;
  48. //    }
  49.     moving_end()
  50.     {   mypos = llGetPos();
  51.     }
  52. }
  53.  
  54. state is_open
  55. {   state_entry()
  56.     {   llSetTimerEvent(TIMER_CLOSE);
  57.     }
  58.     touch_start(integer num)
  59.     {   door(DOOR_CLOSE);
  60.         llSetPos(mypos);
  61.         state default;
  62.     }
  63.     timer()
  64.     {   door(DOOR_CLOSE);
  65.         llSetPos(mypos);
  66.         state default;
  67.     }
  68.     moving_start()
  69.     {   door(DOOR_CLOSE);
  70.         state default;
  71.     }
  72. }
Advertisement
RAW Paste Data Copied
Advertisement