/
umud/DOC/
umud/DOC/examples/
umud/DOC/internals/
umud/DOC/wizard/
umud/MISC/
umud/MISC/dbchk/
umud/RWHO/rwhod/
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