DECLARE SUB FightMode (CN!) DECLARE SUB SetCharacters () DECLARE SUB Inventory () DECLARE SUB NewBox (text$, text2$, o1$, o2$, o3$, o4$, o5$) DECLARE SUB NewMesg (text$) DECLARE SUB Character () DECLARE FUNCTION MoveAble! (mox!, moy!) DECLARE SUB PUTA (pX!, pY!, Arrayn!, D) DECLARE SUB GETA (gX!, gY!, gXl!, gYl!, Arrayn!) DECLARE SUB GLL (lx!, ly!, text$, XL!) DECLARE SUB DRWStats () DECLARE SUB DRWMap () DECLARE SUB SGL (sglX!, sglY!, FILE$) DECLARE SUB DRWGraphicsWindow () DIM SHARED Gr1(100) DIM SHARED Gr2(100) DIM SHARED Br1(100) DIM SHARED Drt1(100) COMMON SHARED WEOPON, ARMOR, X, Y, HHitP, THitP, LHITP, HHitPO, THitPO, LHitPO, Mapname$, Gold%, CU, NoS%, NoW%, NoCQuest%, FirstName$, LastName$, Race$, Face, tchrz, Mapx, Mapy, OSd, HS, NumOChars, Tob, Ia tchrz = 30 Tob = 10 DIM SHARED MAP&(150, 100), Tre1(10, 15), Tre2(10, 20), Tre3(10, 20), Tlgrs1(10, 15), WEAPON%(5), SHIELD%(2), CompleteQuest%(50), chrRace(tchrz), chrFace$(tchrz), chrWeapon(tchrz), chrArmor(tchrz), chrName$(tchrz), chrX(tchrz), chrY(tchrz), _ chrStatus(tchrz), obX(Tob), obY(Tob), obT(Tob), obS(Tob), Invtry(20) DIM SHARED GETBG1(150, 100) NumOChars = 8 Ia = 8 Invtry(1) = 1 Invtry(2) = 1 Invtry(3) = 1 Invtry(4) = 1 Invtry(5) = 1 Invtry(6) = 1 Invtry(7) = 1 Invtry(8) = 1 obX(1) = 114 obY(1) = 76 obT(1) = 1 obS(1) = 1 RANDOMIZE TIMER 'COMMON SHARED tchrz SCREEN 13 'SetCharacters Mapx = 12 Mapy = 43 Character MAP$ = "C:\RPG\GRAPHICS\GRESTON4" Mapname$ = "Greston town" GLL 11, 1, "WARRIOR QUEST BETA - SCRIPTVB.BAS", 0 MAPrz$ = "loading map " + MAP$ GLL 11, 16, MAPrz$, 0 GLL 11, 193, "press any key to continue... script written by Len44", 0 SGL 10, 22, MAP$ SLEEP 'HHitPO = 100: HHitP = 100 'THitPO = 100: THitP = 100 'LHitPO = 100: LHitP = 100 Mapx = 12 Mapy = 43 'Armor = 4 OPEN MAP$ FOR INPUT AS #1 INPUT #1, flx, fly DIM cl(flx, fly) FOR yc = 1 TO fly FOR xc = 1 TO flx IF EOF(1) = -1 THEN GOTO EXITrmap: INPUT #1, MAP&(xc, yc) NEXT xc NEXT yc EXITrmap: CLOSE 'x = -4 'y = 14 'Weopon = 1 Ng = 1 CLS SGL 1, 1, "C:\RPG\GRAPHICS\GRS1.GRA" GET (1, 1)-(11, 11), Gr1 SGL 12, 1, "C:\RPG\GRAPHICS\BRD1.GRA" GET (12, 1)-(23, 11), Br1 SGL 22, 1, "C:\RPG\GRAPHICS\GRS2.GRA" GET (23, 1)-(34, 11), Gr2 SGL 22, 10, "C:\RPG\GRAPHICS\DRT2.GRA" GET (23, 10)-(34, 21), Drt1 SGL 12, 10, "C:\RPG\GRAPHICS\TLGRS1.GRA" GETA 12, 10, 10, 15, 4 SGL 32, 11, "C:\RPG\GRAPHICS\TRE1.GRA" GETA 32, 11, 10, 10, 1 SGL 42, 1, "C:\RPG\GRAPHICS\TRE2.GRA" SGL 52, 1, "C:\RPG\GRAPHICS\TRE3.GRA" GETA 42, 1, 10, 20, 2 GETA 52, 1, 10, 20, 3 'GETA 32, 11, 10, 15, 1 PUTA 1, 20, 1, 10 PUTA 11, 20, 2, 20 PUTA 21, 20, 3, 20 CLS 'DRWGrid DRWStats DRWMap msgt = 1 BM = 1 NewMesg "Welcome to warrior quest. Please read the help before playing" DO IF DB = 1 THEN GLL 0, 10, " ", 0 ' Use for debug purposes. GLL 1, 10, STR$(X) + " " + STR$(Y), 0 ' Prints X and Y END IF KEYIN$ = INKEY$ IF Ng = 1 THEN DRWMap: DRWGraphicsWindow: Ng = 0 'LOCATE 1: PRINT KEYIN$ IF KEYIN$ = "|" THEN DB = 1 IF KEYIN$ = CHR$(0) + "H" AND POINT(Mapx, Mapy - 2) <> 0 AND MoveAble(Mapx, Mapy - 1) = 1 THEN Y = Y - 1: Ng = 1: IF msgt > 0 THEN msgt = msgt + 1 IF KEYIN$ = CHR$(0) + "K" AND POINT(Mapx - 2, Mapy) <> 0 AND MoveAble(Mapx - 1, Mapy) = 1 THEN X = X - 1: Ng = 1: IF msgt > 0 THEN msgt = msgt + 1 IF KEYIN$ = CHR$(0) + "P" AND POINT(Mapx, Mapy + 2) <> 0 AND MoveAble(Mapx, Mapy + 1) = 1 THEN Y = Y + 1: Ng = 1: IF msgt > 0 THEN msgt = msgt + 1 IF KEYIN$ = CHR$(0) + "M" AND POINT(Mapx + 2, Mapy) <> 0 AND MoveAble(Mapx + 1, Mapy) = 1 THEN X = X + 1: Ng = 1: IF msgt > 0 THEN msgt = msgt + 1 IF KEYIN$ = "n" AND msgt < 6 THEN NewMesg "Welcome to Warrior Quest, please read the help.txt if you need to know anything": msgt = 1 IF msgt >= 5 THEN NewMesg "": NMesg$ = "": msgt = 0: Tm = 0 IF KEYIN$ = "f" THEN FightMode 2 IF KEYIN$ = "l" AND NMesg$ = "" THEN NewMesg "There is nothing special to observe here.": msgt = 1 IF KEYIN$ = "l" AND NMesg$ <> "" THEN NewMesg NMesg$: msgt = 1 IF X >= 13 AND X <= 16 AND Y >= 18 AND Y <= 19 AND Tm = 0 THEN NMesg$ = "The water gurgles and bubbles as you cross Furmble Creek.": Tm = 1 IF X >= -10 AND X <= 11 AND Y >= 26 AND Y <= 43 AND Tm = 0 THEN NMesg$ = "This old forest seems very close together and thick.": Tm = 1 IF X >= 28 AND X <= 50 AND Y >= 3 AND Y <= 9 AND Tm = 0 THEN NMesg$ = "You see a house close by, it must belong to whoever owns the wheat fields.": Tm = 1 IF LCASE$(KEYIN$) = "m" THEN NewBox "", "", "inventory", "help", "options", "quit", "resume game" IF OSd = 1 THEN Inventory IF OSd = 4 THEN KEYIN$ = "q" END IF IF LCASE$(KEYIN$) = "q" OR KEYIN$ = CHR$(27) THEN NewBox "Save before quitting?", "", "yes", "no", "resume game", "", "" IF OSd = 1 THEN GOTO SS IF OSd = 2 THEN GOTO SkS END IF IF KEYIN$ = " " THEN FOR O = 1 TO Tob IF obX(O) = X AND obY(O) = Y THEN IF obT(O) = 1 THEN : OBN$ = "You found an Apple" IF obT(O) = 2 THEN : OBN$ = "You found a Coin" NewBox OBN$, "", "Examine", "Pick Up", "Attack", "", "" IF OSd = 1 AND obT(O) = 1 THEN NewBox "An ordinary red apple. Good for", "eating or trading. worth 1 coin", "", "", "", "", "" IF OSd = 2 AND obT(O) = 1 THEN obS(O) = 0: obX(O) = -5: obY(O) = -5: Ng = 1: Invtry(Ia + 1) = obT(O): Ia = Ia + 1 IF OSd = 3 AND obT(O) = 1 THEN NewBox "You foolishly slice the apple...", "What a waste you noob!!", "", "", "", "", "": obS(O) = 0: obX(O) = -5: obY(O) = -5: Ng = 1 IF OSd = 1 AND obT(O) = 2 THEN NewBox "A coin! these are good to find.", "Some moron dropped it.", "", "", "", "", "" IF OSd = 2 AND obT(O) = 2 THEN obS(O) = 0: obX(O) = -5: obY(O) = -5: Ng = 1: Gold% = Gold% + 1 IF OSd = 3 AND obT(O) = 2 THEN NewBox "You noobishly attack the coin.", "It cant be chopped in half!", "", "", "", "", "" END IF NEXT O END IF LOOP SS: FILE$ = "C:\RPG\CHRS\" EP$ = STR$(CU) + ".CHR" FILEL$ = FILE$ + MID$(EP$, 2, 2) + "CHR" OPEN FILEL$ FOR OUTPUT AS #2 PRINT #2, FirstName$ PRINT #2, LastName$ PRINT #2, Race$ PRINT #2, Face PRINT #2, X PRINT #2, Y PRINT #2, WEOPON PRINT #2, ARMOR PRINT #2, Gold% PRINT #2, Dummy PRINT #2, NoW% FOR w = 1 TO NoW% PRINT #2, WEAPON%(w) NEXT w PRINT #2, Dummy PRINT #2, NoS% FOR s = 1 TO NoS% PRINT #2, SHIELD%(s) NEXT s PRINT #2, Dummy PRINT #2, NoCQuest% FOR q = 1 TO NoCQuest% PRINT #2, CompleteQuest%(q) NEXT q PRINT #2, Dummy PRINT #2, HHitP, HHitPO PRINT #2, THitP, THitPO PRINT #2, LHITP, LHitPO FOR C = 1 TO NumOChars PRINT #2, chrX(C), chrY(C), chrWeapon(C), chrArmor(C), chrRace(C), chrStatus(C) PRINT #2, chrFace$(C) PRINT #2, chrName$(C) NEXT C CLOSE CLS GLL 1, 1, "Character Stats saved...", 0 GLL 1, 13, "Please play again.", 0 GLL 1, 20, "-Len44", 0 END SkS: CLS GLL 1, 1, "Character Stats not saved...", 0 GLL 1, 13, "Please play again.", 0 GLL 1, 20, "-Len44", 0 SUB Character DIM CH%(5), Wep%(20), Shd%(20), CQ%(30) AG: CLS SCREEN 13 LINE (2, 2)-(316, 197), 25, B GLL 10, 5, "choose character", 0 OPEN "C:\RPG\DATA\CS.DAT" FOR INPUT AS #1 INPUT #1, NoC% CLOSE FOR I% = 1 TO NoC% FILE$ = "C:\RPG\CHRS\" EP$ = STR$(I%) FILEL$ = FILE$ + MID$(EP$, 2, 4) + ".CHR" OPEN FILEL$ FOR INPUT AS #2 'PRINT FILEL$: SLEEP INPUT #2, nf$ INPUT #2, Nl$ INPUT #2, Race$ INPUT #2, F INPUT #2, xxtutxu INPUT #2, yytutyu INPUT #2, WU% INPUT #2, SU% INPUT #2, Money% INPUT #2, Dummy INPUT #2, NoW% FOR w = 1 TO NoW% INPUT #2, Wep%(w) NEXT w INPUT #2, Dummy INPUT #2, NoS% FOR s = 1 TO NoS% INPUT #2, Shd%(s) NEXT s INPUT #2, Dummy INPUT #2, Nocq% FOR q = 1 TO Nocq% INPUT #2, CQ%(q) NEXT q INPUT #2, Dummy INPUT #2, dfg, dfg INPUT #2, dfg, dfg INPUT #2, dfg, dfg CLOSE IF Race$ = "Elf" THEN FILE$ = "C:\RPG\CHRS\GRAPHICS\ELF\" IF Race$ = "Human" THEN FILE$ = "C:\RPG\CHRS\GRAPHICS\MAN\" EP$ = STR$(F) + ".GRA" FILEL$ = FILE$ + "F" + MID$(EP$, 2, 7) 'PRINT FILEL$: SLEEP SGL 175, 10 + (I% * 20), FILEL$ FOR w = 1 TO NoW% EP$ = STR$(Wep%(w)) + ".GRA" FILE$ = "C:\RPG\GRAPHICS\WPNS\SWRD" FILEL$ = FILE$ + MID$(EP$, 2, 7) 'PRINT FILEL$ 'SLEEP SGL 190 + (w * 6), 15 + (I% * 20), FILEL$ NEXT w FOR s = 1 TO NoS% EP$ = STR$(Shd%(s)) + ".GRA" FILE$ = "C:\RPG\GRAPHICS\WPNS\SHLD" FILEL$ = FILE$ + MID$(EP$, 2, 5) 'PRINT FILEL$ 'SLEEP SGL 190 + (NoW% * 6) + (s * 6), 15 + (I% * 20), FILEL$ NEXT s GLL 10, 16 + (I% * 20), nf$ + " " + Nl$ + " The " + Race$, 0 GLL 260, 16 + (I% * 20), STR$(Money%) + " gold", 0 NEXT I% GLL 10, 15 + (I% * 20), "Create new", 0 ys = 1 NS = 1 DO KEYIN$ = INKEY$ IF LCASE$(KEYIN$) = "q" OR KEYIN$ = CHR$(27) THEN CLS : END IF NS = 1 THEN LINE (9, 10 + (ys * 20))-(310, 28 + (ys * 20)), 9, B NS = 0 END IF IF KEYIN$ = CHR$(0) + "P" AND ys <= NoC% THEN LINE (9, 10 + (ys * 20))-(310, 28 + (ys * 20)), 0, B: ys = ys + 1: NS = 1 IF KEYIN$ = CHR$(0) + "H" AND ys > 1 THEN LINE (9, 10 + (ys * 20))-(310, 28 + (ys * 20)), 0, B: ys = ys - 1: NS = 1 'LOCATE 1: PRINT ys LOOP UNTIL KEYIN$ = CHR$(13) IF ys = (NoC% + 1) THEN GOTO nc: CU = ys FILE$ = "C:\RPG\CHRS\" EP$ = STR$(ys) + ".CHR" FILEL$ = FILE$ + MID$(EP$, 2, 2) + "CHR" OPEN FILEL$ FOR INPUT AS #2 INPUT #2, FirstName$ INPUT #2, LastName$ INPUT #2, Race$ INPUT #2, Face INPUT #2, X INPUT #2, Y INPUT #2, WEOPON INPUT #2, ARMOR INPUT #2, Gold% INPUT #2, Dummy INPUT #2, NoW% FOR w = 1 TO NoW% INPUT #2, WEAPON%(w) NEXT w INPUT #2, Dummy INPUT #2, NoS% FOR s = 1 TO NoS% INPUT #2, SHIELD%(s) NEXT s INPUT #2, Dummy INPUT #2, NoCQuest% FOR q = 1 TO NoCQuest% INPUT #2, CompleteQuest%(q) NEXT q INPUT #2, Dummy INPUT #2, HHitP, HHitPO INPUT #2, THitP, THitPO INPUT #2, LHITP, LHitPO FOR C = 1 TO NumOChars INPUT #2, chrX(C), chrY(C), chrWeapon(C), chrArmor(C), chrRace(C), chrStatus(C) INPUT #2, chrFace$(C) INPUT #2, chrName$(C) NEXT C CLOSE IF ys <> (NoC% + 1) THEN GOTO sc: nc: CLS LINE (2, 2)-(316, 197), 25, B GLL 10, 5, "new character", 0 GLL 10, 37, "choose race:", 0 GLL 10, 65, "man elf", 0 SGL 10, 48, "C:\RPG\GRAPHICS\MANLOGO.GRA" SGL 60, 48, "C:\RPG\GRAPHICS\ELFLOGO.GRA" s = 1 DO KEYIN$ = INKEY$ IF s = 1 THEN LINE (9, 47)-(27, 72), 9, B: LINE (59, 47)-(77, 72), 0, B IF s = 2 THEN LINE (59, 47)-(77, 72), 9, B: LINE (9, 47)-(27, 72), 0, B IF KEYIN$ = CHR$(0) + "M" OR KEYIN$ = CHR$(0) + "K" THEN IF s = 1 THEN s = 2 ELSEIF s = 2 THEN s = 1 END IF END IF LOOP UNTIL KEYIN$ = CHR$(13) Race = s RIN: LINE (10, 112)-(315, 80), 0, BF GLL 10, 80, "first name:", 0 LOCATE 12, 3: INPUT ""; FrstNme$ GLL 10, 96, "last name:", 0 LOCATE 14, 3: INPUT ""; LstNme$ LINE (10, 112)-(315, 118), 0, BF IF LEN(FrstNme$) > 11 THEN GLL 10, 112, "Error: Name over 11 characters long", 0: GOTO RIN IF LEN(LstNme$) > 11 THEN GLL 10, 112, "Error: Name over 11 characters long", 0: GOTO RIN FOR nf = 1 TO LEN(FrstNme$) IN = 1 IF ASC(MID$(FrstNme$, nf, 1)) >= 65 AND ASC(MID$(FrstNme$, nf, 1)) <= 90 THEN IN = 0 END IF IF ASC(MID$(FrstNme$, nf, 1)) >= 97 AND ASC(MID$(FrstNme$, nf, 1)) <= 122 THEN IN = 0 END IF IF IN = 1 THEN GLL 10, 112, "Error: Name contains invalid characters", 0: GOTO RIN NEXT nf FOR nf = 1 TO LEN(LstNme$) IN = 1 IF ASC(MID$(LstNme$, nf, 1)) >= 65 AND ASC(MID$(LstNme$, nf, 1)) <= 90 THEN IN = 0 END IF IF ASC(MID$(LstNme$, nf, 1)) >= 97 AND ASC(MID$(LstNme$, nf, 1)) <= 122 THEN IN = 0 END IF IF IN = 1 THEN GLL 10, 112, "Error: Name contains invalid characters", 0: GOTO RIN NEXT nf IF Race = 1 THEN FILE$ = "C:\RPG\CHRS\GRAPHICS\MAN\" IF Race = 2 THEN FILE$ = "C:\RPG\CHRS\GRAPHICS\ELF\" HS = 1 N = 1 GLL 10, 115, "Choose face", 0 DO KEYIN$ = INKEY$ IF N = 1 THEN EP$ = STR$(HS) + ".GRA" FILEL$ = FILE$ + "F" + MID$(EP$, 2, 5) LINE (9, 124)-(26, 141), 15, B SGL 10, 125, FILEL$ N = 0 END IF IF KEYIN$ = CHR$(0) + "M" THEN HS = HS + 1: N = 1 IF KEYIN$ = CHR$(0) + "K" THEN HS = HS - 1: N = 1 IF HS = 6 THEN HS = 1 IF HS = 0 THEN HS = 5 LOOP UNTIL KEYIN$ = CHR$(13) OPEN "C:\RPG\DATA\CS.DAT" FOR OUTPUT AS #1 PRINT #1, (NoC% + 1) CLOSE IF Race = 1 THEN Race$ = "Human" IF Race = 2 THEN Race$ = "Elf" nx = -4 ny = 14 na = 0 nw = 4 tw = 1 FILE$ = "C:\RPG\CHRS\" EP$ = STR$(NoC% + 1) + ".CHR" FILEL$ = FILE$ + MID$(EP$, 2, 2) + "CHR" SetCharacters OPEN FILEL$ FOR OUTPUT AS #2 PRINT #2, FrstNme$ PRINT #2, LstNme$ PRINT #2, Race$ PRINT #2, HS PRINT #2, -4 PRINT #2, 14 PRINT #2, 4 PRINT #2, 0 PRINT #2, 0 PRINT #2, Dummy PRINT #2, 1 PRINT #2, 4 PRINT #2, Dummy PRINT #2, 0 PRINT #2, Dummy PRINT #2, 0 PRINT #2, Dummy PRINT #2, 100, 100 PRINT #2, 100, 100 PRINT #2, 100, 100 FOR C = 1 TO NumOChars PRINT #2, chrX(C), chrY(C), chrWeapon(C), chrArmor(C), chrRace(C), chrStatus(C) PRINT #2, chrFace$(C) PRINT #2, chrName$(C) NEXT C CLOSE GOTO AG: sc: CLS END SUB SUB DRWGraphicsWindow 'LINE (51, 8)-(266, 150), 4, B LINE (51, 33)-(266, 10), 16, BF 'LINE (51, 8)-(266, 150), 16, B 'LINE (51, 32)-(266, 150), 16, B 'PAINT (52, 9), 16, 16 LINE (52, 33)-(265, 149), 18, B LINE (53, 33)-(264, 148), 25, B FOR N = 1 TO tchrz IF chrRace(N) = 3 THEN RNDXY = INT(RND * 2) + 1 RNDR = INT(RND * 3) - 1 RNDSF = INT(RND * 6) + 1 IF RNDSF = 1 THEN GOTO RSF IF X >= (chrX(N) - 5) AND X <= (chrX(N) + 5) AND Y >= (chrY(N) - 5) AND Y <= (chrY(N) + 5) THEN 'BEEP IF X < chrX(N) AND MoveAble(Mapx - X + chrX(N) - 1, Mapy - Y + chrY(N)) = 1 THEN chrX(N) = chrX(N) - 1: GOTO SKIPRW IF Y < chrY(N) AND MoveAble(Mapx - X + chrX(N), Mapy - Y + chrY(N) - 1) = 1 THEN chrY(N) = chrY(N) - 1: GOTO SKIPRW IF X > chrX(N) AND MoveAble(Mapx - X + chrX(N) + 1, Mapy - Y + chrY(N)) = 1 THEN chrX(N) = chrX(N) + 1: GOTO SKIPRW IF Y > chrY(N) AND MoveAble(Mapx - X + chrX(N), Mapy - Y + chrY(N) + 1) = 1 THEN chrY(N) = chrY(N) + 1: GOTO SKIPRW END IF RSF: IF RNDXY = 1 AND MoveAble(Mapx - X + chrX(N) + RNDR, Mapy - Y + chrY(N)) = 1 THEN chrX(N) = chrX(N) + RNDR IF RNDXY = 2 AND MoveAble(Mapx - X + chrX(N), Mapy - Y + chrY(N) + RNDR) = 1 THEN chrY(N) = chrY(N) + RNDR SKIPRW: END IF NEXT N FOR gY = 1 TO 19 FOR gX = 1 TO 21 LINE (54 + gsX, 34 + gsY)-(63 + gsX, 39 + gsY), 0, BF IF POINT(1 + gX, 33 + gY) = 192 THEN PUT (53 + gsX, 33 + gsY), Gr1'SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\GRS1.GRA" IF POINT(1 + gX, 33 + gY) = 20 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\RKG1.GRA" IF POINT(1 + gX, 33 + gY) = 188 THEN SGL 53 + gsX, 33 + gsY - 6, "C:\RPG\GRAPHICS\TABLEH.GRA" IF POINT(1 + gX, 33 + gY) = 136 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\FWR1.GRA" 'IF POINT(1 + gX, 33 + gY) = 19 THEN PUT (53 + gsX, 33 + gsY), Gr1: SGL 53 + gsX - 10, 33 + gsY - 7, "C:\RPG\GRAPHICS\HORSE.GRA" IF POINT(1 + gX, 33 + gY) = 193 THEN PUT (53 + gsX + 1, 33 + gsY), Gr2'SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\GRS1.GRA" IF POINT(1 + gX, 33 + gY) = 185 THEN PUT (53 + gsX, 33 + gsY), Br1 'SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\GRS1.GRA" IF POINT(1 + gX, 33 + gY) = 119 THEN PUTA 53 + gsX, 33 + gsY - 4, 1, 10 IF POINT(1 + gX, 33 + gY) = 120 THEN PUTA 53 + gsX, 33 + gsY - 14, 2, 20 '"C:\RPG\GRAPHICS\TRE2.GRA" IF POINT(1 + gX, 33 + gY) = 121 THEN PUTA 53 + gsX, 33 + gsY - 14, 3, 20 '"C:\RPG\GRAPHICS\TRE3.GRA" IF POINT(1 + gX, 33 + gY) = 25 THEN SGL 53 + gsX, 33 + gsY - 9, "C:\RPG\GRAPHICS\WlV.GRA" IF POINT(1 + gX, 33 + gY) = 26 THEN SGL 53 + gsX, 33 + gsY - 9, "C:\RPG\GRAPHICS\WlH.GRA" IF POINT(1 + gX, 33 + gY) = 24 THEN SGL 53 + gsX, 33 + gsY - 9, "C:\RPG\GRAPHICS\WlC.GRA" IF POINT(1 + gX, 33 + gY) = 23 THEN PUT (53 + gsX, 33 + gsY), Br1: SGL 53 + gsX, 33 + gsY - 9, "C:\RPG\GRAPHICS\WLAHL.GRA" IF POINT(1 + gX, 33 + gY) = 22 THEN PUT (53 + gsX, 33 + gsY), Br1: SGL 53 + gsX, 33 + gsY - 9, "C:\RPG\GRAPHICS\WLAHR.GRA" 'Water IF POINT(1 + gX, 33 + gY) = 197 THEN IF POINT(1 + gX, 33 + gY + 1) = 197 AND POINT(1 + gX, 33 + gY - 1) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WT1.GRA" IF POINT(1 + gX - 1, 33 + gY) = 197 AND POINT(1 + gX + 1, 33 + gY) = 197 AND POINT(1 + gX, 33 + gY - 1) <> 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTED.GRA" IF POINT(1 + gX - 1, 33 + gY) = 197 AND POINT(1 + gX + 1, 33 + gY) = 197 AND POINT(1 + gX, 33 + gY + 1) <> 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTEU.GRA" IF POINT(1 + gX - 1, 33 + gY) <> 197 AND POINT(1 + gX + 1, 33 + gY) = 197 AND POINT(1 + gX, 33 + gY - 1) <> 197 AND POINT(1 + gX, 33 + gY + 1) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCL.GRA" IF POINT(1 + gX - 1, 33 + gY) = 197 AND POINT(1 + gX + 1, 33 + gY) <> 197 AND POINT(1 + gX, 33 + gY - 1) <> 197 AND POINT(1 + gX, 33 + gY + 1) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCR.GRA" IF POINT(1 + gX, 33 + gY + 1) = 197 AND POINT(1 + gX, 33 + gY - 1) = 197 AND POINT(1 + gX + 1, 33 + gY) <> 197 AND POINT(1 + gX + -1, 33 + gY) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTER.GRA" IF POINT(1 + gX, 33 + gY + 1) = 197 AND POINT(1 + gX, 33 + gY - 1) = 197 AND POINT(1 + gX - 1, 33 + gY) <> 197 AND POINT(1 + gX - -1, 33 + gY) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTEL.GRA" IF POINT(1 + gX - 1, 33 + gY) <> 197 AND POINT(1 + gX + 1, 33 + gY) = 197 AND POINT(1 + gX, 33 + gY + 1) <> 197 AND POINT(1 + gX, 33 + gY - 1) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCDL.GRA" IF POINT(1 + gX - 1, 33 + gY) = 197 AND POINT(1 + gX + 1, 33 + gY) <> 197 AND POINT(1 + gX, 33 + gY + 1) <> 197 AND POINT(1 + gX, 33 + gY - 1) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCDR.GRA" IF POINT(1 + gX - 1, 33 + gY - 1) <> 197 AND POINT(1 + gX, 33 + gY - 1) = 197 AND POINT(1 + gX - 1, 33 + gY) = 197 AND POINT(1 + gX, 33 + gY + 1) = 197 AND POINT(1 + gX + 1, 33 + gY) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCF1.GRA" IF POINT(1 + gX + 1, 33 + gY - 1) <> 197 AND POINT(1 + gX, 33 + gY - 1) = 197 AND POINT(1 + gX + 1, 33 + gY) = 197 AND POINT(1 + gX, 33 + gY + 1) = 197 AND POINT(1 + gX - 1, 33 + gY) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCF2.GRA" IF POINT(1 + gX - 1, 33 + gY) <> 197 AND POINT(1 + gX, 33 + gY - 1) <> 197 AND POINT(1 + gX, 33 + gY + 1) <> 197 AND POINT(1 + gX + 1, 33 + gY) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCE4.GRA" IF POINT(1 + gX + 1, 33 + gY) <> 197 AND POINT(1 + gX, 33 + gY - 1) <> 197 AND POINT(1 + gX, 33 + gY + 1) <> 197 AND POINT(1 + gX - 1, 33 + gY) = 197 THEN SGL 53 + gsX, 33 + gsY, "C:\RPG\GRAPHICS\WTCE5.GRA" END IF IF POINT(1 + gX, 33 + gY) = 140 THEN SGL 53 + gsX, 33 + gsY - 4, "C:\RPG\GRAPHICS\Tlgrs1.GRA" IF POINT(1 + gX, 33 + gY) = 210 THEN PUT (53 + gsX + 1, 33 + gsY), Drt1 '"C:\RPG\GRAPHICS\drt2.GRA" IF gY = 10 AND gX = 11 THEN FILE$ = "C:\RPG\CHRS\" EP$ = STR$(CU) FILEL$ = FILE$ + MID$(EP$, 2, 3) + ".GRA" SGL 53 + gsX, 33 + gsY - 10, FILEL$ IF WEOPON = 1 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD1.GRA" IF WEOPON = 2 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD2.GRA" IF WEOPON = 4 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD4.GRA" IF WEOPON = 5 THEN SGL 53 + gsX - 1, 33 + gsY - 7, "C:\RPG\GRAPHICS\WPNS\SWRD5.GRA" IF WEOPON = 6 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD6.GRA" IF WEOPON = 7 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD7.GRA" IF WEOPON = 8 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD8.GRA" IF WEOPON = 9 THEN SGL 53 + gsX, 33 + gsY - 7, "C:\RPG\GRAPHICS\WPNS\SWRD9.GRA" IF WEOPON = 10 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD10.GRA" IF WEOPON = 11 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD11.GRA" IF WEOPON = 12 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD12.GRA" IF WEOPON = 13 THEN SGL 53 + gsX - 1, 33 + gsY - 7, "C:\RPG\GRAPHICS\WPNS\SWRD13.GRA" IF WEOPON = 14 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD14.GRA" IF WEOPON = 15 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD15.GRA" IF WEOPON = 16 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD16.GRA" IF WEOPON = 17 THEN SGL 53 + gsX - 1, 33 + gsY - 7 + 1, "C:\RPG\GRAPHICS\WPNS\SWRD17.GRA" IF ARMOR = 1 THEN SGL 53 + gsX + 5, 33 + gsY - 10 + 6, "C:\RPG\GRAPHICS\WPNS\SHLD1.GRA" IF ARMOR = 2 THEN SGL 53 + gsX + 5, 33 + gsY - 11 + 6, "C:\RPG\GRAPHICS\WPNS\SHLD2.GRA" IF ARMOR = 3 THEN SGL 53 + gsX + 5, 33 + gsY - 11 + 6, "C:\RPG\GRAPHICS\WPNS\SHLD3.GRA" IF ARMOR = 4 THEN SGL 53 + gsX + 5, 33 + gsY - 9 + 6, "C:\RPG\GRAPHICS\WPNS\SHLD4.GRA" END IF 'LOCATE 1: PRINT gX; gY; X; Y: SLEEP FOR O = 1 TO Tob IF gX = 11 - X + obX(O) AND gY = 10 - Y + obY(O) THEN IF obX(O) > (X - 10) AND obX(O) < (X + 10) AND obY(O) > (Y - 9) AND obY(O) < (Y + 9) AND obS(O) = 1 THEN IF obT(O) = 1 THEN FT$ = "APL1": XoS = -3: YoS = -12 IF obT(O) = 2 THEN FT$ = "CON1": XoS = -3: YoS = -12 FILE$ = "C:\RPG\GRAPHICS\" FILEL$ = FILE$ + FT$ + ".GRA" 'PRINT FILEL$: SLEEP SGL 156 + (obX(O) * 10) - (X * 10) - 3 - XoS, 87 + (obY(O) * 6) - (Y * 6) - 10 - YoS, FILEL$ END IF END IF NEXT O FOR N = 1 TO tchrz IF gX = 11 - X + chrX(N) AND gY = 10 - Y + chrY(N) THEN IF chrX(N) > (X - 10) AND chrX(N) < (X + 10) AND chrY(N) > (Y - 9) AND chrY(N) < (Y + 9) THEN 'LOCATE 1: PRINT chrX(N), chrY(N), X, Y, gX, gY: SLEEP IF chrRace(N) = 8 THEN FT$ = "HS1L": XoS = 10: YoS = -3 IF chrRace(N) = 1 THEN FT$ = "MNTRAN1" IF chrRace(N) = 3 THEN FT$ = "GOBLIN1" FILE$ = "C:\RPG\GRAPHICS\" FILEL$ = FILE$ + FT$ + ".GRA" 'PRINT FILEL$: SLEEP SGL 156 + (chrX(N) * 10) - (X * 10) - 3 - XoS, 87 + (chrY(N) * 6) - (Y * 6) - 10 - YoS, FILEL$ 'CIRCLE (156 + (chrX(N) * 10) - (X * 10), 87 + (chrY(N) * 7) - (Y * 7)), 10, 4 IF chrWeapon(N) = 2 THEN SGL 156 + (chrX(N) * 10) - (X * 10) - 4, 87 + (chrY(N) * 6) - (Y * 6) - 5, "C:\RPG\GRAPHICS\WPNS\SWRD2.GRA" IF chrArmor(N) = 5 THEN SGL 156 + (chrX(N) * 10) - (X * 10) - 1 + 3, 87 + (chrY(N) * 6) - (Y * 6) - 10 + 7, "C:\RPG\GRAPHICS\WPNS\SHLD5.GRA" END IF END IF NEXT N gsX = gsX + 10 NEXT gX gsX = 0 gsY = gsY + 6 NEXT gY 'DRWGrid LINE (0, 32)-(24, 54), 27, B GLL 5, 2, Mapname$, 0 END SUB SUB DRWGrid FOR grX = 1 TO 22 LINE (53 + griX, 33)-(53 + griX, 147), 27 griX = griX + 10 NEXT grX FOR grY = 1 TO 20 LINE (53, 33 + griY)-(263, 33 + griY), 27 griY = griY + 6 NEXT grY END SUB SUB DRWMap FOR yc = 1 TO 21 FOR xc = 1 TO 23 IF (xc + X) > 0 AND (yc + Y) > 0 AND (xc + X) < 150 AND (yc + Y) < 100 THEN PSET (xc, yc + 32), MAP&(xc + X, yc + Y) ELSE PSET (xc, yc + 32), 0 END IF NEXT xc NEXT yc END SUB SUB DRWStats LINE (0, 166)-(320, 189), 16, BF 'SGL 27, 165, "C:\RPG\GRAPHICS\H2.GRA" 'SGL 27, 173, "C:\RPG\GRAPHICS\T2.GRA" 'SGL 27, 181, "C:\RPG\GRAPHICS\L2.GRA" GLL 0, 166, "h", 0 GLL 0, 174, "t", 0 GLL 0, 182, "l", 0 HHP$ = STR$(HHitP) + "\" + MID$(STR$(HHitPO), 2, 3) GLL 10, 166, HHP$, 0 THP$ = STR$(THitP) + "\" + MID$(STR$(THitPO), 2, 3) GLL 10, 174, THP$, 0 LHP$ = STR$(LHITP) + "\" + MID$(STR$(LHitPO), 2, 3) GLL 10, 182, LHP$, 0 LINE (0, 166)-(70, 189), 22, B LINE (70, 166)-(161, 189), 22, B LINE (161, 166)-(251, 189), 22, B LINE (251, 166)-(319, 189), 22, B GLL 253, 170, "Weapons", 0 IF WEOPON <> 0 THEN FILE$ = "C:\RPG\GRAPHICS\WPNS\SW" EP$ = STR$(WEOPON) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 6) FILE2$ = "C:\RPG\GRAPHICS\WPNS\SWRD" EP2$ = STR$(WEOPON) + ".GRA" FILEL2$ = FILE2$ + MID$(EP2$, 2, 6) 'PRINT FILEL$: SLEEP OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WName$, wATK, wDFS CLOSE GLL 73, 169, WName$, 0 GLL 73, 175, "ATK: " + STR$(wATK), 0 GLL 73, 181, "DFS: " + STR$(wDFS), 0 SGL 118, 175, FILEL2$ END IF IF ARMOR <> 0 THEN FILE$ = "C:\RPG\GRAPHICS\WPNS\SH" EP$ = STR$(ARMOR) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 5) FILE2$ = "C:\RPG\GRAPHICS\WPNS\SHLD" EP2$ = STR$(ARMOR) + ".GRA" FILEL2$ = FILE2$ + MID$(EP2$, 2, 5) OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WName$, wDFS CLOSE GLL 163, 169, WName$, 0 GLL 163, 175, "DFS: " + STR$(wDFS), 0 SGL 208, 175, FILEL2$ END IF END SUB SUB FightMode (CN) GET (40, 60)-(280, 140), GETBG1 LINE (40, 60)-(280, 140), 18, B LINE (41, 61)-(279, 139), 25, BF LINE (42, 62)-(278, 138), 16, BF GLL 47, 62, "-------------------:fight:-------------------", 0 GLL 47, 69, " vs.", 0 LINE (159, 77)-(159, 136), 25 IF Race$ = "Elf" THEN FILE$ = "C:\RPG\CHRS\GRAPHICS\ELF\" IF Race$ = "Human" THEN FILE$ = "C:\RPG\CHRS\GRAPHICS\MAN\" EP$ = STR$(Face) + ".GRA" FILEL$ = FILE$ + "F" + MID$(EP$, 2, 7) SGL 75, 69, FILEL$ FILE$ = "C:\RPG\CHRS\GRAPHICS\" EP$ = chrFace$(CN) + ".GRA" FILEL$ = FILE$ + EP$ SGL 200, 69, FILEL$ AT = INT(RND * 8) + 1 FILE$ = "C:\RPG\GRAPHICS\WPNS\SW" EP$ = STR$(chrWeapon(CN)) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 6) OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WName$, wATK, wDFS CLOSE OP1R = INT(RND * 3) OP2R = INT(RND * 3) OP3R = INT(RND * 3) IF OP1R = 1 THEN OP1$ = "Quickly strike": OP1 = 1 IF OP1R = 2 THEN OP1$ = "Power attack": OP1 = 2 IF OP1R = 3 THEN OP1$ = "Thrust attack": OP1 = 3 IF OP2R = 1 THEN OP2$ = "Defend": OP1 = 1 IF OP2R = 2 THEN OP2$ = "Defend": OP1 = 2 IF OP2R = 3 THEN OP2$ = "": OP1 = 3 IF AT = 1 THEN BGA$ = chrName$(CN) + " swings a " + WName$ + " at you" ELSEIF AT = 2 THEN BGA$ = chrName$(CN) + " begins to strike you with a " + WName$ ELSEIF AT = 3 THEN BGA$ = chrName$(CN) + " tries to strike your legs with a " + WName$ ELSEIF AT = 4 THEN BGA$ = chrName$(CN) + " quickly begins assaulting you with a " + WName$ ELSEIF AT = 5 THEN BGA$ = chrName$(CN) + " gets out a " + WName$ + " and begins attacking" ELSEIF AT = 6 THEN BGA$ = chrName$(CN) + " begins fighting you with a " + WName$ ELSEIF AT = 7 THEN BGA$ = chrName$(CN) + " quickly begins attacking your head with a " + WName$ ELSEIF AT = 8 THEN BGA$ = chrName$(CN) + " attacks you with a " + WName$ END IF GLL 162, 100, BGA$, 105 SLEEP PUT (40, 60), GETBG1, PSET END SUB SUB GETA (gX, gY, gXl, gYl, Arrayn) FOR V = 1 TO gYl FOR H = 1 TO gXl CurC = POINT(gX + H, gY + V) IF Arrayn = 1 THEN Tre1(H, V) = CurC IF Arrayn = 2 THEN Tre2(H, V) = CurC IF Arrayn = 3 THEN Tre3(H, V) = CurC IF Arrayn = 4 THEN Tlgrs1(H, V) = CurC PSET (gX + H, gY + V), 4 NEXT H NEXT V END SUB SUB GLL (lx, ly, text$, XL) IF XL = 0 THEN XL = 300 FOR I% = 1 TO LEN(text$) IF MID$(text$, I%, 1) <> " " THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\" + MID$(text$, I%, 1) + ".GRA" IF MID$(text$, I%, 1) = "!" THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\EXCM.GRA" IF MID$(text$, I%, 1) = "?" THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\QUESTION.GRA" IF MID$(text$, I%, 1) = "\" THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\BSLASH.GRA" IF MID$(text$, I%, 1) = "-" THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\DASH.GRA" IF MID$(text$, I%, 1) = "." THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\PERIOD.GRA" IF MID$(text$, I%, 1) = "," THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\PERIOD.GRA" IF MID$(text$, I%, 1) = ":" THEN Lettert$ = "C:\RPG\GRAPHICS\FONT\COLON.GRA" IF MID$(text$, I%, 1) = LCASE$("i") THEN lxp = lxp - 1 SGL lx + lxp, ly, Lettert$ END IF LINE (lx + lxp, ly)-(lx + lxp + 5, ly), 0 LINE (lx + lxp, ly + 6)-(lx + lxp + 5, ly + 6), 0 IF LCASE$(MID$(text$, I%, 1)) = "m" THEN lxp = lxp + 1 IF LCASE$(MID$(text$, I%, 1)) = "w" THEN lxp = lxp + 1 IF LCASE$(MID$(text$, I%, 1)) = "t" THEN lxp = lxp + 1 IF LCASE$(MID$(text$, I%, 1)) = "v" THEN lxp = lxp + 1 IF LCASE$(MID$(text$, I%, 1)) = "y" THEN lxp = lxp + 1 IF LCASE$(MID$(text$, I%, 1)) = "!" THEN lxp = lxp - 2 lxp = lxp + 5 IF lxp >= XL THEN SGL lx + lxp, ly, "C:\RPG\GRAPHICS\FONT\DASH.GRA": lxp = 0: ly = ly + 6 NEXT I% END SUB SUB Inventory GET (40, 60)-(280, 140), GETBG1 LINE (40, 60)-(280, 140), 18, B LINE (41, 61)-(279, 139), 25, BF LINE (42, 62)-(278, 138), 16, BF GLL 47, 62, "-----------------:inventory:-----------------", 0 GLL 47, 69, "weapons armor misc.", 0 LINE (131, 69)-(131, 136), 25 LINE (222, 69)-(222, 136), 25 LINE (42, 129)-(222, 129), 25 FOR I = 1 TO NoW% FILE$ = "C:\RPG\GRAPHICS\WPNS\SW" EP$ = STR$(WEAPON%(I)) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 6) OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WEPN$, ATKd, DFSd CLOSE GLL 57, 71 + I * 10, WEPN$, 0 FILE2$ = "C:\RPG\GRAPHICS\WPNS\SWRD" EP2$ = STR$(WEAPON%(I)) + ".GRA" FILEL2$ = FILE2$ + MID$(EP2$, 2, 6) SGL 47, 69 + I * 10, FILEL2$ NEXT I FOR I = 1 TO NoS% FILE$ = "C:\RPG\GRAPHICS\WPNS\SH" EP$ = STR$(SHIELD%(I)) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 6) OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WEPN$, DFSd CLOSE GLL 147, 71 + I * 10, WEPN$, 0 FILE2$ = "C:\RPG\GRAPHICS\WPNS\SHLD" EP2$ = STR$(SHIELD%(I)) + ".GRA" FILEL2$ = FILE2$ + MID$(EP2$, 2, 6) SGL 137, 69 + (I * 10), FILEL2$ NEXT I dX = 227 dY = 80 FOR I = 1 TO Ia FILE2$ = "C:\RPG\GRAPHICS\" IF Invtry(I) = 1 THEN FAO$ = "APL1.GRA" FILE$ = FILE2$ + FAO$ SGL dX, dY, FILE$ dX = dX + 10 IF dX = 277 THEN dX = 227: dY = dY + 10 NEXT I HSM = 1 VSM = 1 N = 1 DO KEYIN$ = INKEY$ IF HSM = 1 THEN MXL = NoW%: XoS = 0 IF HSM = 2 THEN MXL = NoS%: XoS = 90 LINE (43 + XoS, 71 + (VSM * 10))-(44 + XoS, 76 + (VSM * 10)), 9, B LINE (129 + XoS, 71 + (VSM * 10))-(128 + XoS, 76 + (VSM * 10)), 9, B IF KEYIN$ = CHR$(0) + "H" AND VSM > 1 THEN LINE (43 + XoS, 71 + (VSM * 10))-(44 + XoS, 76 + (VSM * 10)), 0, B LINE (129 + XoS, 71 + (VSM * 10))-(128 + XoS, 76 + (VSM * 10)), 0, B VSM = VSM - 1: N = 1 END IF IF KEYIN$ = CHR$(0) + "P" AND VSM < MXL THEN LINE (43 + XoS, 71 + (VSM * 10))-(44 + XoS, 76 + (VSM * 10)), 0, B LINE (129 + XoS, 71 + (VSM * 10))-(128 + XoS, 76 + (VSM * 10)), 0, B VSM = VSM + 1: N = 1 END IF IF KEYIN$ = CHR$(0) + "K" AND HSM > 1 THEN LINE (43 + XoS, 71 + (VSM * 10))-(44 + XoS, 76 + (VSM * 10)), 0, B LINE (129 + XoS, 71 + (VSM * 10))-(128 + XoS, 76 + (VSM * 10)), 0, B HSM = HSM - 1: VSM = 1: N = 1 END IF IF KEYIN$ = CHR$(0) + "M" AND HSM < 2 THEN LINE (43 + XoS, 71 + (VSM * 10))-(44 + XoS, 76 + (VSM * 10)), 0, B LINE (129 + XoS, 71 + (VSM * 10))-(128 + XoS, 76 + (VSM * 10)), 0, B HSM = HSM + 1: VSM = 1: N = 1 END IF IF N = 1 THEN LINE (47, 130)-(129, 136), 0, BF IF HSM = 1 THEN FILE$ = "C:\RPG\GRAPHICS\WPNS\SW" EP$ = STR$(WEAPON%(VSM)) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 6) OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WEPN$, ATKd, DFSd CLOSE GLL 47, 130, "ATK:" + STR$(ATKd) + " DFS:" + STR$(DFSd), 0 END IF IF HSM = 2 THEN IF SHIELD%(VSM) <> 0 THEN FILE$ = "C:\RPG\GRAPHICS\WPNS\SH" EP$ = STR$(SHIELD%(VSM)) + ".WEP" FILEL$ = FILE$ + MID$(EP$, 2, 6) OPEN FILEL$ FOR INPUT AS #3 INPUT #3, WEPN$, DFSd CLOSE GLL 47, 130, "DFS:" + STR$(DFSd), 0 END IF END IF N = 0 END IF IF LCASE$(KEYIN$) = "q" OR KEYIN$ = CHR$(27) THEN GOTO SKIPCRP LOOP UNTIL KEYIN$ = CHR$(13) IF HSM = 1 THEN WEOPON = WEAPON%(VSM) IF HSM = 2 THEN ARMOR = SHIELD%(VSM) 'SLEEP PUT (40, 60), GETBG1, PSET DRWGraphicsWindow DRWStats GOTO ssc SKIPCRP: PUT (40, 60), GETBG1, PSET ssc: END SUB FUNCTION MoveAble (mox, moy) SELECT CASE POINT(mox, moy) CASE 22 MoveAble = 1 CASE 23 MoveAble = 1 CASE 192 MoveAble = 1 CASE 193 MoveAble = 1 CASE 185 MoveAble = 1 CASE 20 MoveAble = 1 CASE 136 MoveAble = 1 CASE 140 MoveAble = 1 CASE 210 MoveAble = 1 CASE ELSE MoveAble = 0 END SELECT END FUNCTION SUB NewBox (text$, text2$, o1$, o2$, o3$, o4$, o5$) NoO = 1 GET (80, 60)-(240, 140), GETBG1 LINE (80, 60)-(240, 140), 18, B LINE (81, 61)-(239, 139), 25, BF LINE (82, 62)-(238, 138), 16, BF GLL 84, 62, "-----------:paused:-----------", 0 GLL 82, 76, text$, 0 GLL 82, 82, text2$, 0 GLL 83, 94, o1$, 0 GLL 83, 102, o2$, 0 GLL 83, 110, o3$, 0 GLL 83, 118, o4$, 0 GLL 83, 126, o5$, 0 IF o1$ = "" THEN GOTO SLEEPZ IF o2$ <> "" THEN NoO = 2 IF o3$ <> "" THEN NoO = 3 IF o4$ <> "" THEN NoO = 4 IF o5$ <> "" THEN NoO = 5 os = 1 DO KEYIN$ = INKEY$ LINE (82, 85 + (os * 8))-(238, 93 + (os * 8)), 9, B IF KEYIN$ = CHR$(0) + "H" AND os > 1 THEN LINE (82, 85 + (os * 8))-(238, 93 + (os * 8)), 0, B: os = os - 1 IF KEYIN$ = CHR$(0) + "P" AND os < NoO THEN LINE (82, 85 + (os * 8))-(238, 93 + (os * 8)), 0, B: os = os + 1 LOOP UNTIL KEYIN$ = CHR$(13) GOTO SKSLEEPZ SLEEPZ: SLEEP SKSLEEPZ: OSd = os PUT (80, 60), GETBG1, PSET END SUB SUB NewMesg (text$) LINE (0, 150)-(320, 165), 0, BF GLL 0, 150, text$, 0 END SUB SUB PUTA (pX, pY, Arrayn, D) FOR V = 1 TO D FOR H = 1 TO 10 IF Arrayn = 1 THEN IF Tre1(H, V) <> 0 THEN PSET (pX + H, pY + V), Tre1(H, V) ELSEIF Arrayn = 2 THEN IF Tre2(H, V) <> 0 THEN PSET (pX + H, pY + V), Tre2(H, V) ELSEIF Arrayn = 3 THEN IF Tre3(H, V) <> 0 THEN PSET (pX + H, pY + V), Tre3(H, V) ELSEIF Arrayn = 4 THEN IF Tlgrs1(H, V) <> 0 THEN PSET (pX + H, pY + V), Tlgrs1(H, V) END IF 'PSET (pX + H, pY + V), 4 NEXT H NEXT V END SUB SUB SetCharacters chrX(1) = 29 chrY(1) = 40 chrRace(1) = 3 chrName$(1) = "Goblin Warrior" chrWeapon(1) = 2 chrArmor(1) = 5 chrFace$(1) = "GOBLINF1" ' chrX(2) = 50 chrY(2) = 42 chrRace(2) = 3 chrName$(2) = "Goblin Warrior" chrWeapon(2) = 2 chrArmor(2) = 5 chrFace$(2) = "GOBLINF1" ' chrX(3) = 40 chrY(3) = 56 chrRace(3) = 3 chrName$(3) = "Goblin Warrior" chrWeapon(3) = 2 chrArmor(3) = 5 chrFace$(3) = "GOBLINF1" ' chrX(4) = 75 chrY(4) = 29 chrRace(4) = 8 chrName$(4) = "Horse" chrWeapon(4) = 0 chrArmor(4) = 0 chrFace$(4) = "HORSEF1" ' chrX(5) = 76 chrY(5) = 24 chrRace(5) = 1 chrName$(5) = "Bartender" chrWeapon(5) = 1 chrArmor(5) = 0 chrFace$(5) = "BEARDF1" ' chrX(6) = 80 chrY(6) = 24 chrRace(6) = 1 chrName$(6) = "Wizard" chrWeapon(6) = 1 chrArmor(6) = 0 chrFace$(6) = "WIZ2" ' chrX(7) = 123 chrY(7) = 79 chrRace(7) = 8 chrName$(7) = "Horse" chrWeapon(7) = 1 chrArmor(7) = 0 chrFace$(7) = "HORSEF1" ' chrX(8) = 123 chrY(8) = 76 chrRace(8) = 8 chrName$(8) = "Horse" chrWeapon(8) = 1 chrArmor(8) = 0 chrFace$(8) = "HORSEF1" END SUB SUB SGL (sglX, sglY, FILE$) OPEN FILE$ FOR INPUT AS #1 INPUT #1, flx, fly DIM cl(flx, fly) FOR yc = 1 TO fly FOR xc = 1 TO flx IF EOF(1) = -1 THEN GOTO EXITr: INPUT #1, cl(xc, yc) NEXT xc NEXT yc EXITr: CLOSE FOR yc = 1 TO fly FOR xc = 1 TO flx IF cl(xc, yc) = 257 OR cl(xc, yc) = 37 THEN GOTO SkipPixSGL1: PSET (xc + sglX, yc + sglY), cl(xc, yc) SkipPixSGL1: NEXT xc NEXT yc END SUB