Advertisement
Strahan

AD&D Character Sheet Generator v3.0

Dec 10th, 2018
2,875
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
GwBasic 56.90 KB | None | 0 0
  1. REM $DYNAMIC
  2. DECLARE SUB intro (a)
  3. DECLARE SUB closing (ak)
  4. COMMON SHARED erlv
  5. CLS : ln$ = STRING$(70, 196): DIM s$(100): DIM tmp$(250): ON ERROR GOTO 1000
  6. white = 15: yellow = 14: purple = 13: bred = 20: grey = 7: bgrey = 23
  7. cyan = 11: red = 12
  8.  
  9. CALL intro(0)
  10. 10 CLS
  11. COLOR red: PRINT TAB(29); "®þ¯ ";
  12. COLOR purple: PRINT "°±²Û";
  13. COLOR yellow: PRINT " Main Menu ";
  14. COLOR purple: PRINT "Û²±°";
  15. COLOR red: PRINT " ®þ¯": COLOR cyan, 0: PRINT : PRINT
  16.  s$(1) = " Generate a character           "
  17.  s$(2) = " View the current character     "
  18.  s$(3) = " Export data to port or file    "
  19.  s$(4) = " Credits                        "
  20.  s$(5) = " Clear out the memory           "
  21.  s$(6) = " Roll some ability scores       "
  22.  s$(7) = " Shell to DOS                   "
  23.  s$(8) = " Branch to a module             "
  24.  s$(9) = " Quit                           "
  25. s$(10) = " Change variables in memory     "
  26. s$(11) = " Restore a character from disk  "
  27. s$(12) = " Generate NPC                   "
  28. FOR xxx = 1 TO 12
  29.  PRINT TAB(31); s$(xxx)
  30. NEXT xxx
  31. IF LEFT$(na$, 1) = "*" THEN na$ = "N/A"
  32. IF LEN(na$) = 0 THEN na$ = "N/A"
  33. PRINT : PRINT : PRINT : PRINT : PRINT TAB(30); "Character in memory: ";
  34. COLOR red: PRINT na$: COLOR grey, 0
  35. PRINT TAB(34); "Your choice:";
  36. COLOR bgrey: PRINT "_": COLOR grey, 0
  37. l = 1: up = 3: uc = 31
  38. LOCATE l + 3, 31: COLOR 0, 7: PRINT s$(l): COLOR 7, 0
  39. 12 a$ = INKEY$: IF a$ = "" THEN 12
  40. IF ASC(a$) = 13 THEN COLOR 7, 0: GOTO runit
  41. IF UCASE$(a$) = "R" THEN COLOR grey: GOTO readinchar: GOTO 10
  42. IF UCASE$(a$) = "C" THEN COLOR grey: GOTO change: GOTO 10
  43. IF a$ = CHR$(0) + CHR$(80) AND l = 12 THEN w = l: l = 0: GOSUB update
  44. IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 13: GOSUB update
  45. IF a$ = CHR$(0) + CHR$(80) AND l < 12 THEN w = l: l = l + 1: GOSUB update
  46. IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update
  47. IF ASC(a$) = 50 AND l < 12 THEN w = l: l = l + 1: GOSUB update
  48. IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update
  49. GOTO 12
  50.  
  51.  
  52. 20 CLS
  53. PRINT TAB(14); "What method will you use for abilities:": PRINT : PRINT
  54. COLOR cyan
  55. PRINT TAB(11); "User will supply ability scores (ST, IQ, etc.)"
  56. tmp$(1) = " User will supply ability scores (ST, IQ, etc.)  "
  57. tmp$(2) = " Computer will randomize the ability scores.     "
  58. PRINT TAB(11); " Computer will randomize the ability scores."
  59. up = 3: uc = 11: COLOR 0, 7: LOCATE 4, 11: PRINT tmp$(1): COLOR 7, 0
  60. 812 a$ = INKEY$: IF a$ = "" THEN 812
  61. IF ASC(a$) = 13 AND l = 1 THEN COLOR 7, 0: GOTO 30
  62. IF ASC(a$) = 13 AND l = 2 THEN COLOR 7, 0: GOTO 25
  63. IF a$ = CHR$(0) + CHR$(80) AND l = 2 THEN w = l: l = 0: GOSUB update1
  64. IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 3: GOSUB update1
  65. IF a$ = CHR$(0) + CHR$(80) AND l < 2 THEN w = l: l = l + 1: GOSUB update1
  66. IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update1
  67. IF ASC(a$) = 50 AND l < 2 THEN w = l: l = l + 1: GOSUB update1
  68. IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update1
  69. GOTO 812
  70. 25 rg = 1
  71. 30  COLOR cyan: CLS
  72. PRINT TAB(24); "Do you want to : ": PRINT
  73. tmp$(1) = " Use the secondary skills system or    "
  74. tmp$(2) = " Use the non-weapon proficincy system  "
  75. PRINT TAB(18); tmp$(1)
  76. PRINT TAB(18); tmp$(2)
  77. up = 2: uc = 18: COLOR 0, 7: LOCATE 3, 18: PRINT tmp$(1): l = 1: COLOR 7, 0
  78. a: a$ = INKEY$: IF a$ = "" THEN GOTO a:
  79. IF ASC(a$) = 13 AND l = 1 THEN COLOR 7, 0: GOTO ab
  80. IF ASC(a$) = 13 AND l = 2 THEN COLOR 7, 0: GOTO ac
  81. IF a$ = CHR$(0) + CHR$(80) AND l = 2 THEN w = l: l = 0: GOSUB update1
  82. IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 3: GOSUB update1
  83. IF a$ = CHR$(0) + CHR$(80) AND l < 2 THEN w = l: l = l + 1: GOSUB update1
  84. IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update1
  85. IF ASC(a$) = 50 AND l < 2 THEN w = l: l = l + 1: GOSUB update1
  86. IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update1
  87. GOTO a:
  88. ab: ssk = 1
  89. COLOR grey: LOCATE 6, 16: INPUT "Should I generate random secondary skill(s)"; a$
  90. IF UCASE$(LEFT$(a$, 1)) = "Y" THEN sskb = 1
  91. ac:
  92. COLOR grey
  93. CLS : ln$ = STRING$(70, 196): LOCATE 11, 1: COLOR purple, 0: PRINT ln$: LOCATE 1, 1
  94. COLOR yellow, 0
  95. LOCATE 11, 1: COLOR purple: PRINT ln$: LOCATE 1, 1: COLOR yellow, 0
  96. PRINT "Name              :"
  97. PRINT "AC                :"
  98. PRINT "AL                :"
  99. PRINT "Race              :"
  100. PRINT "Class             :"
  101. PRINT "Level             :"
  102. PRINT "HD                :"
  103. PRINT "HP                :"
  104. PRINT "THAC0             :"
  105. PRINT "Move rate         :"
  106. COLOR purple, 0: PRINT ln$: COLOR yellow, 0
  107. PRINT "Hair color        :"
  108. PRINT "Eye color         :"
  109. PRINT "Weight            :"
  110. PRINT "Height            :"
  111. PRINT "Age               :"
  112. PRINT "Sex               :"
  113. PRINT "Family/Clan       :": COLOR grey, 0
  114. LOCATE 1, 20: INPUT "", na$
  115. IF na$ = "" THEN GOTO 10
  116. LOCATE 2, 20: INPUT "", ac
  117. LOCATE 3, 20: INPUT "", al$
  118. LOCATE 4, 20: INPUT "", ra$
  119. LOCATE 19, 1: PRINT "Enter class ID Number:"
  120. LOCATE 20, 1: PRINT "1 - Fighter         2 - Mage              3 - Priest"
  121. LOCATE 21, 1: PRINT "4 - Rogue           5 - Paladin           6 - Ranger"
  122. LOCATE 22, 1: PRINT "7 - Druid           8 - Bard              9 - Other"
  123. INPUT cl
  124. IF cl = 5 THEN LOCATE 5, 20: PRINT "Paladin": cl$ = "Paladin": cl = 1: ocl = 5: GOTO rest
  125. IF cl = 6 THEN LOCATE 5, 20: PRINT "Ranger": cl$ = "Ranger": cl = 1: ocl = 6: GOTO rest
  126. IF cl = 7 THEN LOCATE 5, 20: PRINT "Druid": cl$ = "Druid": cl = 3: ocl = 7: GOTO rest
  127. IF cl = 8 THEN LOCATE 5, 20: PRINT "Bard": cl$ = "Bard": cl = 4: ocl = 8: GOTO rest
  128. IF cl = 1 THEN LOCATE 5, 20: PRINT "Fighter": cl$ = "Fighter": GOTO rest
  129. IF cl = 2 THEN LOCATE 5, 20: PRINT "Mage": cl$ = "Mage": GOTO rest
  130. IF cl = 3 THEN LOCATE 5, 20: PRINT "Priest": cl$ = "Priest": GOTO rest
  131. IF cl = 4 THEN LOCATE 5, 20: PRINT "Rogue": cl$ = "Rogue": l$ = l$ + "Thieves' Cant": GOTO rest
  132. IF cl = 9 THEN cl = 5: GOTO inpcl
  133. GOTO rest
  134. inpcl:
  135. FOR x = 19 TO 23
  136. LOCATE x, 1: PRINT "                                                     "
  137. NEXT x
  138. LOCATE 5, 20: INPUT "", cl$
  139. rest:
  140. GOSUB ocskill
  141. FOR x = 19 TO 23
  142. LOCATE x, 1: PRINT "                                                     "
  143. NEXT x
  144. LOCATE 6, 20: INPUT "", lv$
  145. IF cl <> 5 AND VAL(lv$) > 20 THEN GOTO inpdata
  146. IF cl = 5 THEN GOTO inpdata
  147. GOSUB 180
  148. IF th < 1 THEN th = 1
  149. LOCATE 7, 20: PRINT LTRIM$(STR$(hda)); " +"; hdb; " (d"; hdc; ")"
  150.  
  151. GOTO ack
  152. inpdata:
  153. LOCATE 7, 20: INPUT "", hda: LOCATE 7, 24: PRINT "+ ";
  154. INPUT "", hdb
  155. LOCATE 7, 32: PRINT "Die roll (d";
  156. INPUT "", hdc
  157. LOCATE 7, 47: PRINT ")"
  158. LOCATE 7, 20: PRINT SPC(50); : LOCATE 7, 20: PRINT LTRIM$(STR$(hda)); " + "; LTRIM$(STR$(hdb)); " (d"; LTRIM$(STR$(hdc)); ")"
  159.  
  160. ack:
  161. LOCATE 20, 1: PRINT "Should I generate HP for you?"
  162. INPUT a$
  163. LOCATE 20, 1: PRINT "                                  "
  164. LOCATE 21, 1: PRINT "              "
  165. IF a$ = "n" OR a$ = "N" THEN LOCATE 8, 20: INPUT "", hp
  166. aa:
  167. IF hpr = 1 THEN hp = 0: hde = 0
  168. IF cl <> 5 THEN GOTO otherclhp
  169. FOR hit = 1 TO hda
  170.  RANDOMIZE TIMER
  171.  hdd = INT(RND(1) * hdc)
  172.  hde = hde + hdd
  173. NEXT hit
  174. hde = hde + hdb
  175. hp = hde: LOCATE 8, 20: PRINT LTRIM$(STR$(hp))
  176. IF hdr = 1 THEN GOTO ar
  177. GOTO thac
  178.  
  179. IF cl = 0 THEN LOCATE 7, 20: PRINT SPC(50); : LOCATE 7, 20: PRINT LTRIM$(STR$(hda)); " +"; hdb; "  (d"; hdc; " )"
  180. IF cl = 5 THEN LOCATE 8, 20: INPUT "", hp: GOTO thac
  181.  
  182. otherclhp:
  183. FOR hit = 1 TO hda
  184.  RANDOMIZE TIMER
  185.  hdd = INT(RND(1) * hdc)
  186.  hde = hde + hdd
  187. NEXT hit
  188. hde = hde + hdb
  189. hp = hde: LOCATE 8, 20: PRINT LTRIM$(STR$(hp))
  190. thac:
  191. IF cl > 1 AND cl < 5 AND VAL(lv$) > 20 THEN LOCATE 9, 20: INPUT "", th
  192. IF cl = 5 THEN LOCATE 9, 20: INPUT "", th ELSE LOCATE 9, 20: IF th < 1 THEN th = 1: PRINT LTRIM$(STR$(th))
  193. IF cl <> 5 THEN LOCATE 9, 20: PRINT LTRIM$(STR$(th))
  194. LOCATE 10, 20: INPUT "", mr$
  195. ar:
  196. LOCATE 20, 1: PRINT "Is this OK (y/n/hp)?"
  197. INPUT a$
  198. IF UCASE$(a$) = "HP" THEN hpr = 1: GOTO aa
  199. IF UCASE$(a$) = "N" GOTO ac
  200. LOCATE 20, 1: PRINT "                               "
  201. LOCATE 21, 1: PRINT "                               "
  202. 31 LOCATE 12, 20: INPUT "", hc$
  203. LOCATE 13, 20: INPUT "", ec$
  204. LOCATE 14, 20: INPUT "", wt$
  205. LOCATE 15, 20: INPUT "", ht$
  206. LOCATE 16, 20: INPUT "", age$
  207. LOCATE 17, 20: INPUT "", sex$
  208. LOCATE 18, 20: INPUT "", fc$
  209. LOCATE 20, 1: PRINT "Is this OK (y/n)?"
  210. INPUT a$
  211. IF a$ = "n" OR a$ = "N" THEN 31
  212. 35 CLS
  213. COLOR yellow, 0
  214. PRINT ""
  215. PRINT "Liege/Patron      :"
  216. PRINT "Title/rank        :"
  217. IF rg = 1 THEN COLOR purple: PRINT ln$: COLOR yellow: GOTO grrr
  218. PRINT
  219. grrr:
  220. IF ssk = 1 THEN PRINT "Secondary skill   :" ELSE PRINT
  221. IF rg = 1 THEN 36
  222. COLOR purple, 0: PRINT ln$: COLOR grey, 0
  223. PRINT "ABILITIES SECTION"
  224. COLOR purple, 0: PRINT ln$: COLOR yellow, 0
  225. PRINT "Strength          :"
  226. PRINT "Dexeterity        :"
  227. PRINT "Constitution      :"
  228. PRINT "Intelligence      :"
  229. PRINT "Wisdom            :"
  230. PRINT "Charisma          :"
  231. COLOR purple, 0: PRINT ln$: COLOR grey, 0
  232. 36 LOCATE 2, 20: INPUT "", lp$
  233. LOCATE 3, 20: INPUT "", t$
  234. IF ssk = 1 AND sskb = 0 THEN LOCATE 5, 20: INPUT "", ss$
  235. IF ssk = 1 AND sskb = 1 THEN GOSUB secskill: LOCATE 5, 20: PRINT ss$
  236. IF rg = 0 GOTO 37
  237.  
  238. stat:
  239. RANDOMIZE TIMER
  240. st:
  241.  st = INT(RND * 19)
  242.  IF st < 8 GOTO st
  243. st1:
  244.  xst = INT(RND * 100)
  245. dx:
  246.  dx = INT(RND * 19)
  247.  IF dx < 8 GOTO dx
  248. co:
  249.  co = INT(RND * 19)
  250.  IF co < 8 GOTO co
  251. iq:
  252.  iq = INT(RND * 19)
  253.  IF iq < 8 GOTO iq
  254. wi:
  255.  wi = INT(RND * 19)
  256.  IF wi < 8 GOTO wi
  257. ch:
  258.  ch = INT(RND * 19)
  259.  IF ch < 8 GOTO ch
  260. IF cl$ = "Fighter" AND st < 9 THEN GOTO stat
  261. IF cl$ = "Paladin" AND st < 12 THEN GOTO stat
  262. IF cl$ = "Paladin" AND co < 9 THEN GOTO stat
  263. IF cl$ = "Paladin" AND wi < 13 THEN GOTO stat
  264. IF cl$ = "Paladin" AND ch < 17 THEN GOTO stat
  265. IF cl$ = "Ranger" AND st < 13 THEN GOTO stat
  266. IF cl$ = "Ranger" AND dx < 13 THEN GOTO stat
  267. IF cl$ = "Ranger" AND co < 14 THEN GOTO stat
  268. IF cl$ = "Ranger" AND wi < 14 THEN GOTO stat
  269. IF cl$ = "Mage" AND iq < 9 THEN GOTO stat
  270. IF cl$ = "Priest" AND wi < 9 THEN GOTO stat
  271. IF cl$ = "Druid" AND wi < 12 THEN GOTO stat
  272. IF cl$ = "Druid" AND ch < 15 THEN GOTO stat
  273. IF cl$ = "Thief" AND dx < 9 THEN GOTO stat
  274. IF cl$ = "Bard" AND dx < 12 THEN GOTO stat
  275. IF cl$ = "Bard" AND iq < 13 THEN GOTO stat
  276. IF cl$ = "Bard" AND ch < 15 THEN GOTO stat
  277. LOCATE 16, 1: PRINT "Is this OK (y/n)?"
  278. INPUT a$
  279. IF a$ = "n" OR a$ = "N" THEN 35
  280. GOTO 38
  281.  
  282. 37 LOCATE 9, 20: INPUT st
  283. IF st = 18 THEN LOCATE 16, 1: INPUT "Exceptional strength value (1-100):"; xst
  284. LOCATE 16, 1: PRINT "                                                    "
  285. LOCATE 10, 20: INPUT dx
  286. LOCATE 11, 20: INPUT co
  287. LOCATE 12, 20: INPUT iq
  288. LOCATE 13, 20: INPUT wi
  289. LOCATE 14, 20: INPUT ch
  290. ON cl GOTO 140, 150, 160, 170
  291. sokay:
  292. LOCATE 16, 1: PRINT "Is this OK (y/n)?"
  293. INPUT a$
  294. IF a$ = "n" OR a$ = "N" THEN 35
  295. 38 GOSUB 90: GOSUB 130: CLS : COLOR cyan: PRINT "Saving Throws:"
  296. PRINT "Save versus-": COLOR yellow
  297. PRINT " Pa/Po/Death Mag. :"
  298. PRINT " Rod/Staves/Wands :"
  299. PRINT " Petrif/Paralyse  :"
  300. PRINT " Breath Weapon    :"
  301. PRINT " Spell            :"
  302. COLOR purple: PRINT ln$: COLOR cyan
  303. PRINT "Languages         :": COLOR grey
  304. GOSUB savthrw:
  305. IF cl = 5 THEN GOTO 42
  306. LOCATE 3, 20: PRINT ppd
  307. LOCATE 4, 20: PRINT rsw
  308. LOCATE 5, 20: PRINT pp
  309. LOCATE 6, 20: PRINT bw
  310. LOCATE 7, 20: PRINT spl
  311. langent:
  312. GOSUB lang1
  313. FOR x = 10 TO 24
  314. LOCATE x, 1
  315. PRINT SPC(78);
  316. NEXT x
  317. LOCATE 9, 20: PRINT l$
  318. LOCATE 12, 1: PRINT "Hit ";
  319. COLOR red: PRINT "<ENTER> ";
  320. COLOR grey: PRINT "to continue"
  321. INPUT a$
  322. 40 CLS : COLOR bred
  323. PRINT TAB(22); "Character generation complete.": COLOR grey: IF st <> 18 THEN xst = 0
  324. IF coa <> 0 THEN PRINT TAB(24); "Good con raises HP by ";
  325. IF coa <> 0 THEN COLOR red: PRINT coa: COLOR grey
  326. IF dxc <> 0 THEN PRINT TAB(24); "Good dex lowers AC by ";
  327. IF dxc <> 0 THEN COLOR red: PRINT dxc: COLOR grey
  328. hp = hp + coa: ac = ac + dxc
  329. GOTO 5
  330. 42 LOCATE 3, 20: INPUT ppd
  331. LOCATE 4, 20: INPUT rsw
  332. LOCATE 5, 20: INPUT pp
  333. LOCATE 6, 20: INPUT bw
  334. LOCATE 7, 20: INPUT spl
  335. LOCATE 11, 1: PRINT "Is this OK (y/n)?"
  336. INPUT a$
  337. IF a$ = "n" OR a$ = "N" GOTO 38
  338. LOCATE 11, 1: PRINT SPC(30); : LOCATE 12, 1: PRINT SPC(30); : GOSUB lang1
  339. GOTO langent:
  340.  
  341.  
  342. lang1:
  343. IF chst = 1 THEN LOCATE 13, 1: COLOR purple: PRINT ln$: COLOR yellow: chst = 0
  344. l$ = ""
  345. IF cl = 4 THEN nol = 1: l$ = "Theives' Cant"
  346. lang:
  347. IF nol = (iqa + 1) THEN LOCATE 12, 1: PRINT "YOU'VE SELECTED ALL YOUR LANGUAGES AVAILIBLE TO YOUR IQ": GOSUB damn: RETURN
  348. LOCATE 16, 1: COLOR purple: PRINT "Languages known:"; l$: COLOR cyan
  349. PRINT "1. Common           6. Kobold"
  350. PRINT "2. Elven            7. Draconian"
  351. PRINT "3. Dwarven          8. Minotaur"
  352. PRINT "4. Dragon           9. Other"
  353. PRINT "5. Goblinoid       10. Done": PRINT : COLOR purple
  354. PRINT "Language:";
  355. nol = nol + 1
  356. IF nol = (iqa + 1) THEN LOCATE 12, 1: PRINT "YOU'VE SELECTED ALL YOUR LANGUAGES AVAILIBLE TO YOUR IQ": GOSUB damn: RETURN
  357. COLOR grey: INPUT a$
  358. a = VAL(a$)
  359. IF a = 1 THEN l$ = l$ + "/Common": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  360. IF a = 2 THEN l$ = l$ + "/Elven": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  361. IF a = 3 THEN l$ = l$ + "/Dwarven": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  362. IF a = 4 THEN l$ = l$ + "/Dragon": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  363. IF a = 5 THEN l$ = l$ + "/Goblinoid": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  364. IF a = 6 THEN l$ = l$ + "/Kobold": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  365. IF a = 7 THEN l$ = l$ + "/Draconian": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  366. IF a = 8 THEN l$ = l$ + "/Minotaur": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  367. IF a = 9 THEN LOCATE 23, 1: INPUT "Other language:"; ol$
  368. IF a = 9 THEN l$ = l$ + "/": l$ = l$ + ol$: LOCATE 23, 1: PRINT SPC(70); : LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  369. IF a = 10 THEN GOTO endoflang
  370. LOCATE 24, 1: PRINT SPC(70); : GOTO lang
  371. endoflang:
  372. FOR x = 16 TO 24
  373. LOCATE x, 1: PRINT SPC(70);
  374. NEXT x
  375. RETURN
  376.  
  377.  
  378. 50 CLS
  379. IF st + dx + co + iq + wi + ch = 0 THEN PRINT TAB(25); "No  character in memory.": PRINT : GOTO 5
  380. IF na$ = "N/A" THEN na$ = "*Nameless One*"
  381. PRINT "Abbrievated View": PRINT
  382. PRINT "Name:                         AC:       THAC0:      AL:"
  383. PRINT "Class:                        LV:       HP:         HD:"
  384. PRINT "Race:                         Family/Clan:"
  385. PRINT "                              Age:       Height:          Weight:"
  386. PRINT "Hair color:                   Eye color:            Sex:"
  387. PRINT "Title:                        Move rate:"
  388. PRINT "Liege/Patron:"
  389. PRINT "Langauges:"
  390. IF ssk = 1 THEN PRINT "Secondary skill:" ELSE PRINT
  391. PRINT ln$
  392. PRINT "Str:     HP:      DA:         WA:       MP:        OD:        BB/LG:"
  393. PRINT "Dex:     RA:      MAA:        DA:"
  394. PRINT "Con:     HPA:     SS:         RS:       PS:        R:"
  395. PRINT "Int:     #L:      SL:         CLS:      M#SL:      SI:"
  396. PRINT "Wis:     MDA:     BS:         CSF:      SI: See notes section"
  397. PRINT "Cha:     M#H:     LB:         RA:"
  398. PRINT ln$
  399. LOCATE 3, 7: PRINT na$
  400. LOCATE 3, 34: PRINT ac
  401. LOCATE 3, 47: PRINT th
  402. LOCATE 3, 57: PRINT al$
  403. LOCATE 4, 8: PRINT cl$
  404. LOCATE 4, 34: PRINT lv$
  405. LOCATE 4, 44: PRINT hp
  406. LOCATE 4, 57: PRINT hda;
  407. PRINT " + "; hdb
  408. LOCATE 5, 7: PRINT ra$
  409. LOCATE 5, 44: PRINT fc$
  410. LOCATE 9, 15: PRINT lp$
  411. LOCATE 6, 36: PRINT age$
  412. LOCATE 6, 50: PRINT ht$
  413. LOCATE 6, 67: PRINT wt$
  414. LOCATE 7, 13: PRINT hc$
  415. LOCATE 7, 42: PRINT ec$
  416. LOCATE 7, 58: PRINT sex$
  417. IF ssk = 1 THEN LOCATE 11, 18: PRINT ss$
  418. LOCATE 8, 42: PRINT mr$
  419. LOCATE 10, 12: PRINT l$
  420. LOCATE 8, 8: PRINT t$
  421. LOCATE 13, 5: PRINT st
  422. IF st = 18 THEN LOCATE 13, 8: PRINT "/";
  423. LOCATE 14, 5: PRINT dx
  424. LOCATE 15, 5: PRINT co
  425. LOCATE 16, 5: PRINT iq
  426. LOCATE 17, 5: PRINT wi
  427. LOCATE 18, 5: PRINT ch
  428. LOCATE 13, 14: PRINT sta
  429. LOCATE 13, 23: PRINT stb
  430. LOCATE 13, 35: PRINT stc
  431. LOCATE 13, 45: PRINT std
  432. LOCATE 13, 56: PRINT ste$
  433. LOCATE 13, 71: PRINT stf
  434. LOCATE 14, 14: PRINT dxa
  435. LOCATE 14, 24: PRINT dxb
  436. LOCATE 14, 35: PRINT dxc
  437. LOCATE 15, 15: PRINT coa
  438. LOCATE 15, 23: PRINT cob
  439. LOCATE 15, 35: PRINT coc
  440. LOCATE 15, 45: PRINT cod
  441. LOCATE 15, 57: PRINT coe$
  442. LOCATE 16, 14: PRINT iqa
  443. LOCATE 16, 23: PRINT iqb
  444. LOCATE 16, 36: PRINT iqc
  445. LOCATE 16, 47: PRINT iqd$
  446. LOCATE 16, 56: PRINT iqe$
  447. LOCATE 17, 15: PRINT wia
  448. LOCATE 17, 23: PRINT wib$
  449. LOCATE 17, 36: PRINT wic
  450. LOCATE 18, 15: PRINT cha
  451. LOCATE 18, 23: PRINT chb
  452. LOCATE 18, 35: PRINT chc
  453. IF na$ = "*Nameless One*" THEN na$ = "N/A"
  454. 5 PRINT : PRINT "Press any key to continue......": WHILE INKEY$ = "": WEND: GOTO 10
  455.  
  456.  
  457. 60 CLS
  458. IF st + dx + co + iq + wi + ch = 0 THEN PRINT TAB(25); "No  character in memory.": PRINT : GOTO 5
  459. PRINT "Output as (";
  460. COLOR white: PRINT "A";
  461. COLOR grey: PRINT ")SCII data or CSHEET (";
  462. COLOR white: PRINT "R";
  463. COLOR grey: PRINT ")etrievable data ";
  464. INPUT a$
  465. IF UCASE$(a$) = "R" THEN GOTO outputasdat:
  466. CLS
  467. PRINT "Export data to what port/file:"
  468. INPUT P$
  469. IF UCASE$(LEFT$(fi$, 3)) = "" GOTO 10
  470. OPEN P$ FOR OUTPUT AS #1
  471. PRINT #1, "                                              ************************"
  472. PRINT #1, "        Advanced Dungeon's & Dragons          *                      *"
  473. PRINT #1, "         Character Sheet  Generator           *                      *"
  474. PRINT #1, "                                              *                      *"
  475. PRINT #1, "        Player name________________________   *                      *"
  476. FOR x = 1 TO 8
  477. PRINT #1, "                                              *                      *"
  478. NEXT x
  479. PRINT #1, "                                              ************************"
  480. PRINT #1, "                                                  Character Sketch"
  481. PRINT #1, ""
  482. PRINT #1, ln$
  483. PRINT #1, USING "Name:\                        \"; na$;
  484. PRINT #1, USING "AC: ###"; ac;
  485. PRINT #1, USING "  THAC0: ##"; th;
  486. PRINT #1, USING "  AL:\  \"; al$
  487. PRINT #1, USING "Class:\                       \"; cl$;
  488. PRINT #1, USING "LV: \ \"; lv$;
  489. PRINT #1, USING "  HP: ####"; hp;
  490. PRINT #1, USING "  HD: ###"; hda;
  491. PRINT #1, USING "+ ###"; hdb
  492. PRINT #1, USING "Race:\                       \"; ra$;
  493. PRINT #1, USING " Family/Clan: \                          \"; fc$
  494. PRINT #1, USING "Liege/Patron: \               \"; lp$;
  495. PRINT #1, USING "Age: \    \"; age$;
  496. PRINT #1, USING "Height: \     \"; ht$;
  497. PRINT #1, USING " Weight: \     \"; wt$
  498. PRINT #1, USING "Hair color: \                \"; hc$;
  499. PRINT #1, USING " Eye color: \             \"; ec$;
  500. PRINT #1, USING "Sex:\      \"; sex$
  501. IF ssk = 1 THEN PRINT #1, USING "Secondary skill: \                  \"; ss$;
  502. PRINT #1, USING "Move rate: \            \"; mr$
  503. PRINT #1, "Langauges:"; l$
  504. PRINT #1, ln$
  505. PRINT #1, USING "Str: ##"; st;
  506. IF st = 18 THEN PRINT #1, " ("; xst; ")";
  507. PRINT #1, "   HP: "; sta;
  508. PRINT #1, " DA:"; stb;
  509. PRINT #1, " WA:"; stc;
  510. PRINT #1, " MP:"; std;
  511. PRINT #1, " OD:"; ste$;
  512. PRINT #1, " BB/LG:"; stf
  513. PRINT #1, USING "Dex: ##"; dx;
  514. PRINT #1, "   RA:"; dxa;
  515. PRINT #1, " MAA:"; dxb;
  516. PRINT #1, " DA:"; dxc
  517. PRINT #1, USING "Con: ##"; co;
  518. PRINT #1, "   HPA:"; coa;
  519. PRINT #1, " SS:"; cob;
  520. PRINT #1, " RS:"; coc;
  521. PRINT #1, " PS:"; cod;
  522. PRINT #1, " R:"; coe$
  523. PRINT #1, USING "Int: ##"; iq;
  524. PRINT #1, "   #L:"; iqa;
  525. PRINT #1, " SL:"; iqb;
  526. PRINT #1, " CLS:"; iqc;
  527. PRINT #1, " M#SL:"; iqd$;
  528. PRINT #1, " SI:"; ide$
  529. PRINT #1, USING "Wis: ##"; wi;
  530. PRINT #1, "   MDA:"; wia;
  531. PRINT #1, " BS:"; wib$;
  532. PRINT #1, " CSF:"; wic;
  533. PRINT #1, " SI: See notes section"
  534. PRINT #1, USING "Cha: ##"; ch;
  535. PRINT #1, "   M#H:"; cha;
  536. PRINT #1, " LB:"; chb;
  537. PRINT #1, " RA:"; chc
  538. PRINT #1, ln$
  539. PRINT #1, "Saving Throws:"
  540. PRINT #1, ""
  541. PRINT #1, "Save versus="
  542. PRINT #1, " Para/Pois/Death magic:"; ppd
  543. PRINT #1, " Petrif/Polymorph     :"; pp
  544. PRINT #1, " Spells               :"; spl
  545. PRINT #1, " Rods/Staves/Wands    :"; rsw
  546. PRINT #1, " Breath Weapon        :"; bw
  547. PRINT #1, ""
  548. PRINT #1, "Experience:                            XP/Next LV:"
  549. PRINT #1, ""
  550. PRINT #1, "PP:               GP:              EP:"
  551. PRINT #1, ""
  552. PRINT #1, "SP:               CP:              GEMS:"
  553. PRINT #1, ""
  554. PRINT #1, "*      WEAPON                 *  DMG  * MOD * WGT * SPD * TYPE * FIRE RATE *"
  555. PRINT #1, "****************************************************************************"
  556. FOR x = 1 TO 10
  557. PRINT #1, "*                             *       *     *     *     *      *           *"
  558. NEXT x
  559. PRINT #1, "****************************************************************************"
  560. FOR x = 1 TO 6
  561. PRINT #1, ""
  562. NEXT x
  563. PRINT #1, "*             ITEM           *  WT  **             ITEM           *  WT  *"
  564. PRINT #1, "**************************************************************************"
  565. FOR x = 1 TO 18
  566. PRINT #1, "*                            *      **                            *      *"
  567. NEXT x
  568. PRINT #1, "**************************************************************************"
  569. PRINT #1, ""
  570. IF ssk = 1 GOTO printer1:
  571. PRINT #1, "*    PROFICINCY       * REV ABIL * MOD **    PROFICINCY     * REV ABIL * MOD *"
  572. PRINT #1, "******************************************************************************"
  573. FOR x = 1 TO 13
  574. PRINT #1, "*                     *          *     **                   *          *     *"
  575. NEXT x
  576. PRINT #1, "******************************************************************************"
  577. printer1:
  578. PRINT #1, "Weapon Proficincies:"
  579. FOR x = 1 TO 7
  580. PRINT #1, ""
  581. NEXT x
  582. PRINT #1, "NOTES"
  583. PRINT #1, ln$
  584. IF LEN(ock$(1)) = 0 GOTO skipit
  585. FOR xxx = 1 TO 10
  586.  PRINT #1, ock$(xxx)
  587. NEXT xxx
  588. skipit:
  589. FOR xyz = 1 TO 7
  590. PRINT #1, wid$(xyz)
  591. NEXT xyz
  592. IF ssk = 0 THEN bba = 14
  593. IF ssk = 1 THEN bbs = 20
  594. FOR bb = 1 TO bba
  595. PRINT #1, ""
  596. NEXT bb
  597. PRINT #1, ""
  598. PRINT #1, ">THIS SHEET GENERATED WITH THE AD&D CHARACTER SHEET GENERATOR, BY STRAHAN<"
  599. PRINT #1, "-= SHEET GENERATED ON "; DATE$; " AT "; TIME$; " =-"
  600. CLOSE #1: GOTO 5
  601.  
  602.  
  603. 70 CLS
  604. PRINT " Greetings. This program was made mainly to supplement my role playing"
  605. PRINT "hobby. I like to design stuff, and after seeing alot of crappy c-sheet"
  606. PRINT "generators and even a few good ones, I decided I'd make one too.": PRINT
  607. PRINT " CSheet is not the best, but I think it offers the most control over"
  608. PRINT "your character then the others do. If you reeeeealy want that Chaotic"
  609. PRINT "Evil, 204th lv Dwarf Paladin, then so be it. (Most DMs won't like it,"
  610. PRINT "one I am thinking of inparticular would label you a 'power gamer' and"
  611. PRINT "have you killed, but you're the boss!)"
  612. PRINT
  613. PRINT "I am currently attempting to figure out how to get the printer error"
  614. PRINT "routines down pat so be forewarned: If your printer goes nuts when"
  615. PRINT "trying to print, odds are you just LOST your character in the memory."
  616. PRINT "For Good, Forever, Until God kisses Satan and the Incarnations applaud,"
  617. PRINT "etc... Moral: Save before printing."
  618. PRINT : GOSUB damn
  619. CLS : PRINT
  620. PRINT ""
  621. PRINT "                           Program specs:": PRINT
  622. PRINT "                 Author  : Strahan"
  623. PRINT "                 Contact : Strahan on The Armoury BBS (846-4308)"
  624. PRINT "                           or Ken on Fido node 1:270/614"
  625. PRINT "                 Revised : August 6, 1990"
  626. PRINT "                 Language: QuickBasic 4.5"
  627. PRINT "                 Platform: MS-DOS/PC-DOS Based operating systems"
  628. GOTO 5
  629.  
  630.  
  631. 80 CLS
  632. PRINT "Fare well, and thanks for using an RPGC Sponsored Product!"
  633. PRINT
  634. END
  635.  
  636.  
  637. 90 SELECT CASE wi
  638.  CASE 19
  639.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  640.   RETURN
  641.  CASE 20
  642.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  643.   wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
  644.   RETURN
  645.  CASE 21
  646.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  647.   wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
  648.   wid$(3) = "Fear"
  649.   RETURN
  650.  CASE 22
  651.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  652.   wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
  653.   wid$(3) = "Fear"
  654.   wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
  655.   RETURN
  656.  CASE 23
  657.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  658.   wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
  659.   wid$(3) = "Fear"
  660.   wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
  661.   wid$(5) = "Chaos, Feeblemind, Hold monster, Magic Jar, Quest"
  662.   RETURN
  663.  CASE 24
  664.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  665.   wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
  666.   wid$(3) = "Fear"
  667.   wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
  668.   wid$(5) = "Chaos, Feeblemind, Hold monster, Magic Jar, Quest"
  669.   wid$(6) = "Geas, Mass suggestion, Rod of rulership"
  670.   RETURN
  671.  CASE 25
  672.   wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
  673.   wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
  674.   wid$(3) = "Fear"
  675.   wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
  676.   wid$(5) = "Chaos, Feeblemind, Hold monster, Magic Jar, Quest"
  677.   wid$(6) = "Geas, Mass suggestion, Rod of rulership"
  678.   wid$(7) = "Antipathy/Sympathy, Death spell, Mass charm"
  679.   RETURN
  680. END SELECT: RETURN
  681.  
  682. 100 CLEAR
  683. white = 15: yellow = 14: purple = 13: bred = 20: grey = 7: bgrey = 23
  684. cyan = 11: red = 12
  685. COLOR grey: LOCATE 18, 46: PRINT "_": LOCATE 18, 1: COLOR red
  686. PRINT TAB(24); "Memory contents have been cleared out.": COLOR grey
  687. FOR tme = 1 TO 5000: NEXT tme: GOTO 10
  688.  
  689. 110 CLS
  690. COLOR purple
  691. PRINT "Rolling......................": PRINT : PRINT : COLOR yellow
  692. RANDOMIZE TIMER
  693. sta:
  694.  sta = INT(RND * 19)
  695.  IF sta < 8 GOTO sta
  696. st1a:
  697.  xsta = INT(RND * 100)
  698.  
  699. dxa:
  700.  dxa = INT(RND * 19)
  701.  IF dxa < 8 GOTO dxa
  702.  
  703. coa:
  704.  coa = INT(RND * 19)
  705.  IF coa < 8 GOTO coa
  706.  
  707. iqa:
  708.  iqa = INT(RND * 19)
  709.  IF iqa < 8 GOTO iqa
  710.  
  711. wia:
  712.  wia = INT(RND * 19)
  713.  IF wia < 8 GOTO wia
  714.  
  715. cha:
  716.  cha = INT(RND * 19)
  717.  IF cha < 8 GOTO cha
  718.  
  719. PRINT "Strength          : ";
  720. COLOR red: PRINT sta: COLOR yellow
  721. IF sta = 18 THEN LOCATE 4, 24: PRINT "("; xsta; ")"
  722. PRINT "Dexterity         : ";
  723. COLOR red: PRINT dxa: COLOR yellow
  724. PRINT "Constitution      : ";
  725. COLOR red: PRINT coa: COLOR yellow
  726. PRINT "Intelligence      : ";
  727. COLOR red: PRINT iqa: COLOR yellow
  728. PRINT "Wisdom            : ";
  729. COLOR red: PRINT wia: COLOR yellow
  730. PRINT "Charisma          : ";
  731. COLOR red: PRINT cha: COLOR yellow
  732. GOTO 5
  733.  
  734.  
  735. 120 CLS
  736. PRINT
  737. PRINT "(S)hell to DOS or just (E)xecute DOS command:"
  738. INPUT a$
  739. IF a$ = "s" OR a$ = "S" GOTO 125
  740. PRINT "Enter command(s):"
  741. INPUT co$
  742. SHELL co$
  743. GOTO 5
  744. 125 CLS : PRINT "Type EXIT to return to CSHEET"
  745. SHELL
  746. GOTO 5
  747.  
  748. 130 CLS
  749. IF st = 1 THEN sta = -5: stb = -4: stc = 1: std = 3: ste$ = "1": stf = 0
  750. IF st = 2 THEN sta = -3: stb = -2: stc = 1: std = 5: ste$ = "1": stf = 0
  751. IF st = 3 THEN sta = -3: stb = -1: stc = 5: std = 10: ste$ = "2": stf = 0
  752. IF st = 4 OR st = 5 THEN sta = -2: stb = -1: stc = 10: std = 25: ste$ = "3": stf = 0
  753. IF st = 6 OR st = 7 THEN sta = -1: stb = 0: stc = 20: std = 55: ste$ = "4": stf = 0
  754. IF st = 8 OR st = 9 THEN sta = 0: stb = 0: stc = 35: std = 90: ste$ = "5": stf = 1
  755. IF st = 10 OR st = 11 THEN sta = 0: stb = 0: stc = 40: std = 115: ste$ = "6": stf = 2
  756. IF st = 12 OR st = 13 THEN sta = 0: stb = 0: stc = 45: std = 140: ste$ = "7": stf = 4
  757. IF st = 14 OR st = 15 THEN sta = 0: stb = 0: stc = 55: std = 170: ste$ = "8": stf = 7
  758. IF st = 16 THEN sta = 0: stb = 1: stc = 70: std = 195: ste$ = "9": stf = 10
  759. IF st = 17 THEN sta = 1: stb = 1: stc = 85: std = 220: ste$ = "10": stf = 13
  760. IF st = 18 GOTO sttest
  761. IF st = 19 THEN sta = 3: stb = 7: stc = 485: std = 640: ste$ = "16(8)": stf = 50
  762. IF st = 20 THEN sta = 3: stb = 8: stc = 535: std = 700: ste$ = "17(10)": stf = 60
  763. IF st = 21 THEN sta = 4: stb = 9: stc = 635: std = 810: ste$ = "17(12)": stf = 70
  764. IF st = 22 THEN sta = 4: stb = 10: stc = 785: std = 970: ste$ = "18(14)": stf = 80
  765. IF st = 23 THEN sta = 5: stb = 11: stc = 935: std = 1130: ste$ = "18(16)": stf = 90
  766. IF st = 24 THEN sta = 6: stb = 12: stc = 1235: std = 1440: ste$ = "19(17)": stf = 95
  767. IF st = 25 THEN sta = 7: stb = 14: stc = 1535: std = 1750: ste$ = "19(18)": stf = 99
  768. GOTO dxrun
  769. sttest:
  770. IF xst = 0 THEN sta = 1: stb = 2: stc = 110: std = 255: ste$ = "11": stf = 16
  771. IF xst > 0 AND xst < 51 THEN sta = 1: stb = 3: stc = 135: std = 280: ste$ = "12": stf = 20
  772. IF xst > 50 AND xst < 76 THEN sta = 2: stb = 3: stc = 160: std = 305: ste$ = "13": stf = 25
  773. IF xst > 75 AND xst < 91 THEN sta = 2: stb = 4: stc = 185: std = 330: ste$ = "14": stf = 30
  774. IF xst > 90 AND xst < 100 THEN sta = 2: stb = 5: stc = 235: std = 380: ste$ = "15(3)": stf = 35
  775. IF xst = 100 THEN sta = 3: stb = 6: stc = 335: std = 480: ste$ = "16(6)": stf = 40
  776. dxrun:
  777. IF dx = 1 THEN dxa = -6: dxb = -6: dxc = 5
  778. IF dx = 2 THEN dxa = -4: dxb = -4: dxc = 5
  779. IF dx = 3 THEN dxa = -3: dxb = -3: dxc = 4
  780. IF dx = 4 THEN dxa = -2: dxb = -2: dxc = 3
  781. IF dx = 5 THEN dxa = -1: dxb = -1: dxc = 2
  782. IF dx = 6 THEN dxa = 0: dxb = 0: dxc = 1
  783. IF dx = 7 THEN dxa = 0: dxb = 0: dxc = 0
  784. IF dx = 8 THEN dxa = 0: dxb = 0: dxc = 0
  785. IF dx = 9 THEN dxa = 0: dxb = 0: dxc = 0
  786. IF dx > 9 AND dx < 15 THEN dxa = 0: dxb = 0: dxc = 0
  787. IF dx = 15 THEN dxa = 0: dxb = 0: dxc = -1
  788. IF dx = 16 THEN dxa = 1: dxb = 1: dxc = -2
  789. IF dx = 17 THEN dxa = 2: dxb = 2: dxc = -3
  790. IF dx = 18 THEN dxa = 2: dxb = 2: dxc = -4
  791. IF dx = 19 THEN dxa = 3: dxb = 3: dxc = -4
  792. IF dx = 20 THEN dxa = 3: dxb = 3: dxc = -4
  793. IF dx = 21 THEN dxa = 4: dxb = 4: dxc = -5
  794. IF dx = 22 THEN dxa = 4: dxb = 4: dxc = -5
  795. IF dx = 23 THEN dxa = 4: dxb = 4: dxc = -5
  796. IF dx = 24 THEN dxa = 5: dxb = 5: dxc = -6
  797. IF dx = 25 THEN dxa = 5: dxb = 5: dxc = -6
  798. IF co < 20 THEN coe$ = "N/A"
  799. IF co = 1 THEN coa = -3: cob = 25: coc = 30: cod = -2
  800. IF co = 2 THEN coa = -2: cob = 30: coc = 35: cod = -1
  801. IF co = 3 THEN coa = -2: cob = 35: coc = 40: cod = 0
  802. IF co < 19 THEN cod = 0
  803. IF co = 4 THEN coa = -1: cob = 40: coc = 45
  804. IF co = 5 THEN coa = -1: cob = 45: coc = 50
  805. IF co = 6 THEN coa = -1: cob = 50: coc = 55
  806. IF co < 15 THEN coa = 0
  807. IF co = 7 THEN cob = 55: coc = 60
  808. IF co = 8 THEN cob = 60: coc = 65
  809. IF co = 9 THEN cob = 65: coc = 70
  810. IF co = 10 THEN cob = 70: coc = 75
  811. IF co = 11 THEN cob = 75: coc = 80
  812. IF co = 12 THEN cob = 80: coc = 85
  813. IF co = 13 THEN cob = 85: coc = 90
  814. IF co = 14 THEN cob = 88: coc = 92
  815. IF co = 15 THEN coa = 1: cob = 90: coc = 94
  816. IF co = 16 THEN coa = 2: cob = 95: coc = 96
  817. IF cl <> 1 THEN coa = 2
  818. GOSUB ftr
  819. IF co = 17 THEN cob = 97: coc = 98
  820. coc = 100
  821. IF co < 25 THEN cob = 99
  822. IF co = 20 THEN cod = 1: coe$ = "1/6 turns"
  823. IF co = 21 THEN cod = 2: coe$ = "1/5 turns"
  824. IF co = 22 THEN cod = 2: coe$ = "1/4 turns"
  825. IF co = 23 THEN cod = 3: coe$ = "1/3 turns"
  826. IF co = 24 THEN cod = 3: coe$ = "1/2 turns"
  827. IF co = 25 THEN cob = 100: cod = 4: coe$ = "1 turn"
  828. GOTO iqrun
  829. ftr:
  830. IF co = 17 AND cl = 1 THEN coa = 3 ELSE IF co = 17 THEN co = 2: RETURN
  831. IF co = 18 AND cl = 1 THEN coa = 4 ELSE IF co = 17 THEN co = 2: RETURN
  832. IF co = 19 AND cl = 1 THEN coa = 5 ELSE IF co = 17 THEN co = 2: RETURN
  833. IF co = 20 AND cl = 1 THEN coa = 5 ELSE IF co = 17 THEN co = 2: RETURN
  834. IF co = 21 AND cl = 1 THEN coa = 6 ELSE IF co = 17 THEN co = 2: RETURN
  835. IF co = 22 AND cl = 1 THEN coa = 6 ELSE IF co = 17 THEN co = 2: RETURN
  836. IF co = 23 AND cl = 1 THEN coa = 6 ELSE IF co = 17 THEN co = 2: RETURN
  837. IF co = 24 AND cl = 1 THEN coa = 7 ELSE IF co = 17 THEN co = 2: RETURN
  838. IF co = 25 AND cl = 1 THEN coa = 7 ELSE IF co = 17 THEN co = 2: RETURN
  839. iqrun:
  840. IF iq < 9 THEN iqb = 0
  841. IF iq < 9 THEN iqc = 0
  842. IF iq < 9 THEN iqd$ = "N/A"
  843. IF iq < 19 THEN iqe$ = "N/A"
  844. IF iq = 1 THEN iqa = 0
  845. IF iq < 9 THEN iqa = 1
  846. IF iq = 9 THEN iqa = 2: iqb = 4: iqc = 35: iqd$ = "6"
  847. IF iq = 10 THEN iqa = 2: iqb = 5: iqc = 40: iqd$ = "7"
  848. IF iq = 11 THEN iqa = 2: iqb = 5: iqc = 45: iqd$ = "7"
  849. IF iq = 12 THEN iqa = 3: iqb = 6: iqc = 50: iqd$ = "7"
  850. IF iq = 13 THEN iqa = 3: iqb = 6: iqc = 55: iqd$ = "9"
  851. IF iq = 14 THEN iqa = 4: iqb = 7: iqc = 60: iqd$ = "9"
  852. IF iq = 15 THEN iqa = 4: iqb = 7: iqc = 65: iqd$ = "11"
  853. IF iq = 16 THEN iqa = 5: iqb = 8: iqc = 70: iqd$ = "11"
  854. IF iq = 17 THEN iqa = 6: iqb = 8: iqc = 75: iqd$ = "14"
  855. IF iq = 18 THEN iqa = 7: iqb = 9: iqc = 85: iqd$ = "18"
  856. IF iq = 19 THEN iqa = 8: iqb = 9: iqc = 95: iqd$ = "All": iqe$ = "1st-lv illusions"
  857. iqb = 9: iqd$ = "All"
  858. IF iq = 20 THEN iqa = 9: iqc = 96: iqe$ = "2nd-lv illusions"
  859. IF iq = 21 THEN iqa = 10: iqc = 97: iqe$ = "3rd-lv illusions"
  860. IF iq = 22 THEN iqa = 11: iqc = 98: iqe$ = "4th-lv illusions"
  861. IF iq = 23 THEN iqa = 12: iqc = 99: iqe$ = "5th-lv illusions"
  862. IF iq = 24 THEN iqa = 15: iqc = 100: iqe$ = "6th-lv illusions"
  863. IF iq = 25 THEN iqa = 20: iqc = 100: iqe$ = "7th-lv illusions"
  864. IF wi < 9 THEN wib$ = ""
  865. IF wi = 1 THEN wia = -6: wic = 80
  866. IF wi = 2 THEN wia = -4: wic = 60
  867. IF wi = 3 THEN wia = -3: wic = 50
  868. IF wi = 4 THEN wia = -2: wic = 45
  869. IF wi = 5 THEN wia = -1: wic = 40
  870. IF wi = 6 THEN wia = -1: wic = 35
  871. IF wi = 7 THEN wia = -1: wic = 30
  872. IF wi < 14 THEN wia = 0
  873. IF wi = 8 THEN wic = 25
  874. IF wi = 9 THEN wic = 20
  875. IF wi = 10 THEN wic = 15
  876. IF wi = 11 THEN wic = 10
  877. IF wi = 12 THEN wic = 5
  878. wic = 0
  879. IF wi = 13 THEN wib$ = "1st"
  880. IF wi = 14 THEN wib$ = "1st"
  881. IF wi = 15 THEN wia = 1: wib$ = "2nd"
  882. IF wi = 16 THEN wia = 2: wib$ = "2nd"
  883. IF wi = 17 THEN wia = 3: wib$ = "3rd"
  884. wia = 4
  885. IF wi = 18 THEN wib$ = "4th"
  886. IF wi = 19 THEN wib$ = "1st,4th"
  887. IF wi = 20 THEN wib$ = "2nd,4th"
  888. IF wi = 21 THEN wib$ = "3rd,5th"
  889. IF wi = 22 THEN wib$ = "4nd,5th"
  890. IF wi = 23 THEN wib$ = "5th,5th"
  891. IF wi = 24 THEN wib$ = "6th,6th"
  892. IF wi = 25 THEN wib$ = "6th,7th"
  893. IF ch = 1 THEN cha = 0: chb = -8: chc = -7
  894. IF ch = 2 THEN cha = 1: chb = -7: chc = -6
  895. IF ch = 3 THEN cha = 1: chb = -6: chc = -5
  896. IF ch = 4 THEN cha = 1: chb = -5: chc = -4
  897. IF ch = 5 THEN cha = 2: chb = -4: chc = -3
  898. IF ch = 6 THEN cha = 2: chb = -3: chc = -2
  899. IF ch = 7 THEN cha = 3: chb = -2: chc = -1
  900. IF ch = 8 THEN cha = 3: chb = -1: chc = 0
  901. IF ch < 13 THEN chc = 0
  902. IF ch = 9 THEN cha = 4: chb = 0
  903. IF ch < 14 THEN chb = 0
  904. IF ch = 10 THEN cha = 4
  905. IF ch = 11 THEN cha = 4
  906. IF ch = 12 THEN cha = 5
  907. IF ch = 13 THEN cha = 5: chc = 1
  908. IF ch = 14 THEN cha = 6: chb = 1: chc = 2
  909. IF ch = 15 THEN cha = 7: chb = 3: chc = 3
  910. IF ch = 16 THEN cha = 8: chb = 4: chc = 5
  911. IF ch = 17 THEN cha = 10: chb = 6: chc = 6
  912. IF ch = 18 THEN cha = 15: chb = 8: chc = 7
  913. IF ch = 19 THEN cha = 20: chb = 10: chc = 8
  914. IF ch = 20 THEN cha = 25: chb = 12: chc = 9
  915. IF ch = 21 THEN cha = 30: chb = 14: chc = 10
  916. IF ch = 22 THEN cha = 35: chb = 16: chc = 11
  917. IF ch = 23 THEN cha = 48: chb = 18: chc = 12
  918. IF ch = 24 THEN cha = 45: chb = 20: chc = 13
  919. IF ch = 25 THEN cha = 50: chb = 20: chc = 14
  920. RETURN
  921.  
  922. 140 IF st < 9 THEN LOCATE 23, 1: PRINT "STRENGTH DOES NOT MEET MININUM REQUIREMENT OF 9": GOTO 37
  923. GOTO sokay
  924. 150 IF iq < 9 THEN LOCATE 23, 1: PRINT "INTELLIGENCE DOES NOT MEET MINIMUM REQUIREMENT OF 9": GOTO 37
  925. GOTO sokay
  926. 160 IF wi < 9 THEN LOCATE 23, 1: PRINT "WISDOM DOES NOT MEET MINIMUM REQUIREMENT OF 9": GOTO 37
  927. GOTO sokay
  928. 170 IF dx < 9 THEN LOCATE 23, 1: PRINT "DEXETERITY DOES NOT MEET MINIMUM REQUIREMENT OF 9": GOTO 37
  929. GOTO sokay
  930.  
  931. 180 IF cl = 1 THEN GOTO ftrst:
  932. IF cl = 2 THEN GOTO must:
  933. IF cl = 3 THEN GOTO prst:
  934. IF cl = 4 THEN GOTO thst:
  935. ftrst:
  936. lvt = VAL(lv$)
  937. th = 20 - lvt + 1
  938. IF th = 0 THEN th = 1
  939. IF th = 21 THEN th = 20
  940. hdc = 10
  941. IF lvt < 10 THEN hda = lvt: hdb = 0
  942. IF lvt > 9 THEN hda = 9
  943. IF lvt = 1 THEN hd$ = "1"
  944. IF lvt = 2 THEN hd$ = "2"
  945. IF lvt = 3 THEN hd$ = "3"
  946. IF lvt = 4 THEN hd$ = "4"
  947. IF lvt = 5 THEN hd$ = "5"
  948. IF lvt = 6 THEN hd$ = "6"
  949. IF lvt = 7 THEN hd$ = "7"
  950. IF lvt = 8 THEN hd$ = "8"
  951. IF lvt = 9 THEN hd$ = "9"
  952. IF lvt = 10 THEN hd$ = "9+03"
  953. IF lvt = 11 THEN hd$ = "9+06"
  954. IF lvt = 12 THEN hd$ = "9+09"
  955. IF lvt = 13 THEN hd$ = "9+12"
  956. IF lvt = 14 THEN hd$ = "9+15"
  957. IF lvt = 15 THEN hd$ = "9+18"
  958. IF lvt = 16 THEN hd$ = "9+21"
  959. IF lvt = 17 THEN hd$ = "9+24"
  960. IF lvt = 18 THEN hd$ = "9+27"
  961. IF lvt = 19 THEN hd$ = "9+30"
  962. IF lvt = 20 THEN hd$ = "9+33"
  963. IF lvt > 9 THEN hdb = VAL(RIGHT$(hd$, 2))
  964. RETURN
  965. must:
  966. lvt = VAL(lv$)
  967. hdc = 4
  968. IF lvt < 11 THEN hda = lvt: hdb = 0
  969. IF lvt > 10 THEN hda = 10
  970. IF lvt = 1 THEN hd$ = "1": th = 20
  971. IF lvt = 2 THEN hd$ = "2": th = 20
  972. IF lvt = 3 THEN hd$ = "3": th = 20
  973. IF lvt = 4 THEN hd$ = "4": th = 19
  974. IF lvt = 5 THEN hd$ = "5": th = 19
  975. IF lvt = 6 THEN hd$ = "6": th = 19
  976. IF lvt = 7 THEN hd$ = "7": th = 18
  977. IF lvt = 8 THEN hd$ = "8": th = 18
  978. IF lvt = 9 THEN hd$ = "9": th = 18
  979. IF lvt = 10 THEN hd$ = "10": th = 17
  980. IF lvt = 11 THEN hd$ = "10+01": th = 17
  981. IF lvt = 12 THEN hd$ = "10+02": th = 17
  982. IF lvt = 13 THEN hd$ = "10+03": th = 16
  983. IF lvt = 14 THEN hd$ = "10+04": th = 16
  984. IF lvt = 15 THEN hd$ = "10+05": th = 16
  985. IF lvt = 16 THEN hd$ = "10+06": th = 15
  986. IF lvt = 17 THEN hd$ = "10+07": th = 15
  987. IF lvt = 18 THEN hd$ = "10+08": th = 15
  988. IF lvt = 19 THEN hd$ = "10+09": th = 14
  989. IF lvt = 20 THEN hd$ = "10+10": th = 14
  990. IF lvt > 10 THEN hdb = VAL(RIGHT$(hd$, 2))
  991. RETURN
  992. prst:
  993. lvt = VAL(lv$)
  994. hdc = 8
  995. IF lvt < 10 THEN hda = lvt: hdb = 0
  996. IF lvt > 9 THEN hda = 9
  997. IF lvt = 1 THEN hd$ = "1": th = 20
  998. IF lvt = 2 THEN hd$ = "2": th = 20
  999. IF lvt = 3 THEN hd$ = "3": th = 20
  1000. IF lvt = 4 THEN hd$ = "4": th = 18
  1001. IF lvt = 5 THEN hd$ = "5": th = 18
  1002. IF lvt = 6 THEN hd$ = "6": th = 18
  1003. IF lvt = 7 THEN hd$ = "7": th = 16
  1004. IF lvt = 8 THEN hd$ = "8": th = 16
  1005. IF lvt = 9 THEN hd$ = "9": th = 16
  1006. IF lvt = 10 THEN hd$ = "9+02": th = 14
  1007. IF lvt = 11 THEN hd$ = "9+04": th = 14
  1008. IF lvt = 12 THEN hd$ = "9+06": th = 14
  1009. IF lvt = 13 THEN hd$ = "9+08": th = 12
  1010. IF lvt = 14 THEN hd$ = "9+10": th = 12
  1011. IF lvt = 15 THEN hd$ = "9+12": th = 12
  1012. IF lvt = 16 THEN hd$ = "9+14": th = 10
  1013. IF lvt = 17 THEN hd$ = "9+16": th = 10
  1014. IF lvt = 18 THEN hd$ = "9+18": th = 10
  1015. IF lvt = 19 THEN hd$ = "9+20": th = 8
  1016. IF lvt = 20 THEN hd$ = "9+22": th = 8
  1017. IF lvt > 9 THEN hdb = VAL(RIGHT$(hd$, 2))
  1018. RETURN
  1019. thst:
  1020. lvt = VAL(lv$)
  1021. hdc = 6
  1022. IF lvt < 11 THEN hda = lvt: hdb = 0
  1023. IF lvt > 10 THEN hda = 10
  1024. IF lvt = 1 THEN hd$ = "1": th = 20
  1025. IF lvt = 2 THEN hd$ = "2": th = 20
  1026. IF lvt = 3 THEN hd$ = "3": th = 19
  1027. IF lvt = 4 THEN hd$ = "4": th = 19
  1028. IF lvt = 5 THEN hd$ = "5": th = 18
  1029. IF lvt = 6 THEN hd$ = "6": th = 18
  1030. IF lvt = 7 THEN hd$ = "7": th = 17
  1031. IF lvt = 8 THEN hd$ = "8": th = 17
  1032. IF lvt = 9 THEN hd$ = "9": th = 16
  1033. IF lvt = 10 THEN hd$ = "10": th = 16
  1034. IF lvt = 11 THEN hd$ = "10+02": th = 15
  1035. IF lvt = 12 THEN hd$ = "10+04": th = 15
  1036. IF lvt = 13 THEN hd$ = "10+06": th = 14
  1037. IF lvt = 14 THEN hd$ = "10+08": th = 14
  1038. IF lvt = 15 THEN hd$ = "10+10": th = 13
  1039. IF lvt = 16 THEN hd$ = "10+12": th = 13
  1040. IF lvt = 17 THEN hd$ = "10+14": th = 12
  1041. IF lvt = 18 THEN hd$ = "10+16": th = 12
  1042. IF lvt = 19 THEN hd$ = "10+18": th = 11
  1043. IF lvt = 20 THEN hd$ = "10+20": th = 11
  1044. IF lvt > 10 THEN hdb = VAL(RIGHT$(hd$, 2))
  1045. RETURN
  1046.  
  1047. savthrw:
  1048. IF cl = 1 THEN GOTO ftrsth:
  1049. IF cl = 2 THEN GOTO musth:
  1050. IF cl = 3 THEN GOTO prsth:
  1051. IF cl = 4 THEN GOTO thsth:
  1052. RETURN
  1053. ftrsth:
  1054. lvt = VAL(lv$)
  1055. IF lvt = 1 OR lvt = 2 THEN ppd = 14: rsw = 16: pp = 15: bw = 17: spl = 17
  1056. IF lvt = 3 OR lvt = 4 THEN ppd = 13: rsw = 15: pp = 14: bw = 16: spl = 16
  1057. IF lvt = 5 OR lvt = 6 THEN ppd = 11: rsw = 13: pp = 12: bw = 13: spl = 14
  1058. IF lvt = 7 OR lvt = 8 THEN ppd = 10: rsw = 12: pp = 11: bw = 12: spl = 13
  1059. IF lvt = 9 OR lvt = 10 THEN ppd = 8: rsw = 10: pp = 9: bw = 9: spl = 11
  1060. IF lvt = 11 OR lvt = 12 THEN ppd = 7: rsw = 9: pp = 8: bw = 8: spl = 10
  1061. IF lvt = 13 OR lvt = 14 THEN ppd = 5: rsw = 7: pp = 6: bw = 5: spl = 8
  1062. IF lvt = 15 OR lvt = 16 THEN ppd = 4: rsw = 6: pp = 5: bw = 4: spl = 7
  1063. IF lvt > 16 THEN ppd = 3: rsw = 5: pp = 4: bw = 4: spl = 6
  1064. RETURN
  1065. musth:
  1066. lvt = VAL(lv$)
  1067. IF lvt < 6 THEN ppd = 14: rsw = 11: pp = 13: bw = 15: spl = 12
  1068. IF lvt > 5 AND lvt < 11 THEN ppd = 13: rsw = 9: pp = 11: bw = 13: spl = 10
  1069. IF lvt > 10 AND lvt < 16 THEN ppd = 11: rsw = 7: pp = 9: bw = 11: spl = 8
  1070. IF lvt > 15 AND lvt < 21 THEN ppd = 10: rsw = 5: pp = 7: bw = 9: spl = 6
  1071. IF lvt > 20 THEN ppd = 8: rsw = 3: pp = 5: bw = 7: spl = 4
  1072. RETURN
  1073. prsth:
  1074. lvt = VAL(lv$)
  1075. IF lvt < 4 THEN ppd = 10: rsw = 14: pp = 13: bw = 16: spl = 15
  1076. IF lvt > 3 AND lvt < 7 THEN ppd = 9: rsw = 13: pp = 12: bw = 15: spl = 14
  1077. IF lvt > 6 AND lvt < 10 THEN ppd = 7: rsw = 11: pp = 10: bw = 13: spl = 12
  1078. IF lvt > 9 AND lvt < 13 THEN ppd = 6: rsw = 10: pp = 9: bw = 12: spl = 11
  1079. IF lvt > 12 AND lvt < 16 THEN ppd = 5: rsw = 9: pp = 8: bw = 11: spl = 10
  1080. IF lvt > 15 AND lvt < 19 THEN ppd = 4: rsw = 8: pp = 7: bw = 10: spl = 9
  1081. IF lvt > 18 THEN ppd = 2: rsw = 6: pp = 5: bw = 8: spl = 7
  1082. RETURN
  1083. thsth:
  1084. lvt = VAL(lv$)
  1085. IF lvt < 5 THEN ppd = 13: rsw = 14: pp = 12: bw = 16: spl = 15
  1086. IF lvt > 4 AND lvt < 9 THEN ppd = 12: rsw = 12: pp = 11: bw = 15: spl = 13
  1087. IF lvt > 8 AND lvt < 13 THEN ppd = 11: rsw = 10: pp = 10: bw = 14: spl = 11
  1088. IF lvt > 12 AND lvt < 17 THEN ppd = 10: rsw = 8: pp = 9: bw = 13: spl = 9
  1089. IF lvt > 16 AND lvt < 21 THEN ppd = 9: rsw = 6: pp = 8: bw = 12: spl = 7
  1090. IF lvt > 20 THEN ppd = 8: rsw = 4: pp = 7: bw = 11: spl = 5
  1091. RETURN
  1092.  
  1093. 200 CLS : mo = 1
  1094. PRINT "Name of module to branch to:"
  1095. INPUT ":", mo$
  1096. IF LEN(mo$) = 0 GOTO 10
  1097. SHELL mo$
  1098. GOTO 10
  1099.  
  1100.  
  1101. 1000 ' ERROR HANDLER
  1102. SOUND 100, 7
  1103. IF erlv = 1 THEN erlv = 0: CALL intro(1): GOTO 10
  1104. SELECT CASE ERR
  1105. CASE 53
  1106.  IF mo = 1 THEN PRINT "Module not availible.": mo = 0: RESUME 5
  1107.  IF npcgenon = 1 THEN PRINT "You don't have the NPC Module.": npcgenon = 0: RESUME 5
  1108.  PRINT "FILE NOT FOUND!"
  1109.  RESUME 5
  1110. CASE 27
  1111.  PRINT "OUT OF PAPER!"
  1112.  RESUME 5
  1113. CASE 24
  1114.  PRINT "DEVICE TIMEOUT"
  1115.  RESUME 5
  1116. CASE 25
  1117.  PRINT "DEVICE FAULT"
  1118.  RESUME 5
  1119. CASE 68
  1120.  PRINT "DEVICE UNAVAILIBLE"
  1121.  RESUME 5
  1122. CASE 70
  1123.  PRINT "PERMISSION DENIED"
  1124.  RESUME 5
  1125. CASE 71
  1126.  PRINT "DRIVE NOT READY"
  1127.  RESUME 5
  1128. CASE ELSE
  1129.  PRINT "UNIDENTIFIED ERROR"
  1130.  PRINT "ERRORCODE: "; ERR
  1131.  RESUME 5
  1132. END SELECT
  1133.  
  1134.  
  1135. secskill:
  1136. sk = CINT(RND(1) * 100)
  1137. IF sk = 0 GOTO secskill
  1138. IF sk < 3 THEN ss$ = "Armorer": RETURN
  1139. IF sk > 2 AND sk < 5 THEN ss$ = "Bowyer/Fletcher": IF rer = 1 GOTO second
  1140. IF sk > 4 AND sk < 11 THEN ss$ = "Farmer": IF rer = 1 GOTO second
  1141. IF sk > 10 AND sk < 15 THEN ss$ = "Fisher": IF rer = 1 GOTO second
  1142. IF sk > 14 AND sk < 21 THEN ss$ = "Forester": IF rer = 1 GOTO second
  1143. IF sk > 20 AND sk < 24 THEN ss$ = "Gambler": IF rer = 1 GOTO second
  1144. IF sk > 23 AND sk < 28 THEN ss$ = "Groom": IF rer = 1 GOTO second
  1145. IF sk > 27 AND sk < 33 THEN ss$ = "Hunter": IF rer = 1 GOTO second
  1146. IF sk > 32 AND sk < 35 THEN ss$ = "Jeweler": IF rer = 1 GOTO second
  1147. IF sk > 34 AND sk < 38 THEN ss$ = "Leather Worker": IF rer = 1 GOTO second
  1148. IF sk > 37 AND sk < 40 THEN ss$ = "Limner/Painter": IF rer = 1 GOTO second
  1149. IF sk > 39 AND sk < 43 THEN ss$ = "Mason": IF rer = 1 GOTO second
  1150. IF sk > 42 AND sk < 45 THEN ss$ = "Miner": IF rer = 1 GOTO second
  1151. IF sk > 44 AND sk < 47 THEN ss$ = "Navigator": IF rer = 1 GOTO second
  1152. IF sk > 46 AND sk < 50 THEN ss$ = "Sailor": IF rer = 1 GOTO second
  1153. IF sk > 49 AND sk < 52 THEN ss$ = "Scribe": IF rer = 1 GOTO second
  1154. IF sk > 51 AND sk < 54 THEN ss$ = "Shipwright": IF rer = 1 GOTO second
  1155. IF sk > 53 AND sk < 57 THEN ss$ = "Tailor/Weaver": IF rer = 1 GOTO second
  1156. IF sk > 56 AND sk < 60 THEN ss$ = "Teamster/Freighter": IF rer = 1 GOTO second
  1157. IF sk > 59 AND sk < 63 THEN ss$ = "Trader/Barterer": IF rer = 1 GOTO second
  1158. IF sk > 62 AND sk < 67 THEN ss$ = "Trapper/Furrier": IF rer = 1 GOTO second
  1159. IF sk > 66 AND sk < 69 THEN ss$ = "Weaponsmith": IF rer = 1 GOTO second
  1160. IF sk > 68 AND sk < 72 THEN ss$ = "Woodworker/Carpenter": IF rer = 1 GOTO second
  1161. IF sk > 71 AND sk < 86 THEN ss$ = "No skill of worth": IF rer = 1 GOTO second
  1162. IF sk > 85 AND sk < 101 AND rer = 1 GOTO secskill
  1163. IF sk > 85 AND sk < 101 THEN rer = 1: GOTO secskill
  1164. second:
  1165. IF LEN(ssa$) = 0 THEN ssa$ = ss$: GOTO secskill ELSE ssb$ = ss$: ssa$ = ssa$ + " / " + ssb$: RETURN
  1166.  
  1167.  
  1168. change:
  1169. CLS
  1170. IF st + dx + co + iq + wi + ch = 0 THEN PRINT TAB(25); "No  character in memory.": PRINT : GOTO 5
  1171. COLOR red: PRINT TAB(33); "CHANGE STATS MENU": PRINT : COLOR cyan
  1172. tmp$(1) = " Change personal info  "
  1173. tmp$(2) = " Change ability scores "
  1174. tmp$(3) = " Change savings throws "
  1175. tmp$(4) = " Change stats          "
  1176. tmp$(5) = " Main Menu             "
  1177. FOR x = 1 TO 5
  1178.  PRINT TAB(30); tmp$(x)
  1179. NEXT x
  1180. PRINT
  1181. PRINT TAB(34); "Your choice:";
  1182. COLOR bgrey, 0: PRINT "_": COLOR grey, 0
  1183. LOCATE 3, 30: COLOR 0, 7: PRINT tmp$(1): COLOR 7, 0
  1184. l = 1: up = 2: uc = 30
  1185. ch2:
  1186. a$ = INKEY$
  1187. IF a$ = "" GOTO ch2
  1188. IF ASC(a$) = 13 THEN COLOR 7, 0: GOTO runit2
  1189. IF a$ = CHR$(0) + CHR$(80) AND l = 5 THEN w = l: l = 0: GOSUB update1
  1190. IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 6: GOSUB update1
  1191. IF a$ = CHR$(0) + CHR$(80) AND l < 5 THEN w = l: l = l + 1: GOSUB update1
  1192. IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update1
  1193. IF ASC(a$) = 50 AND l < 5 THEN w = l: l = l + 1: GOSUB update1
  1194. IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update1
  1195. GOTO ch2:
  1196.  
  1197. chperin:
  1198. CLS : COLOR yellow
  1199. PRINT "A.   Name is      : "; na$
  1200. PRINT "B.   Alignment    : "; al$
  1201. PRINT "C.   Race         : "; ra$
  1202. PRINT "D.   Family/Clan  : "; fc$
  1203. PRINT "E.   Liege/Patron : "; lp$
  1204. PRINT "F.   Age          : "; age$
  1205. PRINT "G.   Height       : "; ht$
  1206. PRINT "H.   Weight       : "; wt$
  1207. PRINT "I.   Hair color   : "; hc$
  1208. PRINT "J.   Eye color    : "; ec$
  1209. PRINT "K.   Sex          : "; sex$
  1210. IF sskb = 1 THEN PRINT "L.   Sec skill    : "; ss$
  1211. PRINT "M.   Langauges    : "; l$
  1212. COLOR purple: PRINT ln$: COLOR yellow
  1213. PRINT "Q.   Quit": PRINT : COLOR purple
  1214. INPUT "Letter to change:"; a$
  1215. COLOR grey
  1216. IF a$ = "A" OR a$ = "a" THEN LOCATE 1, 20: PRINT SPC(20); : LOCATE 1, 20: INPUT " ", na$: LOCATE 1, 20: PRINT SPC(20); : GOTO chperin
  1217. IF a$ = "B" OR a$ = "b" THEN LOCATE 2, 20: PRINT SPC(20); : LOCATE 2, 20: INPUT " ", al$: LOCATE 2, 20: PRINT SPC(10); : GOTO chperin
  1218. IF a$ = "C" OR a$ = "c" THEN LOCATE 3, 20: PRINT SPC(20); : LOCATE 3, 20: INPUT " ", ra$: LOCATE 3, 20: PRINT SPC(10); : GOTO chperin
  1219. IF a$ = "D" OR a$ = "d" THEN LOCATE 4, 20: PRINT SPC(20); : LOCATE 4, 20: INPUT " ", fc$: LOCATE 4, 20: PRINT SPC(10); : GOTO chperin
  1220. IF a$ = "E" OR a$ = "e" THEN LOCATE 5, 20: PRINT SPC(20); : LOCATE 5, 20: INPUT " ", lp$: LOCATE 5, 20: PRINT SPC(10); : GOTO chperin
  1221. IF a$ = "F" OR a$ = "f" THEN LOCATE 6, 20: PRINT SPC(20); : LOCATE 6, 20: INPUT " ", age$: LOCATE 6, 20: PRINT SPC(10); : GOTO chperin
  1222. IF a$ = "G" OR a$ = "g" THEN LOCATE 7, 20: PRINT SPC(20); : LOCATE 7, 20: INPUT " ", ht$: LOCATE 7, 20: PRINT SPC(10); : GOTO chperin
  1223. IF a$ = "H" OR a$ = "h" THEN LOCATE 8, 20: PRINT SPC(20); : LOCATE 8, 20: INPUT " ", wt$: LOCATE 8, 20: PRINT SPC(10); : GOTO chperin
  1224. IF a$ = "I" OR a$ = "i" THEN LOCATE 9, 20: PRINT SPC(20); : LOCATE 9, 20: INPUT " ", hc$: LOCATE 9, 20: PRINT SPC(10); : GOTO chperin
  1225. IF a$ = "J" OR a$ = "j" THEN LOCATE 10, 20: PRINT SPC(20); : LOCATE 10, 20: INPUT " ", ec$: LOCATE 10, 20: PRINT SPC(10); : GOTO chperin
  1226. IF a$ = "K" OR a$ = "k" THEN LOCATE 11, 20: PRINT SPC(20); : LOCATE 11, 20: INPUT " ", sex$: LOCATE 11, 20: PRINT SPC(10); : GOTO chperin
  1227. IF a$ = "L" OR a$ = "l" AND sskb = 1 THEN LOCATE 12, 20: PRINT SPC(20); : LOCATE 12, 20: INPUT " ", ss$: LOCATE 12, 20: PRINT SPC(10); : GOTO chperin
  1228. IF a$ = "L" OR a$ = "l" AND sskb = 0 THEN GOTO chperin
  1229. IF a$ = "M" OR a$ = "m" THEN LOCATE 12, 20: PRINT SPC(78); : scv = 15: GOSUB clear1: nol = 0: chst = 1: GOSUB lang1: LOCATE 13, 20: PRINT SPC(10); : GOTO chperin
  1230. IF a$ = "Q" OR a$ = "q" THEN GOTO change
  1231. GOTO chperin
  1232.  
  1233. chability:
  1234. CLS : COLOR yellow
  1235. PRINT "A.   Strength      :"; st
  1236. IF xst <> 0 THEN LOCATE 1, 25: PRINT "("; LTRIM$(STR$(xst)); ")"
  1237. PRINT "B.   Dexeterity    :"; dx
  1238. PRINT "C.   Constitution  :"; co
  1239. PRINT "D.   Intelligence  :"; iq
  1240. PRINT "E.   Wisdom        :"; wi
  1241. PRINT "F.   Charisma      :"; ch
  1242. COLOR purple: PRINT ln$: COLOR yellow
  1243. PRINT "Q.   Quit": PRINT : COLOR purple
  1244. INPUT "Letter to change:"; a$
  1245. COLOR grey
  1246. IF a$ = "A" OR a$ = "a" THEN LOCATE 1, 22: PRINT SPC(20); : LOCATE 1, 21: INPUT " ", st: IF st <> 18 THEN xst = 0 ELSE LOCATE 1, 25: PRINT "("; : INPUT xst: PRINT ")": LOCATE 1, 20: PRINT SPC(40); : GOTO chability
  1247. IF a$ = "B" OR a$ = "b" THEN LOCATE 2, 22: PRINT SPC(20); : LOCATE 2, 21: INPUT " ", dx: LOCATE 2, 20: PRINT SPC(10); : GOTO chability
  1248. IF a$ = "C" OR a$ = "c" THEN LOCATE 3, 22: PRINT SPC(20); : LOCATE 3, 21: INPUT " ", co: LOCATE 3, 20: PRINT SPC(10); : GOTO chability
  1249. IF a$ = "D" OR a$ = "d" THEN LOCATE 4, 22: PRINT SPC(20); : LOCATE 4, 21: INPUT " ", iq: LOCATE 4, 20: PRINT SPC(10); : GOTO chability
  1250. IF a$ = "E" OR a$ = "e" THEN LOCATE 5, 22: PRINT SPC(20); : LOCATE 5, 21: INPUT " ", wi: LOCATE 5, 20: PRINT SPC(10); : GOTO chability
  1251. IF a$ = "F" OR a$ = "f" THEN LOCATE 6, 22: PRINT SPC(20); : LOCATE 6, 21: INPUT " ", ch: LOCATE 6, 20: PRINT SPC(10); : GOTO chability
  1252. IF a$ = "Q" OR a$ = "q" THEN GOTO change
  1253. GOTO chability
  1254.  
  1255. chsave:
  1256. CLS : COLOR yellow
  1257. PRINT "Save versus="
  1258. PRINT "A.    Para/Poison/Death Magic :"; ppd
  1259. PRINT "B.    Petrif/Polymorph        :"; pp
  1260. PRINT "C.    Spells                  :"; spl
  1261. PRINT "D.    Wands/Staves/Rods       :"; rsw
  1262. PRINT "E.    Breath Weapon           :"; bw
  1263. COLOR purple: PRINT ln$: COLOR yellow
  1264. PRINT "Q.   Quit": PRINT : COLOR purple
  1265. INPUT "Letter to change:"; a$
  1266. COLOR grey
  1267. IF a$ = "A" OR a$ = "a" THEN LOCATE 2, 33: PRINT SPC(20); : LOCATE 2, 33: INPUT "", ppd: LOCATE 2, 33: PRINT SPC(20); : GOTO chsave
  1268. IF a$ = "B" OR a$ = "b" THEN LOCATE 3, 33: PRINT SPC(20); : LOCATE 3, 33: INPUT "", pp: LOCATE 3, 33: PRINT SPC(10); : GOTO chsave
  1269. IF a$ = "C" OR a$ = "c" THEN LOCATE 4, 33: PRINT SPC(20); : LOCATE 4, 33: INPUT "", spl: LOCATE 4, 33: PRINT SPC(10); : GOTO chsave
  1270. IF a$ = "D" OR a$ = "d" THEN LOCATE 5, 33: PRINT SPC(20); : LOCATE 5, 33: INPUT "", rsw: LOCATE 5, 33: PRINT SPC(10); : GOTO chsave
  1271. IF a$ = "E" OR a$ = "e" THEN LOCATE 6, 33: PRINT SPC(20); : LOCATE 6, 33: INPUT "", bw: LOCATE 6, 33: PRINT SPC(10); : GOTO chsave
  1272. IF a$ = "Q" OR a$ = "q" THEN GOTO change
  1273. GOTO chsave
  1274.  
  1275. chstat:
  1276. CLS : COLOR yellow
  1277. PRINT "A.   AC           :"; ac
  1278. PRINT "B.   HP           :"; hp
  1279. PRINT "C.   HD           :"; STR$(hda); " + "; LTRIM$(STR$(hdb))
  1280. PRINT "D.   THAC0        :"; th
  1281. PRINT "E.   Class        : "; cl$
  1282. PRINT "F.   Level        : "; lv$
  1283. PRINT "G.   Move rate    : "; mr$
  1284. COLOR purple: PRINT ln$: COLOR yellow
  1285. PRINT "Q.   Quit": PRINT : COLOR purple
  1286. INPUT "Letter to change:"; a$
  1287. COLOR grey
  1288. IF a$ = "A" OR a$ = "a" THEN LOCATE 1, 20: PRINT SPC(20); : LOCATE 1, 20: INPUT " ", ac: LOCATE 1, 20: PRINT SPC(20); : GOTO chstat
  1289. IF a$ = "B" OR a$ = "b" THEN LOCATE 2, 20: PRINT SPC(20); : GOSUB findrndhp: PRINT SPC(10); : GOTO chstat
  1290. IF a$ = "C" OR a$ = "c" THEN LOCATE 3, 20: PRINT SPC(50); : LOCATE 3, 20: INPUT " ", hda
  1291. IF a$ = "C" OR a$ = "c" THEN LOCATE 3, 27: INPUT "", hdb: LOCATE 3, 20: PRINT SPC(40); : GOTO chstat
  1292. IF a$ = "D" OR a$ = "d" THEN LOCATE 4, 20: PRINT SPC(20); : LOCATE 4, 20: INPUT " ", th: LOCATE 4, 20: PRINT SPC(10); : GOTO chstat
  1293. IF a$ = "E" OR a$ = "e" THEN LOCATE 5, 20: PRINT SPC(20); : GOSUB whatchar: LOCATE 5, 21: PRINT SPC(10); : GOSUB 180: GOTO chstat
  1294. IF a$ = "F" OR a$ = "f" THEN LOCATE 6, 20: PRINT SPC(20); : LOCATE 6, 20: INPUT " ", lv$: GOSUB 180: LOCATE 6, 20: PRINT SPC(10); : GOTO chstat
  1295. IF a$ = "G" OR a$ = "g" THEN LOCATE 7, 20: PRINT SPC(20); : LOCATE 7, 20: INPUT " ", mr$: LOCATE 7, 20: PRINT SPC(10); : GOTO chstat
  1296. IF a$ = "Q" OR a$ = "q" THEN GOTO change
  1297. GOTO chstat
  1298.  
  1299. whatchar:
  1300. LOCATE 19, 1: PRINT "Enter class ID Number:"
  1301. LOCATE 20, 1: PRINT "1 - Fighter         2 - Mage              3 - Priest"
  1302. LOCATE 21, 1: PRINT "4 - Rogue           5 - Paladin           6 - Ranger"
  1303. LOCATE 22, 1: PRINT "7 - Druid           8 - Bard              9 - Other"
  1304. INPUT cl
  1305. IF cl = 5 THEN LOCATE 5, 20: PRINT "? Paladin": cl$ = "Paladin": cl = 1: ocl = 5: GOTO rest1
  1306. IF cl = 6 THEN LOCATE 5, 20: PRINT "? Ranger": cl$ = "Ranger": cl = 1: ocl = 6: GOTO rest1
  1307. IF cl = 7 THEN LOCATE 5, 20: PRINT "? Druid": cl$ = "Druid": cl = 3: ocl = 7: GOTO rest1
  1308. IF cl = 8 THEN LOCATE 5, 20: PRINT "? Bard": cl$ = "Bard": cl = 4: ocl = 8: GOTO rest1
  1309. IF cl = 1 THEN LOCATE 5, 20: PRINT "? Fighter": cl$ = "Fighter": GOTO rest1
  1310. IF cl = 2 THEN LOCATE 5, 20: PRINT "? Mage": cl$ = "Mage": GOTO rest1
  1311. IF cl = 3 THEN LOCATE 5, 20: PRINT "? Priest": cl$ = "Priest": GOTO rest1
  1312. IF cl = 4 THEN LOCATE 5, 20: PRINT "? Rogue": cl$ = "Rogue": l$ = l$ + "Thieves' Cant": GOTO rest1
  1313. IF cl = 9 THEN cl = 5: GOTO inpcl1
  1314. GOTO rest1
  1315. inpcl1:
  1316. LOCATE 19, 1: PRINT "                                                     "
  1317. LOCATE 20, 1: PRINT "                                                     "
  1318. LOCATE 21, 1: PRINT "                                                     "
  1319. LOCATE 22, 1: PRINT "                                                     "
  1320. LOCATE 23, 1: PRINT "                                                     "
  1321. LOCATE 5, 20: INPUT " ", cl$
  1322. RETURN
  1323. rest1:
  1324. GOSUB ocskill
  1325. LOCATE 19, 1: PRINT "                                                     "
  1326. LOCATE 20, 1: PRINT "                                                     "
  1327. LOCATE 21, 1: PRINT "                                                     "
  1328. LOCATE 22, 1: PRINT "                                                     "
  1329. LOCATE 23, 1: PRINT "                                                     "
  1330. GOSUB 180:
  1331. LOCATE 3, 20: PRINT SPC(50); : LOCATE 3, 20: PRINT hda
  1332. LOCATE 3, 27: PRINT hdb: LOCATE 3, 20: PRINT SPC(40);
  1333. hp = 0: hdd = 0: hde = 0: RETURN
  1334. RETURN
  1335.  
  1336. findrndhp:
  1337. LOCATE 20, 1: PRINT "Should I generate HP for you?"
  1338. INPUT a$
  1339. LOCATE 20, 1: PRINT "                                  "
  1340. LOCATE 21, 1: PRINT "              "
  1341. IF a$ = "n" OR a$ = "N" THEN LOCATE 2, 20: INPUT " ", hp: RETURN
  1342. hp = 0: hde = 0: hdd = 0: hit = 0: RANDOMIZE TIMER
  1343. FOR hit = 1 TO hda
  1344.  hdd = INT(RND(1) * hdb)
  1345.  hde = hde + hdd
  1346. NEXT hit
  1347. hde = hde + hdb
  1348. IF hde = 0 THEN hde = 1
  1349. hp = hde: RETURN
  1350.  
  1351.  
  1352. outputasdat:
  1353. INPUT "File to export to (no extentions):"; fi$
  1354. IF UCASE$(LEFT$(fi$, 3)) = "*AB" GOTO 10
  1355. IF MID$(fi$, 2, 2) = ":\" THEN GOTO okopen1
  1356. fi$ = LEFT$(fi$, 8)
  1357. okopen1:
  1358. fi$ = fi$ + ".dat"
  1359. OPEN fi$ FOR OUTPUT AS #1
  1360. PRINT #1, na$
  1361. PRINT #1, ac
  1362. PRINT #1, th
  1363. PRINT #1, al$
  1364. PRINT #1, cl$
  1365. PRINT #1, lv$
  1366. PRINT #1, hp
  1367. PRINT #1, hda
  1368. PRINT #1, hdb
  1369. PRINT #1, ra$
  1370. PRINT #1, fc$
  1371. PRINT #1, lp$
  1372. PRINT #1, age$
  1373. PRINT #1, ht$
  1374. PRINT #1, wt$
  1375. PRINT #1, hc$
  1376. PRINT #1, ec$
  1377. PRINT #1, sex$
  1378. PRINT #1, ss$
  1379. PRINT #1, mr$
  1380. PRINT #1, l$
  1381. PRINT #1, st
  1382. PRINT #1, xst
  1383. PRINT #1, dx
  1384. PRINT #1, co
  1385. PRINT #1, iq
  1386. PRINT #1, wi
  1387. PRINT #1, ch
  1388. PRINT #1, ppd
  1389. PRINT #1, pp
  1390. PRINT #1, spl
  1391. PRINT #1, rsw
  1392. PRINT #1, bw
  1393. PRINT #1, ocl
  1394. PRINT #1, "*EOF*"
  1395. CLOSE #1: GOTO 10
  1396.  
  1397.  
  1398. readinchar:
  1399. CLS
  1400. PRINT "Type LIST for list of files."
  1401. readin1:
  1402. INPUT "File to read in (no extentions):"; fi$
  1403. IF UCASE$(LEFT$(fi$, 3)) = "*AB" GOTO 10
  1404. IF MID$(fi$, 2, 2) = ":\" THEN GOTO okopen
  1405. fi$ = LEFT$(fi$, 8)
  1406. okopen:
  1407. fi$ = fi$ + ".dat"
  1408. IF UCASE$(fi$) = "LIST.DAT" THEN FILES "*.dat": GOTO readin1
  1409. IF fi$ = ".dat" THEN GOTO 10
  1410. PRINT fi$: OPEN fi$ FOR INPUT AS #1
  1411. INPUT #1, na$
  1412. INPUT #1, ac
  1413. INPUT #1, th
  1414. INPUT #1, al$
  1415. INPUT #1, cl$
  1416. INPUT #1, lv$
  1417. INPUT #1, hp
  1418. INPUT #1, hda
  1419. INPUT #1, hdb
  1420. INPUT #1, ra$
  1421. INPUT #1, fc$
  1422. INPUT #1, lp$
  1423. INPUT #1, age$
  1424. INPUT #1, ht$
  1425. INPUT #1, wt$
  1426. INPUT #1, hc$
  1427. INPUT #1, ec$
  1428. INPUT #1, sex$
  1429. INPUT #1, ss$
  1430. INPUT #1, mr$
  1431. INPUT #1, l$
  1432. INPUT #1, st
  1433. INPUT #1, xst
  1434. INPUT #1, dx
  1435. INPUT #1, co
  1436. INPUT #1, iq
  1437. INPUT #1, wi
  1438. INPUT #1, ch
  1439. INPUT #1, ppd
  1440. INPUT #1, pp
  1441. INPUT #1, spl
  1442. INPUT #1, rsw
  1443. INPUT #1, bw
  1444. INPUT #1, ocl
  1445. INPUT #1, a$
  1446. IF cl$ = "Fighter" THEN cl = 1
  1447. IF cl$ = "Mage" THEN cl = 2
  1448. IF cl$ = "Priest" THEN cl = 3
  1449. IF cl$ = "Rogue" THEN cl = 4
  1450. IF a$ = "*EOF*" THEN CLOSE #1: GOSUB 130: GOTO 10
  1451. CLOSE #1: GOSUB 130: GOSUB ocskill: GOTO 10
  1452.  
  1453. damn:
  1454. PRINT "Hit any key to continue.....": WHILE INKEY$ = "": WEND: RETURN
  1455.  
  1456. clear1:
  1457. FOR x = scv TO 25
  1458. LOCATE x, 1
  1459. PRINT SPC(78);
  1460. NEXT x
  1461. RETURN
  1462.  
  1463. ocskill:
  1464. SELECT CASE ocl
  1465.  CASE 5
  1466.   ock$(1) = "Detect evil (60' radius)"
  1467.   ock$(2) = "+2 to savings throws"
  1468.   ock$(3) = "Immune to disease"
  1469.   hph = 2 * lv: ock$(4) = "Heal 2hp/lv once per day"
  1470.   ock$(5) = "Cure diseases"
  1471.   ock$(6) = "Surrounded by aura of protection (10' radius) Evil gets -1 attack"
  1472.   ock$(7) = "If holy sword is used, 30' circle of power is made"
  1473.   IF lv > 2 THEN ock$(8) = "Turn undead as cleric 2 lvs behind you"
  1474.   IF lv > 3 THEN ock$(9) = "Call war horse"
  1475.   IF lv > 8 THEN ock$(10) = "Cast priest spells"
  1476.  CASE 8
  1477.   ock$(1) = "Bard Abilities"
  1478.   ock$(2) = "--------------"
  1479.   ock$(3) = "Climb   Detect   Pick     Read"
  1480.   ock$(4) = "Walls   Noise    Pockets  Languages"
  1481.   ock$(5) = "-----   -----    -------  ---------"
  1482.   ock$(6) = " 50%     20%       10%        5%"
  1483.   FOR xxx = 7 TO 10
  1484.    ock$(xxx) = " "
  1485.   NEXT xxx
  1486. END SELECT
  1487. RETURN
  1488.  
  1489.  
  1490. update:
  1491. LOCATE w + up, uc: COLOR cyan, 0: PRINT s$(w)
  1492. LOCATE l + up, uc: COLOR 0, 7: PRINT s$(l): COLOR 7, 0
  1493. RETURN
  1494.  
  1495. runit:
  1496. COLOR 7
  1497. ON l GOTO 20, 50, 60, 70, 100, 110, 120, 200, 80, change, readinchar, npcgen
  1498. GOTO 10
  1499.  
  1500. update1:
  1501. LOCATE w + up, uc: COLOR cyan, 0: PRINT tmp$(w)
  1502. LOCATE l + up, uc: COLOR 0, 7: PRINT tmp$(l): COLOR 7, 0
  1503. RETURN
  1504.  
  1505. runit2:
  1506. IF l = 1 THEN COLOR grey: GOTO chperin
  1507. IF l = 2 THEN COLOR grey: GOTO chability
  1508. IF l = 3 THEN COLOR grey: GOTO chsave
  1509. IF l = 4 THEN COLOR grey: GOTO chstat
  1510. IF l = 5 THEN COLOR grey: GOTO 10
  1511. GOTO change
  1512.  
  1513. npcgen:
  1514. npcgenon = 1
  1515. SHELL "NPCGEN /!!)"
  1516. GOTO 10
  1517.  
  1518. intro1:
  1519. CLS
  1520. PRINT "                     AD&D 2nd Edition Character Sheet Generator"
  1521. PRINT "                                    Version 3.0"
  1522. PRINT "                                    By: Strahan"
  1523. PRINT
  1524. GOSUB damn
  1525. GOTO 10
  1526.  
  1527. REM $STATIC
  1528. SUB intro (a)
  1529. SHARED erlv
  1530. IF a = 1 THEN
  1531.  CLS : erlv = 0
  1532.  PRINT "Welcome to the 2nd Edition AD&D Character Sheet Generator"
  1533.  PRINT "Version 3.0"
  1534.  PRINT
  1535.  PRINT "By Strahan, ASH/RPGC"
  1536.  WHILE INKEY$ = "": WEND: GOTO 1044
  1537. END IF
  1538. erlv = 1
  1539. DEFLNG A-Z: SCREEN 13: CLS
  1540. PALETTE 50, (27 * (256 ^ 2)) + (27 * 256) + 27
  1541. P = 43: FOR C = 1 TO 20: P = P - 2
  1542. PALETTE C, (P * 256) + (P + 10): NEXT C
  1543. LINE (10, 10)-(300, 189), 50, BF
  1544. FOR I = 1 TO 100: COLOR I
  1545. LINE (I, I)-(319 - I, 200 - I), , B
  1546. FOR x = 1 TO 750: NEXT x
  1547. NEXT I
  1548. LOCATE 2, 15: PRINT "Welcome to:"
  1549. LOCATE 4, 15: PRINT "2nd Edition"
  1550. LOCATE 5, 6: PRINT "AD&D Character Sheet Generator"
  1551. LOCATE 6, 15: PRINT "Version 3.0"
  1552. LOCATE 23, 16: PRINT "By: Strahan"
  1553. COLOR 4
  1554. LOCATE 13, 14: PRINT "R"
  1555. LOCATE 13, 18: PRINT "P"
  1556. LOCATE 13, 23: PRINT "G"
  1557. LOCATE 13, 27: PRINT "C"
  1558. WHILE INKEY$ = "": WEND
  1559. SCREEN 0
  1560. WIDTH 80
  1561. 1044
  1562. END SUB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement