DECLARE SUB HUMAN () DECLARE SUB BROO () DECLARE SUB BROWNELF () DECLARE SUB DARKTROLL () DECLARE SUB DUCK () DECLARE SUB DWARF () DECLARE SUB GREATTROLL () 10 REM RQ1 12 COMMON SHARED Race$, carac(), skill$(), skillbase(), skill(), zz() 13 COMMON SHARED spirit$(), Sorcery$(), divine$(), divinelevel() 14 COMMON SHARED magic$(), magic(), cultdivine$(), cultdivine() 15 COMMON SHARED Prof$, Age, Culture$, Sexe$, typemagic$, Cult$, niv 16 COMMON SHARED fp, hp, dmgmod$, TF 18 COMMON SHARED fetchint, fetchpow, familiarint, familiarpow, alliedint, alliedpow 20 CLEAR 30 CLS 35 CHDIR "C:\RQ" 40 RANDOMIZE TIMER 50 DIM carac(10), skill$(9, 30), skillbase(9, 30), skill(9, 30), zz(10) 60 DIM spirit$(60), Sorcery$(120), divine$(65), divinelevel(65) 70 DIM magic$(120), magic(120) 90 DIM cultdivine$(100), cultdivine(100) 100 PRINT : PRINT "Which Race (RETURN for Human as default)" 102 INPUT "(Type 'L' then (RETURN) to get the list)"; Race$ 104 IF Race$ <> "L" AND Race$ <> "l" THEN GOTO 110 106 PRINT "Broo, Brown Elf, Dark Troll, Duck, Dwarf, Great Troll, Human" 108 PRINT "(Type '(Z)' after the name for a Zombie)": PRINT 109 GOTO 100 110 IF RIGHT$(Race$, 3) = "(Z)" THEN Spe$ = "Zombie" 120 IF RIGHT$(Race$, 3) = "(Z)" THEN Race$ = LEFT$(Race$, LEN(Race$) - 3) 125 REM mettre ici la liste des races (renvois aux numeros comme 130) 130 IF Race$ = "Human" THEN CALL HUMAN 140 IF Race$ = "Broo" THEN CALL BROO 145 IF Race$ = "Brown Elf" THEN CALL BROWNELF 150 IF Race$ = "Dark Troll" THEN CALL DARKTROLL 155 IF Race$ = "Duck" THEN CALL DUCK 160 IF Race$ = "Dwarf" THEN CALL DWARF 170 IF Race$ = "Great Troll" THEN CALL GREATTROLL 180 IF Race$ = "" THEN CALL HUMAN 5000 REM AUGMENTATION 5010 RANDOMIZE TIMER 5012 INPUT "Which level (1-5+) (RETURN for random)"; niv 5014 IF niv > 0 THEN GOTO 5020 5015 niv = 1 5016 WHILE INT(RND * 2) = 0 5017 niv = niv + 1 5018 WEND 5019 IF niv < 1 THEN niv = 1 5020 niv = niv * 3 5025 FOR x = 1 TO 9 5030 FOR y = 1 TO zz(x) 5040 skill(x, y) = skillbase(x, y) + ((skillbase(x, y) - INT(skillbase(x, y)))) * 10 * (Age - 15) 5050 IF skill(x, y) > 75 THEN skill(x, y) = 75 5060 WHILE INT(RND * (Age + niv) / 10) <> 0 5070 IF skillbase(x, y) <> INT(skillbase(x, y)) THEN skill(x, y) = skill(x, y) + INT(RND * niv + 1) 5080 IF skillbase(x, y) = INT(skillbase(x, y)) THEN skill(x, y) = skill(x, y) + INT(RND * (niv / 2) + 1) 5090 IF skillbase(x, y) <> INT(skillbase(x, y)) AND skill(x, y) > 100 THEN skill(x, y) = skill(x, y) - INT(skill(x, y) / 25) 5100 IF skillbase(x, y) = INT(skillbase(x, y)) AND skill(x, y) > 100 THEN skill(x, y) = skill(x, y) - INT(skill(x, y) / 25) 5110 WEND 5120 IF skillbase(x, y) = 0 AND INT(RND * 200 + 1) > (Age - 15) THEN skill(x, y) = 0 5130 IF x = 9 AND skillbase(8, y) = INT(skillbase(8, y)) AND skillbase(9, y) = INT(skillbase(9, y)) AND INT(RND * 200 + 1) > (Age - 15) THEN skill(8, y) = 0: skill(9, y) = 0 5140 IF x <= 7 AND skill(x, y) < skillbase(x, y) THEN skill(x, y) = skillbase(x, y) 5150 skill(x, y) = INT(skill(x, y)) 5160 NEXT y 5170 NEXT x 5200 REM MAGIC 5210 REM magic: 5220 IF Prof$ = "Shaman" THEN GOTO 9100 5230 IF Prof$ = "Priest" THEN GOTO 10500 5240 IF Prof$ = "Sorcerer" THEN GOTO 9600 5250 PRINT "Which Kind of Magic (RETURN for random)" 5255 INPUT "(Spirit/Divine/Sorcery)"; typemagic$ 5260 IF typemagic$ = "Spirit" OR typemagic$ = "spirit" THEN GOTO 6000 5270 IF typemagic$ = "Divine" OR typemagic$ = "divine" THEN GOTO 7000 5280 IF typemagic$ = "Sorcery" OR typemagic$ = "sorcery" THEN GOTO 8500 5290 d = INT(RND * 100 + 1) 5300 IF Race$ <> "Human" THEN GOTO 5310 5301 IF Culture$ = "Civilized" AND d <= 75 THEN GOTO 7000 5302 IF Culture$ = "Civilized" AND d >= 76 THEN GOTO 8500 5303 IF Culture$ = "Nomad" AND d <= 50 THEN GOTO 6000 5304 IF Culture$ = "Nomad" AND d >= 51 THEN GOTO 7000 5305 IF Culture$ = "Barbarian" AND d <= 50 THEN GOTO 6000 5306 IF Culture$ = "Barbarian" AND d >= 51 THEN GOTO 7000 5307 IF Culture$ = "Primitive" AND d <= 75 THEN GOTO 6000 5308 IF Culture$ = "Primitive" AND d >= 76 THEN GOTO 7000 5310 IF Race$ = "Brown Elf" THEN GOTO 7000 5320 IF Race$ = "Dwarf" THEN GOTO 8500 5350 IF Race$ = "Broo" AND Culture$ = "Feral" THEN GOTO 6000 5360 IF Race$ = "Broo" AND Culture$ = "Wild" AND d <= 90 THEN GOTO 6000 5370 IF Race$ = "Broo" AND Culture$ = "Wild" AND d >= 91 THEN GOTO 7000 5460 IF Race$ = "Duck" AND d <= 60 THEN GOTO 6000 5470 IF Race$ = "Duck" AND d >= 61 AND d <= 95 THEN GOTO 7000 5480 IF Race$ = "Duck" AND d >= 96 THEN GOTO 8500 5560 IF Race$ = "Great Troll" AND d <= 20 THEN GOTO 7000 5570 IF Race$ = "Great Troll" AND d >= 21 THEN GOTO 6000 5580 IF typemagic$ = "Aucun" THEN GOTO 15000 6000 REM Genspirit: 6010 typemagic$ = "Spirit" 6020 OPEN "I", #1, "Magic\Spirit.bas" 6030 REM lecture sorts 6040 INPUT #1, nbspi 6050 FOR x = 1 TO nbspi 6060 INPUT #1, spirit$(x) 6070 NEXT x 6080 REM nombre sorts 6090 WHILE INT(RND * (Age + niv) / 10) <> 0 6100 magic = magic + 1 6110 WEND 6120 IF magic = 0 THEN GOTO 15000 6130 REM choix sorts 6140 FOR x = 1 TO magic 6150 REM test1: 6160 d = INT(RND * nbspi + 1) 6165 FOR y = 0 TO x - 1 6170 IF LEFT$(spirit$(d), 1) = "(" OR RIGHT$(spirit$(d), 1) = ")" OR RIGHT$(spirit$(d), 2) = ")-" THEN GOTO 6175 6172 IF spirit$(d) = magic$(y) THEN GOTO 6150 6175 NEXT y 6180 magic$(x) = spirit$(d) 6190 WHILE INT(RND * (Age + niv) / 10) <> 0 6200 magic(x) = magic(x) + 1 6210 WEND 6220 IF magic(x) < 1 THEN magic(x) = 1 6230 IF magic(x) > 6 THEN magic(x) = 6 6240 NEXT x 6250 CLOSE #1 6260 GOTO 15000 7000 REM Gendivine: 7010 typemagic$ = "Divine" 7020 PRINT "Initiate ("; Prof$; ","; LEFT$(Sexe$, 1); ","; Age; ")" 7030 INPUT "Which Cult"; Cult$ 7040 REM skills du culte 7045 FICH$ = "Cult\" + LEFT$(Cult$, 6) + ".BAS" 7050 OPEN "I", #1, FICH$ 7060 INPUT #1, nbcultskill 7070 IF nbcultskill = 0 THEN GOTO 7300 7080 FOR z = 1 TO nbcultskill 7090 INPUT #1, cultskill$ 7100 WHILE INT(RND * (Age + niv) / 10) <> 0 7110 cultskill = cultskill + INT(RND * (niv / 2) + 1) 7120 IF cultskill > 100 THEN cultskill = cultskill - INT(cultskill / 25) 7130 WEND 7140 IF cultskill < 0 THEN cultskill = 0 7150 nouveau = 0 7160 FOR x = 1 TO 7 7170 FOR y = 1 TO zz(x) 7180 IF skill$(x, y) = cultskill$ OR skill$(x, y) = LEFT$(cultskill$, LEN(cultskill$) - 1) THEN nouveau = 1 7190 IF (skill$(x, y) = cultskill$ OR skill$(x, y) = LEFT$(cultskill$, LEN(cultskill$) - 1)) AND INT(RND * 50 + 1) <= (Age - 15) THEN skill(x, y) = skill(x, y) + cultskill 7200 IF skill(x, y) < 0 THEN skill(x, y) = 0 7210 IF (skill$(x, y) = "Cult Lore" OR skill$(x, y) = "Ceremony" OR skill$(x, y) = "Enchant" OR skill$(x, y) = "Summon" OR skill$(x, y) = "Read/Write(Own)" OR skill$(x, y) = "Orate") AND INT(RND * 50 + 1) <= (Age - 15) THEN GOTO 7230 7211 REM testdiv 7212 WHILE INT(RND * (Age + niv) / 10) <> 0 7215 skill(x, y) = skill(x, y) + INT(RND * (niv / 2) + 1) 7220 IF skill(x, y) > 100 THEN skill(x, y) = skill(x, y) - INT(skill(x, y) / 25) 7222 WEND 7225 IF skill(x, y) < 0 THEN skill(x, y) = 0 7230 NEXT y 7240 NEXT x 7250 IF nouveau = 0 THEN v = VAL(RIGHT$(cultskill$, 1)) 7260 IF nouveau = 0 THEN zz(v) = zz(v) + 1 7270 IF nouveau = 0 THEN skill$(v, zz(v)) = LEFT$(cultskill$, LEN(cultskill$) - 1) 7280 IF nouveau = 0 THEN skill(v, zz(v)) = cultskill 7290 NEXT z 7300 REM armes1: 7310 REM armes du culte 7320 INPUT #1, nbcultweapon 7330 IF nbcultweapon = 0 THEN GOTO 7530 7340 FOR z = 1 TO nbcultweapon 7350 INPUT #1, cultweapon$, ap 7360 WHILE INT(RND * (Age + niv) / 10) <> 0 7370 cultweapon = cultweapon + INT(RND * (niv / 2) + 1) 7380 IF cultweapon > 100 THEN cultweapon = cultweapon - INT(cultweapon / 25) 7390 WEND 7400 IF cultweapon < 0 THEN cultweapon = 0 7410 nouveau = 0 7420 FOR y = 1 TO zz(8) 7430 IF cultweapon$ = skill$(ap, y) THEN nouveau = 1 7440 IF cultweapon$ = skill$(ap, y) AND INT(RND * 50 + 1) <= (Age - 15) THEN skill(ap, y) = skill(ap, y) + cultweapon 7450 NEXT y 7460 IF nouveau = 0 THEN zz(8) = zz(8) + 1 7470 IF nouveau = 0 THEN zz(9) = zz(9) + 1 7480 IF nouveau = 0 THEN skill$(8, zz(8)) = cultweapon$ 7490 IF nouveau = 0 THEN skill$(9, zz(9)) = cultweapon$ 7500 IF nouveau = 0 THEN skill(ap, zz(8)) = cultweapon 7510 IF nouveau = 0 THEN IF skill(ap, zz(8)) < 0 THEN skill(ap, zz(8)) = 0 7520 NEXT z 7530 REM cultspirit1: 7540 REM lecture sorts 7550 INPUT #1, nbcultspirit 7560 FOR x = 1 TO nbcultspirit 7570 INPUT #1, spirit$(x) 7580 NEXT x 7590 REM nombre sorts 7600 WHILE INT(RND * ((Age + niv) / 10)) <> 0 7610 magic = magic + 1 7620 WEND 7630 IF magic = 0 THEN GOTO 7810 7640 IF magic > nbcultspirit THEN magic = nbcultspirit 7650 REM choix sorts 7660 FOR x = 1 TO magic 7670 REM test7: 7680 d = INT(RND * nbcultspirit + 1) 7690 FOR y = 0 TO x - 1 7700 IF LEFT$(spirit$(d), 1) = "(" OR RIGHT$(spirit$(d), 1) = ")" OR RIGHT$(spirit$(d), 2) <> ")-" THEN GOTO 7720 7710 IF spirit$(d) = magic$(y) THEN GOTO 7670 7720 NEXT y 7730 magic$(x) = spirit$(d) 7740 WHILE INT(RND * ((Age + niv) / 10)) <> 0 7750 magic(x) = magic(x) + 1 7760 WEND 7770 IF magic(x) < 1 THEN magic(x) = 1 7780 IF magic(x) > 6 THEN magic(x) = 6 7790 NEXT x 7800 REM divine magic 7810 REM div1: 7820 INPUT #1, nbcultdivine 7830 FOR x = 27 TO nbcultdivine + 26 7840 INPUT #1, divine$(x) 7850 divinelevel(x) = VAL(RIGHT$(divine$(x), 1)) 7860 divine$(x) = LEFT$(divine$(x), LEN(divine$(x)) - 1) 7870 NEXT x 7880 CLOSE #1 7900 OPEN "I", #1, "Magic\Divine.bas" 7910 INPUT #1, n 7920 FOR x = 1 TO n 7930 INPUT #1, divine$(x) 7940 divinelevel(x) = VAL(RIGHT$(divine$(x), 1)) 7950 divine$(x) = LEFT$(divine$(x), LEN(divine$(x)) - 1) 7960 NEXT x 7970 CLOSE #1 7980 REM nombre sorts 7990 WHILE INT(RND * (Age + niv) / 10) <> 0 8000 cultdivine = cultdivine + 1 8010 WEND 8020 IF cultdivine = 0 THEN GOTO 15000 8030 REM choix sorts 8040 FOR x = 1 TO cultdivine 8050 REM test8: 8060 d = INT(RND * (nbcultdivine + 26) + 1) 8070 IF INT(RND * 3 + 1) < divinelevel(d) THEN GOTO 8050 8080 FOR y = 0 TO x - 1 8090 IF LEFT$(divine$(d), 1) = "(" OR RIGHT$(divine$(d), 1) = ")" THEN GOTO 8110 8100 IF divine$(d) = cultdivine$(y) THEN GOTO 8050 8110 NEXT y 8120 cultdivine$(x) = divine$(d) 8130 WHILE INT(RND * ((Age + niv) / 10)) <> 0 AND INT(RND * 3 + 1) >= divinelevel(d) 8140 cultdivine(x) = cultdivine(x) + 1 8150 WEND 8160 IF cultdivine(x) < 1 THEN cultdivine(x) = 1 8170 NEXT x 8180 GOTO 15000 8500 REM Gensorcery: 8510 typemagic$ = "Sorcery" 8520 REM lecture sorts 8530 OPEN "I", #1, "Magic\Sorcery.bas" 8540 INPUT #1, nbsor 8550 FOR x = 1 TO nbsor 8560 INPUT #1, Sorcery$(x) 8570 NEXT x 8580 CLOSE #1 8590 GOSUB 12500 8600 REM nombre sorts 8610 WHILE INT(RND * (Age + niv) / 10) <> 0 8620 magic = magic + 1 8630 WEND 8640 IF magic = 0 THEN GOTO 15000 8650 REM choix sorts 8660 FOR x = 1 TO magic 8670 REM test2: 8680 d = INT(RND * nbsor + 1) 8690 FOR y = 0 TO x - 1 8700 IF LEFT$(Sorcery$(d), 1) = "(" OR RIGHT$(Sorcery$(d), 1) = ")" THEN GOTO 8720 8710 IF Sorcery$(d) = magic$(y) THEN GOTO 8670 8720 NEXT y 8730 magic$(x) = Sorcery$(d) 8740 WHILE INT(RND * (Age + niv) / 10) <> 0 8750 magic(x) = magic(x) + INT(RND * (niv / 2) + 1) 8760 IF magic(x) > 100 THEN magic(x) = magic(x) - INT(magic(x) / 25) 8770 WEND 8780 IF magic(x) < 1 THEN magic(x) = INT(RND * (niv / 2) + 1) 8790 NEXT x 8800 REM skills 8810 FOR x = 1 TO 7 8820 FOR y = 1 TO zz(x) 8830 IF ((skill$(x, y) <> "World Lore" AND skill$(x, y) <> "Ceremony" AND skill$(x, y) <> "Enchant" AND skill$(x, y) <> "Summon")) OR INT(RND * 50 + 1) <= (Age - 15) THEN GOTO 8890 8840 WHILE INT(RND * (Age + niv) / 10) <> 0 8850 skill(x, y) = skill(x, y) + INT(RND * 5 - 1) 8860 IF skill(7, x) > 100 THEN skill(7, x) = skill(7, x) - INT(skill(7, x) / 25) 8870 WEND 8880 IF skill(x, y) < 0 THEN skill(x, y) = 0 8890 NEXT y 8900 NEXT x 8910 REM skills sorcery 8920 skill$(7, 4) = "Intensity" 8930 skill$(7, 5) = "Duration" 8940 skill$(7, 6) = "Multispell" 8950 skill$(7, 7) = "Range" 8960 zz(7) = 7 8970 FOR x = 4 TO 7 8980 WHILE INT(RND * (Age + niv) / 10) <> 0 AND INT(RND * 50 + 1) <= (Age - 15) 8990 skill(7, x) = skill(7, x) + INT(RND * (niv / 2) + 1) 9000 IF skill(7, x) > 100 THEN skill(7, x) = skill(7, x) - INT(skill(7, x) / 25) 9010 WEND 9020 IF skill(7, x) < 0 THEN skill(7, x) = 0 9030 NEXT x 9040 GOTO 15000 9100 REM Spiritmagic: 9120 typemagic$ = "Spirit" 9130 WHILE INT(RND * ((Age + niv) / 10)) <> 0 9140 carac(5) = carac(5) + INT(RND * 3) 9150 WEND 9160 FOR x = 1 TO 3 9170 fetchint = fetchint + INT(RND * (niv / 2) + 1) 9180 NEXT x 9190 WHILE INT(RND * ((Age + niv) / 10)) <> 0 9200 fetchpow = fetchpow + INT(RND * (niv / 2) + 1) 9210 WEND 9230 REM lecture sorts 9240 OPEN "I", #1, "Magic\Spirit.bas" 9250 INPUT #1, nbspi 9260 FOR x = 1 TO nbspi 9270 INPUT #1, spirit$(x) 9280 NEXT x 9290 CLOSE #1 9300 REM nombre sorts 9310 magic = INT(RND * ((Age + niv) / 10)) 9320 WHILE INT(RND * ((Age + niv) / 10)) >= 1 9330 magic = magic + 1 9340 WEND 9350 IF magic = 0 THEN GOTO 15000 9360 REM choix sorts 9370 FOR x = 1 TO magic 9380 REM test3: 9390 d = INT(RND * nbspi + 1) 9400 FOR y = 0 TO x - 1 9410 IF LEFT$(spirit$(d), 1) = "(" OR RIGHT$(spirit$(d), 1) = ")" OR RIGHT$(spirit$(d), 2) = ")-" THEN GOTO 9430 9420 IF spirit$(d) = magic$(y) THEN GOTO 9380 9430 NEXT y 9440 magic$(x) = spirit$(d) 9450 WHILE INT(RND * ((Age + niv) / 10)) >= 2 9460 magic(x) = magic(x) + 1 9470 IF magic(x) > 6 THEN magic(x) = magic(x) - INT(RND * 2) 9480 WEND 9490 IF magic(x) < 1 THEN magic(x) = 1 9500 NEXT x 9510 GOTO 15000 9600 REM Sorcery: 9610 typemagic$ = "Sorcery" 9620 OPEN "I", #1, "Magic\Sorcery.bas" 9630 INPUT #1, nbsor 9640 FOR x = 1 TO nbsor 9650 INPUT #1, Sorcery$(x) 9660 NEXT x 9670 CLOSE #1 9680 GOSUB 12500 9690 WHILE INT(RND * ((Age + niv) / 10)) <> 0 9700 carac(5) = carac(5) + INT(RND * 3) 9710 WEND 9715 familiarint = 1: familiarpow = 1 9720 WHILE INT(RND * ((Age + niv) / 10)) <> 0 9730 familiarint = familiarint + INT(RND * 6 + 1) 9740 WEND 9750 WHILE INT(RND * ((Age + niv) / 10)) <> 0 9760 familiarpow = familiarpow + INT(RND * 6 + 1) 9770 WEND 9780 REM nombre sorts 9790 magic = INT(RND * ((Age + niv) / 10)) 9800 WHILE INT(RND * ((Age + niv) / 10)) >= 1 9810 magic = magic + 1 9820 WEND 9830 IF magic = 0 THEN GOTO 15000 9840 REM choix sorts 9850 FOR x = 1 TO magic 9860 REM test4: 9870 d = INT(RND * nbsor + 1) 9880 FOR y = 0 TO x - 1 9890 IF LEFT$(Sorcery$(d), 1) = "(" OR RIGHT$(Sorcery$(d), 1) = ")" THEN GOTO 9910 9900 IF Sorcery$(d) = magic$(y) THEN GOTO 9860 9910 NEXT y 9920 magic$(x) = Sorcery$(d) 9930 magic(x) = INT((Age - 15) * 3) 9940 IF INT(RND * 5) = 0 THEN magic(x) = magic(x) + (Age - 15) * 2 9950 IF magic(x) > 75 THEN magic(x) = 75 9960 WHILE INT(RND * (Age + niv) / 10) <> 0 9970 magic(x) = magic(x) + INT(RND * niv + 1) 9980 IF magic(x) > 100 THEN magic(x) = magic(x) - INT(magic(x) / 25) 9990 WEND 10000 IF magic(x) < 1 THEN magic(x) = INT(RND * (niv / 2) + 1) 10010 NEXT x 10020 REM skills sorcery 10030 skill$(7, 4) = "Intensity" 10040 skill$(7, 5) = "Duration" 10050 skill$(7, 6) = "Multispell" 10060 skill$(7, 7) = "Range" 10070 zz(7) = 7 10080 skill(7, 4) = INT((Age - 15) * 3) 10090 IF INT(RND * 2) = 0 THEN skill(7, 4) = skill(7, 4) + (Age - 15) * 2 10100 skill(7, 5) = INT((Age - 15) * 3) 10110 IF INT(RND * 3) = 0 THEN skill(7, 5) = skill(7, 5) + (Age - 15) * 2 10120 skill(7, 6) = INT((Age - 15) * 3) 10130 IF INT(RND * 3) = 0 THEN skill(7, 6) = skill(7, 6) + (Age - 15) * 2 10140 skill(7, 7) = INT((Age - 15) * 3) 10150 IF INT(RND * 3) = 0 THEN skill(7, 7) = skill(7, 7) + (Age - 15) * 2 10160 FOR x = 4 TO 7 10170 IF skill(7, x) > 75 THEN skill(7, x) = 75 10180 NEXT x 10190 FOR x = 4 TO 7 10200 WHILE INT(RND * (Age + niv) / 10) <> 0 10210 skill(7, x) = skill(7, x) + INT(RND * niv + 1) 10220 IF skill(7, x) > 100 THEN skill(7, x) = skill(7, x) - INT(skill(7, x) / 25) 10230 WEND 10240 IF skill(7, x) < 0 THEN skill(7, x) = 0 10250 NEXT x 10260 IF INT(RND * 10) <> 0 THEN GOTO 10360 10270 zz(6) = zz(6) + 1 10280 skill$(6, zz(6)) = "Demonology" 10290 skill(6, zz(6)) = INT(((Age + niv) / 10) * INT(RND * 5 + 1)) 10300 IF skill(6, zz(6)) > 75 THEN skill(6, zz(6)) = 75 10310 WHILE INT(RND * (Age + niv) / 10) <> 0 10320 skill(6, zz(6)) = skill(6, zz(6)) + INT(RND * niv + 1) 10330 IF skill(6, zz(6)) > 100 THEN skill(6, zz(6)) = skill(6, zz(6)) - INT(skill(6, zz(6)) / 25) 10340 WEND 10350 IF skill(6, zz(6)) < 0 THEN skill(6, zz(6)) = 0 10360 IF INT(RND * 3) <> 0 THEN GOTO 10460 10370 zz(6) = zz(6) + 1 10380 skill$(6, zz(6)) = "Alchemy" 10390 skill(6, zz(6)) = INT(((Age + niv) / 10) * INT(RND * 5 + 1)) 10400 IF skill(6, zz(6)) > 75 THEN skill(6, zz(6)) = 75 10410 WHILE INT(RND * (Age + niv) / 10) <> 0 10420 skill(6, zz(6)) = skill(6, zz(6)) + INT(RND * niv + 1) 10430 IF skill(6, zz(6)) > 100 THEN skill(6, zz(6)) = skill(6, zz(6)) - INT(skill(6, zz(6)) / 25) 10440 WEND 10450 IF skill(6, zz(6)) < 0 THEN skill(6, zz(6)) = 0 10460 GOTO 15000 10500 REM Divinemagic: 10510 typemagic$ = "Divine" 10520 PRINT "Profession : Priest ("; Sexe$; ","; Age; ")" 10530 INPUT "Which Cult"; Cult$ 10540 WHILE INT(RND * ((Age + niv) / 10)) <> 0 10550 carac(5) = carac(5) + INT(RND * 3) 10560 WEND 10570 alliedint = INT(RND * (niv / 2) + 1) + INT(RND * (niv / 2) + 1) + 6 10580 FOR x = 1 TO 3 10590 alliedpow = alliedpow + INT(RND * (niv / 2) + 1) 10600 NEXT x 10610 WHILE INT(RND * ((Age + niv) / 10)) <> 0 10620 alliedpow = alliedpow + INT(RND * 3) 10630 WEND 10640 REM skills du culte 10645 FICH$ = "Cult\" + LEFT$(Cult$, 6) + ".BAS" 10650 OPEN "I", #1, FICH$ 10660 INPUT #1, nbcultskill 10670 IF nbcultskill = 0 THEN GOTO 10960 10680 FOR z = 1 TO nbcultskill 10690 INPUT #1, cultskill$ 10700 cultskill = INT((Age - 15) * 3) 10710 IF INT(RND * 3) = 0 THEN cultskill = cultskill + (Age - 15) * 2 10720 IF cultskill > 75 THEN cultskill = 75 10730 WHILE INT(RND * (Age + niv) / 10) <> 0 10740 cultskill = cultskill + INT(RND * niv + 1) 10750 IF cultskill > 100 THEN cultskill = cultskill - INT(cultskill / 25) 10760 WEND 10770 IF cultskill < 0 THEN cultskill = 0 10780 nouveau = 0 10790 FOR x = 1 TO 7 10800 FOR y = 1 TO zz(x) 10810 IF cultskill$ = skill$(x, y) OR skill$(x, y) = LEFT$(cultskill$, LEN(cultskill$) - 1) THEN nouveau = 1 10820 IF (cultskill$ <> skill$(x, y) AND skill$(x, y) <> LEFT$(cultskill$, LEN(cultskill$) - 1)) OR cultskill <= skill(x, y) THEN GOTO 10890 10830 skill(x, y) = cultskill 10840 WHILE INT(RND * (Age + niv) / 10) <> 0 10850 skill(x, y) = skill(x, y) + INT(RND * niv + 1) 10860 IF skill(x, y) > 100 THEN skill(x, y) = skill(x, y) - INT(skill(x, y) / 25) 10870 WEND 10880 IF skill(x, y) < 0 THEN skill(x, y) = 0 10890 NEXT y 10900 NEXT x 10910 IF nouveau = 0 THEN v = VAL(RIGHT$(cultskill$, 1)) 10920 IF nouveau = 0 THEN zz(v) = zz(v) + 1 10930 IF nouveau = 0 THEN skill$(v, zz(v)) = LEFT$(cultskill$, LEN(cultskill$) - 1) 10940 IF nouveau = 0 THEN skill(v, zz(v)) = cultskill 10950 NEXT z 10960 REM armes2: 10970 REM armes du culte 10980 INPUT #1, nbcultweapon 10990 IF nbcultweapon = 0 THEN GOTO 11350 11000 FOR z = 1 TO nbcultweapon 11010 INPUT #1, cultweapon$, ap 11020 cultweapon = INT((Age - 15) * 3) 11030 IF INT(RND * 3) = 0 THEN cultweapon(x) = cultweapon(x) + (Age - 15) * 2 11040 IF cultweapon > 75 THEN cultweapon = 75 11050 WHILE INT(RND * (Age + niv) / 10) <> 0 11060 cultweapon = cultweapon + INT(RND * niv + 1) 11070 IF cultweapon > 100 THEN cultweapon = cultweapon - INT(cultweapon / 25) 11080 WEND 11090 IF cultweapon < 0 THEN cultweapon = 0 11100 nouveau = 0 11110 FOR y = 1 TO zz(8) 11120 IF cultweapon$ <> skill$(ap, y) THEN GOTO 11200 11130 nouveau = 1 11140 IF cultweapon > skill(ap, y) THEN skill(ap, y) = cultweapon 11150 WHILE INT(RND * (Age + niv) / 10) <> 0 11160 skill(ap, y) = skill(ap, y) + INT(RND * niv + 1) 11170 IF skill(ap, y) > 100 THEN skill(ap, y) = skill(ap, y) - INT(skill(ap, y) / 25) 11180 WEND 11190 IF skill(ap, y) < 0 THEN skill(ap, y) = 0 11200 NEXT y 11210 IF nouveau <> 0 THEN GOTO 11340 11220 zz(8) = zz(8) + 1 11230 zz(9) = zz(9) + 1 11240 skill$(8, zz(8)) = cultweapon$ 11250 skill$(9, zz(9)) = cultweapon$ 11260 skill(ap, zz(8)) = INT((Age - 15) * 3) 11270 IF INT(RND * 3) = 0 THEN skill(ap, zz(8)) = skill(ap, zz(8)) + (Age - 15) * 2 11280 IF skill(ap, zz(8)) > 75 THEN skill(ap, zz(8)) = 75 11290 WHILE INT(RND * (Age + niv) / 10) <> 0 11300 skill(ap, y) = skill(ap, y) + INT(RND * niv + 1) 11310 IF skill(ap, y) > 100 THEN skill(ap, y) = skill(ap, y) - INT(skill(ap, y) / 25) 11320 WEND 11330 IF skill(ap, zz(8)) < 0 THEN skill(ap, zz(8)) = 0 11340 NEXT z 11350 REM cultspirit2: 11360 REM lecture sorts 11370 INPUT #1, nbcultspirit 11380 FOR x = 1 TO nbcultspirit 11390 INPUT #1, spirit$(x) 11400 NEXT x 11410 REM nombre sorts 11420 magic = INT(RND * ((Age + niv) / 10)) 11430 WHILE INT(RND * ((Age + niv) / 10)) >= 1 11440 magic = magic + 1 11450 WEND 11460 IF magic = 0 THEN GOTO 11640 11470 IF magic > nbcultspirit THEN magic = nbcultspirit 11480 REM choix sorts 11490 FOR x = 1 TO magic 11500 REM test5: 11510 d = INT(RND * nbcultspirit + 1) 11520 FOR y = 0 TO x - 1 11530 IF LEFT$(spirit$(d), 1) = "(" OR RIGHT$(spirit$(d), 1) = ")" OR RIGHT$(spirit$(d), 2) = ")-" THEN GOTO 11550 11540 IF spirit$(d) = magic$(y) THEN GOTO 11500 11550 NEXT y 11560 magic$(x) = spirit$(d) 11570 WHILE INT(RND * ((Age + niv) / 10)) >= 1 11580 magic(x) = magic(x) + 1 11590 WEND 11600 IF magic(x) < 1 THEN magic(x) = 1 11610 IF magic(x) > 6 THEN magic(x) = 6 11620 NEXT x 11630 REM divine magic 11640 REM div2: 11650 INPUT #1, nbcultdivine 11660 FOR x = 27 TO nbcultdivine + 26 11670 INPUT #1, divine$(x) 11680 divinelevel(x) = VAL(RIGHT$(divine$(x), 1)) 11690 divine$(x) = LEFT$(divine$(x), LEN(divine$(x)) - 1) 11700 NEXT x 11710 CLOSE #1 11720 OPEN "I", #1, "Magic\Divine.bas" 11730 INPUT #1, n 11740 FOR x = 1 TO n 11750 INPUT #1, divine$(x) 11760 divinelevel(x) = VAL(RIGHT$(divine$(x), 1)) 11770 divine$(x) = LEFT$(divine$(x), LEN(divine$(x)) - 1) 11780 NEXT x 11790 CLOSE #1 11800 REM nombre sorts 11810 cultdivine = INT(RND * ((Age + niv) / 10)) 11820 WHILE INT(RND * ((Age + niv) / 10)) >= 1 11830 cultdivine = cultdivine + 1 11840 WEND 11850 REM choix sorts 11860 FOR x = 1 TO cultdivine 11870 REM test6: 11880 d = INT(RND * (nbcultdivine + 26) + 1) 11890 IF INT(RND * 3 + 1) < divinelevel(d) THEN GOTO 11870 11900 FOR y = 0 TO x - 1 11910 IF LEFT$(divine$(d), 1) = "(" OR RIGHT$(divine$(d), 1) = ")" THEN GOTO 11930 11920 IF divine$(d) = cultdivine$(y) THEN GOTO 11870 11930 NEXT y 11940 cultdivine$(x) = divine$(d) 11950 WHILE INT(RND * ((Age + niv) / 10)) >= 1 AND INT(RND * 3 + 1) >= divinelevel(d) 11960 cultdivine(x) = cultdivine(x) + 1 11970 IF cultdivine(x) > 5 THEN cultdivine(x) = cultdivine(x) - INT(RND * 2) 11980 WEND 11990 IF cultdivine(x) < 1 THEN cultdivine(x) = 1 12000 NEXT x 12010 GOTO 15000 12500 REM Racesorcery: 12610 IF Race$ <> "Dwarf" THEN 12800 12620 Sorcery$(nbsor + 1) = "Stabilize Glass" 12630 Sorcery$(nbsor + 2) = "Stabilize Heat" 12640 Sorcery$(nbsor + 3) = "Stabilize Life" 12650 Sorcery$(nbsor + 4) = "Stabilize Magic" 12660 Sorcery$(nbsor + 5) = "Stabilize Magic Point Matrix" 12670 Sorcery$(nbsor + 6) = "Stabilize Masonry" 12680 Sorcery$(nbsor + 7) = "Stabilize Mind" 12690 Sorcery$(nbsor + 8) = "Stabilize Potion" 12700 Sorcery$(nbsor + 9) = "Stabilize Weapon" 12710 Sorcery$(nbsor + 10) = "Forge Jolanti" 12720 Sorcery$(nbsor + 11) = "Create Gobler" 12730 Sorcery$(nbsor + 12) = "Create Gremlin" 12740 Sorcery$(nbsor + 13) = "Create Nilmerg" 12750 Sorcery$(nbsor + 14) = "Produce Flame" 12760 Sorcery$(nbsor + 15) = "Store Sorcery" 12770 Sorcery$(nbsor + 16) = "Fend Blow" 12780 Sorcery$(nbsor + 17) = "Worship Mostal" 12790 nbsor = nbsor + 17 12800 RETURN 15000 REM CALCUL 15010 RANDOMIZE TIMER 15020 IF Spe$ <> "Zombie" OR Race$ <> "Human" THEN GOTO 15090 15030 carac(1) = INT(carac(1) * 1.5) 15040 carac(2) = INT(carac(2) * 1.5) 15050 carac(4) = INT(carac(4) / 2) 15060 carac(5) = 0 15070 carac(6) = INT(RND * 6) + INT(RND * 6) + 2 15080 carac(7) = INT(RND * 6) + 1 15090 IF Spe$ <> "Zombie" THEN GOTO 15300 15100 FOR y = 1 TO zz(1) 15110 IF skill(1, y) > 0 AND skill(1, y) < carac(6) * 5 THEN skill(1, y) = carac(6) * 5 15120 IF skill$(1, y) = "Dodge" THEN skill(1, y) = 0 15130 NEXT y 15140 FOR y = 1 TO zz(3) 15150 IF skill(3, y) > 0 AND skill(3, y) < carac(6) * 5 THEN skill(3, y) = carac(6) * 5 15160 NEXT y 15170 FOR y = 1 TO zz(5) 15180 IF skill(5, y) > 0 AND skill(5, y) < carac(6) * 5 THEN skill(5, y) = carac(6) * 5 15190 NEXT y 15200 FOR y = 1 TO zz(7) 15210 IF skill(7, y) > 0 AND skill(7, y) < carac(6) * 5 THEN skill(7, y) = carac(6) * 5 15220 NEXT y 15230 FOR y = 1 TO zz(8) 15240 IF skill(8, y) > 0 AND skill(8, y) < carac(6) * 5 THEN skill(8, y) = carac(6) * 5 15250 NEXT y 15260 FOR y = 1 TO zz(9) 15270 IF skill(9, y) > 0 AND skill(9, y) < carac(6) * 5 THEN skill(9, y) = carac(6) * 5 15280 NEXT y 15300 mp = carac(5) 15310 IF Spe$ = "Zombie" THEN mp = INT(RND * 6) + 1 15320 fp = carac(1) + carac(2) 15330 hp = INT((carac(2) + carac(3)) / 2 + .5) 15340 IF Spe$ = "Zombie" THEN mr = mr - 1 15350 x = carac(1) + carac(3) 15360 IF x <= 12 THEN dmgmod$ = "-1D4" 15370 IF x >= 13 AND x <= 24 THEN dmgmod$ = "0" 15380 IF x >= 25 AND x <= 32 THEN dmgmod$ = "+1D4" 15390 IF x >= 33 AND x <= 40 THEN dmgmod$ = "+1D6" 15400 IF x >= 41 AND x <= 56 THEN dmgmod$ = "+2D6" 15410 IF x >= 57 AND x <= 72 THEN dmgmod$ = "+3D6" 15420 IF x >= 73 AND x <= 88 THEN dmgmod$ = "+4D6" 15430 IF x >= 89 AND x <= 105 THEN dmgmod$ = "+5D6" 15440 IF x >= 106 AND x <= 121 THEN dmgmod$ = "+6D6" 15450 IF x >= 122 AND x <= 137 THEN dmgmod$ = "+7D6" 15460 IF x >= 138 AND x <= 153 THEN dmgmod$ = "+8D6" 15470 IF x >= 154 AND x <= 169 THEN dmgmod$ = "+9D6" 15480 IF x >= 170 AND x <= 185 THEN dmgmod$ = "+10D6" 15490 IF x >= 186 AND x <= 201 THEN dmgmod$ = "+11D6" 15500 IF x >= 202 AND x <= 217 THEN dmgmod$ = "+12D6" 15510 IF x >= 218 THEN dmgmod$ = "+ BEAUCOUP TROP" 15520 x = carac(6) 15530 IF x <= 9 THEN dexsr = 4 15540 IF x >= 10 AND x <= 15 THEN dexsr = 3 15550 IF x >= 16 AND x <= 19 THEN dexsr = 2 15560 IF x >= 20 THEN dexsr = 1 15570 x = carac(3) 15580 IF x <= 9 THEN sizsr = 3 15590 IF x >= 10 AND x <= 15 THEN sizsr = 2 15600 IF x >= 16 AND x <= 19 THEN sizsr = 1 15610 IF x >= 20 THEN sizsr = 0 15620 meleesr = dexsr + sizsr 15630 agilitymod = (carac(6) - 10) + (INT((carac(1) - 10) / 2)) - (carac(3) - 10) 15640 IF carac(1) > 30 THEN agilitymod = agilitymod - INT((carac(1) - 30) / 2) 15650 communicationmod = (carac(4) - 10) + (INT((carac(5) - 10) / 2)) + (INT((carac(7) - 10) / 2)) 15660 IF carac(5) > 30 THEN communicationmod = communicationmod - INT((carac(5) - 30) / 2) 15670 IF carac(7) > 30 THEN communicationmod = communicationmod - INT((carac(7) - 30) / 2) 15680 knowledgemod = carac(4) - 10 15690 magicmod = (carac(4) - 10) + (carac(5) - 10) + (INT((carac(6) - 10) / 2)) 15700 IF carac(6) > 30 THEN magicmod = magicmod - INT((carac(6) - 30) / 2) 15710 manipulationmod = (carac(4) - 10) + (carac(6) - 10) + (INT((carac(1) - 10) / 2)) 15720 IF carac(1) > 30 THEN manipulationmod = manipulationmod - INT((carac(1) - 30) / 2) 15730 perceptionmod = (carac(4) - 10) + (INT((carac(5) - 10) / 2)) + (INT((carac(2) - 10) / 2)) 15740 IF carac(5) > 30 THEN perceptionmod = perceptionmod - INT((carac(5) - 30) / 2) 15750 IF carac(2) > 30 THEN perceptionmod = perceptionmod - INT((carac(2) - 30) / 2) 15760 stealthmod = (carac(6) - 10) - (carac(3) - 10) - (carac(5) - 10) 15770 attackmod = manipulationmod 15780 parrymod = agilitymod 15800 REM minimum arme 15810 FOR y = 1 TO zz(8) 15820 IF skill(8, y) < skill(9, y) / 3 AND skill$(9, y) <> "Shield" THEN minatt = INT((skill(9, y) / 3) + (RND * (skill(9, y) / 2))): skill(8, y) = minatt 15830 IF skill(9, y) < skill(8, y) / 3 AND skill$(9, y) <> "Missile Weapon" AND skill$(8, y) <> "Thrown Weapon" AND skill$(8, y) <> "Kick" THEN minpar = INT((skill(8, y) / 3) + (RND * (skill(8, y) / 2))): skill(9, y) = minpar 15840 IF skill$(8, y) = "Grappling" OR skill$(8, y) = "Head Butt" OR skill$(8, y) = "Claw" OR skill$(8, y) = "Bite" THEN skill(9, y) = 0 15850 NEXT y 16000 REM TREASURE FACTOR 16010 TF = INT(carac(1) / 10) 16020 TF = TF + INT(carac(2) / 10) 16030 TF = TF + INT(carac(3) / 10) 16040 TF = TF + INT(carac(4) / 10) 16050 TF = TF + INT(carac(5) / 5) 16060 TF = TF + INT(carac(6) / 10) 16070 TF = TF + INT(alliedint / 10) 16080 TF = TF + INT(alliedpow / 10) 16090 TF = TF + INT(fetchint / 10) 16100 TF = TF + INT(fetchpow / 10) 16110 TF = TF + INT(familiarint / 10) 16120 TF = TF + INT(familiarpow / 10) 16130 TF = TF + INT(mr / 5) 16140 FOR x = 1 TO 7 16150 FOR y = 1 TO zz(x) 16160 IF skill(x, y) >= 90 THEN TF = TF + 1 16170 IF skill(x, y) >= 100 THEN TF = TF - 1 + INT(skill(x, y) / 50) 16180 NEXT y 16190 NEXT x 16200 p = 0 16210 FOR y = 1 TO zz(8) 16220 IF skill(8, y) >= 90 THEN TF = TF + 1 16230 IF skill(8, y) > p THEN p = skill(8, y) 16240 NEXT y 16250 TF = TF - 1 + INT(p / 50) 16260 p = 0 16270 FOR y = 1 TO zz(9) 16280 IF skill(9, y) >= 90 THEN TF = TF + 1 16290 IF skill(9, y) > p THEN p = skill(9, y) 16300 NEXT y 16310 TF = TF - 1 + INT(p / 50) 16320 IF typemagic$ <> "Sorcery" THEN GOTO 16380 16330 FOR x = 1 TO magic 16340 IF magic(x) >= 90 THEN TF = TF + 1 16350 IF magic(x) >= 100 THEN TF = TF - 1 + (INT(magic(x) / 50)) 16360 NEXT x 16370 TF = TF + INT(magic) / 5 16380 IF typemagic$ <> "Spirit" THEN GOTO 16450 16390 z = 0 16400 FOR x = 1 TO magic 16410 z = z + magic(x) 16420 NEXT x 16430 TF = TF + INT(z / 10) 16440 TF = TF + INT(magic) / 5 16450 IF typemagic$ <> "Divine" THEN GOTO 16570 16460 z = 0 16470 FOR x = 1 TO magic 16480 z = z + magic(x) 16490 NEXT x 16500 TF = TF + INT(z / 10) 16510 TF = TF + INT(magic) / 5 16520 z = 0 16530 FOR x = 1 TO cultdivine 16540 z = z + (cultdivine(x) * divinelevel(x)) 16550 NEXT x 16560 TF = TF + INT(z / 5) 16570 TF = INT(TF) 16580 REM DIVERS 16590 IF Race$ = "Newtling" THEN Age = Age - 12 16600 IF Race$ = "Giant" THEN Age = Age + 25 16610 IF Race$ = "Trollkin" OR Race$ = "Superior Trollkin" THEN Age = Age - 7 17000 REM Affichage: 17020 CLS 17030 PRINT "STR:"; carac(1); 17040 PRINT "CON:"; carac(2); 17050 PRINT "SIZ:"; carac(3); 17060 PRINT "INT:"; carac(4); 17070 PRINT "POW:"; carac(5); 17080 PRINT "DEX:"; carac(6); 17090 PRINT "APP:"; carac(7) 17100 PRINT 17110 PRINT "Race: "; Race$; " Age:"; Age; " "; "Sexe: "; Sexe$ 17120 PRINT 17130 PRINT "Culture: "; Culture$; " Profession: "; Prof$ 17140 PRINT 17150 PRINT "MP:"; mp; 17160 PRINT "FP:"; fp; 17170 PRINT "HP:"; hp; 17180 PRINT " TF:"; TF 17190 PRINT 17200 PRINT "DMG MOD: "; dmgmod$; " "; 17210 PRINT " SR:"; dexsr; "+"; sizsr; "="; meleesr 17220 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 17230 WHILE INKEY$ <> CHR$(32) 17240 WEND 17250 CLS 17260 j = 0 17270 PRINT : PRINT "Agility mod:"; agilitymod; "%" 17280 PRINT 17290 FOR y = 1 TO zz(1) 17300 IF skill(1, y) > 0 AND skill$(1, y) <> "" THEN PRINT skill$(1, y); skill(1, y); "% "; : j = j + 1 17330 IF j = 3 THEN j = 0: PRINT 17340 NEXT y 17350 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 17360 WHILE INKEY$ <> CHR$(32) 17370 WEND 17380 CLS 17390 j = 0 17400 PRINT : PRINT "Communication mod:"; communicationmod; "%" 17410 PRINT 17420 FOR y = 1 TO zz(2) 17430 IF skill(2, y) > 0 AND skill$(2, y) <> "" THEN PRINT skill$(2, y); skill(2, y); "% "; : j = j + 1 17460 IF j = 3 THEN j = 0: PRINT 17470 NEXT y 17480 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 17490 WHILE INKEY$ <> CHR$(32) 17500 WEND 17510 CLS 17520 j = 0 17530 PRINT : PRINT "Manipulation mod:"; manipulationmod; "%" 17540 PRINT 17550 FOR y = 1 TO zz(3) 17560 IF skill(3, y) > 0 AND skill$(3, y) <> "" THEN PRINT skill$(3, y); skill(3, y); "% "; : j = j + 1 17590 IF j = 3 THEN j = 0: PRINT 17600 NEXT y 17610 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 17620 WHILE INKEY$ <> CHR$(32) 17630 WEND 17640 CLS 17650 j = 0 17660 PRINT : PRINT "Perception mod:"; perceptionmod; "%" 17670 PRINT 17680 FOR y = 1 TO zz(4) 17690 IF skill(4, y) > 0 AND skill$(4, y) <> "" THEN PRINT skill$(4, y); skill(4, y); "% "; : j = j + 1 17720 IF j = 3 THEN j = 0: PRINT 17730 NEXT y 17740 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 17750 WHILE INKEY$ <> CHR$(32) 17760 WEND 17770 CLS 17780 j = 0 17790 PRINT : PRINT "Stealth mod:"; stealthmod; "%" 17800 PRINT 17810 FOR y = 1 TO zz(5) 17820 IF skill(5, y) > 0 AND skill$(5, y) <> "" THEN PRINT skill$(5, y); skill(5, y); "% "; : j = j + 1 17850 IF j = 3 THEN j = 0: PRINT 17860 NEXT y 17870 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 17880 WHILE INKEY$ <> CHR$(32) 17890 WEND 17900 CLS 17910 j = 0 17920 PRINT : PRINT "Knowledge mod:"; knowledgemod; "%" 17930 PRINT 17940 FOR y = 1 TO zz(6) 17950 IF skill(6, y) > 0 AND skill$(6, y) <> "" THEN PRINT skill$(6, y); skill(6, y); "% "; : j = j + 1 17980 IF j = 3 THEN j = 0: PRINT 17990 NEXT y 18000 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 18010 WHILE INKEY$ <> CHR$(32) 18020 WEND 18030 CLS 18040 j = 0 18050 PRINT : PRINT "Attack mod:"; attackmod; "%"; 18060 PRINT " Parry mod:"; parrymod; "%" 18070 PRINT 18080 FOR y = 1 TO zz(8) 18090 IF (skill(8, y) > 0 OR skill(9, y) > 0) AND (skill$(8, y) <> "" OR skill$(9, y) <> "") THEN PRINT skill$(8, y); skill(8, y); "/"; skill(9, y); "% "; : j = j + 1 18120 IF j = 3 THEN j = 0: PRINT 18130 NEXT y 18140 PRINT : PRINT : PRINT "(SPACE) TO CONTINUE" 18150 WHILE INKEY$ <> CHR$(32) 18160 WEND 18170 CLS 18180 j = 0 18190 PRINT : PRINT "Magic mod:"; magicmod; "%" 18200 PRINT 18210 FOR y = 1 TO zz(7) 18220 IF skill(7, y) > 0 AND skill$(7, y) <> "" THEN PRINT skill$(7, y); skill(7, y); "% "; : j = j + 1 18250 IF j = 4 THEN j = 0: PRINT 18260 NEXT y 18270 j = 0 18280 PRINT : PRINT 18290 IF typemagic$ <> "Sorcery" THEN PRINT "Spirit magic:"; carac(5) * 5; "%" 18300 PRINT "(Kind of Magic: "; typemagic$; ")" 18310 PRINT 18320 IF Prof$ = "Shaman" THEN PRINT "Fetch INT:"; fetchint; " POW:"; fetchpow: PRINT 18330 IF Prof$ = "Priest" OR typemagic$ = "Divine" THEN PRINT "Cult: "; Cult$: PRINT 18340 IF Prof$ = "Priest" THEN PRINT "Allied Spirit INT:"; alliedint; " POW:"; alliedpow: PRINT 18350 IF Prof$ = "Sorcerer" THEN PRINT "Familiar INT:"; familiarint; " POW:"; familiarpow: PRINT 18355 FOR x = 1 TO magic 18360 PRINT magic$(x); : IF RIGHT$(magic$(x), 1) = "-" OR Prof$ = "Sorcerer" OR typemagic$ = "Sorcery" THEN PRINT magic(x); 18365 IF Prof$ = "Sorcerer" OR typemagic$ = "Sorcery" THEN PRINT "%"; 18370 PRINT " "; 18380 j = j + 1 18390 IF j = 3 THEN j = 0: PRINT 18400 NEXT x 18405 PRINT 18410 IF Prof$ <> "Priest" AND typemagic$ <> "Divine" THEN GOTO 18500 18420 PRINT 18430 j = 0 18440 FOR x = 1 TO cultdivine 18450 PRINT cultdivine$(x); " x"; cultdivine(x); 18460 PRINT " "; 18470 j = j + 1 18480 IF j = 3 THEN PRINT : j = 0 18490 NEXT x 18500 PRINT : PRINT : PRINT "To Print, type 'P' then RETURN" 18510 PRINT "To See again, type 'S' then RETURN" 18520 PRINT "To Create a new character, type 'C' then RETURN" 18525 PRINT "To end the programme and exit, type 'X' then RETURN" 18530 INPUT choix$ 18540 IF choix$ = "p" OR choix$ = "P" THEN GOTO 18600 18550 IF choix$ = "s" OR choix$ = "S" THEN GOTO 17000 18560 IF choix$ = "c" OR choix$ = "C" THEN CLEAR : CLS : RUN 18565 IF choix$ = "x" OR choix$ = "X" THEN END 18570 GOTO 18500 18600 REM Imprimer: 18610 LPRINT CHR$(15) 18620 LPRINT "STR:"; carac(1); 18630 LPRINT "CON:"; carac(2); 18640 LPRINT "SIZ:"; carac(3); 18650 LPRINT "INT:"; carac(4); 18660 LPRINT "POW:"; carac(5); 18670 LPRINT "DEX:"; carac(6); 18680 LPRINT "APP:"; carac(7) 18690 LPRINT "MP:"; mp; 18700 LPRINT "FP:"; fp; 18710 LPRINT "HP:"; hp; 18720 LPRINT " DMG MOD: "; dmgmod$; " "; 18730 LPRINT " SR:"; dexsr; "+"; sizsr; "="; meleesr; " TF:"; TF 18740 LPRINT "Race: "; Race$; " Age:"; Age; " "; "Sexe: "; Sexe$; 18750 LPRINT " Culture: "; Culture$; " Profession: "; Prof$ 18760 j = 0 18770 LPRINT "Agility mod:"; agilitymod; "%": LPRINT " "; 18780 FOR y = 1 TO zz(1) 18790 IF skill(1, y) > 0 AND skill$(1, y) <> "" THEN LPRINT skill$(1, y); skill(1, y); " "; : j = j + 1 18800 IF j = 7 AND y < zz(1) - 1 THEN j = 0: LPRINT : LPRINT " "; 18810 NEXT y 18820 j = 0 18830 LPRINT : LPRINT "Communication mod:"; communicationmod; "%": LPRINT " "; 18840 FOR y = 1 TO zz(2) 18850 IF skill(2, y) > 0 AND skill$(2, y) <> "" THEN LPRINT skill$(2, y); skill(2, y); " "; : j = j + 1 18860 IF j = 7 AND y < zz(2) - 1 THEN j = 0: LPRINT : LPRINT " "; 18870 NEXT y 18880 j = 0 18890 LPRINT : LPRINT "Manipulation mod:"; manipulationmod; "%": LPRINT " "; 18900 FOR y = 1 TO zz(3) 18910 IF skill(3, y) > 0 AND skill$(3, y) <> "" THEN LPRINT skill$(3, y); skill(3, y); " "; : j = j + 1 18920 IF j = 7 AND y < zz(3) - 1 THEN j = 0: LPRINT : LPRINT " "; 18930 NEXT y 18940 j = 0 18950 LPRINT : LPRINT "Perception mod:"; perceptionmod; "%": LPRINT " "; 18960 FOR y = 1 TO zz(4) 18970 IF skill(4, y) > 0 AND skill$(4, y) <> "" THEN LPRINT skill$(4, y); skill(4, y); " "; : j = j + 1 18980 IF j = 7 AND y < zz(4) - 1 THEN j = 0: LPRINT : LPRINT " "; 18990 NEXT y 19000 j = 0 19010 LPRINT : LPRINT "Stealth mod:"; stealthmod; "%": LPRINT " "; 19020 FOR y = 1 TO zz(5) 19030 IF skill(5, y) > 0 AND skill$(5, y) <> "" THEN LPRINT skill$(5, y); skill(5, y); " "; : j = j + 1 19040 IF j = 7 AND y < zz(5) - 1 THEN j = 0: LPRINT : LPRINT " "; 19050 NEXT y 19060 j = 0 19070 LPRINT : LPRINT "Knowledge mod:"; knowledgemod; "%": LPRINT " "; 19080 FOR y = 1 TO zz(6) 19090 IF skill(6, y) > 0 AND skill$(6, y) <> "" THEN LPRINT skill$(6, y); skill(6, y); " "; : j = j + 1 19100 IF j = 5 AND y < zz(6) - 1 THEN j = 0: LPRINT : LPRINT " "; 19110 NEXT y 19120 j = 0 19130 LPRINT : LPRINT "Attack mod:"; attackmod; "%"; 19140 LPRINT " Parry mod:"; parrymod; "%": LPRINT " "; 19150 FOR y = 1 TO zz(8) 19160 IF (skill(8, y) > 0 OR skill(9, y) > 0) AND (skill$(8, y) <> "" OR skill$(9, y) <> "") THEN LPRINT skill$(8, y); skill(8, y); CHR$(8); "/"; skill(9, y); " "; : j = j + 1 19170 IF j = 5 AND y < zz(8) - 1 THEN j = 0: LPRINT : LPRINT " "; 19180 NEXT y 19190 j = 0 19200 LPRINT : LPRINT "Magic mod:"; magicmod; "%": LPRINT " "; 19210 FOR y = 1 TO zz(7) 19220 IF skill(7, y) > 0 AND skill$(7, y) <> "" THEN LPRINT skill$(7, y); skill(7, y); " "; : j = j + 1 19230 IF j = 7 AND y < zz(7) - 1 THEN j = 0: LPRINT : LPRINT " "; 19240 NEXT y 19250 LPRINT 19260 j = 0 19270 IF typemagic$ <> "Sorcery" THEN LPRINT "Spirit magic:"; carac(5) * 5; "%"; 19280 LPRINT " (Kind of Magic: "; typemagic$; ")" 19290 IF Prof$ = "Shaman" THEN LPRINT "Fetch INT:"; fetchint; " POW:"; fetchpow 19300 IF Prof$ = "Priest" OR typemagic$ = "Divine" THEN LPRINT "Cult: "; Cult$; 19310 IF Prof$ = "Priest" THEN LPRINT " Allied Spirit INT:"; alliedint; " POW:"; alliedpow: LPRINT 19320 IF Prof$ = "Sorcerer" THEN LPRINT "Familiar INT:"; familiarint; " POW:"; familiarpow: LPRINT 19330 IF Prof$ <> "Priest" THEN LPRINT 19340 FOR x = 1 TO magic 19350 LPRINT magic$(x); 19360 IF RIGHT$(magic$(x), 1) = "-" OR Prof$ = "Sorcerer" OR typemagic$ = "Sorcery" THEN LPRINT magic(x); 19365 IF Prof$ = "Sorcerer" OR typemagic$ = "Sorcery" THEN LPRINT "%"; 19370 LPRINT " "; 19380 j = j + 1 19390 IF j = 5 AND x < magic - 1 THEN j = 0: LPRINT 19400 NEXT x 19410 LPRINT : LPRINT 19420 IF Prof$ <> "Priest" AND typemagic$ <> "Divine" THEN GOTO 19550 19430 j = 0 19440 FOR x = 1 TO cultdivine 19450 LPRINT cultdivine$(x); " x"; cultdivine(x); 19470 LPRINT " "; 19480 j = j + 1 19490 IF j = 5 AND x < cultdivine - 1 THEN j = 0: LPRINT " "; 19500 NEXT x 19550 LPRINT CHR$(12) 19560 GOTO 18500 20000 END 51000 SUB BROO 51010 RANDOMIZE TIMER 51020 Sexe$ = "M" 51030 PRINT "Which Culture" 51040 INPUT "((F)eral / (W)ild)"; Culture$ 51045 IF LEFT$(Culture$, 1) = "f" OR LEFT$(Culture$, 1) = "F" THEN Culture$ = "Feral" 51050 IF LEFT$(Culture$, 1) = "w" OR LEFT$(Culture$, 1) = "W" THEN Culture$ = "Wild" 51060 INPUT "Which Profession (RETURN for random)"; Prof$ 51070 IF Prof$ <> "" THEN GOTO 51100 51075 IF Culture$ = "Feral" THEN GOSUB 53700 51080 IF Culture$ = "Wild" THEN GOSUB 53750 51100 REM Tiragecarac: 51110 FICH$ = "RACE\" + LEFT$(Race$, 4) + ".BAS" 51120 OPEN "I", #1, FICH$ 51130 FOR c = 1 TO 7 51140 INPUT #1, nombrede 51150 INPUT #1, typede 51160 INPUT #1, nombrefixe 51170 FOR n = 1 TO 3 51180 GOSUB 53600 51190 REM special: 51200 s = INT(RND * 10) + 1 51210 IF s <= 3 THEN de = de + 1: GOTO 51190 51220 IF s = 10 THEN de = de - 1: GOTO 51190 51230 IF carac(c) < de THEN carac(c) = de 51240 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 3 51250 NEXT n 51260 IF carac(c) < 1 THEN carac(c) = 1 51270 IF carac(3) > 8 THEN carac(3) = 8 51280 IF carac(3) < 3 THEN carac(3) = 3 51290 IF carac(4) > 18 THEN carac(4) = 18 51300 IF carac(4) < 8 THEN carac(4) = 8 51310 IF c = 5 THEN GOTO 51350 51320 x = (nombrede * typede) + nombrefixe + nombrede 51330 IF nombrefixe > 0 THEN x = x + 1 51340 IF carac(c) > x THEN carac(c) = x 51350 NEXT c 51360 CLOSE #1 51370 FICH$ = "SKILL\" + LEFT$(Race$, 4) + ".BAS" 51380 OPEN "I", #1, FICH$ 51390 FOR x = 1 TO 7 51400 INPUT #1, zz(x) 51410 FOR y = 1 TO zz(x) 51420 INPUT #1, skill$(x, y) 51430 INPUT #1, skillbase(x, y) 51460 NEXT y 51470 NEXT x 51480 CLOSE #1 51540 REM lecture base armes 51550 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + ".BAS" 51560 OPEN "I", #1, FICH$ 51570 INPUT #1, zz(8): zz(9) = zz(8) 51580 FOR y = 1 TO zz(8) 51590 INPUT #1, skill$(8, y) 51600 INPUT #1, skillbase(8, y) 51610 INPUT #1, skillbase(9, y) 51620 skill$(9, y) = skill$(8, y) 51630 NEXT y 51640 CLOSE #1 51650 REM lecture skills prof 51660 FICH$ = "PROF\" + LEFT$(Race$, 4) + LEFT$(Culture$, 3) + "\" + LEFT$(Prof$, 5) + ".BAS" 51670 OPEN "I", #1, FICH$ 51680 INPUT #1, ns 51690 FOR n = 1 TO ns 51700 INPUT #1, skill$ 51710 INPUT #1, skill 51720 INPUT #1, multiple$ 51730 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 51740 skill = skill + VAL(multiple$) 51750 nouveau = 0 51760 FOR x = 1 TO 7 51770 FOR y = 1 TO zz(x) 51780 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 51790 NEXT y 51800 NEXT x 51810 IF nouveau <> 0 THEN GOTO 51860 51820 v = VAL(RIGHT$(skill$, 1)) 51830 zz(v) = zz(v) + 1 51840 skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 51850 skillbase(v, zz(v)) = skill 51860 NEXT n 51870 REM lecture armes prof 51880 INPUT #1, nw 51890 IF nw = 0 THEN CLOSE #1: GOTO 53010 51900 FOR n = 1 TO nw 51910 INPUT #1, skill$ 51920 INPUT #1, skill1 51930 INPUT #1, multiple1 51940 skill1 = skill1 + multiple1 51950 INPUT #1, skill2 51960 INPUT #1, multiple2 51970 skill2 = skill2 + multiple2 51980 nouveau = 0 51990 FOR y = 1 TO zz(8) 52000 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 52010 NEXT y 52020 IF nouveau <> 0 THEN GOTO 52090 52030 zz(8) = zz(8) + 1 52040 zz(9) = zz(9) + 1 52050 skill$(8, zz(8)) = skill$ 52060 skill$(9, zz(9)) = skill$ 52070 skillbase(8, zz(8)) = skill1 52080 skillbase(9, zz(9)) = skill2 52090 NEXT n 53000 CLOSE #1 53010 REM Age: 53020 INPUT "How old (RETURN for random)"; Age$ 53030 Age = INT(RND * 20 + 1) + 15 53040 IF Age >= 34 THEN GOSUB 53110 53050 IF Age <= 17 THEN GOSUB 53180 53060 IF Age$ <> "" THEN Age = VAL(Age$) 53070 IF Age >= 40 THEN GOSUB 53250 53080 IF Age <= 16 THEN GOSUB 53460 53090 IF Age$ <> "" THEN Age = VAL(Age$) 53100 GOTO 53900 53110 REM vieux: 53120 x = INT(RND * 3) 53130 WHILE x <> 0 53140 Age = Age + x 53150 x = INT(RND * 3) 53160 WEND 53170 RETURN 53180 REM jeune: 53190 x = INT(RND * 3) 53200 WHILE x <> 0 53210 Age = Age - x 53220 x = INT(RND * 3) 53230 WEND 53240 RETURN 53250 REM vieillissement: 53260 FOR i = 1 TO Age - 39 53270 x = INT(RND * 6) + INT(RND * 6) + 2 53280 IF x = 5 OR x = 9 THEN z = 1 53290 IF x = 4 OR x = 10 THEN z = 2 53300 IF x = 3 OR x = 11 THEN z = 3 53310 IF x = 2 OR x = 12 THEN z = 4 53320 FOR y = 1 TO z 53330 w = INT(RND * 10) + 1 53340 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 53350 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 53360 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 53370 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 53380 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 53390 NEXT y 53400 NEXT i 53410 FOR i = 1 TO 7 53420 IF carac(i) < 1 THEN carac(i) = 1 53430 NEXT i 53450 RETURN 53460 REM jouvence: 53470 carac(6) = carac(6) + 1 53480 carac(7) = carac(7) + 1 53490 carac(1) = carac(1) - 16 + Age 53500 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 53510 carac(2) = carac(2) - 16 + Age 53520 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 53530 carac(3) = carac(3) - 16 + Age 53540 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 53550 RETURN 53600 REM Tiragede: 53610 de = 0 53620 IF nombrede = 0 THEN de = nombrefixe: RETURN 53630 FOR d = 1 TO nombrede 53640 jet = INT(RND * typede) + 1 53650 de = de + jet 53660 NEXT d 53670 de = de + nombrefixe 53680 RETURN 53700 REM ProfFeral: 53710 d = INT(RND * 100 + 1) 53720 IF d <= 97 THEN Prof$ = "Raider" 53730 IF d >= 98 THEN Prof$ = "Shaman" 53740 RETURN 53750 REM ProfWild: 53760 d = INT(RND * 100 + 1) 53770 IF d <= 2 THEN Prof$ = "Priest" 53780 IF d >= 3 AND d <= 80 THEN Prof$ = "Raider" 53790 IF d >= 81 AND d <= 97 THEN Prof$ = "Warrior" 53800 IF d >= 98 THEN Prof$ = "Shaman" 53810 RETURN 53900 END SUB 61000 SUB BROWNELF 61010 RANDOMIZE TIMER 61020 Culture$ = "Barbarian" 61030 INPUT "(M)ale or (F)emale (RETURN for random)"; Sexe$ 61040 INPUT "Which Profession (RETURN for random)"; Prof$ 61050 IF Sexe$ <> "" THEN GOTO 61090 61060 d = INT(RND * 100 + 1) 61070 IF d <= 25 THEN Sexe$ = "F" 61080 IF d >= 26 THEN Sexe$ = "M" 61090 IF Prof$ <> "" THEN GOTO 61170 61100 d = INT(RND * 100 + 1) 61110 IF d <= 5 THEN Prof$ = "Crafter" 61120 IF d = 6 THEN Prof$ = "Entertainer" 61130 IF d >= 7 AND d <= 80 THEN Prof$ = "Plant Tender" 61140 IF d = 81 THEN Prof$ = "Noble" 61150 IF d >= 82 AND d <= 85 THEN Prof$ = "Priest" 61160 IF d >= 86 THEN Prof$ = "Warrior" 61170 REM Tiragecarac: 61180 IF LEFT$(Sexe$, 1) = "M" OR LEFT$(Sexe$, 1) = "m" THEN FICH$ = "RACE\" + LEFT$(Race$, 4) + "M.BAS" 61190 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" THEN FICH$ = "RACE\" + LEFT$(Race$, 4) + "F.BAS" 61200 OPEN "I", #1, FICH$ 61210 FOR c = 1 TO 7 61220 INPUT #1, nombrede 61230 INPUT #1, typede 61240 INPUT #1, nombrefixe 61250 FOR n = 1 TO 2 61260 GOSUB 62850 61270 REM special: 61280 s = INT(RND * 10) + 1 61290 IF s <= 3 THEN de = de + 1: GOTO 61270 61300 IF s = 10 THEN de = de - 1: GOTO 61270 61310 IF carac(c) < de THEN carac(c) = de 61320 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 2 61330 NEXT n 61340 IF carac(c) < 1 THEN carac(c) = 1 61350 IF carac(3) > 12 THEN carac(3) = 12 61360 IF carac(3) < 6 THEN carac(3) = 6 61370 IF carac(4) > 24 THEN carac(4) = 24 61380 IF carac(3) < 9 THEN carac(3) = 9 61390 IF c = 5 THEN GOTO 61430 61400 x = (nombrede * typede) + nombrefixe + nombrede 61410 IF nombrefixe > 0 THEN x = x + 1 61420 IF carac(c) > x THEN carac(c) = x 61430 NEXT c 61440 CLOSE #1 61450 FICH$ = "SKILL\" + LEFT$(Race$, 4) + ".BAS" 61460 OPEN "I", #1, FICH$ 61470 FOR x = 1 TO 7 61480 INPUT #1, zz(x) 61490 FOR y = 1 TO zz(x) 61500 INPUT #1, skill$(x, y) 61510 INPUT #1, skillbase(x, y) 61520 REM base Femme1 61530 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" AND skill$(x, y) = "Courtesan" THEN skillbase(x, y) = 10 61540 NEXT y 61550 NEXT x 61560 CLOSE #1 61570 REM base Femme2 61580 IF LEFT$(Sexe$, 1) <> "F" AND LEFT$(Sexe$, 1) <> "f" THEN GOTO 61620 61590 zz(6) = zz(6) + 1 61600 skill$(6, zz(6)) = "Child Care" 61610 skillbase(6, zz(6)) = 5 61620 REM lecture base armes 61630 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + ".BAS" 61640 OPEN "I", #1, FICH$ 61650 INPUT #1, zz(8): zz(9) = zz(8) 61660 FOR y = 1 TO zz(8) 61670 INPUT #1, skill$(8, y) 61680 INPUT #1, skillbase(8, y) 61690 INPUT #1, skillbase(9, y) 61700 skill$(9, y) = skill$(8, y) 61710 NEXT y 61720 CLOSE #1 61730 REM lecture skills prof 61740 FICH$ = "PROF\" + LEFT$(Race$, 4) + "\" + LEFT$(Prof$, 5) + ".BAS" 61750 OPEN "I", #1, FICH$ 61760 INPUT #1, ns 61770 FOR n = 1 TO ns 61780 INPUT #1, skill$ 61790 INPUT #1, skill 61800 INPUT #1, multiple$ 61810 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 61820 skill = skill + VAL(multiple$) 61830 nouveau = 0 61840 FOR x = 1 TO 7 61850 FOR y = 1 TO zz(x) 61860 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 61870 NEXT y 61880 NEXT x 61890 IF nouveau <> 0 THEN GOTO 61940 61900 v = VAL(RIGHT$(skill$, 1)) 61910 zz(v) = zz(v) + 1 61920 skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 61930 skillbase(v, zz(v)) = skill 61940 NEXT n 61960 REM lecture armes prof 61970 INPUT #1, nw 61980 IF nw = 0 THEN CLOSE #1: GOTO 62200 61990 FOR n = 1 TO nw 62000 INPUT #1, skill$ 62010 INPUT #1, skill1 62020 INPUT #1, multiple1 62030 skill1 = skill1 + multiple1 62040 INPUT #1, skill2 62050 INPUT #1, multiple2 62060 skill2 = skill2 + multiple2 62070 nouveau = 0 62080 FOR y = 1 TO zz(8) 62090 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 62100 NEXT y 62110 IF nouveau <> 0 THEN GOTO 62180 62120 zz(8) = zz(8) + 1 62130 zz(9) = zz(9) + 1 62140 skill$(8, zz(8)) = skill$ 62150 skill$(9, zz(9)) = skill$ 62160 skillbase(8, zz(8)) = skill1 62170 skillbase(9, zz(9)) = skill2 62180 NEXT n 62190 CLOSE #1 62200 REM Age: 62210 INPUT "How old (RETURN for random)"; Age$ 62220 Age = INT(RND * 20 + 1) + 15 62230 IF Age >= 34 THEN GOSUB 62300 62240 IF Age <= 17 THEN GOSUB 62400 62250 IF Age$ <> "" THEN Age = VAL(Age$) 62260 IF Age >= 40 THEN GOSUB 62500 62270 IF Age <= 16 THEN GOSUB 62700 62280 IF Age$ <> "" THEN Age = VAL(Age$) 62290 GOTO 63000 62300 REM vieux: 62310 x = INT(RND * 3) 62320 WHILE x <> 0 62330 Age = Age + x 62340 x = INT(RND * 3) 62350 WEND 62360 RETURN 62400 REM jeune: 62410 x = INT(RND * 3) 62420 WHILE x <> 0 62430 Age = Age - x 62440 x = INT(RND * 3) 62450 WEND 62460 RETURN 62500 REM vieillissement: 62510 FOR i = 1 TO Age - 39 62520 x = INT(RND * 6) + INT(RND * 6) + 2 62530 IF x = 5 OR x = 9 THEN z = 1 62540 IF x = 4 OR x = 10 THEN z = 2 62550 IF x = 3 OR x = 11 THEN z = 3 62560 IF x = 2 OR x = 12 THEN z = 4 62580 w = INT(RND * 10) + 1 62590 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 62600 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 62610 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 62620 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 62630 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 62650 NEXT i 62660 FOR i = 1 TO 7 62670 IF carac(i) < 1 THEN carac(i) = 1 62680 NEXT i 62690 RETURN 62700 REM jouvence: 62710 carac(6) = carac(6) + 1 62720 carac(7) = carac(7) + 1 62730 carac(1) = carac(1) - 16 + Age 62740 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 62750 carac(2) = carac(2) - 16 + Age 62760 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 62770 carac(3) = carac(3) - 16 + Age 62780 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 62790 RETURN 62800 GOTO 63000 62850 REM Tiragede: 62860 de = 0 62870 IF nombrede = 0 THEN de = nombrefixe: RETURN 62880 FOR d = 1 TO nombrede 62890 de = INT(RND * typede) + 1 62900 de = de + de 62910 NEXT d 62920 de = de + nombrefixe 62930 RETURN 63000 END SUB 71000 SUB DARKTROLL 71010 RANDOMIZE TIMER 71020 INPUT "(M)ale or (F)emale (RETURN for random)"; Sexe$ 71030 PRINT "Which Culture ?"; 71035 INPUT "(W)ild/(B)arbarian/(C)ivilized"; Culture$ 71040 IF LEFT$(Culture$, 1) = "w" OR LEFT$(Culture$, 1) = "W" THEN Culture$ = "Wild" 71050 IF LEFT$(Culture$, 1) = "b" OR LEFT$(Culture$, 1) = "B" THEN Culture$ = "Barbarian" 71060 IF LEFT$(Culture$, 1) = "c" OR LEFT$(Culture$, 1) = "C" THEN Culture$ = "Civilized" 71070 INPUT "Which Profession (RETURN for random)"; Prof$ 71080 IF Sexe$ <> "" THEN GOTO 71120 71090 d = INT(RND * 100 + 1) 71100 IF d <= 50 THEN Sexe$ = "F" 71110 IF d >= 51 THEN Sexe$ = "M" 71120 IF Prof$ <> "" THEN GOTO 71160 71130 IF Culture$ = "Civilized" THEN GOSUB 73650 71140 IF Culture$ = "Barbarian" THEN GOSUB 73800 71150 IF Culture$ = "Wild" THEN GOSUB 73900 71160 REM Tiragecarac: 71170 FICH$ = "RACE\" + LEFT$(Race$, 4) + ".BAS" 71180 OPEN "I", #1, FICH$ 71190 FOR c = 1 TO 7 71200 INPUT #1, nombrede 71210 INPUT #1, typede 71220 INPUT #1, nombrefixe 71230 FOR n = 1 TO 3 71240 GOSUB 73550 71250 REM special: 71270 s = INT(RND * 10) + 1 71280 IF s <= 3 THEN de = de + 1: GOTO 71250 71290 IF s = 10 THEN de = de - 1: GOTO 71250 71300 IF carac(c) < de THEN carac(c) = de 71310 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 3 71320 NEXT n 71330 IF carac(c) < 1 THEN carac(c) = 1 71340 IF carac(3) > 18 THEN carac(3) = 18 71350 IF carac(3) < 8 THEN carac(3) = 8 71360 IF Sexe$ = "M" AND carac(4) > 26 THEN carac(4) = 26 71370 IF Sexe$ = "M" AND carac(4) < 11 THEN carac(4) = 11 71380 IF Sexe$ = "F" AND carac(4) > 28 THEN carac(4) = 28 71390 IF Sexe$ = "F" AND carac(4) < 13 THEN carac(4) = 13 71400 IF c = 5 THEN GOTO 71440 71410 x = (nombrede * typede) + nombrefixe + nombrede 71420 IF nombrefixe > 0 THEN x = x + 1 71430 IF carac(c) > x THEN carac(c) = x 71440 NEXT c 71450 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" THEN carac(3) = carac(3) + 2 71460 CLOSE #1 71470 FICH$ = "SKILL\" + LEFT$(Race$, 4) + ".BAS" 71480 OPEN "I", #1, FICH$ 71490 FOR x = 1 TO 7 71500 INPUT #1, zz(x) 71510 FOR y = 1 TO zz(x) 71520 INPUT #1, skill$(x, y) 71530 INPUT #1, skillbase(x, y) 71540 NEXT y 71550 NEXT x 71560 CLOSE #1 71570 REM base Femme2 71580 IF LEFT$(Sexe$, 1) <> "F" AND LEFT$(Sexe$, 1) <> "f" THEN GOTO 71620 71590 zz(6) = zz(6) + 1 71600 skill$(6, zz(6)) = "Child Care" 71610 skillbase(6, zz(6)) = 5 71620 REM lecture base armes 71630 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + ".BAS" 71640 OPEN "I", #1, FICH$ 71650 INPUT #1, zz(8): zz(9) = zz(8) 71660 FOR y = 1 TO zz(8) 71670 INPUT #1, skill$(8, y) 71680 INPUT #1, skillbase(8, y) 71690 INPUT #1, skillbase(9, y) 71700 skill$(9, y) = skill$(8, y) 71710 NEXT y 71720 CLOSE #1 71730 REM lecture skills prof 71740 FICH$ = "PROF\" + LEFT$(Race$, 4) + "\" + LEFT$(Prof$, 5) + ".BAS" 71750 OPEN "I", #1, FICH$ 71760 INPUT #1, ns 71770 FOR n = 1 TO ns 71780 INPUT #1, skill$ 71790 INPUT #1, skill 71800 INPUT #1, multiple$ 71900 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 71910 skill = skill + VAL(multiple$) 71920 nouveau = 0 71930 FOR x = 1 TO 7 71940 FOR y = 1 TO zz(x) 71950 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 71960 NEXT y 71970 NEXT x 71980 IF nouveau <> 0 THEN GOTO 72030 71990 v = VAL(RIGHT$(skill$, 1)) 72000 zz(v) = zz(v) + 1 72010 skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 72020 skillbase(v, zz(v)) = skill 72030 NEXT n 72040 REM lecture armes prof 72050 INPUT #1, nw 72060 IF nw = 0 THEN CLOSE #1: GOTO 73000 72070 FOR n = 1 TO nw 72080 INPUT #1, skill$ 72090 INPUT #1, skill1 72100 INPUT #1, multiple1 72110 skill1 = skill1 + multiple1 72120 INPUT #1, skill2 72130 INPUT #1, multiple2 72140 skill2 = skill2 + multiple2 72150 nouveau = 0 72160 FOR y = 1 TO zz(8) 72170 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 72180 NEXT y 72190 IF nouveau <> 0 THEN GOTO 72260 72200 zz(8) = zz(8) + 1 72210 zz(9) = zz(9) + 1 72220 skill$(8, zz(8)) = skill$ 72230 skill$(9, zz(9)) = skill$ 72240 skillbase(8, zz(8)) = skill1 72250 skillbase(9, zz(9)) = skill2 72260 NEXT n 72270 CLOSE #1 73000 REM Age: 73010 INPUT "How old (RETURN for random)"; Age$ 73020 Age = INT(RND * 20 + 1) + 15 73030 IF Age >= 34 THEN GOSUB 73100 73040 IF Age <= 17 THEN GOSUB 73170 73050 IF Age$ <> "" THEN Age = VAL(Age$) 73060 IF Age >= 40 THEN GOSUB 73240 73070 IF Age <= 16 THEN GOSUB 73440 73080 IF Age$ <> "" THEN Age = VAL(Age$) 73090 GOTO 74000 73100 REM vieux: 73110 x = INT(RND * 3) 73120 WHILE x <> 0 73130 Age = Age + x 73140 x = INT(RND * 3) 73150 WEND 73160 RETURN 73170 REM jeune: 73180 x = INT(RND * 3) 73190 WHILE x <> 0 73200 Age = Age - x 73210 x = INT(RND * 3) 73220 WEND 73230 RETURN 73240 REM vieillissement: 73250 FOR i = 1 TO (Age - 39) / 2 73260 x = INT(RND * 6) + INT(RND * 6) + 2 73270 IF x = 5 OR x = 9 THEN z = 1 73280 IF x = 4 OR x = 10 THEN z = 2 73290 IF x = 3 OR x = 11 THEN z = 3 73300 IF x = 2 OR x = 12 THEN z = 4 73310 FOR y = 1 TO z 73320 w = INT(RND * 10) + 1 73330 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 73340 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 73350 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 73360 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 73370 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 73380 NEXT y 73390 NEXT i 73400 FOR i = 1 TO 7 73410 IF carac(i) < 1 THEN carac(i) = 1 73420 NEXT i 73430 RETURN 73440 REM jouvence: 73450 carac(6) = carac(6) + 1 73460 carac(7) = carac(7) + 1 73470 carac(1) = carac(1) - 16 + Age 73480 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 73490 carac(2) = carac(2) - 16 + Age 73500 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 73510 carac(3) = carac(3) - 16 + Age 73520 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 73530 RETURN 73550 REM Tiragede: 73560 de = 0 73570 IF nombrede = 0 THEN de = nombrefixe: RETURN 73580 FOR d = 1 TO nombrede 73590 jet = INT(RND * typede) + 1 73600 de = de + jet 73610 NEXT d 73620 de = de + nombrefixe 73630 RETURN 73650 REM ProfCiv: 73660 d = INT(RND * 100 + 1) 73670 IF d <= 5 THEN Prof$ = "Crafter" 73680 IF d >= 6 AND d <= 25 THEN Prof$ = "Insectherd" 73690 IF d >= 26 AND d <= 60 THEN Prof$ = "Hunter" 73700 IF d >= 61 AND d <= 65 THEN Prof$ = "Fisher" 73710 IF d >= 66 AND d <= 68 THEN Prof$ = "Nurse" 73720 IF d = 69 OR d = 70 THEN Prof$ = "Merchant" 73730 IF d = 71 OR d = 72 THEN Prof$ = "Noble" 73740 IF d = 73 OR d = 74 THEN Prof$ = "Priest" 73750 IF d = 75 OR d = 76 THEN Prof$ = "Shaman" 73760 IF d = 77 THEN Prof$ = "Sorcerer" 73770 IF d >= 78 THEN Prof$ = "Warrior" 73780 RETURN 73800 REM ProfBar: 73810 d = INT(RND * 100 + 1) 73820 IF d <= 8 THEN Prof$ = "Crafter" 73830 IF d >= 9 AND d <= 25 THEN Prof$ = "Insectherd" 73840 IF d >= 26 AND d <= 75 THEN Prof$ = "Hunter" 73850 IF d = 76 OR d = 77 THEN Prof$ = "Noble" 73860 IF d = 78 OR d = 79 THEN Prof$ = "Priest" 73870 IF d = 80 OR d = 81 THEN Prof$ = "Shaman" 73880 IF d >= 82 THEN Prof$ = "Warrior" 73890 RETURN 73900 REM ProfWil: 73910 d = INT(RND * 6 + 1) 73920 IF d = 1 THEN Prof$ = "Fisher" 73930 IF d >= 2 THEN Prof$ = "Hunter" 73940 RETURN 74000 END SUB 81000 SUB DUCK 81010 RANDOMIZE TIMER 81020 INPUT "(M)ale or (F)emale (RETURN for random)"; Sexe$ 81030 Culture$ = "Barbarian" 81040 INPUT "Which Profession (RETURN for random)"; Prof$ 81050 IF Sexe$ <> "" THEN GOTO 81090 81060 d = INT(RND * 100 + 1) 81070 IF d <= 25 THEN Sexe$ = "F" 81080 IF d >= 26 THEN Sexe$ = "M" 81090 IF Prof$ = "" THEN GOSUB 83700 81100 REM Tiragecarac: 81110 FICH$ = "RACE\" + LEFT$(Race$, 4) + ".BAS" 81120 OPEN "I", #1, FICH$ 81130 FOR c = 1 TO 7 81140 INPUT #1, nombrede 81150 INPUT #1, typede 81160 INPUT #1, nombrefixe 81170 FOR n = 1 TO 3 81180 GOSUB 83600 81190 REM special: 81200 s = INT(RND * 10) + 1 81210 IF s <= 3 THEN de = de + 1: GOTO 81190 81220 IF s = 10 THEN de = de - 1: GOTO 81190 81230 IF carac(c) < de THEN carac(c) = de 81240 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 3 81250 NEXT n 81260 IF carac(c) < 1 THEN carac(c) = 1 81270 IF carac(3) > 8 THEN carac(3) = 8 81280 IF carac(3) < 3 THEN carac(3) = 3 81290 IF carac(4) > 18 THEN carac(4) = 18 81300 IF carac(4) < 8 THEN carac(4) = 8 81310 IF c = 5 THEN GOTO 81350 81320 x = (nombrede * typede) + nombrefixe + nombrede 81330 IF nombrefixe > 0 THEN x = x + 1 81340 IF carac(c) > x THEN carac(c) = x 81350 NEXT c 81360 CLOSE #1 81370 FICH$ = "SKILL\" + LEFT$(Race$, 4) + ".BAS" 81380 OPEN "I", #1, FICH$ 81390 FOR x = 1 TO 7 81400 INPUT #1, zz(x) 81410 FOR y = 1 TO zz(x) 81420 INPUT #1, skill$(x, y) 81430 INPUT #1, skillbase(x, y) 81460 NEXT y 81470 NEXT x 81480 CLOSE #1 81490 REM base Femme2 81500 IF LEFT$(Sexe$, 1) <> "F" AND LEFT$(Sexe$, 1) <> "f" THEN GOTO 81540 81510 zz(6) = zz(6) + 1 81520 skill$(6, zz(6)) = "Child Care" 81530 skillbase(6, zz(6)) = 5 81540 REM lecture base armes 81550 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + ".BAS" 81560 OPEN "I", #1, FICH$ 81570 INPUT #1, zz(8): zz(9) = zz(8) 81580 FOR y = 1 TO zz(8) 81590 INPUT #1, skill$(8, y) 81600 INPUT #1, skillbase(8, y) 81610 INPUT #1, skillbase(9, y) 81620 skill$(9, y) = skill$(8, y) 81630 NEXT y 81640 CLOSE #1 81650 REM lecture skills prof 81660 FICH$ = "PROF\" + LEFT$(Race$, 4) + "\" + LEFT$(Prof$, 5) + ".BAS" 81670 OPEN "I", #1, FICH$ 81680 INPUT #1, ns 81690 FOR n = 1 TO ns 81700 INPUT #1, skill$ 81710 INPUT #1, skill 81720 INPUT #1, multiple$ 81730 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 81740 skill = skill + VAL(multiple$) 81750 nouveau = 0 81760 FOR x = 1 TO 7 81770 FOR y = 1 TO zz(x) 81780 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 81790 NEXT y 81800 NEXT x 81810 IF nouveau <> 0 THEN GOTO 81860 81820 v = VAL(RIGHT$(skill$, 1)) 81830 zz(v) = zz(v) + 1 81840 skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 81850 skillbase(v, zz(v)) = skill 81860 NEXT n 81870 REM lecture armes prof 81880 INPUT #1, nw 81890 IF nw = 0 THEN CLOSE #1: GOTO 83000 81900 FOR n = 1 TO nw 81910 INPUT #1, skill$ 81920 INPUT #1, skill1 81930 INPUT #1, multiple1 81940 skill1 = skill1 + multiple1 81950 INPUT #1, skill2 81960 INPUT #1, multiple2 81970 skill2 = skill2 + multiple2 81980 nouveau = 0 81990 FOR y = 1 TO zz(8) 82000 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 82010 NEXT y 82020 IF nouveau <> 0 THEN GOTO 82090 82030 zz(8) = zz(8) + 1 82040 zz(9) = zz(9) + 1 82050 skill$(8, zz(8)) = skill$ 82060 skill$(9, zz(9)) = skill$ 82070 skillbase(8, zz(8)) = skill1 82080 skillbase(9, zz(9)) = skill2 82090 NEXT n 82100 CLOSE #1 83000 REM Age: 83020 INPUT "How old (RETURN for random)"; Age$ 83030 Age = INT(RND * 20 + 1) + 15 83040 IF Age >= 34 THEN GOSUB 83110 83050 IF Age <= 17 THEN GOSUB 83180 83060 IF Age$ <> "" THEN Age = VAL(Age$) 83070 IF Age >= 40 THEN GOSUB 83250 83080 IF Age <= 16 THEN GOSUB 83460 83090 IF Age$ <> "" THEN Age = VAL(Age$) 83100 GOTO 83900 83110 REM vieux: 83120 x = INT(RND * 3) 83130 WHILE x <> 0 83140 Age = Age + x 83150 x = INT(RND * 3) 83160 WEND 83170 RETURN 83180 REM jeune: 83190 x = INT(RND * 3) 83200 WHILE x <> 0 83210 Age = Age - x 83220 x = INT(RND * 3) 83230 WEND 83240 RETURN 83250 REM vieillissement: 83260 FOR i = 1 TO Age - 39 83270 x = INT(RND * 6) + INT(RND * 6) + 2 83280 IF x = 5 OR x = 9 THEN z = 1 83290 IF x = 4 OR x = 10 THEN z = 2 83300 IF x = 3 OR x = 11 THEN z = 3 83310 IF x = 2 OR x = 12 THEN z = 4 83320 FOR y = 1 TO z 83330 w = INT(RND * 10) + 1 83340 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 83350 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 83360 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 83370 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 83380 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 83390 NEXT y 83400 NEXT i 83410 FOR i = 1 TO 7 83420 IF carac(i) < 1 THEN carac(i) = 1 83430 NEXT i 83450 RETURN 83460 REM jouvence: 83470 carac(6) = carac(6) + 1 83480 carac(7) = carac(7) + 1 83490 carac(1) = carac(1) - 16 + Age 83500 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 83510 carac(2) = carac(2) - 16 + Age 83520 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 83530 carac(3) = carac(3) - 16 + Age 83540 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 83550 RETURN 83600 REM Tiragede: 83610 de = 0 83620 IF nombrede = 0 THEN de = nombrefixe: RETURN 83630 FOR d = 1 TO nombrede 83640 jet = INT(RND * typede) + 1 83650 de = de + jet 83660 NEXT d 83670 de = de + nombrefixe 83680 RETURN 83700 REM Prof: 83710 d = INT(RND * 100 + 1) 83720 IF d <= 5 THEN Prof$ = "Crafter" 83730 IF d = 6 THEN Prof$ = "Entertainer" 83740 IF d >= 7 AND d <= 65 THEN Prof$ = "Fisher" 83750 IF d = 66 THEN Prof$ = "Healer" 83760 IF d >= 67 AND d <= 76 THEN Prof$ = "Herder" 83770 IF d >= 77 AND d <= 81 THEN Prof$ = "Merchant" 83780 IF d = 82 THEN Prof$ = "Priest" 83790 IF d = 83 THEN Prof$ = "Shaman" 83800 IF d >= 84 AND d <= 90 THEN Prof$ = "Soldier" 83810 IF d >= 91 AND d <= 99 THEN Prof$ = "Thief" 83820 IF d = 100 THEN Prof$ = "Sorcerer" 83830 RETURN 83900 END SUB 91000 SUB DWARF 91010 RANDOMIZE TIMER 91020 Culture$ = "Civilized" 91030 INPUT "(M)ale or (F)emale (RETURN for random)"; Sexe$ 91040 INPUT "Which Profession (RETURN for random)"; Prof$ 91050 IF Sexe$ <> "" THEN GOTO 91100 91060 d = INT(RND * 100 + 1) 91070 IF d <= 5 THEN Sexe$ = "F" 91080 IF d >= 6 THEN Sexe$ = "M" 91100 IF Prof$ <> "" THEN GOTO 91200 91110 d = INT(RND * 100 + 1) 91120 IF d <= 70 THEN Prof$ = "Crafter" 91130 IF d = 71 OR d = 72 THEN Prof$ = "Merchant" 91140 IF d = 73 THEN Prof$ = "Noble" 91150 IF d >= 74 OR d <= 92 THEN Prof$ = "Soldier" 91160 IF d >= 93 AND d <= 96 THEN Prof$ = "Sorcerer" 91170 IF d >= 97 THEN Prof$ = "Thief" 91200 REM Tiragecarac: 91210 FICH$ = "RACE\" + LEFT$(Race$, 4) + ".BAS" 91220 OPEN "I", #1, FICH$ 91230 FOR c = 1 TO 7 91240 INPUT #1, nombrede 91250 INPUT #1, typede 91260 INPUT #1, nombrefixe 91270 FOR n = 1 TO 2 91280 GOSUB 92200 91290 REM special: 91300 s = INT(RND * 10) + 1 91310 IF s <= 3 THEN de = de + 1: GOTO 91290 91320 IF s = 10 THEN de = de - 1: GOTO 91290 91330 IF carac(c) < de THEN carac(c) = de 91340 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 2 91350 NEXT n 91360 IF carac(c) < 1 THEN carac(c) = 1 91370 IF carac(3) > 12 THEN carac(3) = 12 91380 IF carac(3) < 2 THEN carac(3) = 2 91390 IF carac(4) > 18 THEN carac(4) = 18 91400 IF carac(3) < 8 THEN carac(3) = 8 91410 IF c = 5 THEN GOTO 91450 91420 x = (nombrede * typede) + nombrefixe + nombrede 91430 IF nombrefixe > 0 THEN x = x + 1 91440 IF carac(c) > x THEN carac(c) = x 91450 NEXT c 91460 CLOSE #1 91470 FICH$ = "SKILL\" + LEFT$(Race$, 4) + ".BAS" 91480 OPEN "I", #1, FICH$ 91490 FOR x = 1 TO 7 91500 INPUT #1, zz(x) 91510 FOR y = 1 TO zz(x) 91520 INPUT #1, skill$(x, y) 91530 INPUT #1, skillbase(x, y) 91540 NEXT y 91550 NEXT x 91560 CLOSE #1 91570 REM lecture base armes 91580 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + ".BAS" 91590 OPEN "I", #1, FICH$ 91600 INPUT #1, zz(8): zz(9) = zz(8) 91610 FOR y = 1 TO zz(8) 91620 INPUT #1, skill$(8, y) 91630 INPUT #1, skillbase(8, y) 91640 INPUT #1, skillbase(9, y) 91650 skill$(9, y) = skill$(8, y) 91660 NEXT y 91670 CLOSE #1 91680 REM lecture skills prof 91690 FICH$ = "PROF\" + LEFT$(Race$, 4) + "\" + LEFT$(Prof$, 5) + ".BAS" 91700 OPEN "I", #1, FICH$ 91710 INPUT #1, ns 91720 FOR n = 1 TO ns 91730 INPUT #1, skill$ 91740 INPUT #1, skill 91750 INPUT #1, multiple$ 91760 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 91770 skill = skill + VAL(multiple$) 91780 nouveau = 0 91790 FOR x = 1 TO 7 91800 FOR y = 1 TO zz(x) 91810 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 91820 NEXT y 91830 NEXT x 91840 IF nouveau <> 0 THEN GOTO 91890 91850 v = VAL(RIGHT$(skill$, 1)) 91860 zz(v) = zz(v) + 1 91870 skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 91880 skillbase(v, zz(v)) = skill 91890 NEXT n 91900 REM lecture armes prof 91910 INPUT #1, nw 91920 IF nw = 0 THEN CLOSE #1: GOTO 92800 91930 FOR n = 1 TO nw 91940 INPUT #1, skill$ 91950 INPUT #1, skill1 91960 INPUT #1, multiple1 91970 skill1 = skill1 + multiple1 91980 INPUT #1, skill2 91990 INPUT #1, multiple2 92000 skill2 = skill2 + multiple2 92010 nouveau = 0 92020 FOR y = 1 TO zz(8) 92030 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 92040 NEXT y 92050 IF nouveau <> 0 THEN GOTO 92120 92060 zz(8) = zz(8) + 1 92070 zz(9) = zz(9) + 1 92080 skill$(8, zz(8)) = skill$ 92090 skill$(9, zz(9)) = skill$ 92100 skillbase(8, zz(8)) = skill1 92110 skillbase(9, zz(9)) = skill2 92120 NEXT n 92130 CLOSE #1 92200 REM Age: 92210 INPUT "How old (RETURN for random)"; Age$ 92220 Age = INT(RND * 20 + 1) + 15 92230 IF Age >= 34 THEN GOSUB 92300 92240 IF Age <= 17 THEN GOSUB 92370 92250 IF Age$ <> "" THEN Age = VAL(Age$) 92260 IF Age >= 40 THEN GOSUB 92440 92270 IF Age <= 16 THEN GOSUB 92640 92280 IF Age$ <> "" THEN Age = VAL(Age$) 92290 GOTO 92900 92300 REM vieux: 92310 x = INT(RND * 3) 92320 WHILE x <> 0 92330 Age = Age + x 92340 x = INT(RND * 3) 92350 WEND 92360 RETURN 92370 REM jeune: 92380 x = INT(RND * 3) 92390 WHILE x <> 0 92400 Age = Age - x 92410 x = INT(RND * 3) 92420 WEND 92430 RETURN 92440 REM vieillissement: 92450 FOR i = 1 TO Age - 39 92460 x = INT(RND * 6) + INT(RND * 6) + 2 92470 IF x = 5 OR x = 9 THEN z = 1 92480 IF x = 4 OR x = 10 THEN z = 2 92490 IF x = 3 OR x = 11 THEN z = 3 92500 IF x = 2 OR x = 12 THEN z = 4 92510 FOR y = 1 TO z 92520 w = INT(RND * 10) + 1 92530 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 92540 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 92550 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 92560 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 92570 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 92580 NEXT y 92590 NEXT i 92600 FOR i = 1 TO 7 92610 IF carac(i) < 1 THEN carac(i) = 1 92620 NEXT i 92630 RETURN 92640 REM jouvence: 92650 carac(6) = carac(6) + 1 92660 carac(7) = carac(7) + 1 92670 carac(1) = carac(1) - 16 + Age 92680 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 92690 carac(2) = carac(2) - 16 + Age 92700 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 92710 carac(3) = carac(3) - 16 + Age 92720 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 92730 RETURN 92800 REM Tiragede: 92810 de = 0 92820 IF nombrede = 0 THEN de = nombrefixe: RETURN 92830 FOR d = 1 TO nombrede 92840 de = INT(RND * typede) + 1 92850 de = de + de 92860 NEXT d 92870 de = de + nombrefixe 92880 RETURN 92900 END SUB 111000 SUB GREATTROLL 111010 RANDOMIZE TIMER 111020 Sexe$ = "M" 111030 PRINT "Which Culture" 111040 INPUT "((B)arbarian/(C)ivilized)"; Culture$ 111100 REM Tiragecarac: 111110 FICH$ = "RACE\" + LEFT$(Race$, 4) + ".BAS" 111120 OPEN "I", #1, FICH$ 111130 FOR c = 1 TO 7 111140 INPUT #1, nombrede 111150 INPUT #1, typede 111160 INPUT #1, nombrefixe 111170 FOR n = 1 TO 3 111180 GOSUB 113600 111190 REM special: 111200 s = INT(RND * 10) + 1 111210 IF s <= 3 THEN de = de + 1: GOTO 111190 111220 IF s = 10 THEN de = de - 1: GOTO 111190 111230 IF carac(c) < de THEN carac(c) = de 111240 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 3 111250 NEXT n 111260 IF carac(c) < 1 THEN carac(c) = 1 111270 IF carac(3) > 36 THEN carac(3) = 36 111280 IF carac(3) < 16 THEN carac(3) = 16 111290 IF carac(4) > 14 THEN carac(4) = 14 111300 IF carac(4) < 4 THEN carac(4) = 4 111310 IF c = 5 THEN GOTO 111350 111320 x = (nombrede * typede) + nombrefixe + nombrede 111330 IF nombrefixe > 0 THEN x = x + 1 111340 IF carac(c) > x THEN carac(c) = x 111350 NEXT c 111360 CLOSE #1 111365 INPUT "Which Profession (RETURN for random)"; Prof$ 111370 IF Prof$ = "" THEN GOSUB 113700 111375 FICH$ = "SKILL\DARK.BAS" 111380 OPEN "I", #1, FICH$ 111390 FOR x = 1 TO 7 111400 INPUT #1, zz(x) 111410 FOR y = 1 TO zz(x) 111420 INPUT #1, skill$(x, y) 111430 INPUT #1, skillbase(x, y) 111460 NEXT y 111470 NEXT x 111480 CLOSE #1 111540 REM lecture base armes 111550 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + ".BAS" 111560 OPEN "I", #1, FICH$ 111570 INPUT #1, zz(8): zz(9) = zz(8) 111580 FOR y = 1 TO zz(8) 111590 INPUT #1, skill$(8, y) 111600 INPUT #1, skillbase(8, y) 111610 INPUT #1, skillbase(9, y) 111620 skill$(9, y) = skill$(8, y) 111630 NEXT y 111640 CLOSE #1 111650 REM lecture skills prof 111660 FICH$ = "PROF\" + LEFT$(Race$, 4) + "\" + LEFT$(Prof$, 5) + ".BAS" 111670 OPEN "I", #1, FICH$ 111680 INPUT #1, ns 111690 FOR n = 1 TO ns 111700 INPUT #1, skill$ 111710 INPUT #1, skill 111720 INPUT #1, multiple$ 111730 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 111740 skill = skill + VAL(multiple$) 111750 nouveau = 0 111760 FOR x = 1 TO 7 111770 FOR y = 1 TO zz(x) 111780 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 111790 NEXT y 111800 NEXT x 111810 IF nouveau <> 0 THEN GOTO 111860 111820 v = VAL(RIGHT$(skill$, 1)) 111830 zz(v) = zz(v) + 1 111840 skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 111850 skillbase(v, zz(v)) = skill 111860 NEXT n 111870 REM lecture armes prof 111880 INPUT #1, nw 111890 IF nw = 0 THEN CLOSE #1: GOTO 113010 111900 FOR n = 1 TO nw 111910 INPUT #1, skill$ 111920 INPUT #1, skill1 111930 INPUT #1, multiple1 111940 skill1 = skill1 + multiple1 111950 INPUT #1, skill2 111960 INPUT #1, multiple2 111970 skill2 = skill2 + multiple2 111980 nouveau = 0 111990 FOR y = 1 TO zz(8) 112000 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 112010 NEXT y 112020 IF nouveau <> 0 THEN GOTO 112090 112030 zz(8) = zz(8) + 1 112040 zz(9) = zz(9) + 1 112050 skill$(8, zz(8)) = skill$ 112060 skill$(9, zz(9)) = skill$ 112070 skillbase(8, zz(8)) = skill1 112080 skillbase(9, zz(9)) = skill2 112090 NEXT n 113000 CLOSE #1 113010 REM Age: 113020 INPUT "How old (RETURN for random)"; Age$ 113030 Age = INT(RND * 20 + 1) + 15 113040 IF Age >= 34 THEN GOSUB 113110 113050 IF Age <= 17 THEN GOSUB 113180 113060 IF Age$ <> "" THEN Age = VAL(Age$) 113070 IF Age >= 40 THEN GOSUB 113250 113080 IF Age <= 16 THEN GOSUB 113460 113090 IF Age$ <> "" THEN Age = VAL(Age$) 113100 GOTO 113800 113110 REM vieux: 113120 x = INT(RND * 3) 113130 WHILE x <> 0 113140 Age = Age + x 113150 x = INT(RND * 3) 113160 WEND 113170 RETURN 113180 REM jeune: 113190 x = INT(RND * 3) 113200 WHILE x <> 0 113210 Age = Age - x 113220 x = INT(RND * 3) 113230 WEND 113240 RETURN 113250 REM vieillissement: 113260 FOR i = 1 TO Age - 39 113270 x = INT(RND * 6) + INT(RND * 6) + 2 113280 IF x = 5 OR x = 9 THEN z = 1 113290 IF x = 4 OR x = 10 THEN z = 2 113300 IF x = 3 OR x = 11 THEN z = 3 113310 IF x = 2 OR x = 12 THEN z = 4 113320 FOR y = 1 TO z 113330 w = INT(RND * 10) + 1 113340 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 113350 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 113360 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 113370 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 113380 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 113390 NEXT y 113400 NEXT i 113410 FOR i = 1 TO 7 113420 IF carac(i) < 1 THEN carac(i) = 1 113430 NEXT i 113450 RETURN 113460 REM jouvence: 113470 carac(6) = carac(6) + 1 113480 carac(7) = carac(7) + 1 113490 carac(1) = carac(1) - 16 + Age 113500 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 113510 carac(2) = carac(2) - 16 + Age 113520 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 113530 carac(3) = carac(3) - 16 + Age 113540 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 113550 RETURN 113600 REM Tiragede: 113610 de = 0 113620 IF nombrede = 0 THEN de = nombrefixe: RETURN 113630 FOR d = 1 TO nombrede 113640 jet = INT(RND * typede) + 1 113650 de = de + jet 113660 NEXT d 113670 de = de + nombrefixe 113680 RETURN 113700 REM Gtprof: 113710 d = INT(RND * 100 + 1) 113720 IF carac(4) >= 13 THEN d = d - 15 113730 IF carac(4) <= 6 THEN d = d - 5 113740 IF carac(5) <= 8 THEN d = d - 5 113750 IF d <= 5 THEN Prof$ = "Guard" 113760 IF d >= 6 AND d <= 85 THEN Prof$ = "Warrior" 113770 IF d >= 86 THEN Prof$ = "Laborer" 113780 RETURN 113800 END SUB 31000 SUB HUMAN 31010 RANDOMIZE TIMER 31020 INPUT "(M)ale or (F)emale (RETURN for random)"; Sexe$ 31030 PRINT "Which Culture ?"; 31035 INPUT "(P)rimitive/(N)omad/(B)arbarian/(C)ivilized"; Culture$ 31040 IF LEFT$(Culture$, 1) = "p" OR LEFT$(Culture$, 1) = "P" THEN Culture$ = "Primitive" 31050 IF LEFT$(Culture$, 1) = "n" OR LEFT$(Culture$, 1) = "N" THEN Culture$ = "Nomad" 31060 IF LEFT$(Culture$, 1) = "b" OR LEFT$(Culture$, 1) = "B" THEN Culture$ = "Barbarian" 31070 IF LEFT$(Culture$, 1) = "c" OR LEFT$(Culture$, 1) = "C" THEN Culture$ = "Civilized" 31080 INPUT "Which Profession (RETURN for random)"; Prof$ 31082 IF Prof$ = "priest" THEN Prof$ = "Priest" 31084 IF Prof$ = "shaman" THEN Prof$ = "Shaman" 31086 IF Prof$ = "sorcerer" THEN Prof$ = "Sorcerer" 31090 IF Sexe$ = "" THEN d = INT(RND * 100 + 1) 31100 IF Sexe$ = "" AND d <= 25 THEN Sexe$ = "F" 31110 IF Sexe$ = "" AND d >= 26 THEN Sexe$ = "M" 31120 IF Prof$ = "" AND Culture$ = "Civilized" THEN GOSUB 32850 31130 IF Prof$ = "" AND Culture$ = "Barbarian" THEN GOSUB 33100 31140 IF Prof$ = "" AND Culture$ = "Nomad" THEN GOSUB 33300 31150 IF Prof$ = "" AND Culture$ = "Primitive" THEN GOSUB 33400 31160 REM Tiragecarac: 31170 IF LEFT$(Sexe$, 1) = "M" OR LEFT$(Sexe$, 1) = "m" THEN FICH$ = "RACE\" + LEFT$(Race$, 4) + "M.BAS" 31180 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" THEN FICH$ = "RACE\" + LEFT$(Race$, 4) + "F.BAS" 31185 OPEN "I", #1, FICH$ 31190 FOR c = 1 TO 7 31200 INPUT #1, nombrede 31210 INPUT #1, typede 31220 INPUT #1, nombrefixe 31230 FOR n = 1 TO 3 31240 GOSUB 32750 31250 REM special: 31260 s = INT(RND * 10) + 1 31270 IF s <= 3 THEN de = de + 1: GOTO 31250 31280 IF s = 10 THEN de = de - 1: GOTO 31250 31290 IF carac(c) < de THEN carac(c) = de 31300 IF c = 3 OR (c = 4 AND Prof$ <> "Sorcerer") THEN n = 3 31310 NEXT n 31320 IF carac(c) < 1 THEN carac(c) = 1 31330 IF carac(3) > 18 THEN carac(3) = 18 31340 IF carac(3) < 8 THEN carac(3) = 8 31350 IF carac(4) > 18 THEN carac(4) = 18 31360 IF carac(4) < 8 THEN carac(4) = 8 31370 IF c <> 5 THEN x = (nombrede * typede) + nombrefixe + nombrede 31380 IF c <> 5 AND nombrefixe > 0 THEN x = x + 1 31390 IF c <> 5 AND carac(c) > x THEN carac(c) = x 31400 NEXT c 31410 CLOSE #1 31415 FICH$ = "SKILL\" + LEFT$(Race$, 4) + ".BAS" 31420 OPEN "I", #1, FICH$ 31430 FOR x = 1 TO 7 31440 INPUT #1, zz(x) 31450 FOR y = 1 TO zz(x) 31460 INPUT #1, skill$(x, y) 31470 INPUT #1, skillbase(x, y) 31480 REM base Femme1 31490 IF (LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f") AND skill$(x, y) = "Courtesan" THEN skillbase(x, y) = 10 31500 REM base nomad 31510 IF skill$(x, y) = "Care(Animal)" AND Culture$ = "Nomad" THEN skillbase(x, y) = 5 31520 NEXT y 31530 NEXT x 31540 CLOSE #1 31550 REM base Femme2 31560 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" THEN zz(6) = zz(6) + 1 31570 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" THEN skill$(6, zz(6)) = "Child Care" 31580 IF LEFT$(Sexe$, 1) = "F" OR LEFT$(Sexe$, 1) = "f" THEN skillbase(6, zz(6)) = 5 31590 REM base civilise 31600 IF Culture$ = "Civilized" THEN zz(6) = zz(6) + 1 31610 IF Culture$ = "Civilized" THEN skill$(x, zz(6)) = "Streetwise" 31615 IF Culture$ = "Civilized" THEN skillbase(x, zz(6)) = 5 31620 IF Culture$ = "Civilized" THEN zz(6) = zz(6) + 1 31630 IF Culture$ = "Civilized" THEN skill$(x, zz(6)) = "Lawspeaking" 31640 IF Culture$ = "Civilized" THEN skillbase(x, zz(6)) = 5 31650 REM lecture base armes 31655 FICH$ = "WEAPON\" + LEFT$(Race$, 4) + LEFT$(Culture$, 3) + ".BAS" 31660 OPEN "I", #1, FICH$ 31670 INPUT #1, zz(8): zz(9) = zz(8) 31680 FOR y = 1 TO zz(8) 31690 INPUT #1, skill$(8, y) 31700 INPUT #1, skillbase(8, y) 31710 INPUT #1, skillbase(9, y) 31720 skill$(9, y) = skill$(8, y) 31730 NEXT y 31740 CLOSE #1 31750 REM lecture skills prof 31755 FICH$ = "PROF\" + LEFT$(Race$, 4) + LEFT$(Culture$, 3) + "\" + LEFT$(Prof$, 5) + ".BAS" 31760 OPEN "I", #1, FICH$ 31770 INPUT #1, ns 31780 FOR n = 1 TO ns 31790 INPUT #1, skill$ 31800 INPUT #1, skill 31810 INPUT #1, multiple$ 31820 IF LEFT$(multiple$, 1) <> "." THEN n = n - 1: multiple$ = "0" 31830 skill = skill + VAL(multiple$) 31840 nouveau = 0 31850 FOR x = 1 TO 7 31860 FOR y = 1 TO zz(x) 31870 IF skill$(x, y) = skill$ OR skill$(x, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(x, y) = skill: nouveau = 1 31880 NEXT y 31890 NEXT x 31900 IF nouveau = 0 THEN v = VAL(RIGHT$(skill$, 1)) 31910 IF nouveau = 0 THEN zz(v) = zz(v) + 1 31920 IF nouveau = 0 THEN skill$(v, zz(v)) = LEFT$(skill$, LEN(skill$) - 1) 31930 IF nouveau = 0 THEN skillbase(v, zz(v)) = skill 31940 NEXT n 31950 REM lecture armes prof 31960 INPUT #1, nw 31970 IF nw = 0 THEN CLOSE #1: GOTO 32200 31980 FOR n = 1 TO nw 31990 INPUT #1, skill$ 32000 INPUT #1, skill1 32010 INPUT #1, multiple1 32020 skill1 = skill1 + multiple1 32030 INPUT #1, skill2 32040 INPUT #1, multiple2 32050 skill2 = skill2 + multiple2 32060 nouveau = 0 32070 FOR y = 1 TO zz(8) 32080 IF skill$(8, y) = skill$ OR skill$(8, y) = LEFT$(skill$, LEN(skill$) - 1) THEN skillbase(8, y) = skill1: skillbase(9, y) = skill2: nouveau = 1 32090 NEXT y 32100 IF nouveau = 0 THEN zz(8) = zz(8) + 1 32110 IF nouveau = 0 THEN zz(9) = zz(9) + 1 32120 IF nouveau = 0 THEN skill$(8, zz(8)) = skill$ 32130 IF nouveau = 0 THEN skill$(9, zz(9)) = skill$ 32140 IF nouveau = 0 THEN skillbase(8, zz(8)) = skill1 32150 IF nouveau = 0 THEN skillbase(9, zz(9)) = skill2 32160 NEXT n 32170 CLOSE #1 32200 REM Age: 32210 INPUT "How old (RETURN for random)"; Age$ 32220 Age = INT(RND * 20 + 1) + 15 32230 IF Age >= 34 THEN GOSUB 32300 32240 IF Age <= 17 THEN GOSUB 32370 32250 IF Age$ <> "" THEN Age = VAL(Age$) 32260 IF Age >= 40 THEN GOSUB 32440 32270 IF Age <= 16 THEN GOSUB 32640 32280 IF Age$ <> "" THEN Age = VAL(Age$) 32290 GOTO 33500 32300 REM vieux: 32310 x = INT(RND * 3) 32320 WHILE x <> 0 32330 Age = Age + x 32340 x = INT(RND * 3) 32350 WEND 32360 RETURN 32370 REM jeune: 32380 x = INT(RND * 3) 32390 WHILE x <> 0 32400 Age = Age - x 32410 x = INT(RND * 3) 32420 WEND 32430 RETURN 32440 REM vieillissement: 32450 FOR i = 1 TO Age - 39 32460 x = INT(RND * 6) + INT(RND * 6) + 2 32470 IF x = 5 OR x = 9 THEN z = 1 32480 IF x = 4 OR x = 10 THEN z = 2 32490 IF x = 3 OR x = 11 THEN z = 3 32500 IF x = 2 OR x = 12 THEN z = 4 32510 FOR y = 1 TO z 32520 w = INT(RND * 10) + 1 32530 IF x = 6 OR x = 7 OR x = 8 THEN w = 10 32540 IF w = 1 OR w = 2 THEN carac(1) = carac(1) - 1 32550 IF w = 3 OR w = 4 THEN carac(2) = carac(2) - 1 32560 IF w = 5 OR w = 6 THEN carac(6) = carac(6) - 1 32570 IF w = 7 OR w = 8 THEN carac(7) = carac(7) - 1 32580 NEXT y 32590 NEXT i 32600 FOR i = 1 TO 7 32610 IF carac(i) < 1 THEN carac(i) = 1 32620 NEXT i 32630 RETURN 32640 REM jouvence: 32650 carac(6) = carac(6) + 1 32660 carac(7) = carac(7) + 1 32670 carac(1) = carac(1) - 16 + Age 32680 IF carac(1) < INT((Age / 2) + .5) THEN carac(1) = INT(INT(Age / 2) + .5) 32690 carac(2) = carac(2) - 16 + Age 32700 IF carac(2) < INT((Age / 2) + .5) THEN carac(2) = INT(INT(Age / 2) + .5) 32710 carac(3) = carac(3) - 16 + Age 32720 IF carac(3) < INT((Age / 2) + .5) THEN carac(3) = INT(INT(Age / 2) + .5) 32730 RETURN 32750 REM Tiragede: 32760 de = 0 32770 IF nombrede = 0 THEN de = nombrefixe: RETURN 32780 FOR d = 1 TO nombrede 32790 jet = INT(RND * typede) + 1 32800 de = de + jet 32810 NEXT d 32820 de = de + nombrefixe 32830 RETURN 32850 REM ProfCiv: 32860 d = INT(RND * 100 + 1) 32870 IF d = 1 THEN Prof$ = "Sorcerer" 32880 IF d >= 2 AND d <= 6 THEN Prof$ = "Crafter" 32890 IF d = 7 THEN Prof$ = "Entertainer" 32900 IF d = 8 THEN Prof$ = "Charioteer" 32910 IF d >= 9 AND d <= 66 THEN Prof$ = "Farmer" 32920 IF d = 67 THEN Prof$ = "Healer" 32930 IF d >= 68 AND d <= 77 THEN Prof$ = "Herder" 32940 IF d = 80 THEN Prof$ = "Noble" 32950 IF d >= 81 AND d <= 82 THEN Prof$ = "Priest" 32960 IF d >= 83 AND d <= 92 THEN Prof$ = "Sailor" 32970 IF d = 93 THEN Prof$ = "Scribe" 32980 IF d >= 94 AND d <= 98 THEN Prof$ = "Soldier" 32990 IF d >= 99 THEN Prof$ = "Thief" 33000 RETURN 33100 REM ProfBar: 33110 d = INT(RND * 100 + 1) 33120 IF d <= 2 THEN Prof$ = "Crafter" 33130 IF d = 3 THEN Prof$ = "Entertainer" 33140 IF d = 4 THEN Prof$ = "Charioteer" 33150 IF d >= 5 AND d <= 55 THEN Prof$ = "Farmer" 33160 IF d >= 56 AND d <= 70 THEN Prof$ = "Fisher" 33170 IF d >= 71 AND d <= 80 THEN Prof$ = "Herder" 33180 IF d >= 81 AND d <= 90 THEN Prof$ = "Hunter" 33190 IF d = 91 OR d = 92 THEN Prof$ = "Noble" 33200 IF d = 93 OR d = 94 THEN Prof$ = "Priest" 33210 IF d >= 95 THEN Prof$ = "Warrior" 33220 RETURN 33300 REM ProfNom: 33310 d = INT(RND * 100 + 1) 33320 IF d <= 7 THEN Prof$ = "Crafter" 33330 IF d >= 8 AND d <= 83 THEN Prof$ = "Herder" 33340 IF d >= 84 AND d <= 93 THEN Prof$ = "Hunter" 33350 IF d = 94 THEN Prof$ = "Noble" 33360 IF d = 95 OR d = 96 THEN Prof$ = "Priest" 33370 IF d = 97 OR d = 98 THEN Prof$ = "Shaman" 33380 IF d >= 99 THEN Prof$ = "Warrior" 33390 RETURN 33400 REM ProfPri: 33410 d = INT(RND * 100 + 1) 33420 IF d <= 29 THEN Prof$ = "Fisher" 33430 IF d >= 30 AND d <= 96 THEN Prof$ = "Hunter" 33440 IF d = 97 OR d = 98 THEN Prof$ = "Priest" 33450 IF d >= 99 THEN Prof$ = "Shaman" 33460 RETURN 33500 END SUB