home *** CD-ROM | disk | FTP | other *** search
- -- Sven Siggelkow 2003
- -- ESPRIT #028
- -- question: how can I turn a fourswitch by a timer?
-
- enigma.ConserveLevel = FALSE
- levelw = 20
- levelh = 13
- create_world(levelw, levelh)
- oxyd_default_flavor = "b"
- set_actor("ac-blackball", 8,6.5, {player=0})
- set_actor("ac-top", 13.5,10.5, {range=15, force=10})
- fill_floor("fl-water",0,0,levelw,levelh)
- fill_floor("fl-bluegreenx",4,1,levelw-9,levelh-2)
-
- function renderLine( line, pattern)
- for i=1, strlen(pattern) do
- local c = strsub( pattern, i, i)
- if c == "#" then
- set_stone("st-fakeoxyd", i-1,line)
- elseif c=="B" then
- set_stone("st-actorimpulse", i-1,line)
- elseif c=="S" then
- set_stone("st-fourswitch", i-1,line, {name="switch",action="callback", target="s1"})
- elseif c=="T" then
- set_stone( "st-timer", i-1,line, {action="callback", target="s1"})
- elseif c=="1" then
- set_item("it-magnet",i-1,line,{name="magnet1", on=1})
- elseif c=="2" then
- set_item("it-magnet",i-1,line,{name="magnet2", on=0})
- elseif c=="3" then
- set_item("it-magnet",i-1,line,{name="magnet3", on=0})
- elseif c=="4" then
- set_item("it-magnet",i-1,line,{name="magnet4", on=0})
- elseif c=="O" then
- oxyd(i-1,line)
- end
- end
- end
- -- 01234567890123456789
- renderLine(00 , " ")
- renderLine(01 , " #####O##### ")
- renderLine(02 , " # 1 # ")
- renderLine(03 , " # # ")
- renderLine(04 , " # # ")
- renderLine(05 , " # # ")
- renderLine(06 , " O4 B 2O ")
- renderLine(07 , " # # ")
- renderLine(08 , " # # ")
- renderLine(09 , " # # ")
- renderLine(10 , " # 3 # ")
- renderLine(11 , " #####O##ST# ")
- renderLine(12 , " ")
- -- 01234567890123456789
-
- x=1
-
- function s1()
- enigma.SendMessage(enigma.GetNamedObject("magnet"..x), "off", nil)
- x=x+1
- if x==5 then x=1 end
- enigma.SendMessage(enigma.GetNamedObject("magnet"..x), "on", nil)
- enigma.Sendmessage(enigma.GetNamedObject("switch"), "turn", WEST)
- end
-
- oxyd_shuffle()
-