April 29, 2024, 07:15:35 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


Wizard's Castle

Started by ZeroDog, April 14, 2012, 04:23:55 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ZeroDog

April 14, 2012, 04:23:55 AM Last Edit: April 15, 2012, 04:58:27 PM by ZeroDog
Veteran gamers and coders will probably recognize this game.  ;)


I have attempted to keep the game and source code as close to the original as possible.  

Type "help" in the game for a list of commands and game info.

' *****************************************************
' *                                                   *
' *    WIZARD'S CASTLE GAME FROM JULY/AUGUST 1980     *
' *     ISSUE OF RECREATIONAL COMPUTING MAGAZINE      *
' *   WRITTEN FOR EXIDY SORCERER BY JOSEPH R. POWER   *
' *                                                   *
' *     CONVERTED TO IONICWIND IWBASIC BY ZERODOG     *
' *              COMPILE AS CONSOLE EXE               *
' *                                                   *
' *****************************************************

OPENCONSOLE
DEF A,B,H,Q,X,Y,Z,MC,NG,BF,OT,AV,HT,VF,LF,TC,GP,RF,OF,BL,IQ,SX,WV:INT
DIM C$[35],I$[35],R$[5],W$[9],E$[9],O$,Y$:STRING
DIM L[513],C[4,5],T[9],O[4],R[4]:INT
DECLARE FNA(Q:INT),INT
DECLARE FNB(Q:INT),INT
DECLARE FNC(Q:INT),INT
DECLARE FND(Q:INT),INT
DECLARE FNE(Q:INT),INT
Y$="** PLEASE ANSWER YES OR NO"
NG=0
' *******************
'  INITIALIZE ARRAYS
' *******************
LABEL a1240
NG=NG+1
RESTORE GAMEDATA
FOR Q=1 TO 34
GETDATA GAMEDATA,C$[Q]: GETDATA GAMEDATA,I$[Q]
NEXT Q
FOR Q=1 TO 512
L[Q]=101
NEXT Q
FOR Q=1 TO 8
GETDATA GAMEDATA,W$[Q]: GETDATA GAMEDATA,E$[Q]
NEXT Q
FOR Q=1 TO 4
GETDATA GAMEDATA,R$[Q]
NEXT Q
IF NG > 1 THEN GOTO a1520
GOSUB a9770
PRINT SPACE$(16),"* * * THE WIZARD'S CASTLE * * *"
PRINT
GOSUB a9770
PRINT "MANY CYCLES AGO, IN THE KINGDOM OF N'DIC, THE GNOMIC"
PRINT "WIZARD ZOT FORGED HIS GREAT *ORB OF POWER*. HE SOON"
PRINT "VANISHED, LEAVING BEHIND HIS VAST SUBTERRANEAN CASTLE"
PRINT "FILLED WITH ESURIENT MONSTERS, FABULOUS TREASURES, AND"
PRINT "THE INCREDIBLE *ORB OF ZOT*. FROM THAT TIME HENCE, MANY"
PRINT "A BOLD YOUTH HAS VENTURED INTO THE WIZARD'S CASTLE. AS"
PRINT "OF NOW, *NONE* HAS EVER EMERGED VICTORIOUSLY! BEWARE!!"
PRINT
LABEL a1520
X=1 : Y=4
L[FND(1)]=2
FOR Z=1 TO 7
FOR Q1=1 TO 2
Q=104
GOSUB a9590
L[FND(Z+1)]=103
NEXT Q1
NEXT Z
FOR Z=1 TO 8
FOR Q=113 TO 124
GOSUB a9590
NEXT Q
FOR Q1=1 TO 3
FOR Q=105 TO 112
GOSUB a9590
NEXT Q
Q=125
GOSUB a9590
NEXT Q1
NEXT Z
FOR Q=126 TO 133
Z=FNA(8)
GOSUB a9590
NEXT Q
Q=101
FOR A=1 TO 3
Z=FNA(8)
GOSUB a9590
C[A,1]=X
C[A,2]=Y
C[A,3]=Z
C[A,4]=0
NEXT A
RC=0
ST=2
DX=14
R$[3]="MAN"
Q=112+FNA(12)
Z=FNA(8)
GOSUB a9590
R[1]=X
R[2]=Y
R[3]=Z
Q=109
Z=FNA(8)
GOSUB a9590
O[1]=X
O[2]=Y
O[3]=Z
BF=0 : OT=8 : AV=0 : HT=0 : T=0 : VF=0 : LF=0
TC=0 : GP=60 : RF=0 : OF=0 : BL=0 : IQ=8 : SX=0
FOR Q=1 TO 8
T[Q]=0
NEXT Q
PRINT CHR$(7),
PRINT "ALL RIGHT, BOLD ONE."
LABEL a2090
PRINT "YOU MAY BE AN ELF, DWARF, MAN, OR HOBBIT."
GOSUB a9830
FOR Q=1 TO 4
IF LEFT$(R$[Q],1)=O$ : RC=Q : ST=ST+2*Q : DX=DX-2*Q : ENDIF
NEXT Q
PRINT
OT=OT+4*(-(RC=1))
IF RC > 0 : R$[3]="HUMAN" : GOTO a2190 : ENDIF
PRINT: PRINT "** PLEASE TYPE E, D, M, OR H.":PRINT
GOTO a2090
LABEL a2190
PRINT "WHICH SEX TO YOU PREFER? ",
GOSUB a9850
IF O$="M" : SX=1 : GOTO a2250:ENDIF
IF O$="F" THEN GOTO a2250
PRINT:PRINT "** CUTE ",R$[RC],", REAL CUTE. TRY M OR F.":PRINT
GOTO a2190
LABEL a2250
PRINT
PRINT "OK, ",R$[RC],", YOU HAVE THE FOLLOWING ATTRIBUTES: "
PRINT "STRENGTH = ",ST," INTELLIGENCE = ",IQ," DEXTERITY = ",DX
PRINT "AND ",OT,"OTHER POINTS TO ALLOCATE AS YOU WISH."
PRINT
Z$="STRENGTH"
GOSUB a9880
ST=ST+Q
IF OT=0 THEN GOTO a2410
Z$="INTELLIGENCE"
GOSUB a9880
IQ=IQ+Q
IF OT=0 THEN GOTO a2410
Z$="DEXTERITY"
GOSUB a9880
DX=DX+Q
LABEL a2410
PRINT "OK, ",R$[RC],", YOU HAVE 60 GOLD PIECES (GP'S)."
LABEL a2420
Z$="ARMOR"
GOSUB a10130
AV=0 : WV=0 : FL=0 : WC=0
PRINT "PLATEMAIL<30> CHAINMAIL<20> LEATHER<10> NOTHING<0>"
GOSUB a9830
IF O$="N" THEN GOTO a2530
AV=-3*(-(O$="P"))-2*(-(O$="C"))-(-(O$="L"))
IF AV > 0 THEN GOTO a2530
PRINT
PRINT "** ARE YOU A ",R$[RC]," OR ",C$[FNA(12)+12],"?"
GOTO a2420
LABEL a2530
AH=AV*7 : GP=GP-AV*10
PRINT
PRINT "OK, BOLD ",R$[RC],", YOU HAVE ",GP,"GP'S LEFT."
LABEL a2560
Z$="WEAPONS"
GOSUB a10130
PRINT "SWORD<30> MACE<20> DAGGER<10> NOTHING<0>"
GOSUB a9830
IF O$="N" THEN GOTO a2660
WV=-3*(-(O$="S"))-2*(-(O$="M"))-(-(O$="D"))
IF WV > 0 THEN GOTO a2660
PRINT
PRINT "** IS YOUR IQ REALLY ",IQ,"?"
GOTO a2560
LABEL a2660
GP=GP-WV*10
IF GP < 20 THEN GOTO a2730
PRINT
LABEL a2690
PRINT "DO YOU WANT TO BUY A LAMP FOR 20 GP'S? ",
GOSUB a9850
IF O$="Y" : LF=1 : GP=GP-20 : GOTO a2730:ENDIF
IF O$ <> "N" : PRINT : PRINT Y$ : PRINT : GOTO a2690:ENDIF
LABEL a2730
PRINT
IF GP < 1 : Q=0 : GOTO a2850:ENDIF
PRINT "OK, ",R$[RC],", YOU HAVE ",GP,"GOLD PIECES LEFT."
PRINT
LABEL a2770
INPUT "FLARES COST 1 GP EACH. HOW MANY DO YOU WANT? ",O$
Q=VAL(O$)
PRINT
IF Q > 0 OR ASC(O$)=48 THEN GOTO a2840
PRINT "** IF YOU DON'T WANT ANY, JUST TYPE 0 (ZERO)."
PRINT
GOTO a2770
LABEL a2840
IF Q > GP : PRINT "** YOU CAN ONLY AFFORD ",GP,"." : PRINT : GOTO a2770:ENDIF
LABEL a2850
FL=FL+Q : GP=GP-Q
X=1 : Y=4 : Z=1
PRINT "OK, ",R$[RC],", YOU ARE NOW ENTERING THE CASTLE!"
GOTO a5920
' **********************
'  MAIN PROCESSING LOOP
' **********************
LABEL a2920
T=T+1
IF RF+OF > 0 THEN GOTO a3060
IF C[1,4] > T[1] THEN T=T+1
IF C[2,4] > T[3] THEN GP=GP-FNA(5)
IF GP < 0 THEN GP=0
IF C[3,4] <= T[5] THEN GOTO a3060
A=X : B=Y : C=Z
X=FNA(8) : Y=FNA(8) : Z=FNA(8)
L[FND(Z)]=FNE(L[FND(Z)])+100
X=A : Y=B : Z=C
IF L[FND(Z)] <> 1 THEN GOTO a3060
FOR Q=1 TO 3
C[Q,4]=-(-(C[Q,1]=X))*(-(C[Q,2]=Y))*(-(C[Q,3]=Z))
NEXT Q
LABEL a3060
IF FNA(5) > 1 THEN GOTO a3350
PRINT
PRINT "YOU ",
Q=FNA(7)+BL
IF Q > 7 THEN Q=4
IF Q=1 THEN PRINT "SEE A BAT FLY BY!"
IF Q=2 THEN GOSUB a3150
IF Q=3 THEN PRINT "SNEEZED!"
IF Q=4 THEN PRINT "STEPPED ON A FROG!"
IF Q=5 THEN PRINT "SMELL ",C$[12+FNA(13)]," FRYING!"
IF Q=6 THEN PRINT "FEEL LIKE YOU'RE BEING WATCHED!"
IF Q=7 THEN PRINT "HEAR FAINT RUSTLING NOISES!"
GOTO a3350
LABEL a3350
IF BL+T[4] <> 2 THEN GOTO a3390
PRINT
PRINT C$[29]," CURES YOUR BLINDNESS!"
BL=0
LABEL a3390
IF BF+T[6] <> 2 THEN GOTO a3430
PRINT
PRINT C$[31]," DISSOLVES THE BOOK!"
BF=0
LABEL a3430
PRINT
INPUT "ENTER YOUR COMMAND: ",O$
PRINT
IF UCASE$(LEFT$(O$,2))="DR" THEN GOTO a4760
O$=UCASE$(LEFT$(O$,1))
IF O$="N" THEN GOTO a3890
IF (O$="S") OR (O$="W") OR (O$="E") THEN GOTO a3900
IF O$="U" THEN GOTO a3950
IF O$="D" THEN GOTO a3980
IF O$="M" THEN GOTO a4030
IF O$="F"
IF BL+1=1 THEN GOTO a4260
IF BL+1=2 THEN GOTO a4030
ENDIF
IF O$="L"
IF BL+1=1 THEN GOTO a4520
IF BL+1=2 THEN GOTO a4030
ENDIF
IF O$="O" THEN GOTO a4950
IF O$="G"
IF BL+1=1 THEN GOTO a5390
IF BL+1=2 THEN GOTO a4030
ENDIF
IF O$="T"
IF BL+1=1 THEN GOTO a5650
IF BL+1=2 THEN GOTO a5690
ENDIF
IF O$="Q" THEN GOTO a5800
IF O$<>"H" THEN GOTO a3860
CLS
PRINT "******* WIZARD'S CASTLE COMMAND AND INFORMATION SUMMARY ********"
PRINT
PRINT "THE FOLLOWING COMMANDS ARE AVAILABLE: "
PRINT
PRINT "H/ELP     N/ORTH    S/OUTH    E/AST     W/EST     U/P"
PRINT "D/OWN     DR/INK    M/AP      F/LARE    L/AMP     O/PEN"
PRINT "G/AZE     T/ELEPORT Q/UIT"
PRINT
PRINT "THE CONTENTS OF ROOMS ARE AS FOLLOWS :"
PRINT
PRINT ". = EMPTY ROOM      B = BOOK            C = CHEST"
PRINT "D = STAIRS DOWN     E = ENTRANCE/EXIT   F = FLARES"
PRINT "G = GOLD PIECES     M = MONSTER         O = CRYSTAL ORB"
PRINT "P = MAGIC POOL      S = SINKHOLE        T = TREASURE"
PRINT "U = STAIRS UP       V = VENDOR          W = WARP/ORB"
PRINT
PRINT "THE BENEFITS OF HAVING TREASURES ARE :"
PRINT
PRINT "RUBY RED - AVOID LETHARGY     PALE PEARL - AVOID LEECH"
PRINT "GREEN GEM - AVOID FORGETTING  OPAL EYE - CURES BLINDNESS"
PRINT "BLUE FLAME - DISSOLVES BOOKS  NORN STONE - NO BENEFIT"
PRINT "PALANTIR - NO BENEFIT         SILMARIL - NO BENEFIT"
PRINT
GOSUB a9770
GOSUB a5921
GOTO a2920
LABEL a3860
PRINT
PRINT "** SILLY ",R$[RC],", THAT WASN'T A VALID COMMAND!"
GOTO a2920
LABEL a3890
IF L[FND(Z)]=2 THEN GOTO a8960
LABEL a3900
X=X+(-(O$="N"))-(-(O$="S"))
Y=Y+(-(O$="W"))-(-(O$="E"))
X=FNB(X)
Y=FNB(Y)
GOTO a5920
LABEL a3950
IF L[FND(Z)]=3 : Z=Z-1 : GOTO a5920:ENDIF
Z$="UP"
GOTO a4000
LABEL a3980
Z$="DOWN"
IF L[FND(Z)]=4 : Z=Z+1 : GOTO a5920:ENDIF
LABEL a4000
PRINT
PRINT "** THERE ARE NO STAIRS GOING ",Z$," FROM HERE!"
GOTO a2920
LABEL a4030
IF BL <> 1 THEN GOTO a4100
PRINT
PRINT "** YOU CAN'T SEE ANYTHING, YOU DUMB ",R$[RC],"!"
GOTO a2920
' *************************************
'  DISPLAY MAP OF CURRENT CASTLE LEVEL
' *************************************
LABEL a4100
PRINT
A=X : B=Y
FOR X=1 TO 8
FOR Y=1 TO 8
Q=L[FND(Z)]
IF Q > 99 THEN Q=34
IF X=A AND Y=B : PRINT "<",I$[Q],">  ", : GOTO a4180:ENDIF
PRINT " ",I$[Q],"   ",
LABEL a4180
NEXT Y
PRINT
PRINT
NEXT X
X=A : Y=B
GOSUB a5921
GOTO a4470
GOTO a2920
LABEL a4260
IF FL <> 0 THEN GOTO a4320
PRINT "** HEY, BRIGHT ONE, YOU'RE OUT OF FLARES!"
GOTO a2920
' *******************************************
'  DISPLAY ADJACENT ROOM CONTENTS WITH FLARE
' *******************************************
LABEL a4320
PRINT
FL=FL-1
A=X : B=Y
FOR Q1=A-1 TO A+1
X=FNB(Q1)
FOR Q2=B-1 TO B+1
Y=FNB(Q2)
Q=FNE(L[FND(Z)])
L[FND(Z)]=Q
PRINT " ",I$[Q],"   ",
NEXT Q2
PRINT
PRINT
NEXT Q1
X=A : Y=B
LABEL a4470
GOSUB a10160
GOTO a2920
' *********************************************
'  DISPLAY CONTENTS OF ADJACENT ROOM WITH LAMP
' *********************************************
LABEL a4520
IF LF <> 0 THEN GOTO a4560
PRINT
PRINT "** YOU DON'T HAVE A LAMP, ",R$[RC],"!"
GOTO a2920
LABEL a4560
PRINT
PRINT "WHERE DO YOU WANT TO SHINE THE LAMP (N,S,E,W)? ",
GOSUB a9850
A=X : B=Y
X=FNB(X+(-(O$="N"))-(-(O$="S")))
Y=FNB(Y+(-(O$="W"))-(-(O$="E")))
IF A-X+B-Y <> 0 THEN GOTO a4660
PRINT
PRINT "** THAT'S NOT A DIRECTION, ",R$[RC],"!"
GOTO a2920
LABEL a4660
PRINT
PRINT "THE LAMP SHINES INTO ( ",X,", ",Y,") LEVEL",RTRIM$(STR$(Z)),"."
PRINT
L[FND(Z)]=FNE(L[FND(Z)])
PRINT "THERE YOU WILL FIND ",C$[L[FND(Z)]],"."
X=A : Y=B
GOTO a2920
' **************************
'  TAKE A DRINK FROM A POOL
' **************************
LABEL a4760
IF L[FND(Z)]=5 THEN GOTO a4800
PRINT
PRINT "** IF YOU WANT A DRINK, FIND A POOL!"
GOTO a2920
LABEL a4800
Q=FNA(8)
PRINT
PRINT "YOU TAKE A DRINK AND ",
IF Q < 7 THEN PRINT "FEEL ",
IF Q=1 THEN GOTO a4850
IF Q=2 THEN GOTO a4860
IF Q=3 THEN GOTO a4870
IF Q=4 THEN GOTO a4880
IF Q=5 THEN GOTO a4890
IF Q=6 THEN GOTO a4900
IF Q=7 THEN GOTO a4910
IF Q=8 THEN GOTO a4930
LABEL a4850
ST=FNC(ST+FNA(3)) : PRINT "STRONGER." : GOTO a2920
LABEL a4860
ST=ST-FNA(3) : PRINT "WEAKER."
IF (1-(-(ST<1)))=1 THEN GOTO a2920
IF (1-(-(ST<1)))=2 THEN GOTO a8840
LABEL a4870
IQ=FNC(IQ+FNA(3)) : PRINT "SMARTER." : GOTO a2920
LABEL a4880
IQ=IQ-FNA(3) : PRINT "DUMBER."
IF (1-(-(IQ<1)))=1 THEN GOTO a2920
IF (1-(-(IQ<1)))=2 THEN GOTO a8840
LABEL a4890
DX=FNC(DX+FNA(3)) : PRINT "NIMBLER." : GOTO a2920
LABEL a4900
DX=DX-FNA(3) : PRINT "CLUMSIER."
IF (1-(-(DX<1)))=1 THEN GOTO a2920
IF (1-(-(DX<1)))=2 THEN GOTO a8840
LABEL a4910
Q=FNA(4) : IF Q=RC THEN GOTO a4910
RC=Q : PRINT "BECOME A ",R$[RC],"." : GOTO a2920
LABEL a4930
SX=1-SX : PRINT "TURN INTO A ", : IF SX=0 THEN PRINT "FE",
PRINT "MALE ",R$[RC],"!" : GOTO a2920
LABEL a4950
IF L[FND(Z)] <> 6 THEN GOTO a4990
PRINT
PRINT "YOU OPEN THE CHEST AND"
GOTO a5250
LABEL a4990
IF L[FND(Z)] <> 12 THEN GOTO a5030
PRINT
PRINT "YOU OPEN THE BOOK AND"
GOTO a5060
LABEL a5030
PRINT
PRINT "** THE ONLY THING OPENED WAS YOUR BIG MOUTH!"
GOTO a2920
LABEL a5060
TEMP=FNA(6)
IF TEMP=1 THEN GOTO a5070
IF TEMP=2 THEN GOTO a5100
IF TEMP=3 THEN GOTO a5120
IF TEMP=4 THEN GOTO a5140
IF TEMP=5 THEN GOTO a5170
IF TEMP=6 THEN GOTO a5200
LABEL a5070
PRINT "FLASH! OH NO! YOU ARE NOW A BLIND ",R$[RC],"!"
BL=1
GOTO a5230
LABEL a5100
PRINT "IT'S ANOTHER VOLUME OF ZOT'S POETRY! - YECH!!"
GOTO a5230
LABEL a5120
PRINT "IT'S AN OLD COPY OF PLAY",R$[FNA(4)],"!"
GOTO a5230
LABEL a5140
PRINT "IT'S A MANUAL OF DEXTERITY!"
DX=18
GOTO a5230
LABEL a5170
PRINT "IT'S A MANUAL OF STRENGTH!"
ST=18
GOTO a5230
LABEL a5200
PRINT "THE BOOK STICKS TO YOUR HANDS -"
PRINT "NOW YOU ARE UNABLE TO DRAW YOUR WEAPON!"
BF=1
LABEL a5230
L[FND(Z)]=1
GOTO a2920
LABEL a5250
TEMP=FNA(4)
IF TEMP=1 THEN GOTO a5260
IF TEMP=2 THEN GOTO a5300
IF TEMP=3 THEN GOTO a5340
IF TEMP=4 THEN GOTO a5300
LABEL a5260
PRINT "KABOOM! IT EXPLODES!!"
Q=FNA(6)
GOSUB a8740
IF (1-(-(ST<1)))=1 THEN GOTO a5230
IF (1-(-(ST<1)))=2 THEN GOTO a8840
LABEL a5300
Q=FNA(999)+1
PRINT "FIND ",Q,"GOLD PIECES!"
GP=GP+Q
GOTO a5230
LABEL a5340
PRINT "GAS!! YOU STAGGER FROM THE ROOM!"
PRINT
L[FND(Z)]=1
T=T+20
O$=MID$("NSEW",FNA(4),1)
GOTO a3900
LABEL a5390
IF L[FND(Z)]=11 THEN GOTO a5430
PRINT
PRINT "** IT'S HARD TO GAZE WITHOUT AN ORB!"
GOTO a2920
LABEL a5430
PRINT
PRINT "YOU SEE ",
TEMP=FNA(6)
IF TEMP=1 THEN GOTO a5460
IF TEMP=2 THEN GOTO a5480
IF TEMP=3 THEN GOTO a5500
IF TEMP=4 THEN GOTO a5520
IF TEMP=5 THEN GOTO a5590
IF TEMP=6 THEN GOTO a5630
LABEL a5460
PRINT "YOURSELF IN A BLOODY HEAP!"
ST=ST-FNA(2)
IF (1-(-(ST<1)))=1 THEN GOTO a2920
IF (1-(-(ST<1)))=2 THEN GOTO a8840
LABEL a5480
PRINT "YOURSELF DRINKING FROM A POOL AND BECOMING ",C$[12+FNA(13)],"!"
GOTO a2920
LABEL a5500
PRINT C$[12+FNA(13)]," GAZING BACK AT YOU!"
GOTO a2920
LABEL a5520
A=X : B=Y : C=Z
X=FNA(8) : Y=FNA(8) : Z=FNA(8)
Q=FNE(L[FND(Z)])
L[FND(Z)]=Q
PRINT C$[Q]," AT (",X,",",Y,") LEVEL ",Z,"."
X=A : Y=B : Z=C
GOTO a2920
LABEL a5590
A=FNA(8) : B=FNA(8) : C=FNA(8)
IF FNA(8) < 4 : A=O[1] : B=O[2] : C=O[3] : ENDIF
PRINT "***THE ORB OF ZOT*** AT (",A,",",B,") LEVEL ",C,"!"
GOTO a2920
LABEL a5630
PRINT "A SOAP OPERA RERUN!"
GOTO a2920
LABEL a5650
IF RF <> 0 THEN GOTO a5690
PRINT
PRINT "** YOU CAN'T TELEPORT WITHOUT THE RUNESTAFF!"
GOTO a2920
LABEL a5690
Z$="X-COORDINATE? "
GOSUB a9990
X=Q
Z$="Y-COORDINATE? "
GOSUB a9990
Y=Q
Z$="Z-COORDINATE? "
GOSUB a9990
Z=Q
O$="T"
GOTO a5920
LABEL a5800
PRINT
PRINT "DO YOU REALLY WANT TO QUIT NOW? ",
GOSUB a9850
PRINT
IF O$="Y" THEN GOTO a5870
PRINT "** THEN DON'T SAY THAT YOU DO!"
GOTO a2920
LABEL a5870
GOSUB a9770
GOTO a9080
' ****************************
'  DISPLAY STATUS INFORMATION
' ****************************
LABEL a5920
GOSUB a5921
IF (Q<7) OR (Q=11) OR (Q=12) THEN GOTO a2920
IF Q=7 : GP=GP+FNA(10) : PRINT Z$,RTRIM$(STR$(GP)),"." : GOTO a5230:ENDIF
IF Q=8 : FL=FL+FNA(5) : PRINT Z$,RTRIM$(STR$(FL)),"." : GOTO a5230:ENDIF
IF Q > 9 THEN GOTO a6110
IF (O[1]=X) AND (O[2]=Y) AND (O[3]=Z)
IF (1-(-(O$="T")))=1 THEN GOTO a3900
IF (1-(-(O$="T")))=2 THEN GOTO a9370
ENDIF
X=FNA(8) : Y=FNA(8) : Z=FNA(8) : GOTO a5920
LABEL a6110
IF Q=10 : Z=FNB(Z+1) : GOTO a5920:ENDIF
IF Q <= 25 OR Q >= 34 THEN GOTO a6180
PRINT
PRINT "IT'S NOW YOURS!"
T[Q-25]=1
TC=TC+1
GOTO a5230
LABEL a6180
A=L[FND(Z)]-12
WC=0
IF (A<13) OR (VF=1) THEN GOTO a7390
LABEL a6210
PRINT
PRINT "YOU MAY TRADE WITH, ATTACK, OR IGNORE THE VENDOR."
GOSUB a9830
IF O$="I" THEN GOTO a2920
IF O$ <> "A" THEN GOTO a6300
VF=1
PRINT
PRINT "YOU'LL BE SORRY THAT YOU DID THAT!"
GOTO a7390
LABEL a6300
IF O$="T" THEN GOTO a6340
PRINT
PRINT "** INVALID COMMAND, ",R$[RC],"!"
GOTO a6210
LABEL a6340
FOR Q=1 TO 8
A=FNA(Q*1500)
IF T[Q]=0 THEN GOTO a6420
LABEL a6370
PRINT
PRINT "DO YOU WANT TO SELL ",C$[Q+25]," FOR ",A,"GP'S? ",
GOSUB a9850
IF O$="Y" : TC=TC-1 : T[Q]=0 : GP=GP+A : GOTO a6420:ENDIF
IF O$ <> "N" :PRINT Y$ : GOTO a6370:ENDIF
LABEL a6420
NEXT Q
IF GP >= 1000 THEN GOTO a6470
PRINT
PRINT "YOU'RE TOO POOR TO TRADE, ",R$[RC],"."
GOTO a2920
LABEL a6470
IF GP < 1250 THEN GOTO a6970
PRINT
PRINT "OK, ",R$[RC],", YOU HAVE ",GP,"GP'S AND ",W$[AV+5]," ARMOR."
LABEL a6500
PRINT
Z$="ARMOR"
GOSUB a10130
PRINT "NOTHING<0> LEATHER<1250> ",
IF GP > 1499 THEN PRINT "CHAINMAIL<1500> ",
IF GP > 1999 THEN PRINT "PLATE<2000>",
LABEL a6560
PRINT
GOSUB a9830
PRINT
IF O$="N" THEN GOTO a6720
IF O$="L" : GP=GP-1250 : AV=1 : AH=7 : GOTO a6720:ENDIF
IF O$ <> "C" OR GP >= 1500 THEN GOTO a6640
PRINT "** YOU HAVEN'T GOT THAT MUCH CASH ON HAND!"
GOTO a6500
LABEL a6640
IF O$="C" : GP=GP-1500 : AV=2 : AH=14 : GOTO a6720:ENDIF
IF O$ <> "P" OR GP >= 2000 THEN GOTO a6680
PRINT "** YOU CAN'T AFFORD PLATE ARMOR!"
GOTO a6500
LABEL a6680
IF O$="P" : GP=GP-2000 : AV=3 : AH=21 : GOTO a6720:ENDIF
PRINT
PRINT "** DON'T BE SILLY. CHOOSE A SELECTION."
GOTO a6560
LABEL a6720
IF GP < 1250 THEN GOTO a6970
PRINT
PRINT"YOU HAVE ",GP,"GP,S LEFT WITH ",W$[WV+1]," IN HAND."
LABEL a6750
PRINT
Z$="WEAPON"
GOSUB a10130
PRINT "NOTHING<0> DAGGER<1250> ",
IF GP > 1499 THEN PRINT "MACE<1500> ",
IF GP > 1999 THEN PRINT "SWORD<2000>",
LABEL a6810
PRINT
GOSUB a9830
PRINT
IF O$="N" THEN GOTO a6970
IF O$="D" : GP=GP-1250 : WV=1 : GOTO a6970:ENDIF
IF O$ <> "M" OR GP >= 1500 THEN GOTO a6890
PRINT "** SORRY SIR, I'M AFRAID I DON'T GIVE CREDIT!"
GOTO a6750
LABEL a6890
IF O$="M" : GP=GP-1500 : WV=2 : GOTO a6970:ENDIF
IF O$ <> "S" OR GP >= 2000 THEN GOTO a6940
PRINT "** YOUR DUNGEON EXPRESS CARD - ",
PRINT "YOU LEFT HOME WITHOUT IT!"
GOTO a6750
LABEL a6940
IF O$="S" : GP=GP-2000 : WV=3 : GOTO a6970:ENDIF
PRINT "** TRY CHOOSING A SELECTION!"
GOTO a6810
LABEL a6970
IF GP < 1000 THEN GOTO a2920
LABEL a6980
Z$="STRENGTH"
GOSUB a10070
IF O$ <> "Y" THEN GOTO a7060
GP=GP-1000
ST=FNC(ST+FNA(6))
Q=ST
GOSUB a10100
GOTO a6970
LABEL a7060
IF O$ <> "N" : PRINT Y$ : GOTO a6980:ENDIF
LABEL a7070
IF GP < 1000 THEN GOTO a2920
LABEL a7080
Z$="INTELLIGENCE"
GOSUB a10070
IF O$ <> "Y" THEN GOTO a7160
GP=GP-1000
IQ=FNC(IQ+FNA(6))
Q=IQ
GOSUB a10100
GOTO a7070
LABEL a7160
IF O$ <> "N" : PRINT Y$ : GOTO a7080:ENDIF
LABEL a7170
IF GP < 1000 THEN GOTO a2920
LABEL a7180
Z$="DEXTERITY"
GOSUB a10070
IF O$ <> "Y" THEN GOTO a7260
GP=GP-1000
DX=FNC(DX+FNA(6))
Q=DX
GOSUB a10100
GOTO a7170
LABEL a7260
IF O$ <> "N" : PRINT Y$ : GOTO a7180:ENDIF
IF (GP<1000) OR (LF=1) THEN GOTO a2920
LABEL a7280
PRINT
PRINT "DO YOU WANT TO BUY A LAMP FOR 1000 GP'S? ",
GOSUB a9850
IF O$ <> "Y" THEN GOTO a7370
GP=GP-1000
LF=1
PRINT
PRINT "IT'S GUARANTEED TO OUTLIVE YOU!"
GOTO a2920
LABEL a7370
IF O$ <> "N" : PRINT Y$ : GOTO a7280:ENDIF
GOTO a2920
LABEL a7390
Q1=1+INT(A/2) : Q2=A+2 : Q3=1
IF (C[1,4]>T[1]) OR (BL=1) OR (DX<FNA(9)+FNA(9)) THEN GOTO a8420
LABEL a7410
PRINT
PRINT "YOU,RE FACING ",C$[A+12],"!"
PRINT
PRINT "YOU MAY ATTACK OR RETREAT."
IF Q3=1 THEN PRINT "YOU CAN ALSO ATTEMPT A BRIBE."
IF IQ > 14 THEN PRINT "YOU CAN ALSO CAST A SPELL."
PRINT
PRINT "YOUR STRENGTH IS ",ST,"AND YOUR DEXTERITY IS",RTRIM$(STR$(DX)),"."
GOSUB a9830
IF O$ <> "A" THEN GOTO a7910
IF WV <> 0 THEN GOTO a7550
PRINT
PRINT "** POUNDING ON ",C$[A+12]," WON'T HURT IT!"
GOTO a8420
LABEL a7550
IF BF <> 1 THEN GOTO a7590
PRINT
PRINT "** YOU CAN'T BEAT IT TO DEATH WITH A BOOK!"
GOTO a8420
LABEL a7590
IF DX >= FNA(20)+(3*BL) THEN GOTO a7630
PRINT
PRINT "YOU MISSED, TOO BAD!"
GOTO a8420
LABEL a7630
Z$=RIGHT$(C$[A+12],LEN(C$[A+12])-2)
IF LEFT$(Z$,1)=" " THEN Z$=MID$(Z$,2)
PRINT
PRINT "YOU HIT THE EVIL ",Z$,"!"
Q2=Q2-WV
IF (A <> 9 AND A <> 12) THEN GOTO a7730
IF FNA(8) <> 1 THEN GOTO a7730
PRINT
PRINT "OH NO! YOUR ",W$[WV+1]," BROKE!"
WV=0
LABEL a7730
IF Q2 > 0 THEN GOTO a8420
LABEL a7740
PRINT
MC=MC-1
PRINT C$[A+12]," LIES DEAD AT YOUR FEET!"
IF H > T-60 THEN GOTO a7810
PRINT
PRINT "YOU SPEND AN HOUR EATING ",C$[A+12],E$[FNA(8)],"."
H=T
LABEL a7810
IF X <> R[1] OR Y <> R[2] OR Z <> R[3]
IF (1-(-(A=13)))=1 THEN GOTO a7860
IF (1-(-(A=13)))=2 THEN GOTO a9630
ENDIF
PRINT
PRINT "GREAT ZOT! YOU'VE FOUND THE RUNESTAFF!",CHR$(7)
R[1]=0
RF=1
LABEL a7860
Q=FNA(1000)
PRINT
PRINT "YOU NOW GET HIS HOARD OF ",Q,"GP'S"
GP=GP+Q
GOTO a5230
LABEL a7910
IF O$="R" THEN GOTO a8420
IF O$ <> "C" THEN GOTO a8210
IF IQ >= 15 OR Q3 <= 1 THEN GOTO a7970
PRINT
PRINT "** YOU CAN'T CAST A SPELL NOW!"
GOTO a7410
LABEL a7970
PRINT
PRINT "WHICH SPELL (WEB, FIREBALL, DEATHSPELL)? ",
GOSUB a9850
PRINT
IF O$ <> "W" THEN GOTO a8050
ST=ST-1
WC=FNA(8)+1
IF (1-(-(ST<1)))=1 THEN GOTO a8420
IF (1-(-(ST<1)))=2 THEN GOTO a8840
LABEL a8050
IF O$ <> "F" THEN GOTO a8140
Q=FNA(7)+FNA(7)
ST=ST-1
IQ=IQ-1
IF (IQ < 1) OR (ST < 1) THEN GOTO a8840
PRINT "IT DOES ",Q,"POINTS WORTH OF DAMAGE."
PRINT
Q2=Q2-Q
GOTO a7730
LABEL a8140
IF O$="D" THEN GOTO a8180
PRINT
PRINT "** TRY ONE OF THE OPTIONS GIVEN."
GOTO a7410
LABEL a8180
PRINT "DEATH . . . ",
IF IQ < FNA(4)+15 : PRINT "YOURS!" : IQ=0 : GOTO a8840:ENDIF
PRINT "HIS!" : Q2=0 : GOTO a7740
LABEL a8210
IF O$="B" AND Q3 <= 1 THEN GOTO a8250
PRINT
PRINT "** CHOOSE ONE OF THE OPTIONS LISTED."
GOTO a7410
LABEL a8250
IF TC <> 0 THEN GOTO a8290
PRINT
PRINT "ALL I WANT IS YOUR LIFE!"
GOTO a8420
LABEL a8290
Q=FNA(8)
IF T[Q]=0 THEN GOTO a8290
LABEL a8310
PRINT
PRINT "I WANT ",C$[Q+25],". WILL YOU GIVE IT TO ME? ",
GOSUB a9850
IF O$="N" THEN GOTO a8420
IF O$ <> "Y" : PRINT Y$ : GOTO a8310:ENDIF
T[Q]=0
TC=TC-1
PRINT
PRINT "OK, JUST DON'T TELL ANYONE ELSE."
VF=VF+(-(L[FND(Z)]=25))
GOTO a2920
LABEL a8420
Q3=2
IF WC <= 0 THEN GOTO a8460
WC=WC-1
IF WC=0 : PRINT : PRINT "THE WEB JUST BROKE!":ENDIF
LABEL a8460
Z$=RIGHT$(C$[A+12],LEN(C$[A+12])-2)
IF LEFT$(Z$,1)=" " THEN Z$=MID$(Z$,2)
IF WC <= 0 THEN GOTO a8520
PRINT
PRINT "THE ",Z$," IS STUCK AND CAN'T ATTACK NOW!"
GOTO a8630
LABEL a8520
PRINT
PRINT "THE ",Z$," ATTACKS!"
IF DX < FNA(7)+FNA(7)+FNA(7)+3*BL THEN GOTO a8580
PRINT
PRINT "WHAT LUCK, HE MISSED YOU!"
GOTO a8630
LABEL a8580
PRINT
PRINT "OUCH! HE HIT YOU!"
Q=Q1
GOSUB a8740
IF ST < 1 THEN GOTO a8840
LABEL a8630
IF O$ <> "R" THEN GOTO a7410
PRINT
PRINT "YOU HAVE ESCAPED!"
PRINT
LABEL a8670
PRINT "DO YOU WANT TO GO NORTH, SOUTH, EAST, OR WEST? ",
GOSUB a9850
IF O$="N" OR O$="S" OR O$="E" OR O$="W" THEN GOTO a3900
PRINT
PRINT "** DON'T PRESS YOUR LUCK, ",R$[RC],"!"
PRINT
GOTO a8670
LABEL a8840
PRINT CHR$(7)
GOSUB a9770
PRINT "A NOBLE EFFORT, OH FORMERLY LIVING ",R$[RC],"!"
PRINT
PRINT "YOU DIED DUE TO LACK OF ",
IF ST < 1 THEN PRINT "STRENGTH."
IF IQ < 1 THEN PRINT "INTELLIGENCE."
IF DX < 1 THEN PRINT "DEXTERITY."
PRINT
Q3=1
PRINT "AT THE TIME YOU DIED, YOU HAD:":PRINT
GOTO a9130
LABEL a8960
Q3=0
GOSUB a9770
PRINT "YOU LEFT THE CASTLE WITH",
IF OF=0 THEN PRINT "OUT",
PRINT " THE ORB OF ZOT."
PRINT
IF OF=0 THEN GOTO a9080
PRINT
PRINT "AN INCREDIBLY GLORIOUS VICTORY!!"
PRINT
PRINT "IN ADDITION, YOU GOT OUT WITH THE FOLLOWING: "
GOTO a9120
LABEL a9080
PRINT "A LESS THAN AWE-INSPIRING DEFEAT."
PRINT
PRINT "WHEN YOU LEFT THE CASTLE, YOU HAD:":PRINT
LABEL a9120
IF Q3=0 THEN PRINT "YOUR MISERABLE LIFE!"
LABEL a9130
FOR Q=1 TO 8
IF T[Q]=1 THEN PRINT C$[Q+25]
NEXT Q
PRINT W$[WV+1]," AND ",W$[AV+5],
IF LF=1 THEN PRINT " AND A LAMP",
PRINT
PRINT "YOU ALSO HAD ",FL,"FLARES AND ",GP,"GOLD PIECES"
IF RF=1 THEN PRINT "AND THE RUNESTAFF"
PRINT
PRINT "AND IT TOOK YOU ",T,"TURNS!"
PRINT
LABEL a9240
PRINT "ARE YOU FOOLISH ENOUGH TO WANT TO PLAY AGAIN? ",
GOSUB a9850
PRINT
IF O$ <> "Y" THEN GOTO a9330
PRINT "SOME ",R$[RC],"S NEVER LEARN!"
PRINT
PRINT "PLEASE BE PATIENT WHILE THE CASTLE IS RESTOCKED."
PRINT
GOSUB a9770
GOTO a1240
LABEL a9330
IF O$ <> "N" : PRINT Y$ : GOTO a9240:ENDIF
PRINT "MAYBE DUMB ",R$[RC]," IS NOT SO DUMB AFTER ALL!"
PRINT
GOTO a10180
LABEL a9370
PRINT
PRINT "GREAT UNMITIGATED ZOT!"
PRINT
PRINT "YOU JUST FOUND ***THE ORB OF ZOT***!"
PRINT
PRINT "THE RUNESTAFF HAS DISAPPEARED!"
RF=0
OF=1
O[1]=0
GOTO a5230
LABEL a9630
PRINT
PRINT "YOU GET ALL HIS WARES :"
PRINT "PLATE ARMOR"
AV=3 : AH=21
PRINT "A SWORD"
WV=3
PRINT "A STRENGTH POTION"
ST=FNC(ST+FNA(6))
PRINT "AN INTELLIGENCE POTION"
IQ=FNC(IQ+FNA(6))
PRINT "A DEXTERITY POTION"
DX=FNC(DX+FNA(6))
IF LF=0 THEN PRINT "A LAMP" : LF=1
GOTO a7860
LABEL a10180
END

DATABEGIN GAMEDATA
DATA "AN EMPTY ROOM",".","THE ENTRANCE","E","STAIRS GOING UP","U"
DATA "STAIRS GOING DOWN","D","A POOL","P","A CHEST","C","GOLD PIECES","G"
DATA "FLARES","F","A WARP","W","A SINKHOLE","S","A CRYSTAL ORB","O"
DATA "A BOOK","B","A KOBOLD","M","AN ORC","M","A WOLF","M","A GOBLIN","M","AN OGRE","M"
DATA "A TROLL","M","A BEAR","M","A MINOTAUR","M","A GARGOYLE","M","A CHIMERA","M"
DATA "A BALROG","M","A DRAGON","M","A VENDOR","V","THE RUBY RED","T"
DATA "THE NORN STONE","T","THE PALE PEARL","T","THE OPAL EYE","T"
DATA "THE GREEN GEM","T","THE BLUE FLAME","T","THE PALANTIR","T","THE SILMARIL","T"
DATA "X","?","NO WEAPON"," SANDWICH"
DATA "DAGGER"," STEW","MACE"," SOUP","SWORD"," BURGER","NO ARMOR"," ROAST"
DATA "LEATHER"," FILET","CHAINMAIL"," TACO","PLATEMAIL"," PIE"
DATA "HOBBIT","ELF","MAN","DWARF"
DATAEND

SUB FNA(Q:INT),INT
RESULT=1+INT(RND(1)*Q):RETURN RESULT:ENDSUB

SUB FNB(Q:INT),INT
RESULT=Q+8*((-(Q=9))-(-(Q=0))):RETURN RESULT:ENDSUB

SUB FNC(Q:INT),INT
RESULT=-Q*(-(Q<19))-18*(-(Q>18)):RETURN RESULT:ENDSUB

SUB FND(Q:INT),INT
RESULT=64*(Q-1)+8*(X-1)+Y:RETURN RESULT:ENDSUB

SUB FNE(Q:INT),INT
RESULT=Q+100*(-(Q>99)):RETURN RESULT:ENDSUB

SUB a3150
PRINT "HEAR ",
TEMP=FNA(4)
IF TEMP=1 THEN PRINT "A SCREAM!"
IF TEMP=2 THEN PRINT "FOOTSTEPS!"
IF TEMP=3 THEN PRINT "A WUMPUS!"
IF TEMP=4 THEN PRINT "THUNDER!"
RETURN:ENDSUB

SUB a5921
PRINT "STRENGTH = ",ST," INTELLIGENCE = ",IQ," DEXTERITY = ",DX
PRINT "TREASURES = ",TC," FLARES = ",FL," GOLD PIECES = ",GP
PRINT "WEAPON = ",W$[WV+1],"  ARMOR = ",W$[AV+5]
IF LF=1 THEN PRINT "YOU HAVE A LAMP. "
PRINT:WC=0:Q=FNE(L[FND(Z)]):L[FND(Z)]=Q
Z$="YOU NOW HAVE": PRINT "HERE YOU FIND ",C$[Q],"."
RETURN:ENDSUB

SUB a8740
IF AV=0 THEN GOTO a8820a
Q=Q-AV: AH=AH-AV
IF Q < 0 : AH=AH-Q : Q=0: ENDIF
IF AH >= 0 THEN GOTO a8820a: AH=0 : AV=0
PRINT: PRINT "YOUR ARMOR HAS BEEN DESTROYED . . . GOOD LUCK!"
LABEL a8820a
ST=ST-Q
RETURN:ENDSUB

SUB a9590
LABEL a9590a
X=FNA(8) : Y=FNA(8)
IF L[FND(Z)] <> 101 THEN GOTO a9590a
L[FND(Z)]=Q
RETURN:ENDSUB

SUB a9770
FOR Q=1 TO 64:PRINT "*",:NEXT Q:PRINT:PRINT
RETURN:ENDSUB

SUB a9830
PRINT: PRINT "YOUR CHOICE: ",: INPUT O$: O$=UCASE$(LEFT$(O$,1)):PRINT
RETURN: ENDSUB

SUB a9850
INPUT O$: O$=UCASE$(LEFT$(O$,1))
RETURN: ENDSUB

SUB a9880
LABEL a9880a
PRINT "HOW MANY POINTS DO YOU WISH TO ADD TO YOUR ",Z$,"? ",
INPUT O$: PRINT: Q=VAL(O$)
IF Q=0 AND ASC(O$) <> 48 THEN Q=-1
IF Q<0 OR Q>OT OR Q<>INT(Q) : PRINT "** INVALID RESPONSE, PLEASE TRY AGAIN."
PRINT : GOTO a9880a : ENDIF
OT=OT-Q
RETURN: ENDSUB

SUB a9990
LABEL a9990a
PRINT: PRINT Z$,: INPUT O$: Q=INT(VAL(O$))
IF Q > 0 AND Q < 9 THEN RETURN
PRINT: PRINT "** TRY A NUMBER FROM 1 TO 8.": GOTO a9990a
RETURN:ENDSUB

SUB a10070
PRINT:PRINT "DO YOU WANT TO BUY A POTION OF ",Z$," FOR 1000 GP'S? ",
GOSUB a9850
RETURN:ENDSUB

SUB a10100
PRINT: PRINT "YOUR ",Z$," IS NOW",RTRIM$(STR$(Q)),"."
RETURN:ENDSUB

SUB a10130
PRINT: PRINT "THESE ARE THE TYPES OF ",Z$," YOU CAN BUY:"
RETURN:ENDSUB

SUB a10160
PRINT "YOU ARE AT ( ",X,", ",Y,") LEVEL ",LTRIM$(STR$(Z)),"."
RETURN:ENDSUB



ZeroDog

Fixed a typo that prevented players from finding the Orb of Zot, so if you have already copied the source, then please recopy it now, otherwise you'll never be able to finish the game.  Sorry.  ::)

ZeroDog

Made a few edits to the source, nothing serious, just removed a few spaces in displayed text, and added a few spaces where needed.

Copex


hi..

there is a typo on line 773 :-)
-
I really should learn how to use a spell checker! though im not sure how it will help someone who can not spell?
-
Except where otherwise noted, content Posted By Copex is
licensed under a Creative Commons Attribution 3.0 License

http://creativecommons.org/licenses/by/3.0/

whitenite1

I think Copex meant, line 770. The line is PRINT "YOUR STRENGTH IS ",ST,"AND YOUR DEXTERITY IS ,RTRIM$(STR$(DX)),".", which just needs a quote mark, after IS. so it reads, PRINT "YOUR STRENGTH IS ",ST,"AND YOUR DEXTERITY IS ",RTRIM$(STR$(DX)),"."

ZeroDog

Oops!  :o

Sorry, I meant to delete the space after the IS, not the quote.  :P
Fixed now, thanks for the heads up.  :)

Copex

April 16, 2012, 10:56:28 AM #6 Last Edit: April 16, 2012, 10:58:05 AM by Copex
Quote from: whitenite1 on April 15, 2012, 07:54:49 AM
I think Copex meant, line 770. The line is PRINT "YOUR STRENGTH IS ",ST,"AND YOUR DEXTERITY IS ,RTRIM$(STR$(DX)),".", which just needs a quote mark, after IS. so it reads, PRINT "YOUR STRENGTH IS ",ST,"AND YOUR DEXTERITY IS ",RTRIM$(STR$(DX)),"."

no i definitely meant line 773 i changed it to "PRINT "YOUR STRENGTH IS ",ST,"AND YOUR DEXTERITY IS ",RTRIM$(STR$(DX)) Though i`m still using EB :-) line 770 for me is IF Q3=1 THEN PRINT "YOU CAN ALSO ATTEMPT A BRIBE."
-
I really should learn how to use a spell checker! though im not sure how it will help someone who can not spell?
-
Except where otherwise noted, content Posted By Copex is
licensed under a Creative Commons Attribution 3.0 License

http://creativecommons.org/licenses/by/3.0/

whitenite1

Wow. I figured out why mine listed the error as line 770. When I copied the code, I didn't get it from the top line, but the fourth. Sorry for the confusion.  :-[ 

ZeroDog

It's okay, I knew exactly which line it was, even without the line number. ;)


I've managed to escape the castle with the Orb of Zot, and every treasure now, except the Blue Flame, which I sold to a vendor.  Of course, I realized later that I should have kept the Blue Flame, as it dissolves books, and I ended up with a book that stuck to my hand, and I couldn't wield my weapon to attack monsters.  But I still managed to get through it with a book stuck to my hand by using spells, casting Web on monsters, and then Fireball a few times.  ;D