mbell() { llTriggerSound("bell1", 1.0); llTriggerSound("bell1", 1.0); llTriggerSound("bell1", 1.0); llTriggerSound("bell1", 1.0); llTriggerSound("bell1", 1.0); llTriggerSound("bell1", 1.0); llTriggerSound("bell1", 1.0); } updclock(float timezone, integer military) { float cl = (llGetGMTclock()+timezone*3600)/3600.; float hrs = cl%24; //(cl%12)/12.; if (hrs >12.) hrs -=12; float mns = (hrs-llFloor(hrs)); //llOwnerSay(" = "+(string)hrs); llSetLinkPrimitiveParams(3, [PRIM_ROT_LOCAL, llEuler2Rot(<-PI/2+ 2*hrs*PI/12 , PI, 0>)]); llSetLinkPrimitiveParams(2, [PRIM_ROT_LOCAL, llEuler2Rot(<-PI/2+2*mns*PI , PI,0>)]); if ((integer)hrs != lastHr) { lastHr = (integer)hrs; integer i; //llOwnerSay("lastHr = "+lastHr); integer bell = lastHr; if (lastHr ==0) bell = 12; for (i=0; i < bell; i++) { mbell(); llSleep(3); } } if ((integer)(mns*4.) != lastMin) { lastMin = (integer)(mns*4); if (lastMin>0) { mbell(); llSleep(2.); mbell(); } } } integer lastHr =-1; integer lastMin =-1; default { state_entry() { llSetLinkPrimitiveParams(4, [PRIM_OMEGA, <1,0,0>, 2*PI/60., 1.0]); llSetTimerEvent(60); updclock((integer)llGetObjectDesc(),0 ); } timer() { updclock((integer)llGetObjectDesc(),0 ); } touch_start(integer n) { mbell(); } }