home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 August
/
GSSH0804.iso
/
Geschicklichkeit
/
Enigma
/
Enigma-081.exe
/
data
/
levels
/
duffy4.lua
< prev
next >
Wrap
Text File
|
2003-01-30
|
18KB
|
995 lines
levelw=80
levelh=20
create_world( levelw, levelh)
fill_floor("fl-leaves", 0,0,levelw,levelh)
function renderLine( line, pattern)
for i=1, strlen(pattern) do
local c = strsub( pattern, i, i)
if c =="#" then
set_stone( "st-glass", i-1, line)
elseif c == "o" then
oxyd( i-1, line)
elseif c == "!" then
abyss(i-1,line)
-- fill_floor("fl-water", i-1,line, 1,1)
elseif c=="z" then
set_actor("ac-blackball", i-.5,line+.5, {player=0})
elseif c=="+" then
set_stone( "st-wood", i-1, line)
elseif c=="`" then
mirrorp(i-1,line,FALSE,TRUE, 2)
elseif c=="/" then
mirrorp(i-1,line,FALSE,TRUE, 4)
elseif c=="5" then
set_item("it-coin", i-1,line,{value=1})
elseif c=="4" then
set_item("it-coin", i-1,line,{value=3})
elseif c=="P" then
set_item("it-brush",i-1,line)
elseif c=="a" then
set_stone("st-switch", i-1,line, {action="callback",target="fa"})
elseif c=="b" then
set_stone("st-switch", i-1,line, {action="callback",target="fb"})
elseif c=="c" then
set_stone("st-switch", i-1,line, {action="callback",target="fc"})
elseif c=="d" then
set_stone("st-switch", i-1,line, {action="callback",target="fd"})
elseif c=="e" then
set_stone("st-switch", i-1,line, {action="callback",target="fe"})
elseif c=="f" then
set_stone("st-switch", i-1,line, {action="callback",target="ff"})
elseif c=="g" then
set_stone("st-switch", i-1,line, {action="callback",target="fg"})
elseif c=="h" then
set_stone("st-switch", i-1,line, {action="callback",target="fh"})
elseif c=="i" then
set_stone("st-switch", i-1,line, {action="callback",target="fi"})
elseif c=="j" then
set_stone("st-switch", i-1,line, {action="callback",target="fj"})
elseif c=="k" then
set_stone("st-switch", i-1,line, {action="callback",target="fk"})
elseif c=="l" then
set_stone("st-switch", i-1,line, {action="callback",target="fl"})
elseif c=="m" then
set_stone("st-switch", i-1,line, {action="callback",target="fm"})
elseif c=="n" then
set_stone("st-switch", i-1,line, {action="callback",target="fn"})
elseif c=="O" then
set_stone("st-switch", i-1,line, {action="callback",target="fo"})
elseif c=="p" then
set_stone("st-switch", i-1,line, {action="callback",target="fp"})
elseif c=="q" then
set_stone("st-switch", i-1,line, {action="callback",target="fq"})
elseif c=="r" then
set_stone("st-switch", i-1,line, {action="callback",target="fr"})
elseif c=="s" then
set_stone("st-switch", i-1,line, {action="callback",target="fs"})
elseif c=="t" then
set_stone("st-switch", i-1,line, {action="callback",target="ft"})
elseif c=="u" then
set_stone("st-switch", i-1,line, {action="callback",target="fu"})
elseif c=="v" then
set_stone("st-switch", i-1,line, {action="callback",target="fv"})
elseif c=="w" then
set_stone("st-switch", i-1,line, {action="callback",target="fw"})
elseif c=="x" then
set_stone("st-switch", i-1,line, {action="callback",target="fx"})
elseif c=="y" then
set_stone("st-switch", i-1,line, {action="callback",target="fy"})
elseif c=="Z" then
set_stone("st-switch", i-1,line, {action="callback",target="fz"})
elseif c=="A" then
doorh( i-1,line, {name="door1"})
elseif c=="B" then
doorh( i-1,line, {name="door2"})
elseif c=="C" then
doorh( i-1,line, {name="door3"})
elseif c == "L" then
abyss(i-1,line)
draw_stones("st-glass", {i-1,line},{1,1}, 1)
set_item("it-magicwand",i-1,line)
elseif c == "G" then
fill_floor("fl-leaves", i-1,line,1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c == "Y" then
fill_floor("fl-sand", i-1,line,1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c == "K" then
fill_floor("fl-bluegreen", i-1,line,1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c == "W" then
fill_floor("fl-inverse", i-1,line, 1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c=="I" then
fill_floor("fl-ice_001", i-1,line, 1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c=="T" then
fill_floor("fl-marble", i-1,line, 1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c=="R" then
fill_floor("fl-wood", i-1,line, 1,1)
draw_stones("st-glass", {i-1,line},{1,0}, 1)
set_item("it-magicwand",i-1,line)
elseif c=="S" then
fill_floor("fl-space", i-1,line, 1,1)
end
end
end
-- Floor: " "
-- Border: "#"
-- Oxyd: "o"
renderLine(00,"#######################################")
renderLine(01,"# #o o#")
renderLine(02,"# edcba #########C#########")
renderLine(03,"# #########B#########")
renderLine(04,"# jihgf #########A#########")
renderLine(05,"# #")
renderLine(06,"# Onmlk z D #")
renderLine(07,"# ILT #")
renderLine(08,"# tsrqp SSK #")
renderLine(09,"# GRY #")
renderLine(10,"# yxwvu #")
renderLine(11,"# Z#")
renderLine(12,"#######################################")
oxyd_shuffle()
--document(34,6,"What do you want the first gate to do?")
--document(29,4,"Opposite")
--document(29,3,"If ten equals three, five equals four, two equals three, four equals four, and thirteen equals eight, what does nine equal?")
--document(29,2,"Congratulations!")
num1=0
through=0
function fa()
if through==0 then
num1=num1+1
through=1
getletter()
elseif through==1 then
num1=num1-1
through=0
getletter()
end
end
throughb=0
function fb()
if throughb==0 then
num1=num1+2
throughb=1
getletter()
elseif throughb==1 then
num1=num1-2
throughb=0
getletter()
end
end
throughc=0
function fc()
if throughc==0 then
num1=num1+4
throughc=1
getletter()
elseif throughc==1 then
num1=num1-4
throughc=0
getletter()
end
end
throughd=0
function fd()
if throughd==0 then
num1=num1+8
throughd=1
getletter()
elseif throughd==1 then
num1=num1-8
throughd=0
getletter()
end
end
throughe=0
function fe()
if throughe==0 then
num1=num1+16
throughe=1
getletter()
elseif throughe==1 then
num1=num1-16
throughe=0
getletter()
end
end
num2=0
throughf=0
function ff()
if throughf==0 then
num2=num2+1
throughf=1
getletter()
elseif throughf==1 then
num2=num2-1
throughf=0
getletter()
end
end
throughg=0
function fg()
if throughg==0 then
num2=num2+2
throughg=1
getletter()
elseif throughg==1 then
num2=num2-2
throughg=0
getletter()
end
end
throughh=0
function fh()
if throughh==0 then
num2=num2+4
throughh=1
getletter()
elseif throughh==1 then
num2=num2-4
throughh=0
getletter()
end
end
throughi=0
function fi()
if throughi==0 then
num2=num2+8
throughi=1
getletter()
elseif throughi==1 then
num2=num2-8
throughi=0
getletter()
end
end
throughj=0
function fj()
if throughj==0 then
num2=num2+16
throughj=1
getletter()
elseif throughj==1 then
num2=num2-16
throughj=0
getletter()
end
end
num3=0
throughk=0
function fk()
if throughk==0 then
num3=num3+1
throughk=1
getletter()
elseif throughk==1 then
num3=num3-1
throughk=0
getletter()
end
end
throughl=0
function fl()
if throughl==0 then
num3=num3+2
throughl=1
getletter()
elseif throughl==1 then
num3=num3-2
throughl=0
getletter()
end
end
throughm=0
function fm()
if throughm==0 then
num3=num3+4
throughm=1
getletter()
elseif throughm==1 then
num3=num3-4
throughm=0
getletter()
end
end
throughn=0
function fn()
if throughn==0 then
num3=num3+8
throughn=1
getletter()
elseif throughn==1 then
num3=num3-8
throughn=0
getletter()
end
end
througho=0
function fo()
if througho==0 then
num3=num3+16
througho=1
getletter()
elseif througho==1 then
num3=num3-16
througho=0
getletter()
end
end
num4=0
throughp=0
function fp()
if throughp==0 then
num4=num4+1
throughp=1
getletter()
elseif throughp==1 then
num4=num4-1
throughp=0
getletter()
end
end
throughq=0
function fq()
if throughq==0 then
num4=num4+2
throughq=1
getletter()
elseif throughq==1 then
num4=num4-2
throughq=0
getletter()
end
end
throughr=0
function fr()
if throughr==0 then
num4=num4+4
throughr=1
getletter()
elseif throughr==1 then
num4=num4-4
throughr=0
getletter()
end
end
throughs=0
function fs()
if throughs==0 then
num4=num4+8
throughs=1
getletter()
elseif throughs==1 then
num4=num4-8
throughs=0
getletter()
end
end
throught=0
function ft()
if throught==0 then
num4=num4+16
throught=1
getletter()
elseif throught==1 then
num4=num4-16
throught=0
getletter()
end
end
num5=0
throughu=0
function fu()
if throughu==0 then
num5=num5+1
throughu=1
getletter()
elseif throughu==1 then
num5=num5-1
throughu=0
getletter()
end
end
throughv=0
function fv()
if throughv==0 then
num5=num5+2
throughv=1
getletter()
elseif throughv==1 then
num5=num5-2
throughv=0
getletter()
end
end
throughw=0
function fw()
if throughw==0 then
num5=num5+4
throughw=1
getletter()
elseif throughw==1 then
num5=num5-4
throughw=0
getletter()
end
end
throughx=0
function fx()
if throughx==0 then
num5=num5+8
throughx=1
getletter()
elseif throughx==1 then
num5=num5-8
throughx=0
getletter()
end
end
throughy=0
function fy()
if throughy==0 then
num5=num5+16
throughy=1
getletter()
elseif throughy==1 then
num5=num5-16
throughy=0
getletter()
end
end
door1=enigma.GetNamedObject("door1")
door2=enigma.GetNamedObject("door2")
door3=enigma.GetNamedObject("door3")
firstdooropen=0
seconddooropen=0
thirddooropen=0
fdo=0
sdo=0
tdo=0
function fz()
document(34,6,"What do you want the first gate to do?")
document(29,4,"Opposite")
document(29,3,"If ten equals three, five equals four, two equals three, four equals four, and thirteen equals eight, what does nine equal?")
document(29,2,"Congratulations!")
if fdo==0 and sdo==0 and tdo==0 then
if num1==15 and num2==16 and num3==5 and num4==14 and num5==29 and fdo==0 then
enigma.SendMessage(door1, "open", nil)
firstdooropen=1
fdo=1
end
end
if fdo==1 and sdo==0 and tdo==0 then
if num1==3 and num2==12 and num3==15 and num4==19 and num5==5 and sdo==0 and fdo==1 then
enigma.SendMessage(door2, "open", nil)
seconddooropen=1
firstdooropen=0
sdo=1
end
end
if fdo==1 and sdo==1 and tdo==0 then
if num1==6 and num2==15 and num3==21 and num4==18 and num5==28 and tdo==0 and fdo==1 and sdo==1 then
enigma.SendMessage(door3, "open", nil)
seconddooropen=0
thirddooropen=1
tdo=1
end
end
end
function getletter()
if num1==1 then
let1="A"
end
if num1==2 then
let1="B"
end
if num1==3 then
let1="C"
end
if num1==4 then
let1="D"
end
if num1==5 then
let1="E"
end
if num1==6 then
let1="F"
end
if num1==7 then
let1="G"
end
if num1==8 then
let1="H"
end
if num1==9 then
let1="I"
end
if num1==10 then
let1="J"
end
if num1==11 then
let1="K"
end
if num1==12 then
let1="L"
end
if num1==13 then
let1="M"
end
if num1==14 then
let1="N"
end
if num1==15 then
let1="O"
end
if num1==16 then
let1="P"
end
if num1==17 then
let1="Q"
end
if num1==18 then
let1="R"
end
if num1==19 then
let1="S"
end
if num1==20 then
let1="T"
end
if num1==21 then
let1="U"
end
if num1==22 then
let1="V"
end
if num1==23 then
let1="W"
end
if num1==24 then
let1="X"
end
if num1==25 then
let1="Y"
end
if num1==26 then
let1="Z"
end
if num1==27 then
let1=" "
end
if num1==28 then
let1="."
end
if num1==29 then
let1="!"
end
if num1==30 then
let1="?"
end
if num1==31 then
let1=","
end
if num2==1 then
let2="A"
end
if num2==2 then
let2="B"
end
if num2==3 then
let2="C"
end
if num2==4 then
let2="D"
end
if num2==5 then
let2="E"
end
if num2==6 then
let2="F"
end
if num2==7 then
let2="G"
end
if num2==8 then
let2="H"
end
if num2==9 then
let2="I"
end
if num2==10 then
let2="J"
end
if num2==11 then
let2="K"
end
if num2==12 then
let2="L"
end
if num2==13 then
let2="M"
end
if num2==14 then
let2="N"
end
if num2==15 then
let2="O"
end
if num2==16 then
let2="P"
end
if num2==17 then
let2="Q"
end
if num2==18 then
let2="R"
end
if num2==19 then
let2="S"
end
if num2==20 then
let2="T"
end
if num2==21 then
let2="U"
end
if num2==22 then
let2="V"
end
if num2==23 then
let2="W"
end
if num2==24 then
let2="X"
end
if num2==25 then
let2="Y"
end
if num2==26 then
let2="Z"
end
if num2==27 then
let2=" "
end
if num2==28 then
let2="."
end
if num2==29 then
let2="!"
end
if num2==30 then
let2="?"
end
if num2==31 then
let2=","
end
if num3==1 then
let3="A"
end
if num3==2 then
let3="B"
end
if num3==3 then
let3="C"
end
if num3==4 then
let3="D"
end
if num3==5 then
let3="E"
end
if num3==6 then
let3="F"
end
if num3==7 then
let3="G"
end
if num3==8 then
let3="H"
end
if num3==9 then
let3="I"
end
if num3==10 then
let3="J"
end
if num3==11 then
let3="K"
end
if num3==12 then
let3="L"
end
if num3==13 then
let3="M"
end
if num3==14 then
let3="N"
end
if num3==15 then
let3="O"
end
if num3==16 then
let3="P"
end
if num3==17 then
let3="Q"
end
if num3==18 then
let3="R"
end
if num3==19 then
let3="S"
end
if num3==20 then
let3="T"
end
if num3==21 then
let3="U"
end
if num3==22 then
let3="V"
end
if num3==23 then
let3="W"
end
if num3==24 then
let3="X"
end
if num3==25 then
let3="Y"
end
if num3==26 then
let3="Z"
end
if num3==27 then
let3=" "
end
if num3==28 then
let3="."
end
if num3==29 then
let3="!"
end
if num3==30 then
let3="?"
end
if num3==31 then
let3=","
end
if num4==1 then
let4="A"
end
if num4==2 then
let4="B"
end
if num4==3 then
let4="C"
end
if num4==4 then
let4="D"
end
if num4==5 then
let4="E"
end
if num4==6 then
let4="F"
end
if num4==7 then
let4="G"
end
if num4==8 then
let4="H"
end
if num4==9 then
let4="I"
end
if num4==10 then
let4="J"
end
if num4==11 then
let4="K"
end
if num4==12 then
let4="L"
end
if num4==13 then
let4="M"
end
if num4==14 then
let4="N"
end
if num4==15 then
let4="O"
end
if num4==16 then
let4="P"
end
if num4==17 then
let4="Q"
end
if num4==18 then
let4="R"
end
if num4==19 then
let4="S"
end
if num4==20 then
let4="T"
end
if num4==21 then
let4="U"
end
if num4==22 then
let4="V"
end
if num4==23 then
let4="W"
end
if num4==24 then
let4="X"
end
if num4==25 then
let4="Y"
end
if num4==26 then
let4="Z"
end
if num4==27 then
let4=" "
end
if num4==28 then
let4="."
end
if num4==29 then
let4="!"
end
if num4==30 then
let4="?"
end
if num4==31 then
let4=","
end
if num5==1 then
let5="A"
end
if num5==2 then
let5="B"
end
if num5==3 then
let5="C"
end
if num5==4 then
let5="D"
end
if num5==5 then
let5="E"
end
if num5==6 then
let5="F"
end
if num5==7 then
let5="G"
end
if num5==8 then
let5="H"
end
if num5==9 then
let5="I"
end
if num5==10 then
let5="J"
end
if num5==11 then
let5="K"
end
if num5==12 then
let5="L"
end
if num5==13 then
let5="M"
end
if num5==14 then
let5="N"
end
if num5==15 then
let5="O"
end
if num5==16 then
let5="P"
end
if num5==17 then
let5="Q"
end
if num5==18 then
let5="R"
end
if num5==19 then
let5="S"
end
if num5==20 then
let5="T"
end
if num5==21 then
let5="U"
end
if num5==22 then
let5="V"
end
if num5==23 then
let5="W"
end
if num5==24 then
let5="X"
end
if num5==25 then
let5="Y"
end
if num5==26 then
let5="Z"
end
if num5==27 then
let5=" "
end
if num5==28 then
let5="."
end
if num5==29 then
let5="!"
end
if num5==30 then
let5="?"
end
if num5==31 then
let5=","
end
if num1>0 and num2>0 and num3>0 and num4>0 and num5>0 then
document(30,8,let1..let2..let3..let4..let5)
end
end