Well here's yet another UnterMUD toy that shows what bizarre and wonderful things can be done with clever OIF and a twisted mind. ;-) This is actually the station clock for an experimental shuttle-bus which runs between two points on a cron driven schedule. (Otherwise how would you know when the next bus goes?) To make this work you'll need an entry in your startup file like this: _cronconfig defevent 300 "@_force 57@DEEPMUD tick" wizard to drive the clock. I would strongly recommend that you don't try to boost the clocks resolution past the current limits (5 minutes) or it will end up using too much CPU and be too big. The implementation could be made slightly more elegant but this demonstrates the principle and works well enough. The actual OIF of the clock looks like this: object 57@DEEPMUD lst own=wizard;57@DEEPMUD; obj loc=0 boo lok=F str nam=clock str desc=A large wall clock that shows UnterMUD Standard Time. It has a plain white face with black hands and marks for the hours. str txt=The clock shows 12:00 AM cmd tick=m5 cmd tock=h1 str hour=12 str minute=00 str ampm=AM cmd hands=set $me txt "The clock shows ${me.hour}:${me.minute} ${me.ampm}" cmd m0=set $me str minute "00";set $me cmd tick m5;hands cmd m5=set $me str minute "05";set $me cmd tick m10;hands cmd m10=set $me str minute "10";set $me cmd tick m15;hands cmd m15=set $me str minute "15";set $me cmd tick m20;hands cmd m20=set $me str minute "20";set $me cmd tick m25;hands cmd m25=set $me str minute "25";set $me cmd tick m30;hands cmd m30=set $me str minute "30";set $me cmd tick m35;hands cmd m35=set $me str minute "35";set $me cmd tick m40;hands cmd m40=set $me str minute "40";set $me cmd tick m45;hands cmd m45=set $me str minute "45";set $me cmd tick m50;hands cmd m50=set $me str minute "50";set $me cmd tick m55;hands cmd m55=set $me str minute "55";set $me cmd tick tock;hands cmd h0=set $me str hour "12";set $me cmd tock h1;set $me str ampm "AM";m0 cmd h1=set $me str hour " 1";set $me cmd tock h2;m0 cmd h2=set $me str hour " 2";set $me cmd tock h3;m0 cmd h3=set $me str hour " 3";set $me cmd tock h4;m0 cmd h4=set $me str hour " 4";set $me cmd tock h5;m0 cmd h5=set $me str hour " 5";set $me cmd tock h6;m0 cmd h6=set $me str hour " 6";set $me cmd tock h7;m0 cmd h7=set $me str hour " 7";set $me cmd tock h8;m0 cmd h8=set $me str hour " 8";set $me cmd tock h9;m0 cmd h9=set $me str hour " 9";set $me cmd tock h10;m0 cmd h10=set $me str hour "10";set $me cmd tock h11;m0 cmd h11=set $me str hour "11";set $me cmd tock h12;m0 cmd h12=set $me str hour "12";set $me cmd tock h13;set $me str ampm "PM";m0 cmd h13=set $me str hour " 1";set $me cmd tock h14;m0 cmd h14=set $me str hour " 2";set $me cmd tock h15;m0 cmd h15=set $me str hour " 3";set $me cmd tock h16;m0 cmd h16=set $me str hour " 4";set $me cmd tock h17;m0 cmd h17=set $me str hour " 5";set $me cmd tock h18;m0 cmd h18=set $me str hour " 6";set $me cmd tock h19;m0 cmd h19=set $me str hour " 7";set $me cmd tock h20;m0 cmd h20=set $me str hour " 8";set $me cmd tock h21;m0 cmd h21=set $me str hour " 9";set $me cmd tock h22;m0 cmd h22=set $me str hour "10";set $me cmd tock h23;m0 cmd h23=set $me str hour "11";set $me cmd tock h0;m0 endobj From srg!culliton@uunet.UU.NET Mon Jul 15 17:40:19 1991 Received: by hussar.dco.dec.com (5.57/ULTRIX-fma-071491); id AA10291; Mon, 15 Jul 91 17:40:17 -0400 Received: from uunet.uu.net (via LOCALHOST.UU.NET) by relay1.UU.NET with SMTP (5.61/UUNET-internet-primary) id AA04004; Mon, 15 Jul 91 17:48:20 -0400 Received: from srg.UUCP by uunet.uu.net with UUCP/RMAIL (queueing-rmail) id 174720.7618; Mon, 15 Jul 1991 17:47:20 EDT Received: from ceres.srg.uucp by srg.srg.UUCP id aa17611; Mon, 15 Jul 91 16:55:49 EDT From: srg!culliton@uunet.UU.NET (Tom Culliton) X-Mailer: SCO System V Mail (version 3.2) To: rakowski@east.sun.com Subject: Much improved clock... Cc: untermud Date: Mon, 15 Jul 91 16:56:46 EDT Message-Id: <9107152056.aa12600@ceres.srg.UUCP> Status: R This clock is a lot more elegant and is also easier to set. I haven't done as much testing with it yet so hopefully I haven't completely phucked it. ;-) To set it to 4:15 PM for example all you say is, "_force 57@DEEPMUD h16;_force 57@DEEPMUD m15" and it'll be dead on. (OK within 5 minutes or so ;-) ) Notice that the clock uses military time internally. Well the first couple of tests look OK so here it is. Tom ------------------------------------------------------------------------------ object 57@DEEPMUD lst own=wizard;57@DEEPMUD; obj loc=0 boo lok=F str nam=clock str desc=A large wall clock that shows DEEPMUD Standard Time. It has a plain white face with black hands and marks for the hours. str txt=The clock shows 4:50 PM cmd tick=m55 cmd tock=h17 str hour= 4 str minute=50 str ampm=PM cmd hands=set $me txt "The clock shows ${me.hour}:${me.minute} ${me.ampm}" cmd mset=set $me str minute $1;set $me cmd tick $2;hands cmd hset=set $me str hour $1;set $me cmd tock $2;set $me str ampm $3;m0 cmd m0=mset 00 m5 cmd m5=mset 05 m10 cmd m10=mset 10 m15 cmd m15=mset 15 m20 cmd m20=mset 20 m25 cmd m25=mset 25 m30 cmd m30=mset 30 m35 cmd m35=mset 35 m40 cmd m40=mset 40 m45 cmd m45=mset 45 m50 cmd m50=mset 50 m55 cmd m55=mset 55 tock cmd h0=hset "12" h1 AM cmd h1=hset " 1" h2 AM cmd h2=hset " 2" h3 AM cmd h3=hset " 3" h4 AM cmd h4=hset " 4" h5 AM cmd h5=hset " 5" h6 AM cmd h6=hset " 6" h7 AM cmd h7=hset " 7" h8 AM cmd h8=hset " 8" h9 AM cmd h9=hset " 9" h10 AM cmd h10=hset "10" h11 AM cmd h11=hset "11" h12 AM cmd h12=hset "12" h13 PM cmd h13=hset " 1" h14 PM cmd h14=hset " 2" h15 PM cmd h15=hset " 3" h16 PM cmd h16=hset " 4" h17 PM cmd h17=hset " 5" h18 PM cmd h18=hset " 6" h19 PM cmd h19=hset " 7" h20 PM cmd h20=hset " 8" h21 PM cmd h21=hset " 9" h22 PM cmd h22=hset "10" h23 PM cmd h23=hset "11" h0 PM endobj