Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- REM $DYNAMIC
- DECLARE SUB intro (a)
- DECLARE SUB closing (ak)
- COMMON SHARED erlv
- CLS : ln$ = STRING$(70, 196): DIM s$(100): DIM tmp$(250): ON ERROR GOTO 1000
- white = 15: yellow = 14: purple = 13: bred = 20: grey = 7: bgrey = 23
- cyan = 11: red = 12
- CALL intro(0)
- 10 CLS
- COLOR red: PRINT TAB(29); "®þ¯ ";
- COLOR purple: PRINT "°±²Û";
- COLOR yellow: PRINT " Main Menu ";
- COLOR purple: PRINT "Û²±°";
- COLOR red: PRINT " ®þ¯": COLOR cyan, 0: PRINT : PRINT
- s$(1) = " Generate a character "
- s$(2) = " View the current character "
- s$(3) = " Export data to port or file "
- s$(4) = " Credits "
- s$(5) = " Clear out the memory "
- s$(6) = " Roll some ability scores "
- s$(7) = " Shell to DOS "
- s$(8) = " Branch to a module "
- s$(9) = " Quit "
- s$(10) = " Change variables in memory "
- s$(11) = " Restore a character from disk "
- s$(12) = " Generate NPC "
- FOR xxx = 1 TO 12
- PRINT TAB(31); s$(xxx)
- NEXT xxx
- IF LEFT$(na$, 1) = "*" THEN na$ = "N/A"
- IF LEN(na$) = 0 THEN na$ = "N/A"
- PRINT : PRINT : PRINT : PRINT : PRINT TAB(30); "Character in memory: ";
- COLOR red: PRINT na$: COLOR grey, 0
- PRINT TAB(34); "Your choice:";
- COLOR bgrey: PRINT "_": COLOR grey, 0
- l = 1: up = 3: uc = 31
- LOCATE l + 3, 31: COLOR 0, 7: PRINT s$(l): COLOR 7, 0
- 12 a$ = INKEY$: IF a$ = "" THEN 12
- IF ASC(a$) = 13 THEN COLOR 7, 0: GOTO runit
- IF UCASE$(a$) = "R" THEN COLOR grey: GOTO readinchar: GOTO 10
- IF UCASE$(a$) = "C" THEN COLOR grey: GOTO change: GOTO 10
- IF a$ = CHR$(0) + CHR$(80) AND l = 12 THEN w = l: l = 0: GOSUB update
- IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 13: GOSUB update
- IF a$ = CHR$(0) + CHR$(80) AND l < 12 THEN w = l: l = l + 1: GOSUB update
- IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update
- IF ASC(a$) = 50 AND l < 12 THEN w = l: l = l + 1: GOSUB update
- IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update
- GOTO 12
- 20 CLS
- PRINT TAB(14); "What method will you use for abilities:": PRINT : PRINT
- COLOR cyan
- PRINT TAB(11); "User will supply ability scores (ST, IQ, etc.)"
- tmp$(1) = " User will supply ability scores (ST, IQ, etc.) "
- tmp$(2) = " Computer will randomize the ability scores. "
- PRINT TAB(11); " Computer will randomize the ability scores."
- up = 3: uc = 11: COLOR 0, 7: LOCATE 4, 11: PRINT tmp$(1): COLOR 7, 0
- 812 a$ = INKEY$: IF a$ = "" THEN 812
- IF ASC(a$) = 13 AND l = 1 THEN COLOR 7, 0: GOTO 30
- IF ASC(a$) = 13 AND l = 2 THEN COLOR 7, 0: GOTO 25
- IF a$ = CHR$(0) + CHR$(80) AND l = 2 THEN w = l: l = 0: GOSUB update1
- IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 3: GOSUB update1
- IF a$ = CHR$(0) + CHR$(80) AND l < 2 THEN w = l: l = l + 1: GOSUB update1
- IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update1
- IF ASC(a$) = 50 AND l < 2 THEN w = l: l = l + 1: GOSUB update1
- IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update1
- GOTO 812
- 25 rg = 1
- 30 COLOR cyan: CLS
- PRINT TAB(24); "Do you want to : ": PRINT
- tmp$(1) = " Use the secondary skills system or "
- tmp$(2) = " Use the non-weapon proficincy system "
- PRINT TAB(18); tmp$(1)
- PRINT TAB(18); tmp$(2)
- up = 2: uc = 18: COLOR 0, 7: LOCATE 3, 18: PRINT tmp$(1): l = 1: COLOR 7, 0
- a: a$ = INKEY$: IF a$ = "" THEN GOTO a:
- IF ASC(a$) = 13 AND l = 1 THEN COLOR 7, 0: GOTO ab
- IF ASC(a$) = 13 AND l = 2 THEN COLOR 7, 0: GOTO ac
- IF a$ = CHR$(0) + CHR$(80) AND l = 2 THEN w = l: l = 0: GOSUB update1
- IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 3: GOSUB update1
- IF a$ = CHR$(0) + CHR$(80) AND l < 2 THEN w = l: l = l + 1: GOSUB update1
- IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update1
- IF ASC(a$) = 50 AND l < 2 THEN w = l: l = l + 1: GOSUB update1
- IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update1
- GOTO a:
- ab: ssk = 1
- COLOR grey: LOCATE 6, 16: INPUT "Should I generate random secondary skill(s)"; a$
- IF UCASE$(LEFT$(a$, 1)) = "Y" THEN sskb = 1
- ac:
- COLOR grey
- CLS : ln$ = STRING$(70, 196): LOCATE 11, 1: COLOR purple, 0: PRINT ln$: LOCATE 1, 1
- COLOR yellow, 0
- LOCATE 11, 1: COLOR purple: PRINT ln$: LOCATE 1, 1: COLOR yellow, 0
- PRINT "Name :"
- PRINT "AC :"
- PRINT "AL :"
- PRINT "Race :"
- PRINT "Class :"
- PRINT "Level :"
- PRINT "HD :"
- PRINT "HP :"
- PRINT "THAC0 :"
- PRINT "Move rate :"
- COLOR purple, 0: PRINT ln$: COLOR yellow, 0
- PRINT "Hair color :"
- PRINT "Eye color :"
- PRINT "Weight :"
- PRINT "Height :"
- PRINT "Age :"
- PRINT "Sex :"
- PRINT "Family/Clan :": COLOR grey, 0
- LOCATE 1, 20: INPUT "", na$
- IF na$ = "" THEN GOTO 10
- LOCATE 2, 20: INPUT "", ac
- LOCATE 3, 20: INPUT "", al$
- LOCATE 4, 20: INPUT "", ra$
- LOCATE 19, 1: PRINT "Enter class ID Number:"
- LOCATE 20, 1: PRINT "1 - Fighter 2 - Mage 3 - Priest"
- LOCATE 21, 1: PRINT "4 - Rogue 5 - Paladin 6 - Ranger"
- LOCATE 22, 1: PRINT "7 - Druid 8 - Bard 9 - Other"
- INPUT cl
- IF cl = 5 THEN LOCATE 5, 20: PRINT "Paladin": cl$ = "Paladin": cl = 1: ocl = 5: GOTO rest
- IF cl = 6 THEN LOCATE 5, 20: PRINT "Ranger": cl$ = "Ranger": cl = 1: ocl = 6: GOTO rest
- IF cl = 7 THEN LOCATE 5, 20: PRINT "Druid": cl$ = "Druid": cl = 3: ocl = 7: GOTO rest
- IF cl = 8 THEN LOCATE 5, 20: PRINT "Bard": cl$ = "Bard": cl = 4: ocl = 8: GOTO rest
- IF cl = 1 THEN LOCATE 5, 20: PRINT "Fighter": cl$ = "Fighter": GOTO rest
- IF cl = 2 THEN LOCATE 5, 20: PRINT "Mage": cl$ = "Mage": GOTO rest
- IF cl = 3 THEN LOCATE 5, 20: PRINT "Priest": cl$ = "Priest": GOTO rest
- IF cl = 4 THEN LOCATE 5, 20: PRINT "Rogue": cl$ = "Rogue": l$ = l$ + "Thieves' Cant": GOTO rest
- IF cl = 9 THEN cl = 5: GOTO inpcl
- GOTO rest
- inpcl:
- FOR x = 19 TO 23
- LOCATE x, 1: PRINT " "
- NEXT x
- LOCATE 5, 20: INPUT "", cl$
- rest:
- GOSUB ocskill
- FOR x = 19 TO 23
- LOCATE x, 1: PRINT " "
- NEXT x
- LOCATE 6, 20: INPUT "", lv$
- IF cl <> 5 AND VAL(lv$) > 20 THEN GOTO inpdata
- IF cl = 5 THEN GOTO inpdata
- GOSUB 180
- IF th < 1 THEN th = 1
- LOCATE 7, 20: PRINT LTRIM$(STR$(hda)); " +"; hdb; " (d"; hdc; ")"
- GOTO ack
- inpdata:
- LOCATE 7, 20: INPUT "", hda: LOCATE 7, 24: PRINT "+ ";
- INPUT "", hdb
- LOCATE 7, 32: PRINT "Die roll (d";
- INPUT "", hdc
- LOCATE 7, 47: PRINT ")"
- LOCATE 7, 20: PRINT SPC(50); : LOCATE 7, 20: PRINT LTRIM$(STR$(hda)); " + "; LTRIM$(STR$(hdb)); " (d"; LTRIM$(STR$(hdc)); ")"
- ack:
- LOCATE 20, 1: PRINT "Should I generate HP for you?"
- INPUT a$
- LOCATE 20, 1: PRINT " "
- LOCATE 21, 1: PRINT " "
- IF a$ = "n" OR a$ = "N" THEN LOCATE 8, 20: INPUT "", hp
- aa:
- IF hpr = 1 THEN hp = 0: hde = 0
- IF cl <> 5 THEN GOTO otherclhp
- FOR hit = 1 TO hda
- RANDOMIZE TIMER
- hdd = INT(RND(1) * hdc)
- hde = hde + hdd
- NEXT hit
- hde = hde + hdb
- hp = hde: LOCATE 8, 20: PRINT LTRIM$(STR$(hp))
- IF hdr = 1 THEN GOTO ar
- GOTO thac
- IF cl = 0 THEN LOCATE 7, 20: PRINT SPC(50); : LOCATE 7, 20: PRINT LTRIM$(STR$(hda)); " +"; hdb; " (d"; hdc; " )"
- IF cl = 5 THEN LOCATE 8, 20: INPUT "", hp: GOTO thac
- otherclhp:
- FOR hit = 1 TO hda
- RANDOMIZE TIMER
- hdd = INT(RND(1) * hdc)
- hde = hde + hdd
- NEXT hit
- hde = hde + hdb
- hp = hde: LOCATE 8, 20: PRINT LTRIM$(STR$(hp))
- thac:
- IF cl > 1 AND cl < 5 AND VAL(lv$) > 20 THEN LOCATE 9, 20: INPUT "", th
- IF cl = 5 THEN LOCATE 9, 20: INPUT "", th ELSE LOCATE 9, 20: IF th < 1 THEN th = 1: PRINT LTRIM$(STR$(th))
- IF cl <> 5 THEN LOCATE 9, 20: PRINT LTRIM$(STR$(th))
- LOCATE 10, 20: INPUT "", mr$
- ar:
- LOCATE 20, 1: PRINT "Is this OK (y/n/hp)?"
- INPUT a$
- IF UCASE$(a$) = "HP" THEN hpr = 1: GOTO aa
- IF UCASE$(a$) = "N" GOTO ac
- LOCATE 20, 1: PRINT " "
- LOCATE 21, 1: PRINT " "
- 31 LOCATE 12, 20: INPUT "", hc$
- LOCATE 13, 20: INPUT "", ec$
- LOCATE 14, 20: INPUT "", wt$
- LOCATE 15, 20: INPUT "", ht$
- LOCATE 16, 20: INPUT "", age$
- LOCATE 17, 20: INPUT "", sex$
- LOCATE 18, 20: INPUT "", fc$
- LOCATE 20, 1: PRINT "Is this OK (y/n)?"
- INPUT a$
- IF a$ = "n" OR a$ = "N" THEN 31
- 35 CLS
- COLOR yellow, 0
- PRINT ""
- PRINT "Liege/Patron :"
- PRINT "Title/rank :"
- IF rg = 1 THEN COLOR purple: PRINT ln$: COLOR yellow: GOTO grrr
- PRINT
- grrr:
- IF ssk = 1 THEN PRINT "Secondary skill :" ELSE PRINT
- IF rg = 1 THEN 36
- COLOR purple, 0: PRINT ln$: COLOR grey, 0
- PRINT "ABILITIES SECTION"
- COLOR purple, 0: PRINT ln$: COLOR yellow, 0
- PRINT "Strength :"
- PRINT "Dexeterity :"
- PRINT "Constitution :"
- PRINT "Intelligence :"
- PRINT "Wisdom :"
- PRINT "Charisma :"
- COLOR purple, 0: PRINT ln$: COLOR grey, 0
- 36 LOCATE 2, 20: INPUT "", lp$
- LOCATE 3, 20: INPUT "", t$
- IF ssk = 1 AND sskb = 0 THEN LOCATE 5, 20: INPUT "", ss$
- IF ssk = 1 AND sskb = 1 THEN GOSUB secskill: LOCATE 5, 20: PRINT ss$
- IF rg = 0 GOTO 37
- stat:
- RANDOMIZE TIMER
- st:
- st = INT(RND * 19)
- IF st < 8 GOTO st
- st1:
- xst = INT(RND * 100)
- dx:
- dx = INT(RND * 19)
- IF dx < 8 GOTO dx
- co:
- co = INT(RND * 19)
- IF co < 8 GOTO co
- iq:
- iq = INT(RND * 19)
- IF iq < 8 GOTO iq
- wi:
- wi = INT(RND * 19)
- IF wi < 8 GOTO wi
- ch:
- ch = INT(RND * 19)
- IF ch < 8 GOTO ch
- IF cl$ = "Fighter" AND st < 9 THEN GOTO stat
- IF cl$ = "Paladin" AND st < 12 THEN GOTO stat
- IF cl$ = "Paladin" AND co < 9 THEN GOTO stat
- IF cl$ = "Paladin" AND wi < 13 THEN GOTO stat
- IF cl$ = "Paladin" AND ch < 17 THEN GOTO stat
- IF cl$ = "Ranger" AND st < 13 THEN GOTO stat
- IF cl$ = "Ranger" AND dx < 13 THEN GOTO stat
- IF cl$ = "Ranger" AND co < 14 THEN GOTO stat
- IF cl$ = "Ranger" AND wi < 14 THEN GOTO stat
- IF cl$ = "Mage" AND iq < 9 THEN GOTO stat
- IF cl$ = "Priest" AND wi < 9 THEN GOTO stat
- IF cl$ = "Druid" AND wi < 12 THEN GOTO stat
- IF cl$ = "Druid" AND ch < 15 THEN GOTO stat
- IF cl$ = "Thief" AND dx < 9 THEN GOTO stat
- IF cl$ = "Bard" AND dx < 12 THEN GOTO stat
- IF cl$ = "Bard" AND iq < 13 THEN GOTO stat
- IF cl$ = "Bard" AND ch < 15 THEN GOTO stat
- LOCATE 16, 1: PRINT "Is this OK (y/n)?"
- INPUT a$
- IF a$ = "n" OR a$ = "N" THEN 35
- GOTO 38
- 37 LOCATE 9, 20: INPUT st
- IF st = 18 THEN LOCATE 16, 1: INPUT "Exceptional strength value (1-100):"; xst
- LOCATE 16, 1: PRINT " "
- LOCATE 10, 20: INPUT dx
- LOCATE 11, 20: INPUT co
- LOCATE 12, 20: INPUT iq
- LOCATE 13, 20: INPUT wi
- LOCATE 14, 20: INPUT ch
- ON cl GOTO 140, 150, 160, 170
- sokay:
- LOCATE 16, 1: PRINT "Is this OK (y/n)?"
- INPUT a$
- IF a$ = "n" OR a$ = "N" THEN 35
- 38 GOSUB 90: GOSUB 130: CLS : COLOR cyan: PRINT "Saving Throws:"
- PRINT "Save versus-": COLOR yellow
- PRINT " Pa/Po/Death Mag. :"
- PRINT " Rod/Staves/Wands :"
- PRINT " Petrif/Paralyse :"
- PRINT " Breath Weapon :"
- PRINT " Spell :"
- COLOR purple: PRINT ln$: COLOR cyan
- PRINT "Languages :": COLOR grey
- GOSUB savthrw:
- IF cl = 5 THEN GOTO 42
- LOCATE 3, 20: PRINT ppd
- LOCATE 4, 20: PRINT rsw
- LOCATE 5, 20: PRINT pp
- LOCATE 6, 20: PRINT bw
- LOCATE 7, 20: PRINT spl
- langent:
- GOSUB lang1
- FOR x = 10 TO 24
- LOCATE x, 1
- PRINT SPC(78);
- NEXT x
- LOCATE 9, 20: PRINT l$
- LOCATE 12, 1: PRINT "Hit ";
- COLOR red: PRINT "<ENTER> ";
- COLOR grey: PRINT "to continue"
- INPUT a$
- 40 CLS : COLOR bred
- PRINT TAB(22); "Character generation complete.": COLOR grey: IF st <> 18 THEN xst = 0
- IF coa <> 0 THEN PRINT TAB(24); "Good con raises HP by ";
- IF coa <> 0 THEN COLOR red: PRINT coa: COLOR grey
- IF dxc <> 0 THEN PRINT TAB(24); "Good dex lowers AC by ";
- IF dxc <> 0 THEN COLOR red: PRINT dxc: COLOR grey
- hp = hp + coa: ac = ac + dxc
- GOTO 5
- 42 LOCATE 3, 20: INPUT ppd
- LOCATE 4, 20: INPUT rsw
- LOCATE 5, 20: INPUT pp
- LOCATE 6, 20: INPUT bw
- LOCATE 7, 20: INPUT spl
- LOCATE 11, 1: PRINT "Is this OK (y/n)?"
- INPUT a$
- IF a$ = "n" OR a$ = "N" GOTO 38
- LOCATE 11, 1: PRINT SPC(30); : LOCATE 12, 1: PRINT SPC(30); : GOSUB lang1
- GOTO langent:
- lang1:
- IF chst = 1 THEN LOCATE 13, 1: COLOR purple: PRINT ln$: COLOR yellow: chst = 0
- l$ = ""
- IF cl = 4 THEN nol = 1: l$ = "Theives' Cant"
- lang:
- IF nol = (iqa + 1) THEN LOCATE 12, 1: PRINT "YOU'VE SELECTED ALL YOUR LANGUAGES AVAILIBLE TO YOUR IQ": GOSUB damn: RETURN
- LOCATE 16, 1: COLOR purple: PRINT "Languages known:"; l$: COLOR cyan
- PRINT "1. Common 6. Kobold"
- PRINT "2. Elven 7. Draconian"
- PRINT "3. Dwarven 8. Minotaur"
- PRINT "4. Dragon 9. Other"
- PRINT "5. Goblinoid 10. Done": PRINT : COLOR purple
- PRINT "Language:";
- nol = nol + 1
- IF nol = (iqa + 1) THEN LOCATE 12, 1: PRINT "YOU'VE SELECTED ALL YOUR LANGUAGES AVAILIBLE TO YOUR IQ": GOSUB damn: RETURN
- COLOR grey: INPUT a$
- a = VAL(a$)
- IF a = 1 THEN l$ = l$ + "/Common": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 2 THEN l$ = l$ + "/Elven": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 3 THEN l$ = l$ + "/Dwarven": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 4 THEN l$ = l$ + "/Dragon": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 5 THEN l$ = l$ + "/Goblinoid": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 6 THEN l$ = l$ + "/Kobold": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 7 THEN l$ = l$ + "/Draconian": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 8 THEN l$ = l$ + "/Minotaur": LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 9 THEN LOCATE 23, 1: INPUT "Other language:"; ol$
- IF a = 9 THEN l$ = l$ + "/": l$ = l$ + ol$: LOCATE 23, 1: PRINT SPC(70); : LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- IF a = 10 THEN GOTO endoflang
- LOCATE 24, 1: PRINT SPC(70); : GOTO lang
- endoflang:
- FOR x = 16 TO 24
- LOCATE x, 1: PRINT SPC(70);
- NEXT x
- RETURN
- 50 CLS
- IF st + dx + co + iq + wi + ch = 0 THEN PRINT TAB(25); "No character in memory.": PRINT : GOTO 5
- IF na$ = "N/A" THEN na$ = "*Nameless One*"
- PRINT "Abbrievated View": PRINT
- PRINT "Name: AC: THAC0: AL:"
- PRINT "Class: LV: HP: HD:"
- PRINT "Race: Family/Clan:"
- PRINT " Age: Height: Weight:"
- PRINT "Hair color: Eye color: Sex:"
- PRINT "Title: Move rate:"
- PRINT "Liege/Patron:"
- PRINT "Langauges:"
- IF ssk = 1 THEN PRINT "Secondary skill:" ELSE PRINT
- PRINT ln$
- PRINT "Str: HP: DA: WA: MP: OD: BB/LG:"
- PRINT "Dex: RA: MAA: DA:"
- PRINT "Con: HPA: SS: RS: PS: R:"
- PRINT "Int: #L: SL: CLS: M#SL: SI:"
- PRINT "Wis: MDA: BS: CSF: SI: See notes section"
- PRINT "Cha: M#H: LB: RA:"
- PRINT ln$
- LOCATE 3, 7: PRINT na$
- LOCATE 3, 34: PRINT ac
- LOCATE 3, 47: PRINT th
- LOCATE 3, 57: PRINT al$
- LOCATE 4, 8: PRINT cl$
- LOCATE 4, 34: PRINT lv$
- LOCATE 4, 44: PRINT hp
- LOCATE 4, 57: PRINT hda;
- PRINT " + "; hdb
- LOCATE 5, 7: PRINT ra$
- LOCATE 5, 44: PRINT fc$
- LOCATE 9, 15: PRINT lp$
- LOCATE 6, 36: PRINT age$
- LOCATE 6, 50: PRINT ht$
- LOCATE 6, 67: PRINT wt$
- LOCATE 7, 13: PRINT hc$
- LOCATE 7, 42: PRINT ec$
- LOCATE 7, 58: PRINT sex$
- IF ssk = 1 THEN LOCATE 11, 18: PRINT ss$
- LOCATE 8, 42: PRINT mr$
- LOCATE 10, 12: PRINT l$
- LOCATE 8, 8: PRINT t$
- LOCATE 13, 5: PRINT st
- IF st = 18 THEN LOCATE 13, 8: PRINT "/";
- LOCATE 14, 5: PRINT dx
- LOCATE 15, 5: PRINT co
- LOCATE 16, 5: PRINT iq
- LOCATE 17, 5: PRINT wi
- LOCATE 18, 5: PRINT ch
- LOCATE 13, 14: PRINT sta
- LOCATE 13, 23: PRINT stb
- LOCATE 13, 35: PRINT stc
- LOCATE 13, 45: PRINT std
- LOCATE 13, 56: PRINT ste$
- LOCATE 13, 71: PRINT stf
- LOCATE 14, 14: PRINT dxa
- LOCATE 14, 24: PRINT dxb
- LOCATE 14, 35: PRINT dxc
- LOCATE 15, 15: PRINT coa
- LOCATE 15, 23: PRINT cob
- LOCATE 15, 35: PRINT coc
- LOCATE 15, 45: PRINT cod
- LOCATE 15, 57: PRINT coe$
- LOCATE 16, 14: PRINT iqa
- LOCATE 16, 23: PRINT iqb
- LOCATE 16, 36: PRINT iqc
- LOCATE 16, 47: PRINT iqd$
- LOCATE 16, 56: PRINT iqe$
- LOCATE 17, 15: PRINT wia
- LOCATE 17, 23: PRINT wib$
- LOCATE 17, 36: PRINT wic
- LOCATE 18, 15: PRINT cha
- LOCATE 18, 23: PRINT chb
- LOCATE 18, 35: PRINT chc
- IF na$ = "*Nameless One*" THEN na$ = "N/A"
- 5 PRINT : PRINT "Press any key to continue......": WHILE INKEY$ = "": WEND: GOTO 10
- 60 CLS
- IF st + dx + co + iq + wi + ch = 0 THEN PRINT TAB(25); "No character in memory.": PRINT : GOTO 5
- PRINT "Output as (";
- COLOR white: PRINT "A";
- COLOR grey: PRINT ")SCII data or CSHEET (";
- COLOR white: PRINT "R";
- COLOR grey: PRINT ")etrievable data ";
- INPUT a$
- IF UCASE$(a$) = "R" THEN GOTO outputasdat:
- CLS
- PRINT "Export data to what port/file:"
- INPUT P$
- IF UCASE$(LEFT$(fi$, 3)) = "" GOTO 10
- OPEN P$ FOR OUTPUT AS #1
- PRINT #1, " ************************"
- PRINT #1, " Advanced Dungeon's & Dragons * *"
- PRINT #1, " Character Sheet Generator * *"
- PRINT #1, " * *"
- PRINT #1, " Player name________________________ * *"
- FOR x = 1 TO 8
- PRINT #1, " * *"
- NEXT x
- PRINT #1, " ************************"
- PRINT #1, " Character Sketch"
- PRINT #1, ""
- PRINT #1, ln$
- PRINT #1, USING "Name:\ \"; na$;
- PRINT #1, USING "AC: ###"; ac;
- PRINT #1, USING " THAC0: ##"; th;
- PRINT #1, USING " AL:\ \"; al$
- PRINT #1, USING "Class:\ \"; cl$;
- PRINT #1, USING "LV: \ \"; lv$;
- PRINT #1, USING " HP: ####"; hp;
- PRINT #1, USING " HD: ###"; hda;
- PRINT #1, USING "+ ###"; hdb
- PRINT #1, USING "Race:\ \"; ra$;
- PRINT #1, USING " Family/Clan: \ \"; fc$
- PRINT #1, USING "Liege/Patron: \ \"; lp$;
- PRINT #1, USING "Age: \ \"; age$;
- PRINT #1, USING "Height: \ \"; ht$;
- PRINT #1, USING " Weight: \ \"; wt$
- PRINT #1, USING "Hair color: \ \"; hc$;
- PRINT #1, USING " Eye color: \ \"; ec$;
- PRINT #1, USING "Sex:\ \"; sex$
- IF ssk = 1 THEN PRINT #1, USING "Secondary skill: \ \"; ss$;
- PRINT #1, USING "Move rate: \ \"; mr$
- PRINT #1, "Langauges:"; l$
- PRINT #1, ln$
- PRINT #1, USING "Str: ##"; st;
- IF st = 18 THEN PRINT #1, " ("; xst; ")";
- PRINT #1, " HP: "; sta;
- PRINT #1, " DA:"; stb;
- PRINT #1, " WA:"; stc;
- PRINT #1, " MP:"; std;
- PRINT #1, " OD:"; ste$;
- PRINT #1, " BB/LG:"; stf
- PRINT #1, USING "Dex: ##"; dx;
- PRINT #1, " RA:"; dxa;
- PRINT #1, " MAA:"; dxb;
- PRINT #1, " DA:"; dxc
- PRINT #1, USING "Con: ##"; co;
- PRINT #1, " HPA:"; coa;
- PRINT #1, " SS:"; cob;
- PRINT #1, " RS:"; coc;
- PRINT #1, " PS:"; cod;
- PRINT #1, " R:"; coe$
- PRINT #1, USING "Int: ##"; iq;
- PRINT #1, " #L:"; iqa;
- PRINT #1, " SL:"; iqb;
- PRINT #1, " CLS:"; iqc;
- PRINT #1, " M#SL:"; iqd$;
- PRINT #1, " SI:"; ide$
- PRINT #1, USING "Wis: ##"; wi;
- PRINT #1, " MDA:"; wia;
- PRINT #1, " BS:"; wib$;
- PRINT #1, " CSF:"; wic;
- PRINT #1, " SI: See notes section"
- PRINT #1, USING "Cha: ##"; ch;
- PRINT #1, " M#H:"; cha;
- PRINT #1, " LB:"; chb;
- PRINT #1, " RA:"; chc
- PRINT #1, ln$
- PRINT #1, "Saving Throws:"
- PRINT #1, ""
- PRINT #1, "Save versus="
- PRINT #1, " Para/Pois/Death magic:"; ppd
- PRINT #1, " Petrif/Polymorph :"; pp
- PRINT #1, " Spells :"; spl
- PRINT #1, " Rods/Staves/Wands :"; rsw
- PRINT #1, " Breath Weapon :"; bw
- PRINT #1, ""
- PRINT #1, "Experience: XP/Next LV:"
- PRINT #1, ""
- PRINT #1, "PP: GP: EP:"
- PRINT #1, ""
- PRINT #1, "SP: CP: GEMS:"
- PRINT #1, ""
- PRINT #1, "* WEAPON * DMG * MOD * WGT * SPD * TYPE * FIRE RATE *"
- PRINT #1, "****************************************************************************"
- FOR x = 1 TO 10
- PRINT #1, "* * * * * * * *"
- NEXT x
- PRINT #1, "****************************************************************************"
- FOR x = 1 TO 6
- PRINT #1, ""
- NEXT x
- PRINT #1, "* ITEM * WT ** ITEM * WT *"
- PRINT #1, "**************************************************************************"
- FOR x = 1 TO 18
- PRINT #1, "* * ** * *"
- NEXT x
- PRINT #1, "**************************************************************************"
- PRINT #1, ""
- IF ssk = 1 GOTO printer1:
- PRINT #1, "* PROFICINCY * REV ABIL * MOD ** PROFICINCY * REV ABIL * MOD *"
- PRINT #1, "******************************************************************************"
- FOR x = 1 TO 13
- PRINT #1, "* * * ** * * *"
- NEXT x
- PRINT #1, "******************************************************************************"
- printer1:
- PRINT #1, "Weapon Proficincies:"
- FOR x = 1 TO 7
- PRINT #1, ""
- NEXT x
- PRINT #1, "NOTES"
- PRINT #1, ln$
- IF LEN(ock$(1)) = 0 GOTO skipit
- FOR xxx = 1 TO 10
- PRINT #1, ock$(xxx)
- NEXT xxx
- skipit:
- FOR xyz = 1 TO 7
- PRINT #1, wid$(xyz)
- NEXT xyz
- IF ssk = 0 THEN bba = 14
- IF ssk = 1 THEN bbs = 20
- FOR bb = 1 TO bba
- PRINT #1, ""
- NEXT bb
- PRINT #1, ""
- PRINT #1, ">THIS SHEET GENERATED WITH THE AD&D CHARACTER SHEET GENERATOR, BY STRAHAN<"
- PRINT #1, "-= SHEET GENERATED ON "; DATE$; " AT "; TIME$; " =-"
- CLOSE #1: GOTO 5
- 70 CLS
- PRINT " Greetings. This program was made mainly to supplement my role playing"
- PRINT "hobby. I like to design stuff, and after seeing alot of crappy c-sheet"
- PRINT "generators and even a few good ones, I decided I'd make one too.": PRINT
- PRINT " CSheet is not the best, but I think it offers the most control over"
- PRINT "your character then the others do. If you reeeeealy want that Chaotic"
- PRINT "Evil, 204th lv Dwarf Paladin, then so be it. (Most DMs won't like it,"
- PRINT "one I am thinking of inparticular would label you a 'power gamer' and"
- PRINT "have you killed, but you're the boss!)"
- PRINT
- PRINT "I am currently attempting to figure out how to get the printer error"
- PRINT "routines down pat so be forewarned: If your printer goes nuts when"
- PRINT "trying to print, odds are you just LOST your character in the memory."
- PRINT "For Good, Forever, Until God kisses Satan and the Incarnations applaud,"
- PRINT "etc... Moral: Save before printing."
- PRINT : GOSUB damn
- CLS : PRINT
- PRINT ""
- PRINT " Program specs:": PRINT
- PRINT " Author : Strahan"
- PRINT " Contact : Strahan on The Armoury BBS (846-4308)"
- PRINT " or Ken on Fido node 1:270/614"
- PRINT " Revised : August 6, 1990"
- PRINT " Language: QuickBasic 4.5"
- PRINT " Platform: MS-DOS/PC-DOS Based operating systems"
- GOTO 5
- 80 CLS
- PRINT "Fare well, and thanks for using an RPGC Sponsored Product!"
- PRINT
- END
- 90 SELECT CASE wi
- CASE 19
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- RETURN
- CASE 20
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
- RETURN
- CASE 21
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
- wid$(3) = "Fear"
- RETURN
- CASE 22
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
- wid$(3) = "Fear"
- wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
- RETURN
- CASE 23
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
- wid$(3) = "Fear"
- wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
- wid$(5) = "Chaos, Feeblemind, Hold monster, Magic Jar, Quest"
- RETURN
- CASE 24
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
- wid$(3) = "Fear"
- wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
- wid$(5) = "Chaos, Feeblemind, Hold monster, Magic Jar, Quest"
- wid$(6) = "Geas, Mass suggestion, Rod of rulership"
- RETURN
- CASE 25
- wid$(1) = "Cause fear, Charm person, Command, Friends, Hypnotism"
- wid$(2) = "Forget, Hold person, Ray of enfeeblement, Scare"
- wid$(3) = "Fear"
- wid$(4) = "Charm monster, Confusion, Emotion, Fumble, Suggestion"
- wid$(5) = "Chaos, Feeblemind, Hold monster, Magic Jar, Quest"
- wid$(6) = "Geas, Mass suggestion, Rod of rulership"
- wid$(7) = "Antipathy/Sympathy, Death spell, Mass charm"
- RETURN
- END SELECT: RETURN
- 100 CLEAR
- white = 15: yellow = 14: purple = 13: bred = 20: grey = 7: bgrey = 23
- cyan = 11: red = 12
- COLOR grey: LOCATE 18, 46: PRINT "_": LOCATE 18, 1: COLOR red
- PRINT TAB(24); "Memory contents have been cleared out.": COLOR grey
- FOR tme = 1 TO 5000: NEXT tme: GOTO 10
- 110 CLS
- COLOR purple
- PRINT "Rolling......................": PRINT : PRINT : COLOR yellow
- RANDOMIZE TIMER
- sta:
- sta = INT(RND * 19)
- IF sta < 8 GOTO sta
- st1a:
- xsta = INT(RND * 100)
- dxa:
- dxa = INT(RND * 19)
- IF dxa < 8 GOTO dxa
- coa:
- coa = INT(RND * 19)
- IF coa < 8 GOTO coa
- iqa:
- iqa = INT(RND * 19)
- IF iqa < 8 GOTO iqa
- wia:
- wia = INT(RND * 19)
- IF wia < 8 GOTO wia
- cha:
- cha = INT(RND * 19)
- IF cha < 8 GOTO cha
- PRINT "Strength : ";
- COLOR red: PRINT sta: COLOR yellow
- IF sta = 18 THEN LOCATE 4, 24: PRINT "("; xsta; ")"
- PRINT "Dexterity : ";
- COLOR red: PRINT dxa: COLOR yellow
- PRINT "Constitution : ";
- COLOR red: PRINT coa: COLOR yellow
- PRINT "Intelligence : ";
- COLOR red: PRINT iqa: COLOR yellow
- PRINT "Wisdom : ";
- COLOR red: PRINT wia: COLOR yellow
- PRINT "Charisma : ";
- COLOR red: PRINT cha: COLOR yellow
- GOTO 5
- 120 CLS
- PRINT
- PRINT "(S)hell to DOS or just (E)xecute DOS command:"
- INPUT a$
- IF a$ = "s" OR a$ = "S" GOTO 125
- PRINT "Enter command(s):"
- INPUT co$
- SHELL co$
- GOTO 5
- 125 CLS : PRINT "Type EXIT to return to CSHEET"
- SHELL
- GOTO 5
- 130 CLS
- IF st = 1 THEN sta = -5: stb = -4: stc = 1: std = 3: ste$ = "1": stf = 0
- IF st = 2 THEN sta = -3: stb = -2: stc = 1: std = 5: ste$ = "1": stf = 0
- IF st = 3 THEN sta = -3: stb = -1: stc = 5: std = 10: ste$ = "2": stf = 0
- IF st = 4 OR st = 5 THEN sta = -2: stb = -1: stc = 10: std = 25: ste$ = "3": stf = 0
- IF st = 6 OR st = 7 THEN sta = -1: stb = 0: stc = 20: std = 55: ste$ = "4": stf = 0
- IF st = 8 OR st = 9 THEN sta = 0: stb = 0: stc = 35: std = 90: ste$ = "5": stf = 1
- IF st = 10 OR st = 11 THEN sta = 0: stb = 0: stc = 40: std = 115: ste$ = "6": stf = 2
- IF st = 12 OR st = 13 THEN sta = 0: stb = 0: stc = 45: std = 140: ste$ = "7": stf = 4
- IF st = 14 OR st = 15 THEN sta = 0: stb = 0: stc = 55: std = 170: ste$ = "8": stf = 7
- IF st = 16 THEN sta = 0: stb = 1: stc = 70: std = 195: ste$ = "9": stf = 10
- IF st = 17 THEN sta = 1: stb = 1: stc = 85: std = 220: ste$ = "10": stf = 13
- IF st = 18 GOTO sttest
- IF st = 19 THEN sta = 3: stb = 7: stc = 485: std = 640: ste$ = "16(8)": stf = 50
- IF st = 20 THEN sta = 3: stb = 8: stc = 535: std = 700: ste$ = "17(10)": stf = 60
- IF st = 21 THEN sta = 4: stb = 9: stc = 635: std = 810: ste$ = "17(12)": stf = 70
- IF st = 22 THEN sta = 4: stb = 10: stc = 785: std = 970: ste$ = "18(14)": stf = 80
- IF st = 23 THEN sta = 5: stb = 11: stc = 935: std = 1130: ste$ = "18(16)": stf = 90
- IF st = 24 THEN sta = 6: stb = 12: stc = 1235: std = 1440: ste$ = "19(17)": stf = 95
- IF st = 25 THEN sta = 7: stb = 14: stc = 1535: std = 1750: ste$ = "19(18)": stf = 99
- GOTO dxrun
- sttest:
- IF xst = 0 THEN sta = 1: stb = 2: stc = 110: std = 255: ste$ = "11": stf = 16
- IF xst > 0 AND xst < 51 THEN sta = 1: stb = 3: stc = 135: std = 280: ste$ = "12": stf = 20
- IF xst > 50 AND xst < 76 THEN sta = 2: stb = 3: stc = 160: std = 305: ste$ = "13": stf = 25
- IF xst > 75 AND xst < 91 THEN sta = 2: stb = 4: stc = 185: std = 330: ste$ = "14": stf = 30
- IF xst > 90 AND xst < 100 THEN sta = 2: stb = 5: stc = 235: std = 380: ste$ = "15(3)": stf = 35
- IF xst = 100 THEN sta = 3: stb = 6: stc = 335: std = 480: ste$ = "16(6)": stf = 40
- dxrun:
- IF dx = 1 THEN dxa = -6: dxb = -6: dxc = 5
- IF dx = 2 THEN dxa = -4: dxb = -4: dxc = 5
- IF dx = 3 THEN dxa = -3: dxb = -3: dxc = 4
- IF dx = 4 THEN dxa = -2: dxb = -2: dxc = 3
- IF dx = 5 THEN dxa = -1: dxb = -1: dxc = 2
- IF dx = 6 THEN dxa = 0: dxb = 0: dxc = 1
- IF dx = 7 THEN dxa = 0: dxb = 0: dxc = 0
- IF dx = 8 THEN dxa = 0: dxb = 0: dxc = 0
- IF dx = 9 THEN dxa = 0: dxb = 0: dxc = 0
- IF dx > 9 AND dx < 15 THEN dxa = 0: dxb = 0: dxc = 0
- IF dx = 15 THEN dxa = 0: dxb = 0: dxc = -1
- IF dx = 16 THEN dxa = 1: dxb = 1: dxc = -2
- IF dx = 17 THEN dxa = 2: dxb = 2: dxc = -3
- IF dx = 18 THEN dxa = 2: dxb = 2: dxc = -4
- IF dx = 19 THEN dxa = 3: dxb = 3: dxc = -4
- IF dx = 20 THEN dxa = 3: dxb = 3: dxc = -4
- IF dx = 21 THEN dxa = 4: dxb = 4: dxc = -5
- IF dx = 22 THEN dxa = 4: dxb = 4: dxc = -5
- IF dx = 23 THEN dxa = 4: dxb = 4: dxc = -5
- IF dx = 24 THEN dxa = 5: dxb = 5: dxc = -6
- IF dx = 25 THEN dxa = 5: dxb = 5: dxc = -6
- IF co < 20 THEN coe$ = "N/A"
- IF co = 1 THEN coa = -3: cob = 25: coc = 30: cod = -2
- IF co = 2 THEN coa = -2: cob = 30: coc = 35: cod = -1
- IF co = 3 THEN coa = -2: cob = 35: coc = 40: cod = 0
- IF co < 19 THEN cod = 0
- IF co = 4 THEN coa = -1: cob = 40: coc = 45
- IF co = 5 THEN coa = -1: cob = 45: coc = 50
- IF co = 6 THEN coa = -1: cob = 50: coc = 55
- IF co < 15 THEN coa = 0
- IF co = 7 THEN cob = 55: coc = 60
- IF co = 8 THEN cob = 60: coc = 65
- IF co = 9 THEN cob = 65: coc = 70
- IF co = 10 THEN cob = 70: coc = 75
- IF co = 11 THEN cob = 75: coc = 80
- IF co = 12 THEN cob = 80: coc = 85
- IF co = 13 THEN cob = 85: coc = 90
- IF co = 14 THEN cob = 88: coc = 92
- IF co = 15 THEN coa = 1: cob = 90: coc = 94
- IF co = 16 THEN coa = 2: cob = 95: coc = 96
- IF cl <> 1 THEN coa = 2
- GOSUB ftr
- IF co = 17 THEN cob = 97: coc = 98
- coc = 100
- IF co < 25 THEN cob = 99
- IF co = 20 THEN cod = 1: coe$ = "1/6 turns"
- IF co = 21 THEN cod = 2: coe$ = "1/5 turns"
- IF co = 22 THEN cod = 2: coe$ = "1/4 turns"
- IF co = 23 THEN cod = 3: coe$ = "1/3 turns"
- IF co = 24 THEN cod = 3: coe$ = "1/2 turns"
- IF co = 25 THEN cob = 100: cod = 4: coe$ = "1 turn"
- GOTO iqrun
- ftr:
- IF co = 17 AND cl = 1 THEN coa = 3 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 18 AND cl = 1 THEN coa = 4 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 19 AND cl = 1 THEN coa = 5 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 20 AND cl = 1 THEN coa = 5 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 21 AND cl = 1 THEN coa = 6 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 22 AND cl = 1 THEN coa = 6 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 23 AND cl = 1 THEN coa = 6 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 24 AND cl = 1 THEN coa = 7 ELSE IF co = 17 THEN co = 2: RETURN
- IF co = 25 AND cl = 1 THEN coa = 7 ELSE IF co = 17 THEN co = 2: RETURN
- iqrun:
- IF iq < 9 THEN iqb = 0
- IF iq < 9 THEN iqc = 0
- IF iq < 9 THEN iqd$ = "N/A"
- IF iq < 19 THEN iqe$ = "N/A"
- IF iq = 1 THEN iqa = 0
- IF iq < 9 THEN iqa = 1
- IF iq = 9 THEN iqa = 2: iqb = 4: iqc = 35: iqd$ = "6"
- IF iq = 10 THEN iqa = 2: iqb = 5: iqc = 40: iqd$ = "7"
- IF iq = 11 THEN iqa = 2: iqb = 5: iqc = 45: iqd$ = "7"
- IF iq = 12 THEN iqa = 3: iqb = 6: iqc = 50: iqd$ = "7"
- IF iq = 13 THEN iqa = 3: iqb = 6: iqc = 55: iqd$ = "9"
- IF iq = 14 THEN iqa = 4: iqb = 7: iqc = 60: iqd$ = "9"
- IF iq = 15 THEN iqa = 4: iqb = 7: iqc = 65: iqd$ = "11"
- IF iq = 16 THEN iqa = 5: iqb = 8: iqc = 70: iqd$ = "11"
- IF iq = 17 THEN iqa = 6: iqb = 8: iqc = 75: iqd$ = "14"
- IF iq = 18 THEN iqa = 7: iqb = 9: iqc = 85: iqd$ = "18"
- IF iq = 19 THEN iqa = 8: iqb = 9: iqc = 95: iqd$ = "All": iqe$ = "1st-lv illusions"
- iqb = 9: iqd$ = "All"
- IF iq = 20 THEN iqa = 9: iqc = 96: iqe$ = "2nd-lv illusions"
- IF iq = 21 THEN iqa = 10: iqc = 97: iqe$ = "3rd-lv illusions"
- IF iq = 22 THEN iqa = 11: iqc = 98: iqe$ = "4th-lv illusions"
- IF iq = 23 THEN iqa = 12: iqc = 99: iqe$ = "5th-lv illusions"
- IF iq = 24 THEN iqa = 15: iqc = 100: iqe$ = "6th-lv illusions"
- IF iq = 25 THEN iqa = 20: iqc = 100: iqe$ = "7th-lv illusions"
- IF wi < 9 THEN wib$ = ""
- IF wi = 1 THEN wia = -6: wic = 80
- IF wi = 2 THEN wia = -4: wic = 60
- IF wi = 3 THEN wia = -3: wic = 50
- IF wi = 4 THEN wia = -2: wic = 45
- IF wi = 5 THEN wia = -1: wic = 40
- IF wi = 6 THEN wia = -1: wic = 35
- IF wi = 7 THEN wia = -1: wic = 30
- IF wi < 14 THEN wia = 0
- IF wi = 8 THEN wic = 25
- IF wi = 9 THEN wic = 20
- IF wi = 10 THEN wic = 15
- IF wi = 11 THEN wic = 10
- IF wi = 12 THEN wic = 5
- wic = 0
- IF wi = 13 THEN wib$ = "1st"
- IF wi = 14 THEN wib$ = "1st"
- IF wi = 15 THEN wia = 1: wib$ = "2nd"
- IF wi = 16 THEN wia = 2: wib$ = "2nd"
- IF wi = 17 THEN wia = 3: wib$ = "3rd"
- wia = 4
- IF wi = 18 THEN wib$ = "4th"
- IF wi = 19 THEN wib$ = "1st,4th"
- IF wi = 20 THEN wib$ = "2nd,4th"
- IF wi = 21 THEN wib$ = "3rd,5th"
- IF wi = 22 THEN wib$ = "4nd,5th"
- IF wi = 23 THEN wib$ = "5th,5th"
- IF wi = 24 THEN wib$ = "6th,6th"
- IF wi = 25 THEN wib$ = "6th,7th"
- IF ch = 1 THEN cha = 0: chb = -8: chc = -7
- IF ch = 2 THEN cha = 1: chb = -7: chc = -6
- IF ch = 3 THEN cha = 1: chb = -6: chc = -5
- IF ch = 4 THEN cha = 1: chb = -5: chc = -4
- IF ch = 5 THEN cha = 2: chb = -4: chc = -3
- IF ch = 6 THEN cha = 2: chb = -3: chc = -2
- IF ch = 7 THEN cha = 3: chb = -2: chc = -1
- IF ch = 8 THEN cha = 3: chb = -1: chc = 0
- IF ch < 13 THEN chc = 0
- IF ch = 9 THEN cha = 4: chb = 0
- IF ch < 14 THEN chb = 0
- IF ch = 10 THEN cha = 4
- IF ch = 11 THEN cha = 4
- IF ch = 12 THEN cha = 5
- IF ch = 13 THEN cha = 5: chc = 1
- IF ch = 14 THEN cha = 6: chb = 1: chc = 2
- IF ch = 15 THEN cha = 7: chb = 3: chc = 3
- IF ch = 16 THEN cha = 8: chb = 4: chc = 5
- IF ch = 17 THEN cha = 10: chb = 6: chc = 6
- IF ch = 18 THEN cha = 15: chb = 8: chc = 7
- IF ch = 19 THEN cha = 20: chb = 10: chc = 8
- IF ch = 20 THEN cha = 25: chb = 12: chc = 9
- IF ch = 21 THEN cha = 30: chb = 14: chc = 10
- IF ch = 22 THEN cha = 35: chb = 16: chc = 11
- IF ch = 23 THEN cha = 48: chb = 18: chc = 12
- IF ch = 24 THEN cha = 45: chb = 20: chc = 13
- IF ch = 25 THEN cha = 50: chb = 20: chc = 14
- RETURN
- 140 IF st < 9 THEN LOCATE 23, 1: PRINT "STRENGTH DOES NOT MEET MININUM REQUIREMENT OF 9": GOTO 37
- GOTO sokay
- 150 IF iq < 9 THEN LOCATE 23, 1: PRINT "INTELLIGENCE DOES NOT MEET MINIMUM REQUIREMENT OF 9": GOTO 37
- GOTO sokay
- 160 IF wi < 9 THEN LOCATE 23, 1: PRINT "WISDOM DOES NOT MEET MINIMUM REQUIREMENT OF 9": GOTO 37
- GOTO sokay
- 170 IF dx < 9 THEN LOCATE 23, 1: PRINT "DEXETERITY DOES NOT MEET MINIMUM REQUIREMENT OF 9": GOTO 37
- GOTO sokay
- 180 IF cl = 1 THEN GOTO ftrst:
- IF cl = 2 THEN GOTO must:
- IF cl = 3 THEN GOTO prst:
- IF cl = 4 THEN GOTO thst:
- ftrst:
- lvt = VAL(lv$)
- th = 20 - lvt + 1
- IF th = 0 THEN th = 1
- IF th = 21 THEN th = 20
- hdc = 10
- IF lvt < 10 THEN hda = lvt: hdb = 0
- IF lvt > 9 THEN hda = 9
- IF lvt = 1 THEN hd$ = "1"
- IF lvt = 2 THEN hd$ = "2"
- IF lvt = 3 THEN hd$ = "3"
- IF lvt = 4 THEN hd$ = "4"
- IF lvt = 5 THEN hd$ = "5"
- IF lvt = 6 THEN hd$ = "6"
- IF lvt = 7 THEN hd$ = "7"
- IF lvt = 8 THEN hd$ = "8"
- IF lvt = 9 THEN hd$ = "9"
- IF lvt = 10 THEN hd$ = "9+03"
- IF lvt = 11 THEN hd$ = "9+06"
- IF lvt = 12 THEN hd$ = "9+09"
- IF lvt = 13 THEN hd$ = "9+12"
- IF lvt = 14 THEN hd$ = "9+15"
- IF lvt = 15 THEN hd$ = "9+18"
- IF lvt = 16 THEN hd$ = "9+21"
- IF lvt = 17 THEN hd$ = "9+24"
- IF lvt = 18 THEN hd$ = "9+27"
- IF lvt = 19 THEN hd$ = "9+30"
- IF lvt = 20 THEN hd$ = "9+33"
- IF lvt > 9 THEN hdb = VAL(RIGHT$(hd$, 2))
- RETURN
- must:
- lvt = VAL(lv$)
- hdc = 4
- IF lvt < 11 THEN hda = lvt: hdb = 0
- IF lvt > 10 THEN hda = 10
- IF lvt = 1 THEN hd$ = "1": th = 20
- IF lvt = 2 THEN hd$ = "2": th = 20
- IF lvt = 3 THEN hd$ = "3": th = 20
- IF lvt = 4 THEN hd$ = "4": th = 19
- IF lvt = 5 THEN hd$ = "5": th = 19
- IF lvt = 6 THEN hd$ = "6": th = 19
- IF lvt = 7 THEN hd$ = "7": th = 18
- IF lvt = 8 THEN hd$ = "8": th = 18
- IF lvt = 9 THEN hd$ = "9": th = 18
- IF lvt = 10 THEN hd$ = "10": th = 17
- IF lvt = 11 THEN hd$ = "10+01": th = 17
- IF lvt = 12 THEN hd$ = "10+02": th = 17
- IF lvt = 13 THEN hd$ = "10+03": th = 16
- IF lvt = 14 THEN hd$ = "10+04": th = 16
- IF lvt = 15 THEN hd$ = "10+05": th = 16
- IF lvt = 16 THEN hd$ = "10+06": th = 15
- IF lvt = 17 THEN hd$ = "10+07": th = 15
- IF lvt = 18 THEN hd$ = "10+08": th = 15
- IF lvt = 19 THEN hd$ = "10+09": th = 14
- IF lvt = 20 THEN hd$ = "10+10": th = 14
- IF lvt > 10 THEN hdb = VAL(RIGHT$(hd$, 2))
- RETURN
- prst:
- lvt = VAL(lv$)
- hdc = 8
- IF lvt < 10 THEN hda = lvt: hdb = 0
- IF lvt > 9 THEN hda = 9
- IF lvt = 1 THEN hd$ = "1": th = 20
- IF lvt = 2 THEN hd$ = "2": th = 20
- IF lvt = 3 THEN hd$ = "3": th = 20
- IF lvt = 4 THEN hd$ = "4": th = 18
- IF lvt = 5 THEN hd$ = "5": th = 18
- IF lvt = 6 THEN hd$ = "6": th = 18
- IF lvt = 7 THEN hd$ = "7": th = 16
- IF lvt = 8 THEN hd$ = "8": th = 16
- IF lvt = 9 THEN hd$ = "9": th = 16
- IF lvt = 10 THEN hd$ = "9+02": th = 14
- IF lvt = 11 THEN hd$ = "9+04": th = 14
- IF lvt = 12 THEN hd$ = "9+06": th = 14
- IF lvt = 13 THEN hd$ = "9+08": th = 12
- IF lvt = 14 THEN hd$ = "9+10": th = 12
- IF lvt = 15 THEN hd$ = "9+12": th = 12
- IF lvt = 16 THEN hd$ = "9+14": th = 10
- IF lvt = 17 THEN hd$ = "9+16": th = 10
- IF lvt = 18 THEN hd$ = "9+18": th = 10
- IF lvt = 19 THEN hd$ = "9+20": th = 8
- IF lvt = 20 THEN hd$ = "9+22": th = 8
- IF lvt > 9 THEN hdb = VAL(RIGHT$(hd$, 2))
- RETURN
- thst:
- lvt = VAL(lv$)
- hdc = 6
- IF lvt < 11 THEN hda = lvt: hdb = 0
- IF lvt > 10 THEN hda = 10
- IF lvt = 1 THEN hd$ = "1": th = 20
- IF lvt = 2 THEN hd$ = "2": th = 20
- IF lvt = 3 THEN hd$ = "3": th = 19
- IF lvt = 4 THEN hd$ = "4": th = 19
- IF lvt = 5 THEN hd$ = "5": th = 18
- IF lvt = 6 THEN hd$ = "6": th = 18
- IF lvt = 7 THEN hd$ = "7": th = 17
- IF lvt = 8 THEN hd$ = "8": th = 17
- IF lvt = 9 THEN hd$ = "9": th = 16
- IF lvt = 10 THEN hd$ = "10": th = 16
- IF lvt = 11 THEN hd$ = "10+02": th = 15
- IF lvt = 12 THEN hd$ = "10+04": th = 15
- IF lvt = 13 THEN hd$ = "10+06": th = 14
- IF lvt = 14 THEN hd$ = "10+08": th = 14
- IF lvt = 15 THEN hd$ = "10+10": th = 13
- IF lvt = 16 THEN hd$ = "10+12": th = 13
- IF lvt = 17 THEN hd$ = "10+14": th = 12
- IF lvt = 18 THEN hd$ = "10+16": th = 12
- IF lvt = 19 THEN hd$ = "10+18": th = 11
- IF lvt = 20 THEN hd$ = "10+20": th = 11
- IF lvt > 10 THEN hdb = VAL(RIGHT$(hd$, 2))
- RETURN
- savthrw:
- IF cl = 1 THEN GOTO ftrsth:
- IF cl = 2 THEN GOTO musth:
- IF cl = 3 THEN GOTO prsth:
- IF cl = 4 THEN GOTO thsth:
- RETURN
- ftrsth:
- lvt = VAL(lv$)
- IF lvt = 1 OR lvt = 2 THEN ppd = 14: rsw = 16: pp = 15: bw = 17: spl = 17
- IF lvt = 3 OR lvt = 4 THEN ppd = 13: rsw = 15: pp = 14: bw = 16: spl = 16
- IF lvt = 5 OR lvt = 6 THEN ppd = 11: rsw = 13: pp = 12: bw = 13: spl = 14
- IF lvt = 7 OR lvt = 8 THEN ppd = 10: rsw = 12: pp = 11: bw = 12: spl = 13
- IF lvt = 9 OR lvt = 10 THEN ppd = 8: rsw = 10: pp = 9: bw = 9: spl = 11
- IF lvt = 11 OR lvt = 12 THEN ppd = 7: rsw = 9: pp = 8: bw = 8: spl = 10
- IF lvt = 13 OR lvt = 14 THEN ppd = 5: rsw = 7: pp = 6: bw = 5: spl = 8
- IF lvt = 15 OR lvt = 16 THEN ppd = 4: rsw = 6: pp = 5: bw = 4: spl = 7
- IF lvt > 16 THEN ppd = 3: rsw = 5: pp = 4: bw = 4: spl = 6
- RETURN
- musth:
- lvt = VAL(lv$)
- IF lvt < 6 THEN ppd = 14: rsw = 11: pp = 13: bw = 15: spl = 12
- IF lvt > 5 AND lvt < 11 THEN ppd = 13: rsw = 9: pp = 11: bw = 13: spl = 10
- IF lvt > 10 AND lvt < 16 THEN ppd = 11: rsw = 7: pp = 9: bw = 11: spl = 8
- IF lvt > 15 AND lvt < 21 THEN ppd = 10: rsw = 5: pp = 7: bw = 9: spl = 6
- IF lvt > 20 THEN ppd = 8: rsw = 3: pp = 5: bw = 7: spl = 4
- RETURN
- prsth:
- lvt = VAL(lv$)
- IF lvt < 4 THEN ppd = 10: rsw = 14: pp = 13: bw = 16: spl = 15
- IF lvt > 3 AND lvt < 7 THEN ppd = 9: rsw = 13: pp = 12: bw = 15: spl = 14
- IF lvt > 6 AND lvt < 10 THEN ppd = 7: rsw = 11: pp = 10: bw = 13: spl = 12
- IF lvt > 9 AND lvt < 13 THEN ppd = 6: rsw = 10: pp = 9: bw = 12: spl = 11
- IF lvt > 12 AND lvt < 16 THEN ppd = 5: rsw = 9: pp = 8: bw = 11: spl = 10
- IF lvt > 15 AND lvt < 19 THEN ppd = 4: rsw = 8: pp = 7: bw = 10: spl = 9
- IF lvt > 18 THEN ppd = 2: rsw = 6: pp = 5: bw = 8: spl = 7
- RETURN
- thsth:
- lvt = VAL(lv$)
- IF lvt < 5 THEN ppd = 13: rsw = 14: pp = 12: bw = 16: spl = 15
- IF lvt > 4 AND lvt < 9 THEN ppd = 12: rsw = 12: pp = 11: bw = 15: spl = 13
- IF lvt > 8 AND lvt < 13 THEN ppd = 11: rsw = 10: pp = 10: bw = 14: spl = 11
- IF lvt > 12 AND lvt < 17 THEN ppd = 10: rsw = 8: pp = 9: bw = 13: spl = 9
- IF lvt > 16 AND lvt < 21 THEN ppd = 9: rsw = 6: pp = 8: bw = 12: spl = 7
- IF lvt > 20 THEN ppd = 8: rsw = 4: pp = 7: bw = 11: spl = 5
- RETURN
- 200 CLS : mo = 1
- PRINT "Name of module to branch to:"
- INPUT ":", mo$
- IF LEN(mo$) = 0 GOTO 10
- SHELL mo$
- GOTO 10
- 1000 ' ERROR HANDLER
- SOUND 100, 7
- IF erlv = 1 THEN erlv = 0: CALL intro(1): GOTO 10
- SELECT CASE ERR
- CASE 53
- IF mo = 1 THEN PRINT "Module not availible.": mo = 0: RESUME 5
- IF npcgenon = 1 THEN PRINT "You don't have the NPC Module.": npcgenon = 0: RESUME 5
- PRINT "FILE NOT FOUND!"
- RESUME 5
- CASE 27
- PRINT "OUT OF PAPER!"
- RESUME 5
- CASE 24
- PRINT "DEVICE TIMEOUT"
- RESUME 5
- CASE 25
- PRINT "DEVICE FAULT"
- RESUME 5
- CASE 68
- PRINT "DEVICE UNAVAILIBLE"
- RESUME 5
- CASE 70
- PRINT "PERMISSION DENIED"
- RESUME 5
- CASE 71
- PRINT "DRIVE NOT READY"
- RESUME 5
- CASE ELSE
- PRINT "UNIDENTIFIED ERROR"
- PRINT "ERRORCODE: "; ERR
- RESUME 5
- END SELECT
- secskill:
- sk = CINT(RND(1) * 100)
- IF sk = 0 GOTO secskill
- IF sk < 3 THEN ss$ = "Armorer": RETURN
- IF sk > 2 AND sk < 5 THEN ss$ = "Bowyer/Fletcher": IF rer = 1 GOTO second
- IF sk > 4 AND sk < 11 THEN ss$ = "Farmer": IF rer = 1 GOTO second
- IF sk > 10 AND sk < 15 THEN ss$ = "Fisher": IF rer = 1 GOTO second
- IF sk > 14 AND sk < 21 THEN ss$ = "Forester": IF rer = 1 GOTO second
- IF sk > 20 AND sk < 24 THEN ss$ = "Gambler": IF rer = 1 GOTO second
- IF sk > 23 AND sk < 28 THEN ss$ = "Groom": IF rer = 1 GOTO second
- IF sk > 27 AND sk < 33 THEN ss$ = "Hunter": IF rer = 1 GOTO second
- IF sk > 32 AND sk < 35 THEN ss$ = "Jeweler": IF rer = 1 GOTO second
- IF sk > 34 AND sk < 38 THEN ss$ = "Leather Worker": IF rer = 1 GOTO second
- IF sk > 37 AND sk < 40 THEN ss$ = "Limner/Painter": IF rer = 1 GOTO second
- IF sk > 39 AND sk < 43 THEN ss$ = "Mason": IF rer = 1 GOTO second
- IF sk > 42 AND sk < 45 THEN ss$ = "Miner": IF rer = 1 GOTO second
- IF sk > 44 AND sk < 47 THEN ss$ = "Navigator": IF rer = 1 GOTO second
- IF sk > 46 AND sk < 50 THEN ss$ = "Sailor": IF rer = 1 GOTO second
- IF sk > 49 AND sk < 52 THEN ss$ = "Scribe": IF rer = 1 GOTO second
- IF sk > 51 AND sk < 54 THEN ss$ = "Shipwright": IF rer = 1 GOTO second
- IF sk > 53 AND sk < 57 THEN ss$ = "Tailor/Weaver": IF rer = 1 GOTO second
- IF sk > 56 AND sk < 60 THEN ss$ = "Teamster/Freighter": IF rer = 1 GOTO second
- IF sk > 59 AND sk < 63 THEN ss$ = "Trader/Barterer": IF rer = 1 GOTO second
- IF sk > 62 AND sk < 67 THEN ss$ = "Trapper/Furrier": IF rer = 1 GOTO second
- IF sk > 66 AND sk < 69 THEN ss$ = "Weaponsmith": IF rer = 1 GOTO second
- IF sk > 68 AND sk < 72 THEN ss$ = "Woodworker/Carpenter": IF rer = 1 GOTO second
- IF sk > 71 AND sk < 86 THEN ss$ = "No skill of worth": IF rer = 1 GOTO second
- IF sk > 85 AND sk < 101 AND rer = 1 GOTO secskill
- IF sk > 85 AND sk < 101 THEN rer = 1: GOTO secskill
- second:
- IF LEN(ssa$) = 0 THEN ssa$ = ss$: GOTO secskill ELSE ssb$ = ss$: ssa$ = ssa$ + " / " + ssb$: RETURN
- change:
- CLS
- IF st + dx + co + iq + wi + ch = 0 THEN PRINT TAB(25); "No character in memory.": PRINT : GOTO 5
- COLOR red: PRINT TAB(33); "CHANGE STATS MENU": PRINT : COLOR cyan
- tmp$(1) = " Change personal info "
- tmp$(2) = " Change ability scores "
- tmp$(3) = " Change savings throws "
- tmp$(4) = " Change stats "
- tmp$(5) = " Main Menu "
- FOR x = 1 TO 5
- PRINT TAB(30); tmp$(x)
- NEXT x
- PRINT
- PRINT TAB(34); "Your choice:";
- COLOR bgrey, 0: PRINT "_": COLOR grey, 0
- LOCATE 3, 30: COLOR 0, 7: PRINT tmp$(1): COLOR 7, 0
- l = 1: up = 2: uc = 30
- ch2:
- a$ = INKEY$
- IF a$ = "" GOTO ch2
- IF ASC(a$) = 13 THEN COLOR 7, 0: GOTO runit2
- IF a$ = CHR$(0) + CHR$(80) AND l = 5 THEN w = l: l = 0: GOSUB update1
- IF a$ = CHR$(0) + CHR$(72) AND l = 1 THEN w = l: l = 6: GOSUB update1
- IF a$ = CHR$(0) + CHR$(80) AND l < 5 THEN w = l: l = l + 1: GOSUB update1
- IF a$ = CHR$(0) + CHR$(72) AND l > 1 THEN w = l: l = l - 1: GOSUB update1
- IF ASC(a$) = 50 AND l < 5 THEN w = l: l = l + 1: GOSUB update1
- IF ASC(a$) = 56 AND l > 1 THEN w = l: l = l - 1: GOSUB update1
- GOTO ch2:
- chperin:
- CLS : COLOR yellow
- PRINT "A. Name is : "; na$
- PRINT "B. Alignment : "; al$
- PRINT "C. Race : "; ra$
- PRINT "D. Family/Clan : "; fc$
- PRINT "E. Liege/Patron : "; lp$
- PRINT "F. Age : "; age$
- PRINT "G. Height : "; ht$
- PRINT "H. Weight : "; wt$
- PRINT "I. Hair color : "; hc$
- PRINT "J. Eye color : "; ec$
- PRINT "K. Sex : "; sex$
- IF sskb = 1 THEN PRINT "L. Sec skill : "; ss$
- PRINT "M. Langauges : "; l$
- COLOR purple: PRINT ln$: COLOR yellow
- PRINT "Q. Quit": PRINT : COLOR purple
- INPUT "Letter to change:"; a$
- COLOR grey
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- IF a$ = "L" OR a$ = "l" AND sskb = 0 THEN GOTO chperin
- 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
- IF a$ = "Q" OR a$ = "q" THEN GOTO change
- GOTO chperin
- chability:
- CLS : COLOR yellow
- PRINT "A. Strength :"; st
- IF xst <> 0 THEN LOCATE 1, 25: PRINT "("; LTRIM$(STR$(xst)); ")"
- PRINT "B. Dexeterity :"; dx
- PRINT "C. Constitution :"; co
- PRINT "D. Intelligence :"; iq
- PRINT "E. Wisdom :"; wi
- PRINT "F. Charisma :"; ch
- COLOR purple: PRINT ln$: COLOR yellow
- PRINT "Q. Quit": PRINT : COLOR purple
- INPUT "Letter to change:"; a$
- COLOR grey
- 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
- 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
- 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
- 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
- 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
- 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
- IF a$ = "Q" OR a$ = "q" THEN GOTO change
- GOTO chability
- chsave:
- CLS : COLOR yellow
- PRINT "Save versus="
- PRINT "A. Para/Poison/Death Magic :"; ppd
- PRINT "B. Petrif/Polymorph :"; pp
- PRINT "C. Spells :"; spl
- PRINT "D. Wands/Staves/Rods :"; rsw
- PRINT "E. Breath Weapon :"; bw
- COLOR purple: PRINT ln$: COLOR yellow
- PRINT "Q. Quit": PRINT : COLOR purple
- INPUT "Letter to change:"; a$
- COLOR grey
- 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
- 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
- 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
- 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
- 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
- IF a$ = "Q" OR a$ = "q" THEN GOTO change
- GOTO chsave
- chstat:
- CLS : COLOR yellow
- PRINT "A. AC :"; ac
- PRINT "B. HP :"; hp
- PRINT "C. HD :"; STR$(hda); " + "; LTRIM$(STR$(hdb))
- PRINT "D. THAC0 :"; th
- PRINT "E. Class : "; cl$
- PRINT "F. Level : "; lv$
- PRINT "G. Move rate : "; mr$
- COLOR purple: PRINT ln$: COLOR yellow
- PRINT "Q. Quit": PRINT : COLOR purple
- INPUT "Letter to change:"; a$
- COLOR grey
- 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
- IF a$ = "B" OR a$ = "b" THEN LOCATE 2, 20: PRINT SPC(20); : GOSUB findrndhp: PRINT SPC(10); : GOTO chstat
- IF a$ = "C" OR a$ = "c" THEN LOCATE 3, 20: PRINT SPC(50); : LOCATE 3, 20: INPUT " ", hda
- IF a$ = "C" OR a$ = "c" THEN LOCATE 3, 27: INPUT "", hdb: LOCATE 3, 20: PRINT SPC(40); : GOTO chstat
- 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
- 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
- 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
- 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
- IF a$ = "Q" OR a$ = "q" THEN GOTO change
- GOTO chstat
- whatchar:
- LOCATE 19, 1: PRINT "Enter class ID Number:"
- LOCATE 20, 1: PRINT "1 - Fighter 2 - Mage 3 - Priest"
- LOCATE 21, 1: PRINT "4 - Rogue 5 - Paladin 6 - Ranger"
- LOCATE 22, 1: PRINT "7 - Druid 8 - Bard 9 - Other"
- INPUT cl
- IF cl = 5 THEN LOCATE 5, 20: PRINT "? Paladin": cl$ = "Paladin": cl = 1: ocl = 5: GOTO rest1
- IF cl = 6 THEN LOCATE 5, 20: PRINT "? Ranger": cl$ = "Ranger": cl = 1: ocl = 6: GOTO rest1
- IF cl = 7 THEN LOCATE 5, 20: PRINT "? Druid": cl$ = "Druid": cl = 3: ocl = 7: GOTO rest1
- IF cl = 8 THEN LOCATE 5, 20: PRINT "? Bard": cl$ = "Bard": cl = 4: ocl = 8: GOTO rest1
- IF cl = 1 THEN LOCATE 5, 20: PRINT "? Fighter": cl$ = "Fighter": GOTO rest1
- IF cl = 2 THEN LOCATE 5, 20: PRINT "? Mage": cl$ = "Mage": GOTO rest1
- IF cl = 3 THEN LOCATE 5, 20: PRINT "? Priest": cl$ = "Priest": GOTO rest1
- IF cl = 4 THEN LOCATE 5, 20: PRINT "? Rogue": cl$ = "Rogue": l$ = l$ + "Thieves' Cant": GOTO rest1
- IF cl = 9 THEN cl = 5: GOTO inpcl1
- GOTO rest1
- inpcl1:
- LOCATE 19, 1: PRINT " "
- LOCATE 20, 1: PRINT " "
- LOCATE 21, 1: PRINT " "
- LOCATE 22, 1: PRINT " "
- LOCATE 23, 1: PRINT " "
- LOCATE 5, 20: INPUT " ", cl$
- RETURN
- rest1:
- GOSUB ocskill
- LOCATE 19, 1: PRINT " "
- LOCATE 20, 1: PRINT " "
- LOCATE 21, 1: PRINT " "
- LOCATE 22, 1: PRINT " "
- LOCATE 23, 1: PRINT " "
- GOSUB 180:
- LOCATE 3, 20: PRINT SPC(50); : LOCATE 3, 20: PRINT hda
- LOCATE 3, 27: PRINT hdb: LOCATE 3, 20: PRINT SPC(40);
- hp = 0: hdd = 0: hde = 0: RETURN
- RETURN
- findrndhp:
- LOCATE 20, 1: PRINT "Should I generate HP for you?"
- INPUT a$
- LOCATE 20, 1: PRINT " "
- LOCATE 21, 1: PRINT " "
- IF a$ = "n" OR a$ = "N" THEN LOCATE 2, 20: INPUT " ", hp: RETURN
- hp = 0: hde = 0: hdd = 0: hit = 0: RANDOMIZE TIMER
- FOR hit = 1 TO hda
- hdd = INT(RND(1) * hdb)
- hde = hde + hdd
- NEXT hit
- hde = hde + hdb
- IF hde = 0 THEN hde = 1
- hp = hde: RETURN
- outputasdat:
- INPUT "File to export to (no extentions):"; fi$
- IF UCASE$(LEFT$(fi$, 3)) = "*AB" GOTO 10
- IF MID$(fi$, 2, 2) = ":\" THEN GOTO okopen1
- fi$ = LEFT$(fi$, 8)
- okopen1:
- fi$ = fi$ + ".dat"
- OPEN fi$ FOR OUTPUT AS #1
- PRINT #1, na$
- PRINT #1, ac
- PRINT #1, th
- PRINT #1, al$
- PRINT #1, cl$
- PRINT #1, lv$
- PRINT #1, hp
- PRINT #1, hda
- PRINT #1, hdb
- PRINT #1, ra$
- PRINT #1, fc$
- PRINT #1, lp$
- PRINT #1, age$
- PRINT #1, ht$
- PRINT #1, wt$
- PRINT #1, hc$
- PRINT #1, ec$
- PRINT #1, sex$
- PRINT #1, ss$
- PRINT #1, mr$
- PRINT #1, l$
- PRINT #1, st
- PRINT #1, xst
- PRINT #1, dx
- PRINT #1, co
- PRINT #1, iq
- PRINT #1, wi
- PRINT #1, ch
- PRINT #1, ppd
- PRINT #1, pp
- PRINT #1, spl
- PRINT #1, rsw
- PRINT #1, bw
- PRINT #1, ocl
- PRINT #1, "*EOF*"
- CLOSE #1: GOTO 10
- readinchar:
- CLS
- PRINT "Type LIST for list of files."
- readin1:
- INPUT "File to read in (no extentions):"; fi$
- IF UCASE$(LEFT$(fi$, 3)) = "*AB" GOTO 10
- IF MID$(fi$, 2, 2) = ":\" THEN GOTO okopen
- fi$ = LEFT$(fi$, 8)
- okopen:
- fi$ = fi$ + ".dat"
- IF UCASE$(fi$) = "LIST.DAT" THEN FILES "*.dat": GOTO readin1
- IF fi$ = ".dat" THEN GOTO 10
- PRINT fi$: OPEN fi$ FOR INPUT AS #1
- INPUT #1, na$
- INPUT #1, ac
- INPUT #1, th
- INPUT #1, al$
- INPUT #1, cl$
- INPUT #1, lv$
- INPUT #1, hp
- INPUT #1, hda
- INPUT #1, hdb
- INPUT #1, ra$
- INPUT #1, fc$
- INPUT #1, lp$
- INPUT #1, age$
- INPUT #1, ht$
- INPUT #1, wt$
- INPUT #1, hc$
- INPUT #1, ec$
- INPUT #1, sex$
- INPUT #1, ss$
- INPUT #1, mr$
- INPUT #1, l$
- INPUT #1, st
- INPUT #1, xst
- INPUT #1, dx
- INPUT #1, co
- INPUT #1, iq
- INPUT #1, wi
- INPUT #1, ch
- INPUT #1, ppd
- INPUT #1, pp
- INPUT #1, spl
- INPUT #1, rsw
- INPUT #1, bw
- INPUT #1, ocl
- INPUT #1, a$
- IF cl$ = "Fighter" THEN cl = 1
- IF cl$ = "Mage" THEN cl = 2
- IF cl$ = "Priest" THEN cl = 3
- IF cl$ = "Rogue" THEN cl = 4
- IF a$ = "*EOF*" THEN CLOSE #1: GOSUB 130: GOTO 10
- CLOSE #1: GOSUB 130: GOSUB ocskill: GOTO 10
- damn:
- PRINT "Hit any key to continue.....": WHILE INKEY$ = "": WEND: RETURN
- clear1:
- FOR x = scv TO 25
- LOCATE x, 1
- PRINT SPC(78);
- NEXT x
- RETURN
- ocskill:
- SELECT CASE ocl
- CASE 5
- ock$(1) = "Detect evil (60' radius)"
- ock$(2) = "+2 to savings throws"
- ock$(3) = "Immune to disease"
- hph = 2 * lv: ock$(4) = "Heal 2hp/lv once per day"
- ock$(5) = "Cure diseases"
- ock$(6) = "Surrounded by aura of protection (10' radius) Evil gets -1 attack"
- ock$(7) = "If holy sword is used, 30' circle of power is made"
- IF lv > 2 THEN ock$(8) = "Turn undead as cleric 2 lvs behind you"
- IF lv > 3 THEN ock$(9) = "Call war horse"
- IF lv > 8 THEN ock$(10) = "Cast priest spells"
- CASE 8
- ock$(1) = "Bard Abilities"
- ock$(2) = "--------------"
- ock$(3) = "Climb Detect Pick Read"
- ock$(4) = "Walls Noise Pockets Languages"
- ock$(5) = "----- ----- ------- ---------"
- ock$(6) = " 50% 20% 10% 5%"
- FOR xxx = 7 TO 10
- ock$(xxx) = " "
- NEXT xxx
- END SELECT
- RETURN
- update:
- LOCATE w + up, uc: COLOR cyan, 0: PRINT s$(w)
- LOCATE l + up, uc: COLOR 0, 7: PRINT s$(l): COLOR 7, 0
- RETURN
- runit:
- COLOR 7
- ON l GOTO 20, 50, 60, 70, 100, 110, 120, 200, 80, change, readinchar, npcgen
- GOTO 10
- update1:
- LOCATE w + up, uc: COLOR cyan, 0: PRINT tmp$(w)
- LOCATE l + up, uc: COLOR 0, 7: PRINT tmp$(l): COLOR 7, 0
- RETURN
- runit2:
- IF l = 1 THEN COLOR grey: GOTO chperin
- IF l = 2 THEN COLOR grey: GOTO chability
- IF l = 3 THEN COLOR grey: GOTO chsave
- IF l = 4 THEN COLOR grey: GOTO chstat
- IF l = 5 THEN COLOR grey: GOTO 10
- GOTO change
- npcgen:
- npcgenon = 1
- SHELL "NPCGEN /!!)"
- GOTO 10
- intro1:
- CLS
- PRINT " AD&D 2nd Edition Character Sheet Generator"
- PRINT " Version 3.0"
- PRINT " By: Strahan"
- PRINT
- GOSUB damn
- GOTO 10
- REM $STATIC
- SUB intro (a)
- SHARED erlv
- IF a = 1 THEN
- CLS : erlv = 0
- PRINT "Welcome to the 2nd Edition AD&D Character Sheet Generator"
- PRINT "Version 3.0"
- PRINT
- PRINT "By Strahan, ASH/RPGC"
- WHILE INKEY$ = "": WEND: GOTO 1044
- END IF
- erlv = 1
- DEFLNG A-Z: SCREEN 13: CLS
- PALETTE 50, (27 * (256 ^ 2)) + (27 * 256) + 27
- P = 43: FOR C = 1 TO 20: P = P - 2
- PALETTE C, (P * 256) + (P + 10): NEXT C
- LINE (10, 10)-(300, 189), 50, BF
- FOR I = 1 TO 100: COLOR I
- LINE (I, I)-(319 - I, 200 - I), , B
- FOR x = 1 TO 750: NEXT x
- NEXT I
- LOCATE 2, 15: PRINT "Welcome to:"
- LOCATE 4, 15: PRINT "2nd Edition"
- LOCATE 5, 6: PRINT "AD&D Character Sheet Generator"
- LOCATE 6, 15: PRINT "Version 3.0"
- LOCATE 23, 16: PRINT "By: Strahan"
- COLOR 4
- LOCATE 13, 14: PRINT "R"
- LOCATE 13, 18: PRINT "P"
- LOCATE 13, 23: PRINT "G"
- LOCATE 13, 27: PRINT "C"
- WHILE INKEY$ = "": WEND
- SCREEN 0
- WIDTH 80
- 1044
- END SUB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement