Jump to content
×
×
  • Create New...

Search the Community

Showing results for tags 'tibia'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Cópia
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Categories

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

  1. Ae galera do xtibia vo postar para voces o bronson server nao esta completo mais vo posta aki mesmo asim tem algumas hunts /ir ja entegrado espero que gostem --------- Map e Proprio --------- Boss e exclusivo do bronson server Hunt's bem elaboradas para nao tornar mt facil nem muito dificil --------- Atualizaçoes --------- Sempre que tiver tempo vou continuar atualizando corrigindo bugs E completanto o Ot server ate que fique 100% Vou postar alguns print's Mapa 70% full Hunt de cyc City principal Boss the necromancer Download Scan nao consegui fazer o scan entao vai o print mesmo' rs Creditos: Mixsoft Criador do map "nao sei o nome" Samurela Por posta o map todos aqueles que peguei scripts E a mim Gosto RP+
  2. Eae galera do XTIBIA estou aki hoje para mostrar meu novo server de poketibia ainda nao tenho prints pois é novo ainda mais logo irei disponibilizar bom vamos la o site é : http://pokebatle.sytes.net/ ainda temos vagas entrem la e veram nosso projeto!!
  3. Salve pessoal, aqui é o Hirxzsx vim aqui postar a base naja com algumas alterações minhas, modifiquei saffron,vip e algumas coisas, a base tinha muitos bugs de sprites,corpos, e tem um monte ainda pra se resolver, então haja tempo para editar a base Naja, uma base Pda que é até boa pra se fazer um projeto, só ter tempo e dedicação que você vai conseguir sim, desisti de usar ela porque meu Pc estragou e parei, peguei outro Pc mas desisti de editar a base estou a editar uma base lenda (BS) muito linda e em breve quero postar minha base otp (otp atualizado em novembro) totalmente sem bugs e com mapa editado!!! Lembrando pessoal, troquem de cliente, o cliente que está na base está totalmente bugado e cheio de erros. A base acompanha Servidor+Source+Site+Client+src otc https://www.mediafire.com/file/8b1gfj7rk5a5igb/POKETIBIA+Matheus.rar/file Total créditos a: Naja e seus desenvolvedores dessa linda base! Postado por Hirxzsx NAO DOU SUPORTE.
  4. Salve pessoal, aqui e o HirxSxOp vim aqui postar uma base que foi recentemente postada no YouTube, com mobile+site+server+client e vim aqui postar com vocês A base e um pouco alaska, muitos gostam então irei postar aqui o download Estou com a internet horrível, não consigo fazer o Scan se alguém poder fazer irei agradecer Não sou suporte.. boa noite Tem algumas sistemas, robô irei mandar o vídeo dele aqui e vocês podem ver! https://youtu.be/6pggTYT4vzo Links: Mobile Site https://www.mediafire.com/file/oyzw54teto3l5m4/novols.apk/file https://www.mediafire.com/file/lpbq1yksls5mof2/htdocs.rar/file Server https://www.mediafire.com/file/qrwle9c82y9dib9/testels.rar/file Client https://www.mediafire.com/file/orktvwtejckemgj/client_ls.rar/file Source mandada por Poke Hero ( comunidade agradece ) Link https://mega.nz/file/bddilLiA?fbclid=IwAR2kq1Vj9wPH9gcHBe4p2TcPQ7Miki4phT9-298hr757t8_kWPF0ByFPX8w#G_5DgS8fJGR5UCuk3lkJuNUxd_YPbNvJ-Y-QbHTFcts Um poketibia com bastante potencial, mas infelizmente o dono estava sem tempo! Boa sorte nos seus projetos pessoal.
  5. Uma nova jornada, repleta de incríveis aventuras! Venha ser um mestre pokémon! SITE - http://pomania.servegame.com
  6. Introdução: Olá galera do Xtibia!!! Pela primeira vez criarei um Roleplaying. Tentarei seguir o Tópico do Jv, mas por nunca ter visto uma historia de Roleplaying (por mais incrivel que pareça), tera falhas, erros, muitas vezes acabarei saindo do contesto... Mas enfim, qualquer critica, elogio, sugestão, conselho, etc. podem postar aqui. Obrigado e tomaraque gostem. Historia Capitulo 1 - O inico Tudo começa em uma ilha chamada Rookgaard. Filho de camponês pobre que morava em uma fazenda antiga, Mane de Rook, é um garoto que acabara de completar 15 anos. Um garoto sonhados, com roupa vermelha, chinelo simples, um colar antigo de seu avó, cabelo curto, espada na mão e um simples escudo, treinava dia após dia para ao crescer se tornar o mais forte de Rookgaard. Infelizmente quando possuia 8 anos, sua mãe foi morta por um monstro marrom com chifres, enquanto estava indo a feira e ficou perdida. Seu corpo foi encontrado perdo de uma caverna, morta, com apenas uma expressão de susto em seu rosto. Mane de Rook, sempre ia ao unico lugar de treino facil na cidade, onde tinha que matar o monstro encontrados em bueiros, considerado o mais fraco. Ate que ao completar 15 anos, ganhou o direito de sair da cidade e viver suas aventuras. Seu melhor amigo, Couto Jovidam, sonhava em ser guerreiro e viajar para Carlim quando estivesse com 20 anos. Três anos mais velho que o Mane, gostava de treinar com Trolls, e Orcs em cavernas, além de ajudar o Mane de Rook a ficar mais forte. MdR: Finalmente Couto, hoje é meu primeiro dia que eu terei a liberdade para sair da cidade. Precisarei da sua ajuda para sobreviver pelos primeiros dias. CJ: Claro Mane, pelo visto você já esta extremamente pronto. Seu desempenho de luta e corajem já é quase igual ao meu, mesmo treinando apenas em sua cidade, foi capaz de elevar muito seus poderes. Espero que um dia você seja capaz de ser o melhor de Rook. MdR: Assim espero. Bom, onde vamos caçar primeiro? Cj: Pela sua determinação e seu nivel, creio que ja podemos derrotar um temivel monstro marrom encontrado em cavernas... Eles são poderosos, porem inofensiveis, e caso você tenha sorte pode conseguir um colar baranco que tem o poder de evitar envenenamento. MdR: Genial. Espero que seja capaz mesmo de derrota-los. Breve estarei igual a você. Caminhando, iam em direção a uma caverna escura. Ambos equipados pela melhor espada de Rook, que se é conquistada em uma dificil missão, onde é necessario matar estranhos bichos marrons que rastejam no chão. Couto Jovidam segurava os monstros para o Mane atacar, o qual os derrotava rapidamente pelo seu incrivel desenpenho de treino com espadas. CJ: Mane, você ja esta sendo capaz de derrota-los facilmente. Eu irei em um buraco com uns amigos... Não se preocupe, é que um deles esta em perigo. Eu ja volto, qualquer coisa apenas me chamar. MdR: Claro, Boa Sorte lá. Tentarei evoluir meu potencial ao maximo. Obrigado por tudo que fez ate agora. Ainda andando pela fria caverna, Mane de Rook estava sendo realmente incrivel. Sua grande grande capacidade de evoluir rapidamente, é incrivel. Quando percebeu já estava matando grotescos monstros verdes, tambem considerados excravos de Minotauuros, em uma andar em baixo, o qual possuia um caminho um pouco estreito. Depois de muitas horas treinando e vendo que ja anoitecia, sentiu falta do Couto o chamou pelo poder de telepatia. Sem resposta decidiu procurar por si mesmo. Entrando pela passagem estreita, encontrou um cara que apanhava para um desses bichos verdes. O ajudando, foi capaz de ganhar um valoroso amigo: MdR: Você esta bem amigo? Posso saber como se chama? Ca: Estou bem sim, muito obrigado. E me chamo Carlos. Muito prazer! MdR: O que faz por aqui? Deveria saber que é perigoso... Tudo bem, não importa... Porem deveria treinar mais antes de vim ate aqui. Ca: Sim, realmente não deveria ter vindo até aqui... Mas é que... eu não encontro meu irmão em lugar algum... Ele veio treinar entre esses monstros grotescos verdes e creio que foi nos temiveis monstros de chifre. Mdr: Bom... isso é um problema... vamos procurar seu irmão, depois vamos procurar meu amigo. Mas temos que tomar muito cuidado, esses monstros são muito poderosos, teremos que unir nossas forças para lutar contra eles. Será que Carlos e Mané de Rook conseguirão entrar na misteriosa caverna de Minotauros? O que deve ter acontecido com seu amigo e o irmão de seu outro amigo? Tera algo haver com a morte de sua mãe? Como deve estar seu pai uma hora dessas, vendo que seu filho demorava para chegar em casa? Muitas coisas ainda acontecerão no proximo capitulo de Mane de Rook e O misterio da Caverna Perdida. -------------------------------------------------------------------------------------------------- Capitulo 2 - Entrando em Apuros Continuando a caminhar pela caverna escura, apenas iluminada por uma tocha de fogo, ambos guerreiros vão em busca do irmão de Carlos. A cada passo que davam, sentiam que era um passo a mais para o perigo, podendo ate terminar em morte. Montros apareciam, mas isso não temia o Mane, afinal, eram todos fracos. A unica coisa que temia era os minotauros que estariam cada vez mais perto. Encontraram uma pequena porta aberta que levava a uma sala. Chegando nela, viram que ela estava muito mal cuidada, porem bem iluminada, eram capazes de ver uma mesa e mais a frente uma porta. Indo ate ela, perceberam que ela estava fechada, e sem pensar duas vezes resolveram voltar. Porem não foi tão simples assim. Quando começavam a recuar a porta se abre e lá de dentro sai um ser horrivel, com chifres e bastante zangado. Mane ainda com medo, tenta fugir por onde vieram, mas era impossivel já que o monstro era rapido de mais. Pensando em sua mãe resolve o enfrentar: Ca: Esta louco? Não pode lutar contra ele. Além de muito forte é superior a nós! Não temos nenhuma chance... é o nosso fim!! MdR: Eu não tenho medo!!! Sei que um desses monstros mataram minha mãe... Não terei dó dele... Você pode correr, mas eu irei ficar. Minha raiva é bastante para derrotar o maldito!!! Ca: Não sabe do que esta falando... eu ja vi um desses, pode ter certeza que seu poder é incrivel... mas em todo caso, você me ajudou a matar aquele orc, lhe devo minha vida, por isso irei ficar. Enquanto isso, o pai do Mane em sua casa, estava na sala já estava muito preocupado com seu filho, que ao primeiro dia de treino lá fora e demorava muito para chegar. Vendo que já era 3 da madrugada, começava a ficar desesperado e resolveu chamar o pai do Couto, indo em sua casa. Colocou um casaco, e saio pela noite afora. Mane apanhava muito do minotauro, e o Carlos por mais que tentasse não conseguia realmento o ferir. Porem o Mane, mesmo se quisesse não poderia deichar de enfrentar o monstro, afinal, sua grande raiva não o permitia! Parecia estar tudo perdido, estava muito machucado ambos, e o monstro era muito habil e forte. De repente viram uma luz. Não conseguiram indentificar o que era, apena um cisco de luz, que atravessava o minotauro, fazendo um buraco em sua barriga o derrotando na mesma hora. Ambos olhavam pra um lado e para o outro, porem não viam nada. MdR: O...o...o que foi isso? Ca: Eu não sei... não faço a manor ideia... e nem quero saber... so quero sair daqui, vamos sair daquiiii!!!! MdR: Sim, claro... vamos... é mais perigoso do que pensei! Mas e essa porta que se abriu? O que sera que tem nela? Ca: Não quero ficar para descobrir, eu vou embora... MdR: Vamos, to muito curioso para saber... aaa... tudo bem, quando estivermos mais fortes iremos voltar! Vamos embora agora. Voltando o caminho e abandonando a sala, iam cuidadosamente andando fazendo se caminho de volta... Porem depois de algum tempo notaram que estavam perdidos. Completamente perdidos. Não faziam a menor ideia do caminho de volta. Ambos começaram a entrar em desespero. Possuia sempre muitos caminhos e passagens para ir, que acaba os confundido. Ca: Cara, e agora, estamos perdidos, o que iremos fazer? MdR: Vamos manter a calma, olhe bem, temo que seg... Alguem: SOCORROOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!! Ca: Epa, o que foi isso? MdR: Eu conheço essa voz... COUTOOOOOOOOOO Ca: Vem daquele lado!!! Vamos rapidooo!!!!! CJ: ALGUEM ME AJUDEEEEEEE O que sera que esta acontecendo com o Couto? Porque esta gritando? E o que o pai do Mane ira fazer para ajuda-lo? O que sera aquele misterioso cisco de luz que atingira o Minotauro? Muitas coisas ainda acontecerão no proximo capitulo de Mane de Rook e O misterio da Caverna Perdida. --------------------------------------------- Capitulo 3 - Missões: A aventura começa PdM(pai do mane): Temos que fazer alguma coisa. O Mane e o Couto não aparecem a muito tempo. Deve ter acontecio algo! PdC(pai do couto): Realmente... eles foram treinar perto da caverna de onde sua mulher morreu... PdM: Mas ja procuraram muito por lá. A caverna não é tão perigosa. Creio que todos que possuem mais de 15 anos são capazes de derrotar os 2 montros que lá habitam. Não se sabem de onde surgiu aquele monstro que derrotou minha mulher. PdC: Eu entendo... Mas acho que deicharam passar algo. Pegue um objeto que pode furar a terra e um que possa cavar, para assim damos uma "explorada" melhor. Irei tambem pegar um mapa, para facilitar nossa busca. Assim, ambos bem equipados e com um mapa, seguiram pela floresta ate a casa do pai do Mane, pegar os tais objetos. Entrando na fazenda, foram rapidamente até o quarto e após os pegar foram em direção a caverna onde sua mulher estava morta. Estava escuro e perigoso. Eram atacados constantementes por montros, porem suas corajem eram imensas e por mais que quisessem não eram capazes de parar. Chegando na caverna, ambos entraram cuidadosamente e após isso seguiram para dentro. A caverna era pequena e fechada, não havia lugar para irem de muito espaço. Com dois andares, uma com trolls e outra com orcs, era impossivel encontrar algo por ali. Porém, enquanto cada um dava uma volta, o Pai do Mane achou no chão o colar do Mane que tinha ganhado do seu avó, o que confirmava sua presença. O pai do Mane pegou o objeto utilizado para cavar e o pai do Couto pegou o outro objeto que era capaz de furar a terra. Ambos começavam a explorar, em tudo que era lugar. Sem muitos resultados, depois de algum tempo explorando sairam tristes da caverna por não ter conseguido achar nada. PdM: O que você acha? Não é possivel que não tenha nada, meu filho esteve aqui, olhe seu colar! PdC: Ja olhamos em tudo, daqui a pouco vai amanhecer. Olhe, porque não vamos procurar algo para comer, e depois levamos algum alimento para a caverna? Nós voltamos quando manhecer e vamos dar uma explorada melhor. Estou morrendo de fome... PdM: Compreendo... ainda sim quero procurar mais. Olhe, vai caçar algo para nós que eu continuarei por aqui. PdC: Tudo bem, você que sabe! Eu já volto. Pegando o caminho de volta, o pai do Couto não sabia que ele nunca mais iria voltar... Mane e Carlos corriam rapidamente pela caverna de onde ouviram o grito do Couto. Mas já como o grito tinha parado não souberam exatamente o caminho. Quanto mais andavam, parecia que mais se perdiam e se destanciavam do Couto. Quando estavam cansados e resolveram dar uma descansada, aparaceu um guerreiro, vindo do lado oposto: Opim: O que vocês fazem por aqui? Não sabem que esta caverna é amaldiçoada? Quem entra aqui jamais sai!!! Mane: Quem é você? De onde você veio? Opim: Me chamo Opim. Eu moro dessa caverna. Sou o unico que sei onde fica a saida desse local. Porem não é tão facil. Carlos: Nós ajude por fa... Opim: SILENCIO SER INSIGNIFICANTE! Da pra ver que vocês são um bando de principiantes. Nessa caverna moram monstros inimaginaveis. Seres das trevas costumam a cultuar por aqui. Posso saber porque vieram para ca? Mane: Eu estava treinando com meu amigo Couto, ai encon... Opim: Espere... você disse Colto? Um garoto que tambem entrou aqui um pouco mais cedo? Mane: Sim, você o conhece? Opim: Ele falou comigo. Ele caiu em um buraco infestado de monstros da terra que rastejam. Provavelmente esta morto agora. Mane: Como pode dizer isso? Esta querendo dizer que existe muitos desses poderosos montros da terra que rastejam no chão? Opim: Estou tentando dizer que esse é um dos montros mais fracos dessa caverna. Muito mal um guerreiro ou Mago da Cidade conseguiria os enfrentar. Carlos: Estamos ferrados... e agora senhor? Meu irmão tambem deve estar por aqui! Opim: Felizmente como tinha dito sei como sair. Mais para isso vocês tem que passar por 5 dificeis missões. Cada uma mais perigosa que a outra. Bom... quando entrei aqui tinha 3 amigos, cada um com um objeto magico. Ao serem mortos, os objetos ficaram guardados em uma sala. Sua primeira missão é localizar onde estão os 3 objetos magicos. Eles os ajudarão nas proximas missões. Mane: Sim claro. Vamos dar uma explorada. Opim: Muito cuidado. Muitos segredos se encontram por esse lugar. Já vivo aqui a anos e nunca consegui conhece-lo por inteiro... Com isso Mane de Rook e Carlos, foram procurar os 3 objetos magicos para tentar escapar da Caverna. E agora? Porque sera que o Pai do Couto nunca mais ira voltar? O que vai acontecer? E o pai do mane, sera que vai achar o caminho? Quem sera esse Opim? Que monstros e misterios ainda são guardados nessa maldita caverna? Sera que irão achar os 3 objetos magicos? Sera que o Couto realmente morreu? E o irmão do Carlos, onde estara uma hora dessas? Muitas duvidas surgem nessa parte da historia. Misterios e mais misterios aparecem. Muitas coisas ainda acontecerão no proximo capitulo de Mane de Rook e O misterio da Caverna Perdida. Capitulo 4 - A invasão O pai do Couto ao amanhecer, caminhava pela floresta em busca de comida o suficiente para explorar mais cavernas até encontrar seu filho e o filho de seu amigo. Depois de andar um pouco, chegou a um campo de animais, e com sua espada começou a caça-los. Apos alguns minutos, tinha uma quantidade suficiente e resolveu voltar a falar com o Pai do Mane. Enquanto voltava pela floresta já de manha, viu uma fumaça subindo do lado oposto da floresta. Curioso, rapidamente foi ver o que era e se encontrava alguem que pode-se o ajudar. Chegando perto, viu que era um tipo de acampamento, porem não era um acampamento normal... Estava repleto de Minotauros. Provavelmente não estaria ali por muito tempo. O pai do Couto assustado, resolveu chegar mais perto para saber o que estava acontecendo ali. Atraz de algumas árvores é capaz de ouvir uma conversa de dois minotauros: Mino1: Isso esta demorando muito... estou repleto de fome. Mino2: Calma, quando atacarmos a cidade, o corpos de todos seus habitantes serão nossos. Comeremos o bastante e voltaremos com muita carne ainda para nossa carverna. PdC: (Então esiste uma caverna repleto de minotauros... e eles vão atacar a cidade?? Mais que droga...) O pai do Couto assustado, resolveu voltar rapidamente para a caverna e pedir ajuda do pai do Mane, assim ambo voltariam para a aldeia e preparar o povo. Porém não foi como planejado... Mino1: Epa, quem é esse ai? Mino2: É UM HUMANO!!! SAI DAI IMEDIATAMENTE Mino1: Acho que já achei meu petisco, hehe Pdc: Me deichem em Paz, porfavor! Prometo que não farei nada contra vocês, piedadeeeeeeeeeeeeeeeeeeeeeeeeeee!!!!!!!!! Pdc: *** Mino2: Agora que o matamos, vamos come-lo aqui mesmo, não quero repatir com os outros, hehe. Mino1: Sim... claro. Daqui a pouco vamos atacar finalmente a cidade! O pai do couto, ao ver que o pai do Couto demorava muito, resolveu explorar a caverna por si mesmo. Depois de pouco tempo, ouviu um barulho dentro da caverna. Escondido, correu para ver o que era. Uma parede tinha se aberto e de la saio dois minotauros. Apos ambos sairem, a porta ainda permanecia aberta, abrindo um caminho e um buraco. Rapidamente o pai do Mane entrou e desceu o buraco. ****** Ao amanhecer o povo de Rookgaard acordava. Crianças saiam de suas casa e iam brincar, lojas começavam a se abrir, guerreros começavam a se preparar para treinar. Enquanto isso, no acampamento de Minotauros, mais dois chegavam... Os mesmo que haviam saido da caverna. Pouco tempo depois, todos saem armados e equipados seguindo para a cidade. Criança: Papai, o que são aquilo se aproximando? Andre: Droga... são minotauros... o que isso??? São milhares!!!!! PROTEJAM-SEEEEEEEEE!!!!!!!!!!!!!!!!!!!!!!!!! Minotauro: ATACAAAAR!!!!!!!!!!!!!!!!!!!!!!!!! Os Minotauros começaram a entrar na cidade e destruir tudo. Nada conseguia escapar. Nem crianças, nem adultos, nem velhos, nem guerreiros fortes e valentas da devastosa invasão que acontecia. Casas foram destruidas, lojas e tudo mais que podia ser imaginado. Andre se escondeu atraz de uma casa, com seu filho. A casa foi atacada pelos minotauros, fazendo ser destruida e a telha caiu em cima da criança, a matando na hora. Andre desesperado vendo seu filho morto, perde o controle e começa a ficar muito nervoso. Rapidament correu, escondido dos minotauros, saio da cidade e escondeu na floresta, ainda sim os observando. Chorando, pela sua familia destruida. Após 1 horas de devastações e lutas, os minotauros deicham a cidade. Andre escondido, resolve os seguir. Eles começaram a seguir um caminho da floresta com varios corpos, e entraram em uma caverna. A mesma caverna onde esta Couto, Mane, Pai do Mane e Carlos. Andre os seguiu ate seu interior. A porte secreta abriu e os minotauros começaram a entrar. Depois que todos entraram, escondido o Andre tambem entrou. Com cuidado começava a vaculhara a caverna. Não sabia ele no perigo que tinha entrado. E agora? A cidade de Rookgaard foi totalmente destruida. So existe alguns sobreviventes. O que vai acontecer com Andre? Onde estarão Mane e Carlos? E o Couto, sera que esta vivo? E os Minotauros, o que fazem naquela caverna? Aquele seria "sua moradia"? Que perigos ainda estão escondidas na caverna? Muitas coisas ainda acontecerão no proximo capitulo de Mane de Rook e O misterio da Caverna Perdida. Capitulo 5 - A Grande Equipe Mane: E agora Carlos? Como vamos saber onde estão esses objetos magicos? Carlos: Talvez devessemos procurar naquela porta do minotauro que se abriu... onde saiu um feixe de luz! Mane: É mesmo... ali é um bom lugar para procurar, muito suspeito. Vamos Enquanto isso o Pai do Mane, andando pela tenebrosa caverna, fica arrpiado ao ver corpos espalhados no chão. Ainda com um mapa, trassava todo seu caminho nele, para se um dia sair, adicionar esta parte da ilha que era desconhecida. Ouvindo uivos dos minotauros resolveu dar uma checada do que estava acontecendo. Sangue... muito sangue que travava um caminho ate uma sala, repleta de minotauros e orcs presos por correntes grossas. O sangue era das pessoas que foram mortas na cidade. Quando percebeu havia alguem atraz dele. Rapidamente sacou seu machado em direção ao que estava atraz dele. Era o Andre. Andre: Não me mate por favor! PdM: Quem é você? O que esta fazendo aqui? Andre: Rookgaard foi atacada por milhares dos minotauros, destruiram tudo que havia e levaram o corpo da minha mulher e da minha filha. PdM: Bom... você não é o unico. Perdi meu filho, acredito que ele ainda esteja por aqui... vivo ou morto... Andre: Bom, se ficarmos aqui olhando eles não ganharemos nada. São mais de 50 e nós somos so 2. PdM: Ok, vamos explorar a caverna e ver se encontramos algo que possa nos ajudar! Mane e Carlos tentam voltar a encontrar aquela porta, mas sabiam que jamais iriam conseguir. Aquilo ali era um labirinto, sem duvida nenhuma! Sofrendo constantes ataques de trolls e orcs, conseguiram almentar seu poder de luta, ficando cada vez mais ageis. Acharam uma tocha no chão. Iria ajudar provavelmente. Acenderam a tocha e continuaram a procurar um caminho. Ja o Pai do Mane e o Andre, tentando procurar algo que os ajudassem, encontraram uma porta e logo dentro um bau. Andre foi correndo no Bau enquanto o pai do mane pedia cauma. Abrindo rapidamente o bau, la de dentro saiu milhares de aranhas venenosas, os quais os envenenaram em quetão de segundos. Pai do Mane, ja preparado com pedras de antitodo, a usou e começo a batalha. Eram centenas de aranhas, morriam rapido, mas sua grande quantidade dava trabalho. Não tinha jeito a não ser correr. Andre e o Pai do Mane corriam rapidamente ate mesmo sem saber o caminho em que iam. O pai do mane, tentava ainda sim, com uma mão, porque com a outra se protegia, traçar uma linha do caminho de volta. Depois de tanto correr viram uma luz la no fim. Ambos achando que era uma saida correram rapidamente, mas estavam enganados. Era o Mane e o Carlos. Mane: Pai? Você aqui? Pai do Mane: Depois conversamos filho, nos ajude Carlos: O que é isso? A não... Vinham em sua direção centenas de aranhas venenosas. Mane jogou sua tocha no chão as queimando e fazendo uma barreira de fogo impedindo que elas passassem. Correram rapidament, pois não sabia por quanto tempo a tocha ficaria acesa. Apos correrem por algum tempo, eles finalmente tiveram um tempo para conversar. Pai do Mane: Filho, que bom que você esta bem!!! Fiquei tão preocupado! Mane: Bom você ter chagado pai... Nós temos uma missão para fazer se quisermos sair desta caverna. Bom, na verdade... 5! Andre: Nossa... la vem confusão... Mane explicava para seu pai e ao Andre sobre o Opim e o que tinha dito. Apos cansados e de comerem um pouco de alimento que haviam conseguido nos montros que mataram, eles se levantaram e tentaram procurar uma forma de achar a sala do minotauro. Enquanto andavam, escutavam barulhos logo a frente. Indo em sua direção, ao ver, eram 3 minotauros com o Couto e mais 2 pessoas em uma sacola que carregavam. Amarrados e desmaiados! Mane sem pensar duas vezes sacou sua espada, assim como Andre, e o Carlos e Pai do Mane seus machados. Começou uma grande batalha. Enquanto dois minotauros lutavam, o terciro fugiu com a sacola com o couto e os 2 caras. Após alguns minutos de batalha, o ultimo golpe do Andre e do Carlos, derrotaram os malditos minotauros. Observando que o terceiro havia fugido, entraram em desespero. Mane: Que droga, mais uma vez perdi o Couto PdM: Calma mané vamos encontra-lo... acho que ate ja sei o que eles querem... Andre: Como assim? PdM: Ouvi falar que a cada 100 anos, minotauros saem de suas carvenas e atacam a city, para conseguir alimento e 3 humanos humildes para sacrificio ao seu senhor: O minotauro Mage. Carlos: Mas espere... então o Minotauro Mage que é responsavel por isso? PdM: Calma, ainda não terminei. Muitos acreditam que o minotauro mage é um dos Guardiões Sagrados, no caso, protege a ilha de Rookgaard. Provavelmente existam outras que Sejam guardiões de Thais, Carlim, Venore entre outro. Carlos: Quer dizer então que estamos na caverna do Minotauro Mage, ou na caverna dos Guardiões? PdM: Acredito que na do Minotauro Mage, mas que essas cavernas possam ter ligação as outras com seus outros guardiões. De acordo com que o mane disse que o que o Opim falou, estamos em uma caverna amaldiçoada. Muitas coisas ocorrem por aqui. Mane: Ei espere... Carlos, aquela não é a porta onde enfrentamos o Minotauro pela primeira vez? Carlos: Sim, e veja: Aquela porta esta aberta, vamos entrar... Passaram então pela mesa e entraram na porta. Encontraram então 3 Baus. Andre: Un... temos 3 baus aqui... Dessa vez vamos com calma... qual devemos abrir? Mane: Vamos abrir todos um por um. O que sai dai de dentro... ENFRENTAMOS JUNTOS! DESSA VEZ NÃO VAMOS CORRER! -------------------------------------------------------------- Penultimo Capitulo Capitulo 6 - Hora De Lutar Cuidadosamente André abre o primeiro baú... Ao abrir vê um corpo e do seu lado um cajado... Um cajado mágico, usado apenas para magos. Mane abre o segundo... Possui nele mais um corpo e na sua mochila, varias runas. O Pai do Mane abre o terceiro... E acha uma poderosa espada de fogo. Mane: Finalmente encontramos os objetos mágicos... Acredito que eram esses três os objetos mágicos. Teremos que procurar agora o Opim... Assim nos passando as próximas missões. Carlos: Mane, desculpe te interromper, mas... Acho que tem um inseto dentro desse corpo no baú ai... André: A não... São abelhas... Mane: Otimo, vamos mata-las! Assim mane e todos os outros sacam suas armas e destroem um por um uma rajada de abelhas que saiam de lá rapidamente. Pai do Mane: Filho são muitas... Mane: Desculpe pai, já estou cansado de correr, agora é pra valer!!! Epa... Uma runa caio no chão... Após a runa que estava na mochila cair no chão, uma rajada de fogos apareceu no chão, atingindo todas as abelhas as destruindo na mesma hora. O fogo passava de abelha em abelha fazendo as explodir a cada segundo. Carlos: O que foi isso? Isso é uma runa de bola de fogo... Já ouvi falar... Os magos da cidade costumam a criar essas runas... Ele devia ser uma... Mane: Não é isso que eu temo, e sim o que o matou... André: Seja lá o que foi, vamos o enfrentar... Sempre unidos. Mane: Claro... Quem é aquele que esta vindo ao longo da estrada? Carlos: Veja, é o Opim!!! Opim: Vejo que conseguiram os três objetos mágicos... Foram mais longe do que imaginei... Muito bom! Mane: Me diga, você sabe algo sobre esse ritual que os minotauros estão fazendo? Opim: Olhe, não estou aqui para contar historias, e sim para o mostrar a saída dessa caverna. Bom... Você ai... Como se chama? André: Me chamo André! Porque? Opim: O que você acha de se tornar um Guerreiro do reino? André: Você esta falando serio? Opim: Lógico, o Oráculo não é o único que tem a magia de dar vocações a moradores da ilha! André: Lógico que eu aceito... Meu nível é muito baixo... Mas eu não recuso! Opim: Você, como se chama? PdM: Erestaucio... Opim: Gostaria de se tornar um mago? PdM: Nossa... é lógico... é o que eu sempre quis... Opim: Muito bem. Erestaucio, pegue a mochila com as runas e o cajado mágico. E você André, pegue a espada de fogo. Ambos obedecendo, pegaram imediatamente o que foi pedido. Opim, com suas palavras mágicas e um mexer de dedos, tornou o Pai do Mane um Mago e o André um guerreiro. Opim: Agora que vocês já estão prontos, Erestaucio, leia esse livro... você aprendera a fazer uma magia de luz para guiar seus caminhos e de localização para encontrar os desejados amigos. Treine-os para ficar cada vez mais poderoso. Enquanto a você André, treine com sua espada de fogo, sua chama se acendera conforme seja necessário, aumentando seu poder. Bom, enfim, vocês ainda não fizeram suas 5 missões, ainda faltam 4. Devo assumir que esta seria a mais difícil, mas isso os ajudariam... Bom, a próxima missão de vocês é encontrar um anti... ughhhhhhhhh aaaaaaaaaaaaaaa!!!! Derrepente Opim se deita no chão e começa a tremer violentamente cuspindo sangue para os lados. Ele havia sido atacado por um raio. Rapidamente Mane olhou para traz e viu o temido... minotauro mage, o qual deu uma simples risada e desapareceu num piscar de olhos. Carlos: Que droga foi essa? O que o atingiu? Foi à mesma luz que vimos matar o primeiro minotauro que encontramos naquela sala. Mane: Foi o minotauro mage, dessa vez eu vi!!! Ele naquela hora não queria matar o minotauro, e sim nos matar!!! Realmente, estamos no labirinto dele, no jogo dele. Não temos escolha à não ser... jogar! PdM: Vou estudar esse livro!!! Usarei o poder de localização no minotauro e do Couto. Enquanto isso o Pai do Mane se concentra para aprender as magias, sentado no chão da caverna, que por sinal estava quente, porcausa da espada do André, o que treinava com o mane e Carlos. Apos algum tempo de 3 horas, estavam treinados o suficientemente. PdM: Já estou bom em localização e na magia de iluminação: "utevo gran lux. Vamos atraz dos minotauros e recuperar o Couto daqueles minotauros!!! André: E eu quero ter o prazer de cortá-los com minha espada de fogo... usarei todo minha raiva de vingança da morte de minha mulher e filha para destruir os malditos... grrr Mane: Pois então... acho que... a guerra começou!!! É HORA DO ATAQUE!!!!!!!!!!!! VAMOS VENCER EM NOME DO OPIM, DA MINHA MÃE, DE TODA CIDADE DE ROOKGAARD E DE TODOS QUE DE ALGUM FORMA MORTOS POR ESSES DESGRAÇADOS!!!! Equipados, o Pai do Mane usa seu poder de localização para encontrar a localização do Couto. Ambos atraz deles, vão à direção onde ele aponta. Até que chegam em uma sala. Lá dentro a muitos minotauros, e o Couto com seus 2 amigos desmaiados e deitados, cada um em uma cama no centro, e os minotauros faziam uma espécie de macumba em volta dele. Sem paciência o Mane pula no meio deles e saca sua espada. Igualmente faz todos os outros. O Mane, diferente de no inicio, já havia evoluído muito seu poder de luta, sendo capaz de matar um minotauro em menos de um minuto. O ruim era que eram muitos. Apanhava muito, sentiu seu braço sendo espancado pelos milhares de minotauros em sua volta. Logo viu uma bola de fogo vindo em sua direção. Rapidamente abaixou e ouve uma explosão no chão, acertando todos os minotauros em sua volta os jogando longe. O Pai do Mane, por mais que tentasse guardar as runas, tinha que usar para salvar os amigos. Com seu cajado era capaz de machucar bastante os minotauros, porem era violentamente acertado por chifres que vinham de todos os lados. André, furiosamente derrotava os minotauros com apenas um golpe. Sua raiva fez o fogo da sua espada ir além do normal, fazendo explosões enormes de fogo, acertando violentamente os minotauros. Por mais que fosse alto seu ataque, sua defesa ainda era um problema, e acabou sendo ferido ferozmente no braço esquerdo, fazendo sair muito sangue e o deixar mais fraco. O Carlos, por mais que quisesse, não conseguia atingir os minotauros de uma forma razoável, apanhava muito, mas isso não evitou que continuasse lutando. Era uma guerra. Centenas de minotauros contra 4 poderosos rapazes! Enquanto isso, na observação, via o que ocorria o minotauro mage, sempre achando graça de tudo... Mane muito machucado começa a perder as forças. As runas de seu pai ja estavam acabando, e o mesmo teria recebido ferozmente um ataque de um minotauro pelas costas. O André estava cada vez mais fraco com seu braço quase decapitado e o fogo da sua espda cada vez menor. E o pobre do Carlos, ainda apanhava violentamente. Será que ainda há esperança? ------------------------------------------------------------------- Ultimo Capitulo: Capitulo 7 - A profecia foi cumprida, descanse em paz Rookgaard!!! Tudo ja parecia sem esperança. Todos pareciam estar derrotados. Até que um grito surge no meio daquela batalha. Era do Couto Jovidam! CJ: PAREMMMM!!!! NÃO PERMITIREI QUE MACHUQUEM MEUS AMIGOS!!!! Minotauro: Com você acordou? Volte a dormir rapaz!!!! CJ: CALE A BOCA!!! Imediatamente o Couto lançou uma espada da sua bainha derrotando o minotauro com apenas um golpe. Imediatamente os 2 outros amigos deles se levantam, meio que incociente logo se manifestam: Lordfire'Rook: O que esta acontecendo? Dallheim: Ai minha cabeça, onde estou? Epa! São aqueles minotauros Couto... vamos derrota-los! Lordfire'Rook: Isso mesmo... agora eles me pagam pelo que fizeram comigo!!! Os 2 sairam do pedestal onde estava e foram para ao lado do Couto. Couto: Morreremos aqui, mas para ajudar nossos amigos! Lordfire'Rook: Vocês me pagam minotauros desgraçados Dallheim: Irão ser destruidos imediatamente!!!!! Logo Dallheim e o Lord sacam suas espadas, e atacam bruscamente os minotauros, os quais consegue destruir alguns, mas logo perdem suas forças. Mane e seus amigos continuam a ser atacados bruscamente pelos minotauros. Mane: Coutoooo!!! Couto: Agora ja chegaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Rapidamente ao dizer isso, sua espada se transformou, mudou sua forma, como se ele e sua ira tivesse se juntada em apenas um. E surgiu em sua mão a lendaria espada da fúria! Rapidamente isso tambem aconteceu com a espada do Dallheim, Lord e do Mane. Couto: Agora vocês me pagam!!!!!! Com apenas uma rajada, Couto destroi todos os minotauros rapidamente. Porem isso fez que gerasse um grande terremotro. O minotauro mage ao ver isso, sai imediatamente e entra por um portal. O terremoto continuava e tudo começava a ser destruindo. Mane: O que é isso? Que poder que possui esta epada... Não consigo a controlar. Lordfire'Rook: Temos que sair imediatamente daqui, vamos! Opim: Esperem, não vão ainda! Mane: Opim??? OPIM!!!! Apareceu a voz do Opim ao longo do salão repleto de minotauros mortos. Opim: A profecia foi comprida. Finalmente foi manifestado os 4 guardiões humildes, aguardado a muito tempo: Couto Jovidam, Lordfire'Rook, Dallheim e o Mane! Mane: Eu... mas como? Porque eles não me pegaram? Opim: Acredito que não ficou sabendo da invasão em rookgaard. Aquela invasão foi para pegar você. O minotauro mage já sabia que estava em seu labiinto, mas os minotauros não, e ainda foram para conseguir alimento. Mane: Que desgraçados... Opim: André e Erestaucio, ao entrar naquele portal, serão teletrasportados para Carlin. Infelizmente rookgaard não aceita nenhuma pessoa com vocações aqui. Mane, Couto, Carlos, Lord e Dallheim... Destruam o Minotauro Mage! Rookgaard depende de vocês. Esse lugar aqui, sera lacrado por milhões de pedras desse terremotro. Quero que chamem esse lugar de labirinto da furia (Mazy of Fury), pois este labirinto, foi repleto de maldade e escuridão. A pouca parte dele que não sera destruida, sera tomada pelos esqueletos dos minotauros mortos. Acredito em vocês e boa sorte! Mane: Ok, agora é melhor irmos logo, antes que tudo desabe em cima da gente! Adeus pai! PdM: Adeus Filho... Opim: Espere Mane!!!! Sua missão já acabou em rook. Você devera partir para Carlin! Mane: Como é que é? Opim: Após derrotar o minotauro mage, devera seguir para Carlin, derrotar o proximo Guardião Sagrado. Você e seus amigo. Mane: Porque eu? Eu sou de rook, não quero deichar de ser. Opim: Você não deichara de ser. Fale com a Amber! Depois da invasão ela ficou escondida em uma parte em baixo da biblioteca da cidade. Ela a levara para Carlin de graça. Mane: Amber? Mas... poucos confiam nela... e ela não fabricava chapeus? Opim: Por muito tempo ela esteve aqui com apenas uma missão. Teletranportar jogadores da ilha para a cidade e vice-versa. Porém so faz isso se realmente necessario. Ela ja sabe que devera o fazer. Por isso não é muito bem relacioada com os outros... eles acham que ela pode ser um perigo para rookgaard. Mane: Ok, assim o farei! Opim: Jogarei em ti mane, meu espirito. Você ira para a cidade como rooker, mas sera melhor que qualquer vocação. Sera uma especie de mistura, otimo ataque e defesa, otima sabedorioa de magia e otimo arquero. Mane: Obrigado Opim. Opim: Dallheim, você devera ser o guarda de rookgaard. Não permita que ninguem inferior aos 15 anos de rookgaard passe pela ponte. Caso aconteça qualquer invasão você e sua spike sword dará um jeito. Dallheim: Certo, assim irei. Metade da Caverna já havia sido destruido. Andre e o Pai do Mane, ja haviam entrado no portal, indo pra Carlin e provavelmente esperando o Mane. Couto: Vamos entrar juntos, ok? Um... dois... TRÊS!!!! Na mesma hora eles apareceram em uma sala com um portal. Dentro de uma sala estava o Minotauro Mage. Minotauro Mage: Vocês não poderão me derrotar tão facil. Ao dizer isso, todas as portas da sala se abrem, e alguns minotauros surgem. Mane, Lord, Dallheim e Couto tiram sua espada da furia e com apenas um ataque cada, destroi todos os minotauros. Minotaura Mage: Isso não é possivel!!! Como pode??? Couto: Você ficara preso aqui para eternidade minotauro mage. Não iremos o matar! Lord: O portal que permitia que você vinhesse para esse mundo foi lacrado. Dallheim: Trancaremos você nessa sala para a Eternidade com uma chave. E ela ficara muito bem guardada! Minotauro Mage: Nãooooo Mane: Você foi derrotado! Quando viram-se e vão saindo da sala, o minotauro mage lança uma rajada de fogo, que é recebido pelo mane, com uma runa de bola de energia negra, que atravessa sua rajada e acerta o minotauro mage bem na cara, o fazendo cair e deichar muito machucado. Mane: Estive preparando ela, desde que chegamos nessa sala... sabia que ia precisar. Chamam ela de sd... Couto Jovidam: Boaaa Mane!!! Após sair da sala e trancar as portas onde estava o minotauro mage, mais uma coisa foi descoberta. Carlos: Veja só... aqui é o Salão dos Minotauros, onde existe a missão de uma espada chamada carlim e uma vara de pesca... não é? Lord: É sim Carlos. Couto: Carlos... tome essa espada! Carlos: Mas... é a espada da furia... ela é sua, você é o humilde. Couto: Eu sei, mas não vou ficar em rook. Quero me tornar um guerreiro da cidade como sempre sonhei. Quero ajudar você Mané, a achar os Guardiões Sagrados. Carlos: Tem certeza...? Bom, então obrigado. Couto: Treine bastante com sua espada. Use sua força e raiva nela que seu poder almenta. Sei que estara segura com você. Carlos: Claro. Couto foi ao Oraculo, pedir que o transformasse em guerreiro, mas tambem que partisse com o mane até Carlin, para o fazer compania. E assim foi permitido. Depois de receber a noticia da morte do seu pai, Couto, sabia que sua missão ja estava mesmo além de rook. Viver vingando a morte de seu pai. Foram até Amber e pediram para que os levasse até Carlim. Seguiram ate sua jangada e la subiu Mane e Couto, juntamente com a Amber. A corda foi desamarrada, e a jangada lentamente começava a partir. Iam ao encontro do Pai do Mane e do André. Carlos: Adeus Mane!!!! Até breve!!! Estaremos esperando você!!! Lordfire'Rook: Fiquem tranquilos que protegeremos Rookgaard com todas as forças, e em quanto estivermos aqui ela ficara segura. Mane: Eu sei que vai! Dallheim: Boa Viajeeem!!!!! Mane: Eu ainda voltarei!!! Enquanto o Barco se distanciava de rookgaard, Mane ria... tudo havia passado tão rapido... não tinha dado tempo de se despedir dos amigos... seu espirito de aventura era mais forte. Deitado, olhava pro sol forte que batia em seu rosto e sabia que rookgaard estaria protegida. A professia foi comprida. Descanse em paz rookgaard. --------------------------------------------------------------------------- Este foi o final da serie "Mane de Rook e o Misterio da Caverna Perdida", sua localização em rookgaard, e a caverna perdida o Mazy of Fury. Foi apenas uma historia inventada 100% montada por mim. Não seria a historia correta do mazy of fury, ou qualquer coisa parecido. Os personagens: Mane de Rook, Couto Jovidam e Lordfire'Rook, são personagens verdadeiros, Mane e Couto de Honera e Lordfire'Rook de Eternia (creio eu). Após final desta serie, pode-se surgir muitas duvidas não solucionadas sobre a serie, partes subjetivas e partes do quebra-cabeça a qual alguns talvez não encontraram, como a morte da mão do Mane, Como entraram na caverna, entre outros. Para isso e outros, Estou criando o "Estudo Completo do Roleplaying Mane de Rook e o Misterio da Caverna Perdida". Após alguns dias estarei postando. Espero que tenham gostado. Perceba que o final ainda deicha uma continuação, o qual sera feito ao proximo Roleplaying do Mane de Rook, com sua aventura em Carlin, juntamente com o Couto, André e Seu Pai, além de novos personagens que sugirão. Antes de criar o Roleplaying, desejo ver o andamento dessa hitoria (portanto postem sua opinião ;D), e ler um pouco sobre a historia de Carlin. Abraços.
  7. Este pack possui mais de 4.000 sprites do avatar, muitas são do meu antigo projeto OTAvatar e algumas são do atual projeto Avatar Online. IMAGENS: OBS: São apenas algumas das 4.000 que há. DOWNLOAD
  8. Olá gente é o seguinte, to usando otclient e to colocando sons nas citys do meu server, e eu queria saber como eu poderia colocar 2 tipos de sons ( Musicas ) nas mesmas coordenadas, tipo, a pessoa vai nessa tal posição " X, Y, Z " ai quando a pessoa entra nessa tal coordenada começa a tocar uma musica, e quando a pessoa sair e entrar nessa mesma coordenada começa a tocar outro tipo de musica, sendo que na mesma coordenada da 1° musica ^^ script localizada na pasta Mudules/Rcsound SOUNDS_CONFIG = { soundChannel = SoundChannels.Music, checkInterval = 500, folder = 'music/', noSound = 'No sound file for this area.', } SOUNDS = { -- PVP {fromPos = {x=936, y=1025, z=13}, toPos = {x=952, y=1043, z=13}, priority = 1, sound="Balada.ogg"}, {fromPos = {x=953, y=1016, z=13}, toPos = {x=990, y=1047, z=13}, priority = 1, sound="Pvp.ogg"}, } ---------- -- Sound local rcSoundChannel local showPosEvent local playingSound -- Design soundWindow = nil soundButton = nil function toggle() if soundButton:isOn() then soundWindow:close() soundButton:setOn(false) else soundWindow:open() soundButton:setOn(true) end end function onMiniWindowClose() soundButton:setOn(false) end function init() for i = 1, #SOUNDS do SOUNDS[i].sound = SOUNDS_CONFIG.folder .. SOUNDS[i].sound end connect(g_game, { onGameStart = onGameStart, onGameEnd = onGameEnd }) rcSoundChannel = g_sounds.getChannel(SOUNDS_CONFIG.soundChannel) -- rcSoundChannel:setGain(value/COUNDS_CONFIG.volume) soundButton = modules.client_topmenu.addRightGameToggleButton('soundButton', tr('Sound Info') .. '', '/images/audio', toggle) soundButton:setOn(true) soundWindow = g_ui.loadUI('rcsound', modules.game_interface.getRightPanel()) soundWindow:disableResize() soundWindow:setup() if(g_game.isOnline()) then onGameStart() end end function terminate() disconnect(g_game, { onGameStart = onGameStart, onGameEnd = onGameEnd }) onGameEnd() soundWindow:destroy() soundButton:destroy() end function onGameStart() stopSound() toggleSoundEvent = addEvent(toggleSound, SOUNDS_CONFIG.checkInterval) end function onGameEnd() stopSound() removeEvent(toggleSoundEvent) end function isInPos(pos, fromPos, toPos) return pos.x>=fromPos.x and pos.y>=fromPos.y and pos.z>=fromPos.z and pos.x<=toPos.x and pos.y<=toPos.y and pos.z<=toPos.z end function toggleSound() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() local toPlay = nil for i = 1, #SOUNDS do if(isInPos(pos, SOUNDS[i].fromPos, SOUNDS[i].toPos)) then if(toPlay) then toPlay.priority = toPlay.priority or 0 if((toPlay.sound~=SOUNDS[i].sound) and (SOUNDS[i].priority>toPlay.priority)) then toPlay = SOUNDS[i] end else toPlay = SOUNDS[i] end end end playingSound = playingSound or {sound='', priority=0} if(toPlay~=nil and playingSound.sound~=toPlay.sound) then g_logger.info("RC Sounds: New sound area detected:") g_logger.info(" Position: {x=" .. pos.x .. ", y=" .. pos.y .. ", z=" .. pos.z .. "}") g_logger.info(" Music: " .. toPlay.sound) stopSound() playSound(toPlay.sound) playingSound = toPlay elseif(toPlay==nil) and (playingSound.sound~='') then g_logger.info("RC Sounds: New sound area detected:") g_logger.info(" Left music area.") stopSound() end toggleSoundEvent = scheduleEvent(toggleSound, SOUNDS_CONFIG.checkInterval) end function playSound(sound) rcSoundChannel:enqueue(sound, 0) setLabel(clearName(sound)) end function clearName(soundName) local explode = string.explode(soundName, "/") soundName = explode[#explode] explode = string.explode(soundName, ".ogg") soundName = '' for i = 1, #explode-1 do soundName = soundName .. explode[i] end return soundName end function stopSound() setLabel(SOUNDS_CONFIG.noSound) rcSoundChannel:stop() playingSound = nil end function setLabel(str) soundWindow:recursiveGetChildById('currentSound'):getChildById('value'):setText(str) end
  9. Skill 35x Magic 25x Loot 3x Rookgardem com 5x de EXP. Main Land Começa em 45x Stage vai até 6x. Servidor Aberto Dia 20/02 As 13:00. RetroZeiros CBS Cloud Brasil Servers EVENTO DE ABERTURA! Servidor 100% Retro e OldSchool. Sem Itens Editados. Novas Quests Como POI e Demon Legs e Mais... Varias Raids... Mais de 50 Task.
  10. Gyns Poketibia ______________________ Olá,hoje irei mostrar meus NPC de gym de poketibia 1° NPC Brock Vá em Data/Npc/scripts e crie um arquivo lua com o nome de "Brock.lua" e cole isto dentro: Após ter feito isto vá em data/npc e crie um arquivo xml com o nome "Brock" e cole isto dentro: 2°Npc Mysty Vá em data/npc/scripts e crie um novo arquivo lua com o nome de "misty.lua" e cole isto dentro: Após ter feito isto vá em data/npc e crie um arquivo xml com o nome de "misty.lua" e cole isto dentro: 3°Npc Blaine Vá em data/npc/script crie um novo arquivo lua com o nome de "blaine.lua" e cole isto dentro: Após ter feito isto vá em data/npc/ e crie um arquivo xml com o nome de "Blaine.xml" e cole isto dentro 4°npc koga Vá em data/npc/scripts/ crie um novo arquivo com o nome de "Koga.lua" e cole isto dentro: Após ter feito isto vá em data/npc e crie um novo arquivo xml com o nome "koga.xml" e cole isto dentro: 5° npc Lt.Surge (Já ta ficando chato fazer aqui :X) Vá em data/npc/scripts e crie um arquivo lua com o nome de "surge.lua" e cole isto dentro: Após ter feito isto vá em data/npc e crie um arquivo xml com o nome "Surge" e cole isto dentro: 6° npc erika Vá em data/npc/scripts e crie um arquivo lua com o nome de "erika.lua" e cole isto dentro: Vá em data/npc/ e crie um arquivo com o nome... a se ja sabe cole isto dentro: 7° NPC Sabrina Vá em data/npc/scripts e crie um arquivo lua com o nome "Sabrina" e cole isto dentro: Após ter feito isto vá em data/npc e crie um arquivo xml com o nome sabrina e cole isto dentro: 8° NPC Giovanni Vá em data/npc/scripts crie o arquivo lua com o nome giovanni e cole isto dentro: Vá em data/npc e crie o seu arquivo xml com o nome de giovanni e cole isto dentro P.S:Também funcionara em um server que não tem lvl system porém irá dar um minimo erro na hora de ligar,até.
  11. E AE GAROTADA EKSTIBIANA BEM VINDOS AO SEGUNDO ROUND DA LIGA INTERNACIONAL DE JV CHEQUERS ANTES DE TUDO UMA SINGELA HOMENAGEM AO NOSSO ULTIMO CAMPEAO: E O PARTICIPANTE DE HOJE É ESSE CARA AQUI ELE TENTOU BASTANTE MAS NAO CONSEGUIU TB OLHA SÓ MAS COMO ELE É UM ARTISTA NATO, ELE VAI MOSTRAR O ROUNDHOUSE KICK MUSICAL PRA GALERA E EU NAO DESISTO NUNCA GALERA, OLHA SÓ ESSE CHUTE O CHUTE DA POMBA E PRA TERMINAR COM ESSA PORRA TODA, O MITO DO CAMPEONATO, O CHEINHO MAIS AMADO DO PAÍS, JV CHEQUER POSTEM AI SUAS FOTOS TB OBRIGADO
  12. Experiência: Média~Fácil (Tem Reset System) Catch: Médio Drop: Hard - O jogador ganha experiência a cada ball que for tacada em um pokémon que não tenha sido capturado 1x, após capturar ganha uma experiência e logo após não ganha mais. - Ticket Machine podendo tirar itens aleatórios nela (Donate) - DeathMatch (Evento sobrevivência contra jogadores) - Survival arena (Evento sobrevivência contra pokémons) - Raids System, Evil Dusknoir, Ho-oh, Mewtwo Quest. - Shiny Ditto Memory System, O mesmo só pode ser obtido através da shiny box. - Device System. - Outland com respawn de shinys. - Phenac/Cordova continent(Com respawn de Bosses) - Raid das aves lendárias Moltres, Zapdos e articuno, dando premiação a quem tirar mais dano e quem der o lasthit. - Held System (Tier: 1~7) - Máquina de Fusão de Helds. - Rebirth, Reborn ou Reset System level 500, aumentando status dos pokémons. - Task System in-game. - Mega System ao atacar o pokémon 1x ele tem chance de se transformar em mega. - Duel System com contagem de vitória e derrota. - Sistema de VIP Level 1 ao 12, quanto mais diamantes o jogador botar, mais aumenta o level do VIP (com ganho em experiência e Velocidade). - Contato : https://www.facebook.com/profile.php?id=100011755024014 - Discord : Deyvid#0456
  13. Fala aeee galera do Xtibia aqui quem fala é o Leandro Vezu ( Soni Heria ou Sorcerer10 )..., meu primeiro poste aqui então peguem leve com as críticas.... Galera como já disse antes esse é o meu primeiro poste aqui no xtibia então peguem leve nas críticas..., bom esse mapa que estarei disponibilizando pra vocês e o mapa do tão famoso ROZINX... eu editei ele um pouco (mas como assim edito ele?) eu não modifiquei nada..., eu apenas concertei os bugs dele..., ( a então você tirou todos os bugs dele) NÃO eu não tirei todos os bugs dele, (porra então porque você postou?) por isso eu coloquei 90% sem bugs porque os bugs que foram relatados a mim eu retirei fiz novos bichos, novas caves, fiz a tão famosa village também, {mas ta sem bicho} coloquei os PZs no templo que ele tava sem, na área vip tbm, na amostra vip tbm, ainda falta bichos mas ai e com vocês, se vocês acharem algum BUG no mapa { oque eu tenho certeza que vocês vão achar } entrem em contato comigo através do meu e-mail, porque nem sempre eu posso entra no Xtibia..., { meu e-mail: vezu01@hotmail.com }... ========== Bichos Novos Adicionados ========== SuperNova Hero Icyd Dryn The Ice Boss Laptus Masterick Rabbit of Hell Devil King Of Hell Lumast Event Rudy Algumas fotos dos bichos novos... OBS: dentro da primeira pasta contem um arquivo { bloco de notas } chamado "zsd" dentro dele contem o nome dos bichos que eu fiz... OBS²: A Taxa de detecção do arquivo foi de 2 / 41 ..., segue o scan abaixo. Créditos: Davi Alvares - por fazer o mapa Leandro Vezu - por fazer os novos bichos e retirar os bugs Download Scan
  14. PokeB (Poketibia Base 9.60) Agora OpenSource!!! O que terá: Voar, Montar, Cortar, Teleportar, Quebrar rocha, Nadar, ... Captura de Pokémons - sistema de pokebolas. Nurse Joy - que cura todos os pokémons da mochila de uma só vez. Líderes de Ginásio Evoluções (Pedras evolutivas e Nível) Treinamento Pokémon (boost machine) 151 Pokémons - será a base. Sistema de Pokedex M1 à M12 - ataques dos pokémons. entre outras coisas... Como falado será a 'base' do poketibia! Download: Server: http://www.4shared.com/zip/9FZYhupj/Server_PokeB.html Source: http://www.4shared.com/zip/C3HMIt8_/Sources_PokeB.html Cliente: http://www.4shared.com/zip/Gmhv34hv/OtClient_PokeB.html [novo] Server PokeB 1.0: http://www.4shared.com/rar/PauHbetg/Server_PokeB_10.html? [novo] Cliente PokeB 1.0: http://www.4shared.com/rar/IokY3r3J/OtClient_PokeB_10.html? Conta GOD: Login: admin senha: 123456 SourceForge: SourceForge: https://sourceforge.net/projects/pokeb/ Server poketibia que pode ajudar: Poketibia Ricardo: Server: http://www.4shared.com/rar/ygFwSXUP/Server_Pokemon_Dash_by_Ricardo.html Source: http://www.4shared.com/rar/-OMFGhHg/Sources_Pokemon_Dash_by_Ricard.html PDA: http://www.4shared.com/rar/tSmomesU/Serv_PDA_pro_forum_v_10.html Erondino: http://tibiapoketibia-erondino.weebly.com/ Utilitários: RME: (Windows) http://remeresmapeditor.com/rmedl.php?file=RME-win-2.2.msi Ot Item Editor: http://www.4shared.com/rar/6Y72VWpG/ot_item_editor_960.html Sprite Editor/ Dat Editor: Spr Editor: http://www.xtibia.com/forum/topic/202369-spr-editor-854981-versao-13/ Storms Editor: http://www.xtibia.com/forum/topic/216960-986-storms-sprite-dat-editor/ Ultimate Tibia Editor: http://www.xtibia.com/forum/topic/206196-ultimate-tibia-editor/?fromsearch=1 Dev: http://www.4shared.com/zip/Ug4cmrtA/The_Forgotten_Dev-Cpp.html Outros: SprEx(extrator de sprites): http://knoxstudio.net/jo3bingham/SprEx/SprEx.rar O que foi feito: Imagens: Embreve!!!
  15. Olá pessoal! Eu venho divulgar um server com muitos sistemas interessantes -Icon System- -Cooldown Bar- PXG parecida -Unique iitem com stackable -Serial itens -TV system = PXG sem nome ou barra de health Muitos bugs, mas pelos sistemas seria bom investir. Qualquer interesse só abir um projeto. Estão autorizados, mas pesso que coloque os créditos. Esse server é para projetos para deixa-lo 100% jogavel. Pesso que o tópico seja movido para a area de downloads de server Os addresses do cliente foi muito modificado pelo criador...Já que isso foi alterado, então dificilmente algum player encontrara um bot ou algum hacker...Desistir desse server porque são muitos bugs ¬¬' e não tem source. Outra que o cara que me passou ele me roubou. Download server Clique aqui senha: warlock Não sei postar scan... ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Estou com um projeto de DLL inject para tibia. Se algum programador em C++ estiver afim só me contatar...Consegui fazer algumas coisas no tibia como por exemplo uma barra de contexto igual ao pokemonBro com um programador bom da para refazer toda barra deles ou até melhor...barra de mana ou de Xp. Dispenso curiosos.
  16. Olá, meu nome é Cristofer Martins, sou programador e gameDesigner e atualmente faço parte da equipe Digimon Adventure Online. Estou aqui para apresentar o meu Spr Editor, que desenvolvi para a equipe por que outros editores não eram funcionais/simples o suficiente. Alem disso, vi que não há sprite editores para as novas versões do Tibia, dificultando a inserção/remoção/edição/exportação de Sprites dos novos arquivos SPRs.Alem disso, um outro motivo foi que tive uma pessima experiencia com o Demonic Editor, tentei exportar as Sprites do nosso SPR para uma pasta umas 20 vezes e sempre dava algum erro no meio do caminho. Por isso desenvolvi um Editor eu mesmo. Preview: Funções( no menu ): -Add: Adiciona n sprites ao editor. Basta clicar no add que irá aparecer a janela para você seleciona todas as sprites que você quiser( multi seleção ). Essas sprites serão adicionadas no final da lista de sprites. OBS: As imagens devem ser PNG e o fundo das sprites deve ser transparente, e não rosa, como é de costume. -Replace: Substitui n sprites no editor. Selecione com Ctrl ou até com o Shift as sprites no editor que você quer substituir, depois clique no menu em Replace. Irá aparecer uma janela aonde você seleciona as imagens PNG para serem substituidas. As sprites serão substituidas na sequencia, a primeira Sprite selecionada no editor vai ser substituida com a primeira imagem selecionada na pasta. O progresso do replace pode ser visto na barra de progresso. -Delete: "Deleta" n sprites da lista.Selecione com Ctrl ou até com o Shift as sprites no editor que você quer deletar, depois clique no menu em Delete. Essas IDs das sprites que são deletadas vão aparecer "" e o ID delas, elas são sprites vazias, sem conteudo que você substiuir com novas imagens e assim aproveitar essas IDS que não estão servindo para nada. Export: Exporta n Sprites. Basta selecionar com Ctrl ou com Shift ou clicando na sprite que o editor irá exportar essa sprite com fundo transparente. Você pode facilmente exportar todas as sprites para uma pasta ou apenas aquelas que lhe interessam. O progresso da exportação pode ser visto na barra de progresso. Clear: Limpa a lista de sprites e remove as imagens da memoria. Util para criar um arquivo SPR do zero, por exemplo. Exemplo multi select( para deletar, substituir ou exportar ): Abas Extract/Compile Extract: Nessa aba você clica em SPR file para abrir o arquivo SPR, escolhe a versão dessa SPR ali no "menu" do lado daonde tá escrito "version" e clica em Extract. O programa vai começar a extrair as sprites e adiciona-las a lista( as vezes a lista fica estatica basta clicar nela que ela atualiza com as sprites novas ) e o progresso da extração pode ver na barra de progresso. Compile: Nessa aba você compila as Sprites da lista para um arquivo SPR. Para isso basta clicar em "save" e escolher o arquivo SPR que vai ser salvo, escolher a versão desse arquivo SPR como feito em Extract e clicar em "Compile!". O progresso da compilação pode ser visto na barra de progresso. Outros Search by ID: Pesquisa uma sprite pelo ID. Caso essa id exista na lista, a lista se move até a a sprite. Download: SPREditor Scan: Virus Total Caso você encontre algum bug, reporte nesse topico por favor. Aceito sugestões. Caso exista alguma versão que não seja aceita no editor e você tem a signiture(assinatura) do arquivo spr, poste aqui que eu atualizo o version.ini.
  17. PokeXtibia [PDA OpenSource] *Projeto PDA OpenSource By Taiger/Dudu. Olá a todos, estou iniciando este projeto PDA OpenSource[PDA 1.9 sem level] devido a facilidade ou o costume de se mexer na base PDA, estou disponibilizando as sources do server e cliente de um projeto meu privado. Este projeto esta no começo, adaptei algumas coisas mas ainda falta muita, como estou utilizando a base PDA inicial, esta bem limpa, qualquer um pode editar a seu gosto. Irei trazer updates sempre que puder, e quem quiser ajudar sera bem vindo. Discord do Projeto: https://discord.gg/sHGNdev As informações do servidor por enquanto são as mesmas do PDA by Slicer, apenas adaptei o fly, goback, order e fishing. Como eu disse acima, o projeto esta no inicio, irei trazer updates com frequência. Assim que for atualizando o server irei atualizando o tópico com as devidas informações. Conteúdo do Projeto: *Servidor. *Sources Servidor. *OTCliente. *Sources OTCliente. *Map Editor. *Item Editor. *ObjectBuilder[Editor de sprites] *Dev-Cpp 64Bits[Compilador Server] As sprites usadas no cliente são as do meu server, mas na pasta data/things tem as sprites originais do PDA. Assim que puder trarei tutoriais de compilação do server e cliente. Toda ajuda sera bem vinda. Por enquanto deixarei apenas três imagens, já que é a base PDA e não tem nada de novo,em breve trarei outras. Downloads: >>>Servidor<<< >>>Scan<<< >>>Servidor Source<<< >>>Scan<<< >>>Cliente<<< >>>Scan<<< >>>Cliente Source<<< >>>Scan<<< >>>Remere's Map Editor<<< >>>Scan<<< >>>Item Editor<<< >>>Scan<<< >>>ObjectBuilder<<< >>>Scan<<< >>>Dev-Cpp 64Bits<<< >>>Scan<<< >>>Pasta do Projeto no MediaFire<<< Pasta do projeto no MediaFire compartilhada. Todos os arquivos do projeto serão disponibilizadas la. *Os alertas no scan se referem a falsos positivos, dlls não reconhecidas, baixem se quiser. Patch de Correções: Creditos: Nintendo. CipSoft. Criadores do PDA. Eu Taiger/Dudu Qualquer um que tenha contribuído com alguma coisa no projeto.(Não lembro de todos) Se você fez algo entre em contato para eu colocar os devidos créditos.
  18. alguem sabe alguma base open source com level system pra me disponibilizar ??
  19. -> [iP]: HeroesOT.com (ou entre pelo client próprio que pode ser baixado pelo site) -> [Versão]: 8.6 -> [site]: http://HeroesOT.com -> [Facebook]: https://www.facebook.com/TheHeroesOfTimeOT/ -> Para magias novas, diga: !spells -> Para comandos novos, diga: !commands Temos muitos monstros, magias, items, quests, sistemas, eventos (todos os dias), comandos unicos, novos, editados, e um mapa unico, inovador, editado e totalmente diferente. Caso queira entrar pelo CLIENT PROPRIO ao inves de entrar pelo Tibia, baixe no site no botao DOWNLOAD
  20. Bom já existe um Sistema de tm no forum porem o meu é diferente. Vamos lá!! Bom Funciona assim: Cada Pokemon Pode Ter 3 TMs Adicionadas, OBS: Se O Pokemon tiver 12 magias ele pode ter 15 se voce adicionar 3 TMs nele. Como Usar O Sistema: Bom Basta Seguir o Tutorial e O Comando para Usar eu Recomendo que coloquem em Hotkeys na parte Shift+f1,Shift+f2,Shift+f3 Coloque os Seguintes Comandos tm1,tm2,tm3 OBS: a TM Nao Substitui Magia e Sim Adiciona , Por isso Vai por sequencia se voce usa a primeira tm no seu pokemon, para usar ela voce vai usar o comando tm1. se voce usa a segunda tm no seu pokemon para usar ela voce vai usar o comando tm2 mesma coisa com o tm3 Lembrando que Já possui as 50 TMs funcionando perfeitamente Vamos ao Tutorial: 1°: Crie um Arquivo Em "data/action/script" Chamado tm.lua e cole este script Dentro: Agora em Data/Action/Action.xml voce vai por a seguinte tag: <action itemid="12595-12644" event="script" value="tm.lua"/> Bom Recomendo voce por esta tag no ORDER 2°: Vá em Data/Lib/Crie um Arquivo Chamado "tm lib.lua" e cole o seguinte script dentro dele: 3°: Agora vá em data/talkaction/script/ Abra seu move1.lua e apague TUDO que estiver dentro e cole isto: 4°: Agora em Talkaction/Script/ Apague Tudo que estiver dentro do Seu "cd.lua" e cole isto dentro: 5°: Agora em Data/Talkaction/Talkaction.xml Coloque estas tags: <talkaction words="tm1" case-sensitive="no" event="script" value="move1.lua"/> <talkaction words="tm2" case-sensitive="no" event="script" value="move1.lua"/> <talkaction words="tm3" case-sensitive="no" event="script" value="move1.lua"/> 6°: o item.otb e item.xml (é recomendado baixar) Apois baixar voce vai pegar o item.xml e o item.otb e vai copiar eles e depois vai em data/item/apaga o item.otb e o item.xml e cola o item.otb e o .xml que voces baixaram. neles possui as tms adicionadas ao server (as 50) e no .xml ta com o nome direitinho, das 50 tmb Link para Download: http://www.mediafire...e54ldx6gw14fo3u Bom o Sistema esta pronto Agora vamos para a Parte do Client: Eu Vou Postar o Link do Client do Meu servidor ai Voces Pega a Tibia.dat e Tibia.spr e Utiliza em seu client bom o client ja esta com sistema de taunt, novas sprites novos flys boost stone, e as 50 TMs Link Do Client: http://www.mediafire...6w2ead2c5wrwj9v Bom ai esta o sistema de TM. Caso alguem tenha duvida so perguntar aqui no topico! Creditos: Criador do Script: ZarefShirou Edito:DinoAdmin
  21. Olá pessoal! Como você provavelmente sabe, em 26.12.21 o último servidor "Fun" inicia e se você seguiu nossa discórdia (o que você está convidado a fazer!). Discord - DC Link Você sabe com certeza que prometemos a você o log de mudanças uma semana antes de o servidor iniciar. Este dia acabou de chegar. O dia em que compartilharemos os resultados do nosso trabalho com você, nos últimos meses. Antes de começar a ler o changelog, gostaria de acrescentar que Aprendemos com o início de s2 e não vamos escrever aqui coisas que virão no decorrer da edição. Isto é lista de coisas que entram em jogo no dia do início. Claro, estamos felizes em compartilhar com vocês o que planejamos adicionar após o início, mas Queremos evitar acusá-lo de prometer muito e nada sairá disso. Novo motor! Vamos começar com a mudança maior e mais difícil (para nós), ou seja, a transição para um novo motor. Não é uma mudança que adiciona novo conteúdo, não é um novo monstro ou busca, mas em nossa opinião é a mudança mais importante. O que significa mesmo que mudamos para um novo motor? Para você uma jogabilidade mais suave (a diferença no ping e na suavidade de todo o jogo é perceptível a olho nu) para nós abre novas possibilidades. Coisas que eram complicadas e demoradas de fazer no motor antigo e mal otimizadas no novo motor são feitas de forma muito mais rápida e fácil, pois algumas coisas já estão prontas e integradas ao motor. Infelizmente, mudar para o novo motor é equivalente a mover todos os scripts do antigo para o novo, o que consome muito tempo e não descartamos a possibilidade de erros (embora, claro, façamos o nosso melhor para mantê-los tão poucos quanto possível). HD Graphics "New" Pvp equilibrado! Vamos começar com o equilíbrio. Como você provavelmente sabe há algum tempo, houve testes de pvp abertos com os quais estamos bastante satisfeitos e achamos que o equilíbrio está feito melhor do que nunca. Se você quiser ler os changelogs exatos, indico os tópicos criados para essa finalidade: Link 1 Link 2 Todas as alterações incluídas nas postagens acima foram feitas em algumas das alterações que decidimos fazer após a conclusão dos testes, a saber: Goku +500 hp para a última transação Brolly ki dmg +3% A adivinhação de Bardock reduziu o tempo de relva de 30 para 20 segundos Tempestade de meteoros Bardock giga -2% dm Gohan ki dmg +2% Área de destruição da célula no disco +1 sqm Janemba melee dmg -3% Janemba 2000 hp da última transa transferida para a transa renascida C18 -5% ki dmg Guerreiro Namek chobakuretsumaha + 2% dmg O refrigerador abso mudou de 7% ki 7% corpo a corpo para 5% ki 7% corpo a corpo O freezer abso mudou de 5/5 para 6/6 Claro, uma das principais mudanças é a nova transformação (transformação de deus). Para usá-lo, temos que atingir 750 lvl e fazer uma missão (você lerá sobre isso em breve) New Planet-M2 Estamos obviamente falando de m2 e não é pequeno planeta, porque m2 é mais extenso do que qualquer um dos planetas gt (imegga, behey, kelbow, giants, lude). Os agradecimentos pela criação da versão original do mapa são devidos ao Vicodin, sem ele m2 certamente não seria tão bom quanto parece agora. Para entrar no planeta m2 temos que renascer, encontraremos ali muitos novos oponentes da missão de desafio e ... New Sagas GT; Não é uma, duas ou três, mas 14 novas sagas, é claro, todas compatíveis com o tema do Dragon Ball GT. Além disso, as sagas anteriores foram enfraquecidas. Como ainda temos um bom pedaço de sagas do DB GT sobrando, não queremos uma situação em que a última saga mate 1000 buu lvl por acertos. Sagas equilibradas: Enfraquecemos um pouco a saga para os renascidos: Todas as sagas para Ledgic -4% dmg Ledgic - 8% dmg Sagas On Giant -8% dmg Sagas em Kelbow e Behey -10% dmg Regeneração de Sagas -20% HP de Sagas Guardiões Don Kea de 8/10/13 kk a 7/9/11 kk Vento de 15 kk a 13 kk Sheela de 20 kk a 15 kk Ledgic de 50 kk a 28 kk Gigante irritado de 30 + 35 kk a 20 + 25 kk Zunama de 50 kk a 40 kk Para Irmãos de 20/20/20 kk a 20/23/26 kk e cura nerfada Melhorar a economia do jogo: Não estávamos satisfeitos com o estado da economia no servidor, então confundimos um pouco aqui também. A melhoria da economia consiste em muitas pequenas mudanças para melhorar a situação no jogo. Nomeadamente: Adicionando pontos de coleta diários (você lerá sobre isso abaixo) Revisão de itens, você pode ler sobre aqui> Changelong Items Adicionando novos itens de criatura e não 1 ou 3 e um monte de itens que não necessariamente precisam (mas podem) ser usados para missões e seu único uso será vender para npc Mudanças nos preços dos itens nos EUA. Você pode ver a lista de preços completa em nosso novo wiki de links: Sellior List / Giant Hunter List . Aumente a queda de zeni dos mobs de yeti para cima Mudanças nos itens descartados: Aniquiladores, Hiper aniquiladores e Aniquiladores Finais não deixarão mais itens saiyan Oozaru blindado reduziu drasticamente os itens drop saiyan Adicionados novos monstros gerais saiyan que irão soltar itens saiyan Reduziu drasticamente a camisa e turbante com efeito de chuva com Biotsufule Removendo botas de névoa de aranhas gigantes Reduzindo as pernas místicas dos Super Sayians Removendo gotas de luva nebulosas dos Aniquiladores Finais Reduzindo armas místicas de droprate com Cooler, Brolly, Janemba, Super Saiyan Remoção do glover místico cai de c13 Adicionados novos monstros Namek Escolhidos, dos quais podemos saquear a bola mística Itens Kibito : Remoção de botas kibito como recompensa de nível As botas Kibito não saqueiam mais com a Salamander Camiseta kibito droprate drasticamente reduzida com biotsufule Pernas de kibito droprate drasticamente reduzidas com c13 Adicionado um novo protetor de monstro do céu, a partir do qual podemos saquear um conjunto de kibito Máscara Biotsuful que reduz o efeito do biotsufull Armadura destruidora, redução de droprate forte com super destruidor Prego, olho de robô, trilha de lagarta, gota de aumento de parafuso O cinturão de esmeralda não é mais saqueado de Super Elder Namekians Adicionado o novo monstro Namek Fiighter do qual podemos obter Esmeralda Belta Jigoku goz definido como droprate levemente reduzido com Hell Beasts Remoção do cinto mágico de excrementos de Super Saiyans, Kadish e Evil Kadish Conjunto Namek + Conjunto Tenshin + Redução de droprate Conjunto Samurai Itens Goku droprate redução com Super Saiyan Aumente ligeiramente as quedas de itens kaddish Aumente ligeiramente o penteado da sereia e o cacho de cabelo kaddish com o Kaddish malvado Removido o saque de armas do Mal Kaddish dos monstros Reduzindo a contaminação das peles de salamandra com bestas do inferno Uma redução significativa na queda óssea Redução significativa de grandes quedas ósseas do Triceratops Gigantesco Reduzindo gotas de bandagem de múmia Bola verde muda o nome para bola kaddish e remove-a como recompensa da missão de rebelião e adiciona-a às gotas kaddish O preço dos cristais místicos aumentou de 11 cc para 18 cc Agora temos 4 cristais místicos em vez de 1 para turbante místico Novos monstros: muito tempo com o novo planeta e a extensão de namek, temos um total de 11 novos monstros! Novos itens : Existem centenas de novos itens, de todos os tipos de criaturas, passando por itens de missão e novas peças eq. Conjunto Sigma Manto de sábio Namek Whis Rod Cinto esmeralda aprimorado Pedra Kadish e muito mais! Sistema de atualização: As categorias de itens no sistema de atualização foram redistribuídas e agora encontraremos muito mais itens nas categorias 1 e 2 e muito menos na categoria 3, o que tornará muito mais fácil melhorar o eq nas fases inicial e intermediária do jogo. Além disso, a partir de agora, bolas e explosões exigem 2x mais itens para serem atualizados! Novas missões: Definitivamente, a maior e mais importante missão aqui é a God Quest, que temos que completar para usar a última transformação. A missão é muito complexa e interessante. Infelizmente, muitas pessoas podem ficar um pouco desapontadas com o fato de a missão ser diferente do DBS do anime. Decidimos fazer isso porque fazer uma missão 100% compatível com anime não se pareceria com mais nada e copiar o que você pode ver em outros ots. Também não queríamos misturar e fazer uma busca meio a meio, que é 50% anime e 50% anime que inventamos, porque ficaria no mínimo estranho, mas espero que goste tanto da missão que você não ficará desapontado com a falta de conexões com anime. Nova busca de energia com falta de lude Duas novas missões por m2 Nova busca por whis rod Nova missão na armadura Kaddish Nova missão para obter itens Kaddish do mal Missões de mudança: Algumas das missões simplesmente davam prêmios terrivelmente inúteis e a única razão para fazer as missões era o status de pontos e hp. As mudanças não são enormes, mas espero que tornem as missões mais divertidas. Quanto ao que exatamente mudamos nas missões, você deve ver por si mesmo Erdas após a morte: Estamos cientes do fato de que nosso sistema pvp não foi 100% desenvolvido. Embora saibamos que algumas pessoas gostaram muito, decidimos que precisamos mudar algo: O limite de frete para a caveira vermelha foi aumentado para 15 O limite de fragmentos da caveira negra foi aumentado para 23 Após a morte nunca perdemos o eq Até 150 lvla, não perdemos um expa após a morte por karma bom / neutro Mais de 150 lvla para morte em um feed bom / neutro, perdemos exp de 20 a 60% dependendo do lvla Se formos mortos por um jogador com 250 lvel a mais não perdemos o expa A regra acima não se aplica se tivermos um scully ou se nosso nível for superior a 450 No karma ruim, perdemos a expa como temos até agora (mas não perdemos eq) Quando temos caveira vermelha, a queda de expa é triplicada Duas vezes por dia podemos comprar uma bênção (do npc lejous depois de terminar uma missão com ele). Bless nos protege completamente da queda do expa no bom karma. Você não pode comprar uma blessa mais de 2 vezes ao dia. Sistema de coleta diária: O sistema de pontos: a maioria de vocês provavelmente conhece nosso sistema de coleta diária. A maioria de vocês provavelmente também sabe que não era inteiramente lucrativo. Nós adicionamos um ponto chamado pontos de coleta ao sistema, para o qual você pode comprar coisas muito valiosas de algum npc misterioso. Quanto mais difícil a tarefa, mais pontos você ganha, e quanto ao próprio npc, onde você pode trocar esses pontos por prêmios, ele tem duas ofertas distintas: Oferta regular - uma oferta regular de itens que você pode comprar a qualquer momento da npc (claro, se você tiver pontos suficientes para isso) Oferta semanal - uma oferta semanal diferente para cada jogador. Quando perguntamos ao npc sobre nossa oferta semanal pela primeira vez, ele escolherá 3 itens de todo o conjunto de itens da oferta e apenas esses 3 itens (embora não sejam apenas itens poderão ser comprados esta semana. gostar muito da oferta, podemos trocá-la gratuitamente uma vez por semana. Se gostarmos muito da oferta, mas infelizmente não poderemos ganhar pontos por algo que queremos comprar em uma semana, podemos manter a oferta para a próxima semana. claro, também de graça Sistema Bestiário: Novo sistema que consiste em desbloquear entradas no bestairius (guia separada no jogo) com um scouter. Assim que tivermos um mafioso no bestiário, podemos (matando um determinado monstro) desbloquear bônus neste mafioso. Por exemplo (números aleatórios) Yeti Estágio 1: Matar 500 - recompensa + 5% de exp para o yeti Estágio 2: Mate 1200 - recompensa + 5% caindo com yeti Estágio 3: Mate 2500 - recompensa + 10% de exp e drop de yeti Estágio 4: Mate 5000 - recompensa +2 pontos de cobra Esta é atualmente a versão inicial do sistema e é possível que o expandamos muito mais no futuro. Wiki Link Bestiário> Bestiary System Itens lendários (sistema de raridade): Você se lembra quando eu prometi que não adicionaríamos informações aqui sobre coisas que não seriam no início? O sistema de raridade é algo em que estamos trabalhando atualmente, mas não podemos prometer que ele chegará no dia de início. Isso é algo que talvez não possamos fazer, mas se você não vir no dia de início, certifique-se de que acontecerá em breve. Sobre o que é esse sistema? Quando o item cai do mafioso (falamos sobre partes do equipamento, como cinto ou espada), temos uma chance de que este item seja "único", ou seja, terá a chance de aparecer em nosso eq com uma das três adições : CRUA ÉPICO LENDÁRIO Se você tiver sorte e conseguir montar tal item, poderá desfrutar de estatísticas adicionais sobre este item em particular. Acrescentarei a isso que nem todos os itens do lendário serão os mesmos sobre eles. Podemos atender uma situação em que temos, por exemplo, 10 cintos mágicos e cada um deles é diferente! Achamos que é uma grande variedade, especialmente para pessoas que amam os chamados RNGs e para pessoas que gostam de moer. Mudanças substanciais: Combinando todos os depósitos (exceto para o depósito durante todo o ano) em um Adicionando seleção automática no espaço Bloqueando o uso de hfs em pvp Muitas cidades e lugares (gráfico) Sistema autoloot inteligente (o autoloot agora lançará itens polvilhados onde os mantemos e não em uma mochila melhor) Novas conquistas Sistema de Guilda: Guild System Tamanho de sprites de otimização Adicione 21 novas auras - você pode conferi-las na loja gratuita do jogo Adicionar recursos: logotipo da equipe, nome da equipe, atualização de círculos healthbar + healthbar, mercado Sistema de skins: Duas novas profissões Zamasu (Black Goku) e Krillian Sistema de mercado: E aqui estão algumas imagens do jogo: E muitas outras coisas interessantes que você terá que ver com seus próprios olhos Nós convidamos você!
  22. Salve rapazeada, boa tarde ? estou aqui hoje pra mostrar um ModuleOTC que comprei de um player aqui do forum God Vitor e ele me bloqueou sem passar o script !, porem n foi ele quem fez, n tem creditos Segue os link abaixo ae rapazeada https://www.mediafire.com/file/lwhzxjm42110ct9/modules.rar/file https://www.mediafire.com/file/iersn6ze5844l8c/REEDEM_CODES_SYSTEM.rar/file Segue os TalkActions ai ! <talkaction log="no" words="#@MOD_reedemcode@#" script="REEDEM CODES SYSTEM/Reedem MainWindow - Open.lua"/> <talkaction log="no" words="#@MOD_reedemevents@#" script="REEDEM CODES SYSTEM/Reedem EventsWindow - Open.lua"/> <talkaction log="no" words="#@MOD_reedemdonations@#" script="REEDEM CODES SYSTEM/Reedem DonationsWindow - Open.lua"/> <talkaction log="no" words="#@MOD_reedemothers@#" script="REEDEM CODES SYSTEM/Reedem OthersWindow - Open.lua"/> OBS: NÃO SOU BOM PRA FAZER TOPICO, DESCULPEM !! SE ALGUEM CONSEGUIR FAZER O SCRIPT .lua pro codigo me avisem ! Abraços
  23. Loost

    Tutorial Java

    [Tutorial]Programação em JAVA A Linguagem de Programação Java Índice 1.Introdução 2 2.Histórico 2 3.As palavras que definem Java 3 4.Tipos primitivos 6 5.Tipos Compostos 6 6.Expressões 7 7.Variíveis 8 8.Comandos 9 9.Java e a Orientação a Objetos 10 1.Classes 10 2.Objetos - Instâncias de uma Classe 11 3.Construtores 12 4.Métodos / Mensagens 13 5.Destrutores 14 6.Herança 15 7.Polimorfismo 17 8.Controle de Acesso 18 9.Variíveis e Métodos de Classe 19 10.Classes e Métodos Abstratos 19 11.Interfaces 20 10.Concorrência (Threads) 21 11.Tratamento de Exceções 22 12.Conclusões 24 13.Bibliografia 25 Introdução Nesse trabalho estaremos falando sobre a linguagem de programação Java. É uma linguagem singular dentre todas outras jí que é a única que chamou a atenção de pessoas fora do mundo técnico, o suficiente para que existissem reportagens de mais de 10 minutos em cadeias de divulgação de massa como a CNN. Apesar de todo o alarde, Java não é uma linguagem tão revolucioníria quanto se clama. Muitos dos conceitos implementados estão presentes em linguagens orientadas a objeto modernas, como Eiffel e Modula-3. O que difere Java das outras linguagens é que ela promete portabilidade total e a possibilidade de criação de pígina WWW interativas para a Internet. Java é uma linguagem definida como simples, orientada a objetos, robusta e segura, de arquitetura neutra, portível, interpretada, de alta performance, com suporte a concorrência e dinâmica. Discutirmos o que cada uma dessas palavras querem dizer e olharemos Java como qualquer outra linguagem de programação, à luz dos conceitos e tópicos em linguagens de programação. Java parece ser uma linguagem de programação muito útil e de grande produtividade. Bjarne Stroustrup, o idealizador de C++: "C faz com que seja muito fícil atirar nos próprios pés. C++ faz com que isso se torne mais difàcil, mas quando você consegue, destrói toda a perna." Acreditamos Java que torne muito difàcil atirar na própria perna. Histórico Java originou-se como parte de um projeto de pesquisa que visava a criação de um software avançado que atendesse a uma extensa variedade de maquinírio de redes e sistemas embutidos. O objetivo inicial era desenvolver um ambiente operacional pequeno, confiível, portível, distribuàdo e que operasse em tempo real. Inicialmente, a linguagem escolhida foi C++. Porém, a com o passar do tempo, as dificuldades encontradas com C++ aumentaram até o ponto em que os problemas poderiam ser melhor endereçados se fosse criada uma linguagem completamente nova. As decisões de arquitetura e desenho da linguagem foram inspiradas em linguagens como Eiffel, SmallTalk, Objective C, e Cedar / Mesa. A sintaxe tem suas raàzes claramente definidas em C e C++. Deste modo, Java foi projetada para atender a vírios requisitos desejíveis em uma LP, como por exemplo, confiabilidade, devido ao seu gerenciamento de memória, o que resulta em um ganho de eficiência; redigibilidade, por eliminar alguns conceitos de C e C++ que dificultavam nesse sentido; reuso de código. As palavras que definem Java A documentação de Java [1] fornecida pela Sun utiliza algumas palavras para definir a linguagem, faremos uma cràtica a respeito de cada uma delas. 1) Simples Uma caracteràstica marcante de Java é a simplicidade da linguagem, que pode ser programada sem um treinamento intenso, ou larga experiência anterior. Programadores de C++ terão uma rípida compreensão de Java devido à sua semelhança com Java. Java foi criada tão unida quanto possàvel a C++ para se criar sistemas mais compreensàveis. Java omite muitos termos pouco usados e operações confusas em C++ que trazem mais complicações que benefàcios. A versão Java, é na verdade, uma versão mais limpa de C++. Nela não hí ponteiros aritméticos, estruturas, uniões, sobrecarga de operadores, classes bísicas virtuais e etc. Ao mesmo tempo que é uma linguagem simples, existem aspectos sutis na construção de programas para o mundo real, dada a atual situação da biblioteca de classes e da não muito avançada programação visual. Com o tempo os recursos tendem a aumentar mais e mais com a criação de bibliotecas e desenvolvimento de ambientes. 2) Orientada a objeto A orientação a objeto é uma técnica que enfoca o modelo do dado (Objeto) e sua interface. As facilidades de orientação objeto de Java são essencialmente as de C++. As operações de OO de Java são comparíveis com as de C++. A maior diferença entre Java e C++ estí em múltipla herança, pois Java parece ter encontrado uma solução melhor. Os programadores podem reutilizar código, utilizar bibliotecas de terceiros com proteção e encapsulamento, e adicionar funcionalidade às jí existentes. Java possui tipagem forte, o que pode ser uma vantagem para programadores vindos de uma linguagem como Smalltalk. 3) Robusta e Segura O projeto de Java visou a construção de uma linguagem para escrita de programas confiíveis. Java enfatiza em muito a checagem em tempo de compilação de possàveis problemas, e em tempo de execução realiza a checagem dinâmica, e eliminação de situações que podem gerar erros. A maior diferença entre C/C++ e Java é que Java por definição da própria linguagem elimina uma gama de erros que geralmente surgem em C/C++ quando utilizamos ponteiros. Java fornece a funcionalidade de ponteiros sem que seja necessírio criar estruturas para tal. Estas estruturas eliminam a possibilidade de sobreposição de dados na memória corrompendo dados. Java é designada para operar em ambientes onde segurança é extremamente importante, como o ambiente de rede. 4) Arquitetura Neutra Java é projetada para suportar aplicações que serão distribuàdas para os diversos ambientes de trabalho em rede. Em tais ambientes aplicações devem ser capazes de executar em uma grande variedade de míquinas. Nas vírias plataformas de hardware, aplicações devem executar sobre um universo de sistemas operacionais e operar interagindo com outras linguagens de programação. Isto é possàvel graças à arquitetura idealizada, onde o compilador Java gera um código binírio para uma JVM (míquina virtual Java) - uma arquitetura neutra e portível. Assim, qualquer míquina que possa rodar uma míquina virtual Java pode rodar programas jí compilados sem requerer a menor mudança. A natureza "interpretada" de Java resolve ambos os problemas de distribuição biníria e de versão. 5) Portível Diferente de C/C++, não hí aspectos de implementação dependentes da especificação. O tamanho dos tipos primitivos são especificados, bem como os seus comportamentos aritméticos. Um inteiro tem sempre 32 bits, em C/C++ tem o tamanho da palavra da míquina. Tendo fixado o tamanho dos tipos numéricos, é eliminada a maior causa de dores de cabeça. Os dados binírios são armazenados em formato fixo, eliminando a confusão de big endian e little endian. 6) Interpretada O interpretador Java pode executar o código binírio Java diretamente em alguma míquina para o qual ele tenha sido portado. Em um ambiente interpretado tal como o sistema Java, a fase de linkagem de um programa é simples, incremental e leve. O processo de desenvolvimento pode ser muito mais rípido. Esta é uma vantagem enquanto desenvolvemos uma aplicação, mas ela é claramente mais lenta que um código compilado. 7) Alta Performance Enquanto a performance do código binírio interpretado é geralmente adequado, hí situações onde maior performance é requerida. O código binírio pode ser traduzido em tempo de execução para outro código de míquina para ser executado em uma aplicação de uma CPU particular. Espera-se que em breve teremos compiladores de Java também para míquinas reais. 8) Dinâmica Java é mais dinâmica que C/C++. Bibliotecas podem livremente somar novos métodos e instâncias de variíveis sem nenhum efeito em seus clientes. Em Java descobrir o tipo de uma instância em tempo de execução é algo extremamente simples. 9) Concorrência (Threads) Concorrência é a habilidade para um programa fazer mais de uma coisa por vez. Os benefàcios de multiprocessamento são melhor sensibilidade interativa e comportamento em tempo real. O threads em Java têm a capacidade para pegar as vantagens de sistemas multiprocessadores se o sistema operacional faz o mesmo. Por outro lado implementações threads em plataformas diferem amplamente, e Java não faz esforço para ser uma independente de plataforma neste caso. Java suporta multiprocessamento no nàvel de linguagem com a adição de sofisticada sincronização. Tipos primitivos Os tipos inteiros em Java são: byte (8 bits); short (16 bits); int (32 bits) e long (64 bits). O tipo byte (8 bits) em Java veio a substituir o antigo tipo char (C e C++). Não hí nada em Java para especificar um tipo inteiro sem sinal como em C e C++. O tipo de ponto flutuante em Java pode ser o float (32 bits) e o double (64 bits). Os operadores aritméticos seguem o padrão IEEE 754 1. O tipo char declarado em Java define um caracter de 16 bits, seguindo o padrão Unicode (um código anílogo ao ASCII que define caracteres para todas as lànguas, como um código universal). Os tipos booleanos em Java, diferentemente dos similares em C, não podem ser convertidos para nenhum tipo numérico. Valores booleanos em Java assumem apenas true ou false. Todos os tipos primitivos têm valores default. Todos os tipos numéricos são inicializados para 0, o tipo caracter é inicializado para o Unicode 0 e variíveis do tipo booleano são inicializados para false. Tipos Compostos As uniões disjuntas, produtos cartesianos e conjuntos de potência foram eliminados em Java. Os dois primeiros foram deixados de lado pois sendo Java uma linguagem orientada a objetos, as classes substituem essas construções. Jí os conjuntos de potência são supridos como classes da API (a classe BitSet). Tipos recursivos são suportados. Todos os tipos em Java que não são primitivos são tipos de referência a objetos, incluindo arrays. Ao contrírio de C e C++, os arrays em Java são objetos de primeira classe. É possàvel ao programador declarar arrays de qualquer tipo, e ainda declarar arrays de arrays para vetores multidimensionais. Um array em Java, como qualquer outro objeto deve ser alocado dinamica e explicitamente com o operador new. Uma vez que o objeto é alocado e tem um certo tamanho, este não muda. Tais procedimentos garantem mais confiabilidade ao código escrito em Java, jí que ficam eliminados os erros por violação de memória e perda de dados durante a execução do programa. Se o programador viola os limites de um vetor, é gerada uma exceção. De acordo com as definições descritas acima, pode-se classificar os arrays em Java como semi-dinâmicos, semelhante aos arrays em Ada. O acesso aos elementos do array segue o estilo de indexação de C. Porém, no momento em que é feita qualquer referência a um desses elementos é checado o tamanho do array para se verificar se não estí sendo tentado um acesso a um àndice fora do tamanho do array. Caso isso ocorra, é gerada uma exceção. Arrays não são a única implementação de vetores existente em Java. A API fornece a classe Vector que possibilidade a construção de vetores dinâmicos. Vale lembrar que o acesso a essa classe Vector é toda feita através de métodos e não de operadores de arrays. Strings em Java são objetos, e não "pseudo-arrays" como em C. Existem duas classes na API de Java que implementam arrays: StringBuffer e String. A definição da linguagem define a sobrecarga do operador de adição para a utilização com a classe String, e de literais do tipo String. Expressões Uma expressão em Java pode produzir três resultados: um valor uma variível (uma referência a uma variível) nada (a expressão é void) As expressões literais providas são de números inteiros e de ponto flutuante, caracter, booleano e string. Não são suportados agregados, e as expressões condicionais são suportadas através do operador ternírio (o mesmo de C). Uma expressão produz nada se e somente se ela é uma chamada a um método de tipo de retorno void. Tal expressão pode ser usada somente como uma expressão comando, porque qualquer outro contexto em que uma expressão possa ser usada requer que a expressão produza um valor ou uma variível. Uma expressão que é uma chamada a um método pode ter o seu valor de retorno silenciosamente descartado. Além disso, a execução de expressões pode produzir efeitos colaterais, pois além de chamadas a funções e atribuições, expressões podem conter operadores como ++ e --. Variíveis Em Java, como foi dito anteriormente, qualquer variível que não seja de um tipo primitivo é uma variível de referência a um objeto. Daà concluàmos que somente as variíveis de tipos primitivos são realmente storables. Todas as variíveis de referência tem campos que podem ser atualizados seletivamente. Além de todas variíveis de tipos compostos (não primitivos) serem referências, estas tem ter seus objetos alocados explicita e dinamicamente através do operador new, e não é permitido o uso de variíveis não inicializadas. Isto serí discutido adiante no tópico que se refere a orientação a objetos. Vale lembrar que todos os problemas de ponteiros foram eliminados, através da ausência de ponteiros (e consequentemente aritmética de ponteiros) e com a existência do garbage collector. As variíveis de referência suprem a funcionalidade ponteiros para a criação de listas encadeadas e outras estruturas de dados que dependem da noção de ponteiro, apesar de não poderem ser de-referenciadas. As variíveis de referência a objetos têm valor default null, ou seja, não apontam para nenhum objeto. Java faz o maior esforço para fazer a checagem de tipos em tempo de compilação. Uma variível de referência a um objeto pode guardar uma referência a um objeto cujo tipo em tempo de compilação pode ser convertido sem o uso de type casting. Veremos isso adiante. Java utiliza equivalência nominal, o que era de se esperar de uma linguagem orientada a objetos, jí que permite a construção de tipos abstratos em que a implementação (estrutura interna dos dados) é ignorada. Em Java, as variíveis locais são declaradas e alocadas dentro de um bloco e são descartadas na saàda do bloco. Parâmetros de métodos também são consideradas variíveis locais. Variíveis constantes são definidas com a palavra chave final. Estas devem ser inicializadas da declaração, e não poderão ser modificadas (amarrações para valor). Podem também ser declaradas como volatile, o que quer dizer que sabe-se que elas serão modificadas assincronamente. Isso quer dizer que as variíveis que são declaradas como volatile serão carregadas e salvadas na memória a cada uso, de forma que possam estar coerentes em multiprocessadores. Comandos Os comandos de controle de fluxo são extremamente semelhantes aos de C, com exceção do goto, que apesar de ser uma palavra reservada na linguagem não é implementado. Todos os comandos são sequenciais. Os comandos de seleção são o if e o switch, sendo o if de caminho simples (com else) e o switch de múltiplos caminhos: if ( Expressão ) bloco_de_comandos else bloco_de_comandos switch ( Expressão ) { case ExpressãoConstante : bloco_de_comandos case ExpressãoConstante : bloco_de_comandos default : bloco_de_comandos } Os de iteração são while, do while e for. while ( Expressão ) bloco_de_comandos do bloco_de_comandos while ( Expressão ); for ( ExpressãoInicialização; Expressão; ExpressãoAvanço ); Os comandos de escapes englobam o return, o continue, o break e o throw. O return é utilizado para interromper a execução de um método, especificando a expressão de retorno, ou não, se o método não for void. O break transfere o controle para o final da iteração no qual estí inserido, ou encerra a execução de um switch. O continue transfere o controle para o ponto de continuação do loop de um comando de iteração. Ambos break e continue podem ser acompanhados de identificadores que especificam a qual dos loops externos estamos nos referindo, jí que existe a possibilidade de amarrar labels a comandos de iteração. O throw "dispara", "joga" uma exceção, desviando o fluxo para o bloco de tratamento de exceções ou interrompendo o programa. Além destes comandos existem os chamados guarding statements que estabelecem condições para o tratamento de exceções e multithreading. São eles o try, o synchronized, o catch e o finally (serão explicados posteriormente nas seções de tratamento de exceções e concorrência). Java e a Orientação a Objetos A orientação a objetos tem provado seu valor nos últimos quase 30 anos, e é inconcebàvel que uma linguagem de programação moderna não seja orientada a objetos. Na especificação da linguagem Java [2] ela é definida como "uma linguagem orientada a objetos baseada em classes", e portanto provê essas caracteràsticas mànimas, suficientes para possibilitar modularização, proteção e reutilização: Encapsulamento - Ocultamento de Informações (Information Hiding) e modularidade (abstrações) Polimorfismo - a mesma mensagem enviada a diferentes objetos resultam em um comportamento que depende da natureza dos objetos recebendo a mensagem. Herança - novas classes são definidas em termos de classes existentes, possibilitando o reuso de código. Amarração Dinâmica - os objetos são possivelmente amarrados em tempo de execução, o que quer dizer que um objeto pode ser até passado por uma rede. A amarração dinâmica provê flexibilidade em tempo de execução, e é a chave para o polimorfismo real. As caracteràsticas da orientação a objetos de Java são similares às de C++. A maior diferença entre elas é que Java parece ter achado uma boa solução para substituir a herança múltipla. Todos os tipos de dados, com exceção dos primitivos, são classes. Classes Uma classe é uma construção de software que define variíveis de instância e métodos de um objeto. Uma classe não é um objeto, uma classe é a "definição" de como um objeto se comportarí quando este for criado ou instanciado. A declaração bísica de uma classe em Java é a seguinte: class nome { // informações sobre a classe } Abaixo temos um exemplo de uma classe muito simples: class Pessoa { public String Nome; /* variível de instância */ public String Telefone; /* variível de instância */ } Objetos - Instâncias de uma Classe Para utilizarmos uma classe nós devemos instanciar objetos. Em Java isto quer dizer que criaremos uma referência para um objeto (não existe a idéia de um tipo expandido como em Eiffel [6] e amarrações para valores são possàveis somente para tipos primitivos) - com um fragmento de código como este: Pessoa meuAmigo; // declara uma variível que faz referência a um objeto da classe Pessoa meuAmigo = new Pessoa(); // aloca uma instância de um objeto da classe Pessoa É possàvel acessar uma variível do objeto de uma classe através do nome da variível, qualificando o mesmo com o nome do objeto, da mesma forma com que acessamos uma estrutura em C. Por exemplo: meuAmigo.Nome = "Fulano de Tal"; // atribuição à variível de instância Nome da variível de objeto meuAmigo Todo objeto deve ser alocado dinamica e explicitamente através do operador new, e deve ser inicializado antes de ser usado. Uma variível de objeto que não se refere a nenhum objeto deve ter o valor null. Um erro de tempo de execução ocorre se for utilizado um ponteiro não inicializado ou null. Um objeto em Java pode ser visto de forma aníloga a ponteiros para objetos em C++. Se você copia uma variível para outra, ambas se referem ao mesmo objeto, são "ponteiros" para o mesmo objeto. A diferença reside que, em C++, é muito fícil se criar ponteiros "ruins" (usando aritmética de ponteiros, não existente em Java) ou termos problemas de objetos e referências pendentes. O garbage collector garante que tais problemas não ocorrerão. Construtores Ao declarar uma classe em Java, opcionalmente definimos construtores. Construtores fazem a inicialização de objetos ao serem instanciados. Os construtores são métodos com o mesmo nome da classe e que não têm tipo de retorno especificado. Quando um objeto é criado (instanciado), o método construtor apropriado é automaticamente invocado, para, por exemplo, dar um estado inicial ao objeto. Se uma classe não contém declarações de construtores, então um construtor default é fornecido automatica e implicitamente. Um construtor só pode ser chamado com a palavra chave new, e não pode ser aplicado a um objeto existente. Exemplo: class Pessoa { public String Nome; /* variível de instância */ public String Telefone; /* variível de instância */ Pessoa() { /* construtor default */ Nome = ""; Telefone = ""; } Pessoa(String N, String T) { Nome = N; Telefone = T; } } Pessoa outroAmigo = new Pessoa("Fulano 2","444-4444"); // acima temos um exemplo de utilização de construtor: outroAmigo.Pessoa("XXX","222"); /* ERRO! construtores só podem ser utilizados para instanciar elementos com new */ Métodos / Mensagens Métodos são a forma com que os objetos interagem entre si. Na orientação a objetos, para se atingir encapsulamento e proteção, todas as interações entre objetos (ditas mensagens) devem ser feitas através dos métodos de uma classe. Não hí funções e procedimentos em Java, haja vista que a programação procedural foi totalmente substituàda. Mesmo assim, a forma de se invocar métodos em Java se assemelha à de funções em C e C++. Qualquer método pertence a uma classe, e deve ser definido dentro do corpo da mesma. Podemos como exemplo modificar a nossa classe Pessoa: class Pessoa { private String Nome; /* variível de instância */ private String Telefone; /* variível de instância */ Pessoa() { /* construtor default */ Nome = ""; Telefone = ""; } Pessoa(String N, String T) { Nome = N; Telefone = T; } public void mudaNome(String Nome) { this.Nome = Nome; } public String leNome() { return Nome; } public String leTelefone() { return Telefone; } } No exemplo acima as variíveis de instância Nome e Telefone foram precedidas pela palavra chave private, o que quer dizer que essas variíveis só poderão ser acessadas por métodos da classe à qual pertencem. No exemplo acima utilizamos a palavra chave this. Essa variível se refere ao objeto que estí recebendo a mensagem, ou seja, o objeto no qual o método estí sendo aplicado (Em C++ this é o ponteiro para o objeto que recebe a mensagem, e em Java é a referência para esse objeto). Invocando esses métodos qualificamos o nome do método com o nome do objeto: Pessoa meuAmigo = new Pessoa("Fulano de Tal","999-9999"); meuAmigo.mudaTelefone("222-2222"); /* invocamos o método mudaTelefone da classe Pessoa sobre o objeto meuAmigo, ou melhor, mandamos uma mensagem mudaTelefone para o objeto meuAmigo. */ Java permite a sobrecarga independente de contexto de métodos, mas não permite a sobrecarga de operadores. Para sobrecarregarmos um método basta declararmos outro método de mesmo nome com uma assinatura diferente (tipo e ordem dos parâmetros formais). Métodos podem ser declarados nativos, utilizando a palavra chave native. Isto quer dizer que eles serão implementados de forma dependente de plataforma, por exemplo em C ou assembly. Java trata um método nativo como outro qualquer. Destrutores Além de construtores, a linguagem provê a construção de métodos destrutores. Os destrutores são métodos responsíveis por liberar os recursos alocados durante a vida de um certo objeto. Eles são invocados automaticamente pelo garbage collector, imediatamente antes deste "recolher" um objeto. Esse método deve se chamar finalize. /* Fecha um arquivo aberto quando o garbage collector atua */ protected void finalize() { try { file.close(); } catch (Exception e) { } } O exemplo acima mostra um tàpico caso em que o seu objeto deve liberar os recursos alocados do sistema operacional, como por exemplo fechar descritores de arquivos, liberar contextos em ambientes gríficos, etc. Herança A herança é um mecanismo através do qual novas e mais especializadas classes podem ser definidas em termos de classes pré-existentes. Um exemplo é a criação de uma classe Funcionario, como uma subclasse de Pessoa. Em Java: class Funcionario extends Pessoa { // Novos métodos e instâncias podem ser inseridos aqui } class Secretaria extends Funcionario { ... } class Gerente extends Funcionario { ... } A palavra chave extends diz que Funcionario é uma subclasse de Pessoa, chamada de classe base. Dizemos que Funcionario herda as caracteràsticas de Pessoa, jí que este reutilizarí boa parte do código e funcionalidade descrita na classe Pessoa. class Funcionario extends Pessoa { private float salario; public Funcionario(String Nome, String Telefone, float salario) { super(Nome,Telefone); this.salario = salario; } public Funcionario aumenta_salario(float aumento) { salario = salario + aumento; } } A classe Funcionario herda as variíveis de instância Nome e Telefone, e os métodos (mudaTelefone, leTelefone, leNome) da classe Pessoa, com a exceção dos construtores. Nesse caso devemos criar novos construtores que façam, opcionalmente, na primeira linha do corpo, uso da palavra chave super para se referir ao construtor da superclasse, como no construtor do exemplo acima. Se a subclasse não tem definições de construtores, o construtor super() é invocado, ou seja, o construtor default da classe imediatamente superior. Toda classe em Java é subclasse (não necessariamente imediata) da classe Object. Quando não utilizamos a palavra chave extends numa declaração de classe, implicitamente esta se torna subclasse imediata de Object. Uma referência a um objeto da superclasse B (ou classe base) pode também ser referência de uma subclasse S de B. Jí o contrírio exige o uso de type casting, ou seja a coerção (coercion) deve ser explàcita. Object o; Pessoa fulano; Funcionario contador1 = new Funcionario("Fulano de Tal","222-2222"); Pessoa meuAmigo = new Pessoa("Amigo da Onça","555-5555"); fulano = contador1; // ok! um funcionírio é uma pessoa o = contador1; // a classe Funcionario é derivada indireta de Object contador1 = meuAmigo; // ERRO! meuAmigo é da classe pessoa, que é uma superclasse de Funcionario contador1 = (Funcionario) meuAmigo; // com a utilização de type casting esta conversão se torna possàvel Se for necessírio modificar um método da classe superior, ou especializí-lo, é possàvel declarando-se um método de mesma assinatura na subclasse. Não é possàvel sobrepor um método declarado como final. Ao contrírio de C++, no qual as funções virtuais devem ser declaradas como tal, em Java, por default, as funções são virtuais. Para acessarmos o método "sobreposto" (overrided) utilizamos o seletor super, que é, na verdade uma referência à superclasse, equivalente a ((superclasse)this). Java implementa herança simples, ao contrírio de C++ e Eiffel que implementam herança múltipla. Isso quer dizer que uma classe só pode ter uma superclasse imediata. Isso pode, a primeira vista, parecer uma caracteràstica limitante, mas em Java o conceito de Interfaces (presente também no Objective C como protocols) faz com que a linguagem não perca o seu poder expressivo. Polimorfismo O polimorfismo é uma das caracteràsticas marcantes de linguagens orientadas a objetos. Ela permite que a mesma mensagem enviada a diferentes objetos resultem em um comportamento que depende da natureza dos objetos recebendo a mensagem, ou seja, permite a construção de abstrações que operem uniformemente sob uma famàlia de tipos relacionados. Quando uma mensagem é enviada para um objeto de uma subclasse em Java: A subclasse checa se ela tem um método aquele nome e com exatamente os mesmos parâmetros. Se a resposta for positiva, ela usa esse método. Caso contrírio, Java envia a mensagem à classe imediatamente superior. Se toda a hierarquia for caminhada sem que um método apropriado seja encontrado um erro em tempo de compilação ocorre. A amarração dinâmica é a chave para o polimorfismo. O compilador não gera código em tempo de compilação para uma chamada de método, ele gera código para determinar que método chamar em tempo de execução usando a informação de tipo disponàvel para o objeto. Java não suporta abstrações genéricas, como o template de C++. Essa funcionalidade é implementada com a utilização da classe Object. Uma clara diferença dessa falta é que ele permite uma flexibilidade muito grande, que deve ser administrada corretamente pois pode ser perigosa. Vamos tomar como exemplo uma lista de Object. Essa lista pode conter Funcionarios, Retangulos, Frutas, etc. Jí em C++ ou Eiffel, na declaração do tipo genérico teràamos a criação de uma nova abstração especàfica para um certo tipo. Tomando C++ como exemplo, criaràamos uma lista<Funcionario> e teràamos um novo tipo que somente aceitaria Funcionarios. Controle de Acesso Ao declararmos uma classe em Java, indicamos o nàvel de acesso permitido para suas instâncias e métodos. Existem quatro nàveis, e três modificadores: public, protected, e private. Definimos também o nàvel de acesso da classe inteira, existindo apenas o nàvel public e o "friendly". O nàvel public permite o acesso ilimitado, o protected significa que os campos são acessàveis somente em subclasses, e o private que são acessàveis somente dentro da classe onde são declarados. O quarto nàvel não tem um nome, mas é freqüentemente chamado de "friendly". Esse é o nàvel default. Ele indica que os campos são disponàveis para todos objetos dentro daquele pacote (package). Os packages em Java são coleções de classes que têm nomes hierírquicos. Ao utilizar um pacote, o seu código deve incluir uma clíusula import, ou qualificar os métodos, variíveis e constantes utilizadas. Isso permite que você distribua adequadamente suas "bibliotecas" de classes e que essa classes sejam utilizadas em outros programas. import java.net.*; // importa todas as classes do pacote java.net import java.util.Bitset; // importa somente a classe BitSet do pacote java.util java.util.Date hoje = new java.util.Date(); /* utilizando a classe Date dentro de java.util, pacote que não foi completamente importado */Variíveis e Métodos de Classe Normalmente quando definimos variíveis em uma classe definimos variíveis de instâncias. Para cada objeto criado uma nova variível de instância é criada, e utilizada apenas para representar o estado deste objeto. Jí as variíveis de classe são compartilhadas por todos objetos de uma classe, sendo utilizadas para representar o estado de toda uma classe. Jí os métodos de classe servem para manipular as variíveis de classe, e não podem, de forma alguma manipular variíveis de instâncias, ou invocar métodos de instâncias. Para declarar variíveis ou métodos de classe, utilizamos o modificador static: class Vendedor extends Funcionario { private static float comissao = 2.5; public void static mudaComissao(float c) { comissao = c; } /* a comissão de todos os vendedores de uma loja é a mesma, logo ela deve ser declarada como uma variível de classe */ } Classes e Métodos Abstratos Classes Abstratas são construções poderosas no paradigma da orientação a objetos. Elas têm grande influência sobre a etapa de design, principalmente na concepção das relações de hierarquia entre as classes. Ao subirmos na hierarquia de herança, as classes se tornam cada vez mais gerais e provavelmente mais abstratas. Hí um ponto em que elas são tão abstratas que as vemos como uma representação para derivação de outras classes, ao invés de as observarmos como classes das quais objetos serão criados. Métodos abstratos são aqueles que não podem ser implementados em classes tão abstratas, mas que devem ser implementados em subclasses. Uma classes deve ser declarada abstrata se ela tem pelo menos um método abstrato (os métodos abstratos eqüivalem às funções virtuais puras de C++ e às deffered features de Eiffel) Para declararmos métodos e classes abstratas devemos utilizar a palavra chave abstract. Classes abstratas não têm construtores nem podem ser instanciadas. class FormaGeometrica extends Object { protected Ponto centro; // centróide da forma geométrica public void mudaCentro(Ponto centro) { this.centro = centro; } abstract void desenha(); // método abstrato }Interfaces Uma declaração de uma interface declara um tipo que consiste num conjunto de métodos e constantes sem especificar a sua implementação. Interfaces podem ser bons substitutos para classes abstratas sem nenhuma implementação, e fornecem o poder da herança múltipla de interfaces, sem a confusão causada pela herança múltipla de classes (que por sua vez contêm implementação). Uma interface pode herdar suas caracteràsticas de diversas superinterfaces. Quando uma classe é declarada ela pode opcionalmente fornecer uma lista de interfaces as quais são implementadas por ela. Assim sendo, ela se torna responsível por fazer tal implementação. Uma subclasse de uma classe que implementa alguma interface automaticamente herda a implementação dessa interface. Um exemplo claro é a implementação de uma interface Ordenavel: public interface Ordenavel { public int compara(Ordenavel a); /* compara elementos, retornando positivo para maior que, negativo para menor que, e zero para iguais */ } /* classe que implementa a interface Ordenavel, lembre-se que interfaces declaram novos tipos, logo podem ser utilzados como parâmetros formais */ class Circulo extends FormaGeometrica implements Ordenavel, ... { private float raio; public void desenha() { ... } public int compara(Ordenavel a) { Circulo ca = (Circulo) a; return raio - a.raio; } } Concorrência (Threads) A concorrência permite que vírias partes do seu software estejam rodando simultaneamente. Usuírios de computadores sofisticados tornam-se impacientes ao fazer uma coisa de cada vez em seus computadores pessoais. Infelizmente os programadores que necessitam de concorrência em linguagens como C e C++ enfrentam muitas dificuldades, jí que essas linguagens não suportam diretamente multithreading. Java o faz a nàvel da linguagem e com classes apropriadas em sua API, com multitarefa pre-emptiva. A nàvel da linguagem, métodos declarados synchronized não rodam simultaneamente. Tais métodos rodam sob o controle de monitores que se asseguram que as variíveis permanecerão em um estado consistente. Java faz o controle de locks automaticamente, sem que o usuírio precise se preocupar. Para criarmos um objeto que rode em outra thread simplesmente derivamos a nossa classe da classe Thread, ou implementamos a interface Runnable. A partir de então, sobrecarregamos o método run() com o código desejado. Quando instanciamos um objeto dessa classe e invocamos o seu método start(), este imediatamente retornarí e a aplicação ficarí sendo executada em background. Além da simplicidade de se trabalhar com threads existe a possibilidade do controle de prioridades. class PingPongThread extends Thread { String mensagem; int atraso; PingPongThread(String mensagem, int atraso) { this.mensagem = mensagem; this.atraso = atraso; start(); } public void run() { while (true) { // loop infinito System.out.println(mensagem); // imprimimos a mensagem sleep(atraso); // geramos o atraso } } } new PingPongThread("ping",500); new PingPongThread("pong",600); Esse trecho de código cria dois objetos que rodarão em diferentes threads. As mensagens de "ping" e "pong" serão intercaladas na tela. Tratamento de Exceções O tratamento de exceções permite que um erro seja tratado pelo programador, ou seja, que ele tome decisões acerca de erro ocorrido. A missão principal do tratamento de exceções é transferir o controle do ponto onde o erro ocorreu para um tratador de exceção que sabe como lidar com a situação. O modelo de tratamento de exceções de Java é similar ao de Delphi e C++. Existe uma hierarquia de exceções, implementadas como classes, pré-definidas. Isso não descarta, de forma alguma, a possibilidade do programador criar as suas próprias classes de exceções, derivando subclasses dessa hierarquia. Abaixo temos um diagrama simplificado da hierarquia de exceções em Java: A hierarquia Error descreve erros internos e escassez de recurso do sistema Java. Programadores não deve "jogar" exceções desse tipo, e sim aqueles da hierarquia Exception. Para criar um trecho de código que trate uma exceção, você deve fazer uma construção try/catch. Além disso, na declaração do método onde uma exceção vai ser possivelmente jogada é necessíria a inclusão de uma especificação de exceção. class Nome_da_Classe { ... tipo_de_retorno Método (parâmetros formais) throws Tipo_de_Exceção1, Tipo_de_Exceção2 { try { bloco de código ... } catch (TipodaExeceção e) { tratador para esse tipo de exceção } catch (OutroTipodaExeceção e) { tratador para esse tipo de exceção } finally { código que serí executado até mesmo na presença de uma exceção } } Para "jogar" uma exceção, usa-se o comando throw. Quando um comando throw é encontrado, a execução normal do programa é suspensa, enquanto um tratador adequado é procurado. A clíusula catch que melhor se adequar para o tratamento daquela exceção serí executada, respeitando a seguinte ordem: 1.O tipo de exceção da clíusula catch é exatamente da exceção jogada. 2.O tipo de exceção é uma superclasse daquela jogada. 3.O tipo de exceção é uma interface que a exceção jogada implementa. Qualquer código dentro do bloco try depois da clíusula throw não serí saltado. Uma exceção pode ser jogada novamente dentro de uma clíusula catch se houver necessidade de propagí-la. Quando um bloco catch completa sua execução, a clíusula finally é procurada. Se esta não existe, a execução continua na próxima instrução depois do bloco try. Uma clíusula finally é usada para a parte do código que deve ser executada mesmo se uma exceção ocorrer. Se uma exceção não é tratada num método, a execução deste é cancelada e a exceção é propagada para o método chamador. Se ela não for tratada em lugar algum, a aplicação é interrompida com uma mensagem (no caso de aplicações gríficas a mensagem é mostrada mais a aplicação não é encerrada). Conclusões Java parece ser uma linguagem razoavelmente simples, se, comparada a C++. Muitas das caracteràsticas de C++ indesejadas e herdadas de C foram eliminadas. Ainda assim com certeza é familiar a programadores C/C++. É uma linguagem significativamente segura, com a ausência de ponteiros e garbage collecting. Permite a programação em larga escala, através da orientação a objeto, com proteção, encapsulamento, reuso de código e outras caracteràsticas desejíveis em uma linguagem de uso geral. Concorrência e tratamento de exceções são duas caracteràsticas que se destacam na linguagem, uma preocupação de linguagens modernas, assim como a sua natureza portítil / interpretada. A linguagem não provê abstrações genéricas, o que consideramos uma falta (apesar de que é possàvel criar abstrações que possam tratar quaisquer objetos). As interfaces parecem ser uma boa idéia para a substituição de herança múltipla de classes. Apesar de suas vantagens como linguagem de programação, Java tem a desvantagem de ser uma linguagem ainda muito nova. A falta de ambientes de desenvolvimento e ferramentas estí sendo rapidamente suprida, jí que a linguagem chamou muita atenção da comunidade de programadores. Esperamos que em breve teremos muitos sistemas desenvolvidos para Java, jí que as próximas versões de sistemas operacionais para microcomputadores como o Windows e o OS/2 estarão incluindo a míquina virtual Java. Além disso, existem projetos em andamento para a construção de um processador Java que acelerarí a execução de aplicações executando o código binírio Java em hardware. Bibliografia [1] GOSLING, James e McGILTON, Henry, The Java Language Environment - A White Paper , Sun Microsystems Computer Corporation, Outubro de 1995. [2] The Java Language Specification - Version 1.0 Beta, Sun Microsystems Computer Corporation, Beta Draft of October 30, 1995. [3] RITCHEY, Tim, Programming with Java! Beta 2.0, Ed. New Riders, 1995. [4] CORNELL, Gary e HORSTMANN, Cay, Core Java, Ed. Prentice Hall. [5] Object-Oriented Languages in the Industry: A Comparison http://www.eiffel.com./doc/manuals/tech ... index.html [6] MEYER, Bertrand, An Invitation to Eiffel, http://www.eiffel.com/doc/manuals/language/intro By: Loost :XTibia_smile: