DECLARE SUB Magia () DECLARE SUB Habil () DECLARE SUB Atributos () COMMON SHARED px, py, portx, porty, din, mon, senha$ COMMON SHARED nome$(), raca$(), classe$(), forc(), vig(), agi(), inte(), per(), car(), rea(), dano(), vit(), mana(), fer(), exa(), xp() COMMON SHARED var(), sta(), equ(), mag(), hab(), equip() COMMON SHARED sala$(), movn(), movs(), movl(), movo() COMMON SHARED moner(), corpo(), porta() save$ = "C:\Blarg!\Diacho\Saves\" + senha$ + ".SAV" OPEN save$ FOR OUTPUT AS #1 WRITE #1, nome$(1), raca$(1), classe$(1) x = 0: DO: x = x + 1: WRITE #1, equ(x): LOOP UNTIL x = 80 x = 0: DO: x = x + 1: WRITE #1, equip(x): LOOP UNTIL x = 7 x = 0: DO: x = x + 1: WRITE #1, corpo(x), porta(x), var(x), sta(x), mag(x), hab(x): LOOP UNTIL x = 40 WRITE #1, forc(1), vig(1), agi(1), inte(1), per(1), car(1), rea(1), dano(1), vit(1), mana(1), fer(1), exa(1), xp(1) WRITE #1, px, py, portx, porty, din, senha$ CLOSE #1 IF xp(1) > 0 THEN xptela: CLS LINE (0, 0)-(640, 480), 8, BF LINE (10, 10)-(630, 470), 9, B PRINT "" PRINT "Pontos de experiˆncia: "; xp(1) PRINT "" PRINT "Melhorar atributos (1)" PRINT "Melhorar feiti‡os (2)" PRINT "Melhorar habilidades (3)" PRINT "" INPUT "Escolha: ", resp IF resp = 1 THEN Atributos IF resp = 2 THEN Magia IF resp = 3 THEN Habil PRINT "" INPUT "Continuar? ", resp$ IF resp$ = "s" THEN GOTO xptela END IF sta(1) = 0: sta(2) = 0: sta(3) = 0: sta(4) = 0: sta(5) = 0: sta(6) = 0: sta(8) = 0: sta(10) = 0: sta(11) = 0: sta(13) = 0: sta(14) = 0: sta(16) = 0: sta(19) = 0: sta(26) = 0 exa(1) = 0: fer(1) = 0 CHAIN "C:\Blarg!\Diacho\Salas.bas" SUB Atributos atrib: CLS LINE (0, 0)-(640, 480), 8, BF LINE (10, 10)-(630, 470), 9, B PRINT "" PRINT "Atributos:" PRINT "" PRINT "(1) For‡a: "; forc(1) PRINT "(2) Vigor: "; vig(1) PRINT "(3) Agilidade: "; agi(1) PRINT "(4) Inteligˆncia: "; inte(1) PRINT "(5) Perseveran‡a: "; per(1) PRINT "(6) Carisma: "; car(1) PRINT "" INPUT "Atributo a ser melhorado: ", escl IF escl < 1 OR escl > 6 THEN GOTO atrib PRINT "" PRINT "Experiˆncia:"; xp(1) SELECT CASE escl CASE 1 cxp = (forc(1) + 1) PRINT "Custo:"; cxp IF cxp > xp(1) THEN PRINT "Pontos insuficientes": GOTO fim INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cxp <= xp(1) THEN forc(1) = forc(1) + 1: xp(1) = xp(1) - cxp CASE 2 cxp = (vig(1) + 1) PRINT "Custo:"; cxp IF cxp > xp(1) THEN PRINT "Pontos insuficientes": GOTO fim INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cxp <= xp(1) THEN vig(1) = vig(1) + 1: xp(1) = xp(1) - cxp CASE 3 cxp = (agi(1) + 1) PRINT "Custo:"; cxp IF cxp > xp(1) THEN PRINT "Pontos insuficientes": GOTO fim INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cxp <= xp(1) THEN agi(1) = agi(1) + 1: xp(1) = xp(1) - cxp CASE 4 cxp = (inte(1) + 1) PRINT "Custo:"; cxp IF cxp > xp(1) THEN PRINT "Pontos insuficientes": GOTO fim INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cxp <= xp(1) THEN inte(1) = inte(1) + 1: xp(1) = xp(1) - cxp CASE 5 cxp = (per(1) + 1) PRINT "Custo:"; cxp IF cxp > xp(1) THEN PRINT "Pontos insuficientes": GOTO fim INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cxp <= xp(1) THEN per(1) = per(1) + 1: xp(1) = xp(1) - cxp CASE 6 cxp = (car(1) + 1) PRINT "Custo:"; cxp IF cxp > xp(1) THEN PRINT "Pontos insuficientes": GOTO fim INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cxp <= xp(1) THEN car(1) = car(1) + 1: xp(1) = xp(1) - cxp END SELECT fim: INPUT "", press END SUB SUB Habil CLS LINE (0, 0)-(640, 480), 8, BF LINE (10, 10)-(630, 470), 9, B PRINT "" PRINT "Habilidades:" IF hab(1) > 0 THEN PRINT "(1) Misticismo: "; hab(1) IF hab(2) > 0 THEN PRINT "(2) Escalar: "; hab(2) IF hab(3) > 0 THEN PRINT "(3) Furtividade: "; hab(3) IF hab(4) > 0 THEN PRINT "(4) Armadilhas: "; hab(4) IF hab(5) > 0 THEN PRINT "(5) Fechaduras: "; hab(5) IF hab(6) > 0 THEN PRINT "(6) Roubo: "; hab(6) IF hab(7) > 0 THEN PRINT "(7) Ataque pelas costas: "; hab(7) IF hab(8) > 0 THEN PRINT "(8) Poder da f‚: "; hab(8) IF hab(9) > 0 THEN PRINT "(9) Rastrear: "; hab(9) IF hab(10) > 0 THEN PRINT "(10) Sobrevivˆncia: "; hab(10) IF hab(11) > 0 THEN PRINT "(11) Alquimia: "; hab(11) IF hab(12) > 0 THEN PRINT "(12) Medita‡Æo: "; hab(12) IF hab(13) > 0 THEN PRINT "(13) L bia: "; hab(13) IF hab(14) > 0 THEN PRINT "(14) Tratar ferimentos: "; hab(14) IF hab(15) > 0 THEN PRINT "(15) Combate: "; hab(15) PRINT "" INPUT "Habilidade:", habi IF hab(habi) = 0 THEN GOTO fimhab cust = (hab(habi) + 1) PRINT "" PRINT "Experiˆncia:"; xp(1) PRINT "Custo:"; cust IF cust > xp(1) THEN PRINT "Pontos insuficientes": GOTO fimhab INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cust <= xp(1) THEN xp(1) = xp(1) - cust: hab(habi) = hab(habi) + 1 fimhab: INPUT "", press END SUB SUB Magia CLS LINE (0, 0)-(640, 480), 8, BF LINE (10, 10)-(630, 470), 9, B PRINT "" PRINT "Feiti‡os:" IF mag(1) > 0 THEN PRINT "(1) Dardos m¡sticos: "; mag(1) IF mag(2) > 0 THEN PRINT "(2) Armadura: "; mag(2) IF mag(3) > 0 THEN PRINT "(3) ConfusÆo: "; mag(3) IF mag(4) > 0 THEN PRINT "(4) Sono: "; mag(4) IF mag(5) > 0 THEN PRINT "(5) Teia: "; mag(5) IF mag(6) > 0 THEN PRINT "(6) Espelho: "; mag(6) IF mag(7) > 0 THEN PRINT "(7) Bola de fogo: "; mag(7) IF mag(8) > 0 THEN PRINT "(8) Invisibilidade: "; mag(8) IF mag(9) > 0 THEN PRINT "(9) Curar ferimentos: "; mag(9) IF mag(10) > 0 THEN PRINT "(10) Conjurar: "; mag(10) IF mag(11) > 0 THEN PRINT "(11) Ben‡Æo: "; mag(11) IF mag(12) > 0 THEN PRINT "(12) Medo: "; mag(12) IF mag(13) > 0 THEN PRINT "(13) Animar morto: "; mag(13) IF mag(14) > 0 THEN PRINT "(14) Dissipar magia: "; mag(14) IF mag(15) > 0 THEN PRINT "(15) Teleporte: "; mag(15) IF mag(16) > 0 THEN PRINT "(16) Recarregar cajados: "; mag(16) IF mag(17) > 0 THEN PRINT "(17) Levitar: "; mag(17) IF mag(18) > 0 THEN PRINT "(18) Regenerar: "; mag(18) IF mag(19) > 0 THEN PRINT "(19) Forma de Worg: "; mag(19) IF mag(20) > 0 THEN PRINT "(20) Maldi‡Æo: "; mag(20) IF mag(21) > 0 THEN PRINT "(21) Paralizar: "; mag(21) IF mag(22) > 0 THEN PRINT "(22) Esquecimento: "; mag(22) IF mag(23) > 0 THEN PRINT "(23) Drenar vida: "; mag(23) IF mag(24) > 0 THEN PRINT "(24) Encantar item: "; mag(24) IF mag(25) > 0 THEN PRINT "(25) Destrancar: "; mag(25) IF mag(26) > 0 THEN PRINT "(26) Detectar passagens: "; mag(26) IF mag(27) > 0 THEN PRINT "(27) Purifica‡Æo: "; mag(27) PRINT "" INPUT "Feiti‡o:", feit IF mag(feit) = 0 THEN GOTO fimmag modi = 6 - inte(1) cust = (mag(feit) + 1) + modi IF cust < 2 THEN cust = 2 PRINT "" PRINT "Experiˆncia:"; xp(1) PRINT "Custo:"; cust IF cust > xp(1) THEN PRINT "Pontos insuficientes": GOTO fimmag INPUT "Aceitar? ", resp$ IF resp$ = "s" AND cust <= xp(1) THEN xp(1) = xp(1) - cust: mag(feit) = mag(feit) + 1 fimmag: INPUT "", press END SUB