Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float TIMER_CLOSE = 3600.0;
- integer DIRECTION = -1;
- integer DOOR_OPEN = 1;
- integer DOOR_CLOSE = 2;
- integer chan=-8767876;
- vector mypos;
- door(integer what)
- { rotation rot;
- rotation delta;
- llSetTimerEvent(0);
- if( what == DOOR_OPEN )
- { llTriggerSound("latch", 0.8);
- llSleep(0.95);
- llTriggerSound("wood_drag35", 0.8);
- rot = llGetRot();
- delta = llEuler2Rot(<0, 0, -DIRECTION * (DEG_TO_RAD * 45)>);
- rot = delta * rot;
- llSetRot(rot);
- }
- else if( what == DOOR_CLOSE)
- { rot = llGetRot();
- delta = llEuler2Rot(<0, 0, DIRECTION * (DEG_TO_RAD * 45)>);
- rot = delta * rot;
- llSetRot(rot);
- llTriggerSound("wood_drag29", 0.8);
- llSleep(0.05);
- llTriggerSound("latch", 0.8);
- }
- }
- default
- { on_rez(integer start_param)
- { llResetScript();
- }
- // state_entry()
- // { mypos = llGetPos();
- // llListen(chan,"",NULL_KEY,"");
- // }
- touch_start(integer total_number)
- { door(DOOR_OPEN);
- state is_open;
- }
- // listen(integer channel, string name, key id, string message)
- // { if(message=="switch")
- // door(DOOR_OPEN);
- // state is_open;
- // }
- moving_end()
- { mypos = llGetPos();
- }
- }
- state is_open
- { state_entry()
- { llSetTimerEvent(TIMER_CLOSE);
- }
- touch_start(integer num)
- { door(DOOR_CLOSE);
- llSetPos(mypos);
- state default;
- }
- timer()
- { door(DOOR_CLOSE);
- llSetPos(mypos);
- state default;
- }
- moving_start()
- { door(DOOR_CLOSE);
- state default;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement