| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- // door swing script
- integer open = 0;
- integer side = 2;
- opendoor()
- {
- if (open == TRUE)
- return;
- float swing = 120; // in degrees
- rotation rot = llGetRot();
- rotation delta = llEuler2Rot(<0,0,swing> );
- rotation finalrot = delta * rot; // add the delta
- llSetRot(finalrot);
- open = TRUE;
- }
- closedoor()
- {
- if (open == FALSE)
- return;
- float swing = -120; // in degrees
- rotation rot = llGetRot();
- rotation delta = llEuler2Rot(<0,0,swing> );
- rotation finalrot = delta * rot; // add the delta
- llSetRot(finalrot);
- open = FALSE;
- }
- default
- {
- state_entry()
- {
-
- }
- touch_start(integer total_number)
- {
- if (open)
- {
- llSetTimerEvent(0.1); //close door
- }
- else
- {
- opendoor();
- llMessageLinked(LINK_ALL_OTHERS, 0,"rez","");
- llSetTimerEvent(30.0);
- }
- }
-
- timer()
- {
- closedoor();
- llSetTimerEvent(0.0);
- }
-
- link_message(integer sender_num,integer num, string str, key id)
- {
- //llOwnerSay("Heard:" + str);
- if (str =="open")
- {
- llSetTimerEvent(30.0);
- opendoor();
- }
- else if (str =="close")
- {
- llSetTimerEvent(0.0);
- closedoor();
- }
-
- }
-
- on_rez(integer p)
- {
- llResetScript();
- }
- }
|