DECLARE SUB Combate () 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() CLS LINE (0, 0)-(640, 480), 8, BF LINE (10, 10)-(630, 470), 10, 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) IF hab(16) > 0 THEN PRINT "(16) Metamorfose: "; hab(16) PRINT "" INPUT "Habilidade: ", habi PRINT "" IF hab(habi) = 0 THEN GOTO fimacao s = 0: d = hab(habi): DO d = d - 1: j = INT(RND * 6) + 1: IF j >= 4 THEN s = s + 1: IF j = 6 THEN d = d + 1 LOOP UNTIL d <= 0 SELECT CASE habi CASE 1: PRINT "Essa habilidade ‚ autom tica" CASE 2: PRINT "Essa habilidade ‚ autom tica" CASE 3 IF sta(1) = 0 THEN PRINT "Vocˆ come‡a a andar furtivamente": sta(1) = s ELSE PRINT "Vocˆ p ra de andar furtivamente": sta(1) = 0 END IF CASE 4: PRINT "Essa habilidade ‚ autom tica" CASE 5: PRINT "Essa habilidade ‚ autom tica" CASE 6 IF mon > 0 AND var(28) = mon THEN PRINT "NÆo h  como roubar mais desse panaca" IF mon >= 2 AND mon <= 9 OR mon = 12 OR mon = 16 OR mon = 17 OR mon = 22 OR mon = 23 OR mon = 26 OR mon = 28 OR mon = 30 OR mon = 33 THEN IF s >= INT(RND * 6) + 1 THEN PRINT "Vocˆ rouba algumas pe‡as de ouro": din = din + (s - 1) ELSE PRINT "Vocˆ foi detectado!": sta(1) = 0: sta(10) = 0 var(28) = mon ELSE IF px = 6 AND py = 15 AND var(8) = 2 THEN INPUT "Vocˆ quer roubar esta pessoa? ", resp$ IF resp$ = "s" THEN IF s >= 3 THEN PRINT "Vocˆ rouba o ba£ vermelho de Tell": equ(41) = 1 AND var(8) = 1 ELSE PRINT "Tell: LadrÆo! LadrÆo! GUARDAS!!!!" PRINT "Logo aparece um guarda para det‚-lo": Combate END IF ELSE PRINT "Ah..." END IF END IF PRINT "NÆo ‚ poss¡vel roubar aqui" END IF IF px = 6 AND py = 18 AND sta(23) = 0 THEN IF s >= 5 THEN PRINT "Vocˆ rouba algumas pe‡as de ouro": din = din + 5 ELSE PRINT "Homem: LadrÆo que rouba ladrÆo?": sta(1) = 0: sta(10) = 0: mon = 12 END IF IF var(4) = 1 OR mon = 15 THEN INPUT "Vocˆ quer roubar o pobre cidadÆo indefeso? ", resp$ IF resp$ = "s" THEN PRINT "Boa id‚ia! Vocˆ se aproxima do bolso dele" IF s >= 3 THEN PRINT "Vocˆ rouba"; s; "pe‡as de ouro do cidadÆo": din = din + s ELSE PRINT "CidadÆo: LadrÆo! LadrÆo! SOCORRRRRO!!!!" IF mon = 15 THEN PRINT "Logo aparece um guarda para det‚-lo": Combate ELSE PRINT "O cidadÆo sai correndo": var(4) = 4 END IF ELSE PRINT "Ah..." END IF END IF CASE 7 IF equip(1) = 1 OR equip(1) = 20 OR equip(1) = 58 AND sta(1) + sta(10) > 0 THEN IF mon = 15 THEN PRINT "Isso nÆo parece uma boa id‚ia. Vocˆ est  no meio da cidade!": GOTO fimacao IF mon > 0 THEN IF s >= 3 THEN var(9) = s: Combate ELSE PRINT "O inimigo percebe sua aproxima‡Æo": sta(1) = 0: sta(10) = 0: Combate ELSE PRINT "NÆo ‚ poss¡vel atacar pelas costas aqui" END IF IF var(4) = 1 THEN INPUT "Ei! Vocˆ nÆo est  pensando em matar esse pobre cidadÆo indefeso est ? ", resp$ IF resp$ = "s" THEN PRINT "Tudo bem": SLEEP 1: PRINT "Vocˆ ataca o cidadÆo. Como ele tem pouqu¡ssimos pontos de vida, morre na primeira pancada. Vocˆ o despoja de seus bens (10 moedas)": din = din + 10: var(4) = 2: GOTO fimacao END IF ELSE PRINT "Para atacar pelas costas vocˆ precisa estar se movendo furtivamente ou invis¡vel" PRINT "Para atacar pelas costas vocˆ precisa estar equipado com uma adaga ou espada curta" END IF CASE 8: PRINT "Essa habilidade ‚ autom tica" CASE 9 IF s >= 2 THEN IF px = 13 AND py = 3 THEN PRINT "Vocˆ percebe o rastro de goblins para o sul": GOTO rastr IF px = 13 AND py = 4 THEN PRINT "Vocˆ percebe o rastro de goblins para o sul": GOTO rastr IF px = 11 AND py = 6 THEN PRINT "Vocˆ percebe o rastro de orcs para o sul": GOTO rastr IF px = 13 AND py = 19 THEN PRINT "Vocˆ percebe o rastro de lobos para o norte": GOTO rastr IF px = 14 AND py = 19 THEN PRINT "Vocˆ percebe o rastro de lobos para o norte": GOTO rastr IF px = 2 AND py = 5 THEN PRINT "Vocˆ percebe o rastro de cobras para o sul": GOTO rastr IF px = 2 AND py = 10 THEN PRINT "Vocˆ percebe o rastro de cobras para o norte": GOTO rastr IF px = 9 AND py = 19 THEN PRINT "Vocˆ percebe o rastro de lagartos para o oeste": GOTO rastr IF px = 4 AND py = 19 THEN PRINT "Vocˆ percebe o rastro de lagartos para o leste": GOTO rastr IF px = 11 AND py = 19 THEN PRINT "Vocˆ percebe o rastro de kobolds para o leste": GOTO rastr IF px = 18 AND py = 19 THEN PRINT "Vocˆ percebe o rastro de kobolds para o oeste": GOTO rastr IF px = 19 AND py = 13 THEN PRINT "Vocˆ percebe o rastro de dan‡inhas da moda para o norte": GOTO rastr IF px = 17 AND py = 7 THEN PRINT "Vocˆ percebe o rastro de human¢ides para o leste": GOTO rastr IF px = 2 AND py = 18 THEN PRINT "Vocˆ percebe o rastro de um ogro para o sul": GOTO rastr PRINT "Vocˆ nÆo consegue perceber rastros no chÆo" rastr: ELSE PRINT "Vocˆ nÆo consegue perceber rastros no chÆo" END IF CASE 10: PRINT "Essa habilidade ‚ autom tica" CASE 11 IF equ(48) = 0 THEN PRINT "Vocˆ nÆo tem reagentes": GOTO fimalq PRINT "Reagentes:"; equ(48) PRINT "F¢rmulas conhecidas:" IF hab(11) >= 1 THEN PRINT "(1): Po‡Æo de cura" IF hab(11) >= 2 THEN PRINT "(2): Po‡Æo de for‡a" IF hab(11) >= 3 THEN PRINT "(3): Po‡Æo de vigor" IF hab(11) >= 4 THEN PRINT "(4): Po‡Æo de velocidade" IF hab(11) >= 5 THEN PRINT "(5): Po‡Æo explosiva" IF hab(11) >= 6 THEN PRINT "(6): Po‡Æo ofuscante" IF hab(11) >= 7 THEN PRINT "(7): Po‡Æo de veneno" IF hab(11) >= 8 THEN PRINT "(8): Po‡Æo de paralizia" IF hab(11) >= 9 THEN PRINT "(9): Po‡Æo de sono" IF hab(11) >= 10 THEN PRINT "(10): Po‡Æo de  cido" IF hab(11) >= 11 THEN PRINT "(11): Po‡Æo de regenera‡Æo" PRINT "" INPUT "Fazer qual po‡Æo? ", resp IF resp > hab(11) THEN GOTO fimalq IF resp = 1 AND s >= 1 THEN PRINT "Vocˆ prepara uma po‡Æo de cura": equ(48) = equ(48) - 1: equ(29) = equ(29) + 1: GOTO fimalq IF resp = 2 AND s >= 2 THEN PRINT "Vocˆ prepara uma po‡Æo de for‡a": equ(48) = equ(48) - 1: equ(49) = equ(49) + 1: GOTO fimalq IF resp = 3 AND s >= 2 THEN PRINT "Vocˆ prepara uma po‡Æo de vigor": equ(48) = equ(48) - 1: equ(50) = equ(50) + 1: GOTO fimalq IF resp = 4 AND s >= 2 THEN PRINT "Vocˆ prepara uma po‡Æo de agilidade": equ(48) = equ(48) - 1: equ(51) = equ(51) + 1: GOTO fimalq IF resp = 5 AND s >= 3 THEN PRINT "Vocˆ prepara uma po‡Æo de explosiva": equ(48) = equ(48) - 1: equ(52) = equ(52) + 1: GOTO fimalq IF resp = 6 AND s >= 3 THEN PRINT "Vocˆ prepara uma po‡Æo ofuscante": equ(48) = equ(48) - 1: equ(53) = equ(53) + 1: GOTO fimalq IF resp = 7 AND s >= 4 THEN PRINT "Vocˆ prepara uma po‡Æo de veneno": equ(48) = equ(48) - 1: equ(63) = equ(63) + 1: GOTO fimalq IF resp = 8 AND s >= 4 THEN PRINT "Vocˆ prepara uma po‡Æo de paralizia": equ(48) = equ(48) - 1: equ(54) = equ(54) + 1: GOTO fimalq IF resp = 9 AND s >= 5 THEN PRINT "Vocˆ prepara uma po‡Æo de sono": equ(48) = equ(48) - 1: equ(55) = equ(55) + 1: GOTO fimalq IF resp = 10 AND s >= 6 THEN PRINT "Vocˆ prepara uma po‡Æo de  cido": equ(48) = equ(48) - 1: equ(56) = equ(56) + 1: GOTO fimalq IF resp = 11 AND s >= 7 THEN PRINT "Vocˆ prepara uma po‡Æo de regenera‡Æo": equ(48) = equ(48) - 1: equ(57) = equ(57) + 1: GOTO fimalq PRINT "Vocˆ falha em fazer a po‡Æo": equ(48) = equ(48) - 1 fimalq: CASE 12 IF s >= 2 THEN PRINT "Mantras: (om) (ra) (ahm) (lum) (nah)" INPUT "Mantra: ", resp$ PRINT "Meditando"; : SLEEP 1: PRINT "."; : SLEEP 1: PRINT "."; : SLEEP 1: PRINT ".": SLEEP 1 IF resp$ = "om" THEN PRINT "Vocˆ se sente melhor": fer(1) = fer(1) - s: IF fer(1) < 0 THEN fer(1) = 0 IF resp$ = "ra" THEN PRINT "Vocˆ se sente mais forte": sta(4) = s IF resp$ = "ahm" THEN PRINT "Vocˆ se sente mais vigoroso": sta(5) = s IF resp$ = "lum" THEN PRINT "Vocˆ se sente mais  gil": sta(11) = s IF resp$ = "nah" THEN PRINT "Vocˆ se sente purificado": sta(18) = 0: sta(21) = 0 ELSE PRINT "Vocˆ nÆo consegue se concentrar" END IF CASE 13: PRINT "Essa habilidade ‚ autom tica" CASE 14 IF fer(1) > 0 THEN IF sta(19) < fer(1) THEN sta(19) = fer(1) IF s >= fer(1) THEN PRINT "Vocˆ trata seus ferimentos": fer(1) = fer(1) - (INT(RND * (vig(1) + sta(5))) + 1): IF fer(1) < 0 THEN fer(1) = 0 ELSE PRINT "Vocˆ nÆo consegue tratar seus ferimentos" ELSE PRINT "Vocˆ nÆo pode tratar de seus ferimentos por enquanto" END IF ELSE PRINT "Vocˆ nÆo est  ferido" END IF CASE 15 IF px = 6 AND py = 18 AND sta(23) = 0 THEN mon = 12: sta(23) = 1 IF mon > 0 THEN sta(1) = 0: sta(10) = 0: Combate IF var(4) = 1 THEN INPUT "Ei! Vocˆ nÆo est  pensando em matar esse pobre cidadÆo indefeso est ? ", resp$ IF resp$ = "s" THEN PRINT "Tudo bem": SLEEP 1: PRINT "Vocˆ ataca o cidadÆo. Como ele tem pouqu¡ssimos pontos de vida, morre na primeira pancada. Vocˆ o despoja de seus bens (10 moedas)": din = din + 10: var(4) = 2 ELSE PRINT "Atacar o quˆ?" END IF CASE 16: PRINT "Vocˆ se transforma num grande lobo b¡pede": sta(26) = s END SELECT IF INT(RND * 200) = 0 THEN PRINT "Sua habilidade melhorou": hab(habi) = hab(habi) + 1 fimacao: INPUT "", press CHAIN "C:\Blarg!\Diacho\Salas.bas" SUB Combate CHAIN "C:\Blarg!\Diacho\Combate.bas" END SUB