Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/23/11 em %
-
Mega Curso De Sprites
brenomadlan e 2 outros reagiu a history por um tópico no fórum
Atenção: Primeiramente queria dizer que não fiz esse tutorial. Botei os créditos no final. Tirei os erros de português, salvei imagem por imagem e hospedei um por uma porque meu Imageshack está com problema. São 59 imagens e tive que salvar, hospedar (uma por uma, pois o imageshack estava com problema) e depois localizar e adicionar a imagem, todas elas... Espero que gostem... Artigo 1: Características Principais de um Sprite 1 - Tamanho 2 - Luz 3 - Perspectiva 4 - Edição Artigo 2: Começando um sprite 1 - Introdução ao PAINT 2 - Criação de um sprite 3 - Pintura 4 - Aprimoramento Artigo 3: Efeitos gerais - Módulo: Fireworks 1 - Magic Wand Tool 2 - Blur Tool 3 - Sharpen Tool 4 - Dodge Tool 5 - Burn Tool 6 - Smudge Tool Artigo 4: Efeitos gerais - Módulo: PAINT 1 - Como colorir um sprite 2 - Oficina de pintura 3 - Anti-Aliasing e suas aplicações 4 - Lista de cores Artigo 5: Efeitos particulares 1 Jóias de enfeite 2 Cavidades 3 Rachaduras 4 Sprites Envelhecidos 5 Sprites brilhantes sem Sharpen Artigo 1: Características Principais de um Sprite 1- Tamanho Bom, para a galera que está começando agora a fazer sprites e não sabe por onde começar, aqui começaremos com o básico do básico, a dimensão dos sprites: De fato é bem simples: Sprite pequeno porte (carregável) Todo sprite carregável deve possuir os padrões de sua Backpack e para isso, é preciso que ele tenha as dimensões 32x32 Pixels.. Veremos mais a frente como dimensionar sua página de edição.[Art2:1] Sprites de médio porte Geralmente outfits, monstros humanóides, e pequenas estátuas seguem padrões com dimensão 32x32 Pixels no eixo de base(Chão) também, porém é preciso que eles se mantenham na perspectiva do Tibia Sprites de grande porte A grande maioria dos sprites de grande porte segue um padrão de 64x64 Pixels no eixo de base(chão), é o caso de Pedras, Estátuas, Mesas, e grande parte dos itens que compõe o cenário: 2 - Luz Direção da Luz Uma das regras mais importantes e obrigatórias: caso seu intuito em fazer sprites seja criar itens para o Tibia: A LUZ VEM DO NOROESTE, mas mesmo assim, ainda existe luz vinda das demais fontes naturais e refletida pelas superfícies. Como no esquema a seguir: Sendo assim, seu sprite recebe luz de todas as direções, mas preferencialmente pelo Noroeste. 3 - Perspectiva A perspectiva é teoricamente bem simples também, basta você seguir os padrões de formato estabelecidos pela Cipsoft [Art1:1] e desenhar seguindo uma orientação diagonal: Como no esquema: Artigo 2: Características Principais de um Sprite 1- Introdução ao PAINT Bom galera, é fato que muitos de nós já abominaram o PAINT muitas vezes, mas uma prova de que ele é a chave para o sucesso de muitos é que, todo sprite é feito no paint, logo todos os itens mais belos bem desenhados que vocês já viram vieram do mesmo lugar, e esse lugar é o Paint. Onde está o Paint? O primeiro de tudo é localizar o programa PAINT em seu computador, geralmente ele se encontra no seguinte endereço: Menu Iniciar/Todos os Programas/Acessórios/Paint. Configurando as dimensões da página Assim que abrir o PAINT, é preciso configurar a página para os padrões do Tibia. Para configurar a página siga o exemplo: IMAGEM/ATRIBUTOS E configure em: 32x32 Pixels para Itens de pequeno e médio porte(carregáveis e outfits/humanóides): 64x64 Pixels Para itens de grande porte: Principais ferramentas que utilizaremos no paint para fazer Sprites: - Lápis : Usaremos para desenhar e colorir. - Linha : Usaremos para dimensionar sprites(Perspectiva) e algumas vezes na pintura criando linhas. - Conta-gotas : Usaremos na pintura para captura de cores para o lápis. - Recorte Quadrado e Aleatório : Usaremos quando para movimentar o Sprite ou Parte dele ao longo da página - Lupa : Usaremos para aumentar seu sprite em duas, seis, oito e Doze vezes Criação de um Sprite Certo, finalmente deixar de teorias e vamos colocar a mão na massa. Começaremos desenhando um formato apropriado, como este Tutorial foi feito para um nível Básico e Intermediário de Sprite Art, vamos começar com um formato simples, utilizando a Lupa de aumento em 8x ou 12x. Para ficar mais fácil desenhar os pixels simetricamente, o melhor é Quadricular a página apertando CTRL + G. 8x + [ Ctrl + G ] 12x + [ Ctrl + G ] Para configurar o aumento de 12x é preciso clicar exatamente na linha que limita o quadro de aumentos: Bom, vamos começar com uma espada. Veremos que até o formato mais simples pode ficar muito bom se for bem trabalhado: Formato externo - Sempre Preto - Sempre dentro do espaço exigido pela Cipsoft Formato interno - Sempre usar cores escuras mas Nunca Preto - Dividir bem as partes a serem detalhadas Pintura - A pintura inicial deve ser simples para visualizar como o sprite deve ficar - Feito isso, segue-se para Aprimoramento e Oficina de Pintura ou para o Fireworks. - Aproveite para corrigir os pixels pretos que esqueceu dentro do Sprite ;D Aprimoramento - Se preferir desenhe alguns detalhes, como a divisória da lamina e jóias de enfeite - Feito isso: Sigamos para a Oficina de Pintura! Ou para o Fireworks... Artigo 3: Efeitos gerais - Módulo: Fireworks Bom galera, pra ser sincero com vocês, eu não começaria a editar os efeitos pelo Fireworks, mas não se pode negar o fato de que muitos sprites ficam "bacanas" quando feitos no fireworks, mas na minha opinião, ele deve ser um programa de edições finais...como "escurecer isso aqui e ali" "clarear aqui", "deixar com cores mais vivas lá". Porém muitas vezes as pessoas preferem utilizar o Fireworks ou o Photoshop pra edição de efeitos então vou dar essa opção a vocês. Efeitos Gerais - Magic Wand Tool: Usada para extrair o fundo do sprite, muito usado em fakes e outras edições como efeito de "Transparência": - Blur Tool: Usada pra homogeneizar as cores, deixando-as com tons parecidos. Dando um efeito de Embaçado - Sharpen Tool: Usada principalmente para dar mais vida ao sprite, deixá-lo mais brilhante e com detalhes aparentes. O ruim é que em grande escala pode gerar riscos pretos indesejáveis. - Dodge Tool: Talvez, juntamente com a Burn Tool está seja a ferramenta mais utilizada no Fireworks. Utilizamos Dodge Tool sempre que quisermos clarear um sprite, tornando as cores mais próximas do branco: - Burn Tool: Usada para escurecer seu sprite, muito usado na porção direita dos escudos e outros equipamentos evidenciando a vinda da luz ao noroeste. Por fim, juntando todo nosso trabalho no FireWorks é visível a diferença entre o molde e o sprite final. Basta lembrar que se a luz vem do Noroeste a parte Sudeste fica mais escura em relação a parte voltada para luz porem não fica PRETA já que os raios são refletidos para todas as direções Processo de edição pelo Fireworks: - Dodge Tool para clarear a ponta da lâmina e a lateral voltada para o noroeste. - Burn Tool para escurecer a porção que mais se aproxima do cabo com mais enfoque na lateral direita do sprite - Sharpen Tool para dar vida aos pixels mais iluminados para torná-los conseqüentemente os mais brilhantes. Controle a transmissão da luz pensando nos reflexos da luz e na perda da força da luz ao longo da lâmina, já que onde a luz bate, ela é refletida aos olhos do observador, passando somente uma parte ao resto do sprite. Assim se segue em todos os pontos de luz: Artigo 4: Efeitos gerais - Módulo: PAINT 1 - Como colorir um sprite Certo galera, acho que finalmente chegamos no meu método pessoal e mais esperado do tutorial(por mim) Daqui para frente abordaremos todo o verdadeiro trabalho de um Spriter de acordo com o meu pensamento, é um método trabalhoso, realmente trabalhoso; mas um método que torna o sprite realmente Tibiano. E realmente bonito. Pintura PAINT x Fireworks Tudo na pintura se baseia na escolha das cores e dos tons, em matéria de sprites não basta somente escolher uma ou duas cores diferentes, colorir um sprite como fizemos na pintura básica [Artigo 2:3] e depois disso apenas usar Blur Tool(Clarear) e Burn Tool(Escurecer) do Fireworks no Sprite. Para nós o Fireworks será uma ferramenta básica de edição. A escolha das cores Bom, como dito anteriormente o mais importante na pintura de um sprite é sua cor e os tons dessa cor. Geralmente usamos tons diferenciados de uma mesma cor para gerar a idéia de sombreamento e luminosidade. A utilização destes tons varia de acordo com três pontos importantes: Material a ser pintado: Metal, Bronze, Tecidos, Marfim, Ouro, Pele. Propagação de luz no material: Alguns materiais como pedras não polidas, troncos e materiais envelhecidos não propagam a luz muito bem devido a manchas e ao não polimento de suas superfícies. Reflexo da luz no Material: Tecidos, Peles, Materiais envelhecidos e pedras não polidas não devem refletir a luz como objetos polidos e bem trabalhados, essa diferença precisa existir. Oficina de Pintura Bom a Oficina de Pintura foi um projeto meu, seguindo dicas de ótimos spriters do Mundo Fake como o Marcotonio e outros tutoriais, que continuo usando até hoje e que se baseia na reunião de várias cores e seus diferentes tons em volta do sprite a ser pintado. Sendo a pintura do sprite realizada pela captura das cores pré-definidas em Orbs coloridos com o conta-gotas. Tudo na pintura se baseia na escolha das cores e dos tons então Desenhei orbs coloridos para facilitar a captura de cores: Veremos mais pra frente como isso se aplica. Como fazer um Orb colorido: Na verdade é bem simples quando se tem o Fireworks, basta usar a Dodge Tool para clarear e a Burn Tool para escurecer. Mas basicamente o que se deve fazer é: - Escolher uma cor e fazer um círculo - Clarear a porção noroeste e um pouco da sudeste (para dar idéia de esfera) - Escurecer o meio para intensificar o efeito de esfera e refração da luz. - Pode-se fazer isso pelo paint selecionando uma cor e escolhendo diferentes tons desta cor para colorir o círculo em forma de esfera, mas utilizando as Ferramentas do Fireworks vai lhe poupar muito trabalho. Seguindo as etapas: Créditos: Redstrike Como organizar minha Oficina de Pintura: - O primeiro de tudo é você desenhar seu sprite - Quando passar por todas as etapas abordadas no Artigo 2, copie seu sprite e cole em um arquivo PGN ou BPM que você chamará de Oficina de Pintura. - Lá você deve colar também suas cores pré-definidas e deixá-las em torno do sprite. - Se tiver itens antigos com uma boa distribuição de cores e tons copie-os e cole todos na Oficina Em resumo: Créditos ao Leomage pelo axe Iniciando as etapas da pintura: Aproveitando que estamos trabalhando com uma espada, que é um sprite simples, vamos aproveitar para um mini tutorial de espadas =D Bom, pra começar vamos às regras básicas: Regra número 1 - Toda espada possui uma linha média que definirá o corte da lâmina Regra número 2 - A porção esquerda da linha média recebe mais luz do que a porção da direita. Regra número 3 - A luz não é estática, ela se propaga ao longo de todo sprite porém alguns pontos são menos iluminados como regiões de cavidades na guarda, cabo e principalmente na porção da lâmina que está voltada contra a luz, tendo o corte como barreira. Certo, vamos clarear a mente de vocês Regra número 1: Linha média que define o corte Selecionei as cores que usaremos na pintura desses sprite. Certo, a Linha média não é nada mais do que uma reta diagonal formada por 4 ou 5 tons diferentes da mesma cor, logo consultaremos o mesmo Orb colorido no caso...o azul-acinzentado. Também se pode capturar cores de seus antigos sprites ou imagens para possuir uma maior gama de opções. [ virei e pintei de marrom o fundo pra vocês poderem entender melhor com a lamina voltada pra luz ] -Depois pintaremos as laterais médias, lembrando sempre que a luz é dividida no local que eu chamo de Secção Transversal, ou simplesmente "ST" representado pela cor mais escura perto da ponta da linha média. Seguindo o Tutorial do Strad, podemos perceber a diferença das lâminas e saber como nossa linha média deve se comportar. - As laterais médias, são as laterais da linha média e geralmente seguem três regras: Regra número 1: A ponta da espada recebe mais luz, logo todos os pixels devem ter tons mais claros na ponta caminhando para tons mais escuros conforme se aproximem do cabo. Regra número 2: A lateral esquerda possui uma propagação maior da luz do que a lateral esquerda, logo os pixels são mais claros em relação a esquerda. Regra número 3: A Secção Transversal(ST) é de extrema importância para o direcionamento do corte e da luz. No exemplo: E ao final da pintura das laterais médias: Certo, nosso Sprite está começando a ficar bonitinho hehe, agora o próximo passo é pintar as linhas das extremidades. Geralmente essa é a parte que entra o Anti Aliasing, um efeito usado muitas vezes para deixar o Sprite mais redondo( falaremos dele mais pra frente ) mas usaremos ele neste caso para deixar nosso sprite mais ponte agudo! Isso é feito utilizando Cores Escuras com Tons próximas do contorno, que no caso dos itens de Tibia é Preto. Faremos isso deixando alguns pixels mais claros perto do cabo para dar a idéia de uma superfície "Afiada". Como na imagem: - E ao acabar a lâmina partimos para a guarda. Seguindo mais três regras: Regra número 1: A porção esquerda da guarda recebe mais luz do que a direita. Porém há pouca diferença. Regra número 2: Cavidades, Jóias, Rachaduras e Cabos com guardas longas recebem sombreamentos à parte da guarda. Regra número 3: A guarda não segue padrões de Secção transversal. ( pelo menos a maioria delas. ) Então vamos pintar a Guarda! Escolham cores também próximas do preto para o AA mas que mantenham a idéia dourada, reforce isso com cores mais vivas ao longo da guarda, utilizem para isso o Orb Colorido dourado. Exemplo: E por fim temos nosso Sprite totalmente feito pelo PAINT. Parabéns a todos que leram até aqui! Vejamos uma comparação rápida entre o nosso Sprite inicial e suas edições pelo Paint e pelo Fireworks: 1 - Formato Externo 2 - Formato Interno 3 - Pintura básica 4 - Aprimoramento 5 - Rota pelo Paint 6 - Rota pelo Fireworks Façam seus julgamentos! =D Eu pessoalmente diria que a espada 100% paint ficou muito melhor, talvez clareasse mais a lâmina com o Fireworks ou usando uma técnica que vamos ver no tópico: Sprites brilhantes sem Sharpen [Art5:5] *OBS: Com laminas mais curtas em largura é mais fácil fazer AA ¬¬ Anti-Aliasing e suas aplicações O Anti-Aliasing é uma técnica muito utilizada para "arredondar" o sprite, e quando digo arredondar eu me refiro a Diminuição dos acidentes nas armações dos pixels Isto é: Algo pra disfarçar o fato de todos serem mini-quadradinhos haha. Isso se dá com o clareamento gradual da cor que mais se assemelha ao contorno e ao sprite, muitas vezes cinza, marrom ou até mesmo azul...todos em seus tons mais próximos do preto. Efeitos de Arredondamento Ao desenhar um círculo branco percebemos que existem muitos pontos brancos perto dos pixels pretos do contorno, isso faz com que o Sprite fique "quadrado" literalmente! haha. A correção desse efeito é fazer um pequeno degradê. E que parta do preto do contorno até a cor do fundo. Como no nosso caso estamos utilizando a cor branca... Nada melhor do que fazer um degradê do preto para o branco usando a cor CINZA. Efeitos de Ponta-afiada Para fazer ponta não precisamos desenhá-la no formato mas caso preferirem assim; fiz essa imagem, bem ilustrativa ao meu ver da influencia do AA no Efeito de ponta dos Sprites Efeitos do AA na Pintura O Anti Aliasing é muito usado (e bem usado) na Alemanha e na Suécia para dar mais vida aos Sprites, evidenciando e enfatizando as cores vibrantes do interior ao invés de deixá-las soltas a mercê somente do contorno. A algum tempo fiz uma espada a qual dei o nome de Arectaris Fiz uma segunda versão dessa Sword utilizando duas técnicas de AA: A Primeira: no cabo, utilizando um marrom bem escuro para escurecer e um marrom-acinzentado mais claro para manter a cor escura. A Segunda: na lâmina, utilizando cores bem escuras na ponta, contrastando com a claridade dos últimos pixels e gradualmente escurecendo os pixels para formar uma ponta. Observem atentamente a Ponta dos Sprites: OBS: Façam espadas com a largura da Arectaris no começo porque é muito complicado fazer AA de lâmina em espadas maiores a melhor que consegui acho que foi essa, preciso treinar e estudar mais isso haha LISTA DE CORES Vou postar aqui uma série de Orbs de Pintura que estou fazendo, caso algum de vocês não tenha acesso ao Fireworks. Artigo 5: Efeitos particulares Jóias de enfeite Fazer jóias são realmente algo bem fácil! Na teoria, tudo que precisamos fazer é desenhar um Orb! Ou seja, uma pedra à esfera, que tenha um ponto luminoso vindo do Noroeste e que possua um ponto de claridade mediana a Sudeste, indicando que a luz passou por Refração e todos os pontos ao redor destes dois pontos de Luz são mais escuros Refração da Luz No exemplo Créditos - Redstrike Cavidades A idéia de cavidades é fácil de ser entendida, vou me aproveitar novamente da Arectaris: Como todos podem ver, desenhei um ruby dentro de uma cavidade na guarda da Arectaris, essa mistura de pixels só foi capaz de passar a idéia de cavidade porque, como dito antes, a luz se propaga ao longo de todo o sprite, vindo do Noroeste. Quando chega à cavidade, a luz não consegue penetrar no buraco e chega até a borda dele ( a sudeste ) que por sua vez reflete a luz de volta à pedra, porém em menos quantidade. Por isso usei cores escuras para simbolizar as bordas internas da cavidade, e as claras, as borda externas: Resumindo: 1 - A Luz vem do noroeste, atingindo a borda externa com grande intensidade 2 - A luz passa pela cavidade atingindo a segunda borda externa mais com menos intensidade 3 - A luz que ilumina a segunda borda externa é refletida por ela chegando a menor parte ao ruby encontrado na cavidade. Sigam o esquema Rachaduras Rachaduras podem ser uma coisa bem complicada no começo, mas com o tempo se pega a prática e a coisa fica mais simples. Na verdade em teoria é mesmo muito simples... Basta você: Regra um: Escolher de onde e como será a rachadura Regra dois: Desenhar um risco PRETO na região da rachadura Regra três: De acordo com o fundo, escolher um tom bem claro e iluminar a porção Sudeste da rachadura e um tom bem escuro para iluminar a porção Noroeste <--- mesmo efeito que vimos em Cavidades Passo a passo temos: Créditos: Artfire, Galiant e history (salvou e hospedou imagem por imagem, porque o imageshack só aceita uma por vez para mandar o LINK DIRETO, necessário para a imagem aparecer). Espero que tenham gostado, se gostaram REP+ e comentem...3 pontos -
Pokemon Ex 2.1 Revisão
Guegazor e um outro reagiu a emptyrlz por um tópico no fórum
Update da versao 2.0 pra 2.1 Order 100%(Dig,Ride,Fly,Cut,RockSmash,Flash,Blink) 1 bug no Rock Smash quando o pokemon usa, ele n pode repetir seguidamente, vc tem que chama-lo de volta e chamar novamente pra ele quebrar de novo. Teleport 100% Surf 100% 36 Pokemons Shinys FALTANDO OS MOVES, catch,goback configurado em alguns já. Control Mind 90% (se você controlar um pokemon shiny ele vira normal) !cd [34/160] NPC que compra pokemon 100% Mapa uns 80-90% Svke Porem com Crash recomendo mudar o mapa pra o mapa do Pokemon Dash. 7 Quest (Pokeballs<Venom<Cerulean<Pewter<RockTunnel<Gengar<Charizard) adicionei a quest da box4 na zard valley, porem se vcs quiserem editar fica a criterio. Gym System BETA(So tem o Brock nao ganha nada depois de derrotar ele e depois que se ganha dele ele não fala mais com você , você pode editar mais e usar eles em evento quem ganhar receber um premio do GM...) 10 Cidades m1-m12(70%) do m10 ao m12 só poucos pokemons tem os moves, e ainda falta MTO como Harden no blastoise etc. Loot,Catch,Corpses(99%) Loot (40%) ainda não tive tempo pra arrumar.. Corpses 50% corpo do Crystal Onyx errado, corpo do elder zard errado. Evolução(100%) Rare Candy 100% Box1-4 100% Max 6 pokemons o resto vai DP 100% Buf do Database só deixando criar 3 characters arrumado, arrumei o database agora está normal. Bug da dex arrumado, agora da pra usar dex, e depois ver os pokes pelo /dex 100% Ja esta editado no items.otb , items.xml , portrait e corpse de 35 shinys em outros lugares vai se so preciso ageitar xml do monstro , moves , o lv necessario , a chance de catch o life e quanto ganha de life por level(cons) Acc do GOD 9909749 / hqbvcj6n desculpem mas essa acc eu criei pra testar com xar normal. Download do Servidor: http://www.mediafire.com/?jqstla6kx0cy7db Cliente que eu usei no Servidor: http://www.mediafire.com/?ygyznsfh5uvttv7 Data/Monsters configurado, arrumei os loots dos pokes, se alguem achar algum bug, me reporte. http://www.mediafire.com/?9cr9ikbc0ddi8ya Créditos ao Scizorgame, no post do EX 2.0 ele n relatou outras pessoas que ajudarão, então acho que é só dele os créditos. V2.1 adicionados todos os shinys menos shiny gengar pois dá debug no servidor. Superpopulação do Mapa eu arrumei porem, falta editar mais coisas. Loot(50%) arrumei alguns loots errados, mas ainda não tive tempo pra revisar os 150. m1/m12(50%) pois estão faltando moves. Blanceamento feito por mim nos pokemons pokemons como Charizard que tinham pouco HP agora com HP mais alto. Bug do database concertado por mim. Bug da dex arrumado por mim. Bugs dos 6 pokes 7 pro cp arrumado tbm. +- foi isso que eu arrumei no servidor. Ainda é um longo trabalho pra deixar esse servidor 100%, mas aos poucos e com ajuda da galera da pra deixar legal.2 pontos -
[Tutorial]Criando Website Com Xampp
onark123 reagiu a ultimate1996 por um tópico no fórum
Opa, fala xTibia '-'.. Vi que muitas pessoas estavam querendo fazer um site para seu servidor e não sabem como fazer... Então resolvi postar um tutorial completíssimo aqui.. O que vamos precisar? -&gt; Xampp ( 1.6.5 ) - Download - http://www.oldapps.com/xampp.php?old_xampp=38 -&gt; Gesior Acc. Maker ( 0.3.8 ) - Download - http://www.mediafire.com/?u0bao9bcp9ua5vr -&gt; Um servidor de sua escolha.Pode ser qualquer um desde que tenha o arquivo .mysql. PS: NÃO RESPONDO A QUEM TIVER O ERRO DO INSTALL.PHP . ESSE ERRO É CAUSADO POR CAUSA DA UTILIZAÇÃO DE OUTRA VERSÃO DO XAMPP E DO GESIOR, POR ESSE MOTIVO EU COLOQUEI O XAMPP 1.6.5 QUE ESTÁ FUNCIONANDO! NÃO USE A VERSÃO MAIS RECENTE DO XAMPP! Vamos ao tutorial! Espere... vai criar um site sem saber como funciona? O site de seu servidor será feito em PHP. E o que vai ter nele? Os jogadores de seu servidor poderão criar suas contas, ver notícias do servidor, ver outros jogadores, criar guildas, e muito mais dependendo de como você manusear seu website. OBS1 : É altamente recomendável que escolha uma forte senha para sua conta de Admin. Pois se seu servidor tiver sucesso, certamente "hackers" tentarão atacar sua database e seu servidor. OBS 2: Seu site ficará online apenas quando o Xampp estiver ativo com o Apache e MySQL sendo executados, ou seja, apenas quando você estiver no computador. Para seu site ficar online 24 horas, você precisaria de uma hospedagem para php. Agora que já temos tudo, vamos começar !! 1°) Abra o instalador do XamPP, e instale-o. 2°) Selecione aonde a pasta do XamPP ficará salva. (de preferência algum lugar de fácil acesso) 3°) Deixe apenas a primeira e a segunda opções marcadas e clique em Next. 4°) Aguarde o fim da instação e provavelmente uma tela preta irá aparecer. 5°) Após o fim da instalação, clique em Yes para abrir o XamPP e dê Start em Apache e MySQL. 6°) Clique em Admin do Apache. Você será redirecionado para a sua localhost (endereço que apenas você entra). Clique em Português (Brasil). 7°) No canto esquerdo do site , clique na Aba Segurança. Vá descendo até achar " http://localhost/sec...mppsecurity.php " . Clique. OBS : Se você não conseguiu abrir a página de Segurança, vá na pasta do seu Xampp/security/htdocs/lang e renomeie o arquivo pt para pt_br . 8°) Após ter clicado, deverá ser redirecionado para uma página parecida com essa: OBS :Faça o numero 1 e depois clique em Alterar Senha. Depois Faça o numero 3 e clique em Tornar Seguro o Diretorio do XamPP. 9°) Após ter feito isso, dê Stop no MySql (no XamPP) e dê Start denovo. Agora vá em seu navegador e digite : localhost/phpmyadmin 10°) Digite a senha que foi criada há pouco tempo que eu disse que era para a criação do banco de dados. 11°) Minimize seu navegador e vá na pasta de seu servidor, e abra o arquivo config.lua. Tire todos os espaços iniciais e as "frases" iniciadas com o sinal de " - " . Veja : 12°) Não feche o config.lua ainda, vá descendo até achar informações sobre a database de seu servidor ... algo parecido com isto : sqlType = "mysql" &lt;- se estiver em sqlite, mude para mysql sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123456" &lt; - coloque a senha que foi criada para entrar no banco de dados. sqlDatabase = "otserv" &lt; - coloque o nome de sua database , coloque " otserv " para facilitar. sqlFile = "otserv.s3db" &lt; - de prefencia, coloque " otserv.s3db " ( o mesmo nome de sua database ) sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "plain" 13°) Salve e feche o config.lua. Agora vamos voltar a pagina minimizada (localhost/phpmyadmin) : 14°) Clique na aba Importar na parte superior da tela. 15°) Agora Selecione o Arquivo para Importar. Selecione o arquivo terminado em .sql que fica na pasta de seu servidor e clique em Executar no canto inferior direito. 16°) Pronto !! A database de seu servidor foi criada. Agora vamos instalar os arquivos do site. 17°) Abra a pasta do XamPP/htdocs. Apague tudo que tem dentro de htdocs e cole tudo o que veio dentro da pasta do Gesior ACC. 18°) Abra o XamPP novamente e clique em Admin do Apache. 19°) Uma nova pagina foi aberta, agora você terá que fazer mais 5 passos rápidos. 19.1) Set Server Path Coloque o diretório da pasta de seu servidor. Ex : C:\Users\user\Desktop\Tibia Server Clique em Set Server Path. 19.2) Check database connection 19.3) Add tables and columns to DB 19.4) Agora desça e clique no botão. 19.5) Set Admin Account Coloque uma senha SEGURA pois esse será o password do administrador do site e servidor. 19.6) Load Monsters from OTS Carregue os monstros do servidor. 19.7) Load Spells from OTS Carregue as magias do servidor. 20°) Agora você deverá ser redirecionado para seu site, e você pode acessá-lo pelo localhost ou pelo ip do seu servidor. Para acessar sua database, digite em seu navegador : localhost/phpmyadmin Pronto !! Seu site foi criado :] Colocando seu site online pelo 8090 e Desbloqueando a porta 8090 : 1° - Acesse a pasta do XamPP/apache/conf e abra o arquivo httpd com o bloco de notas. Procure por : Listen 80 E por : ServerName localhost:80 Substitua todos os 80 por 8090. 2° - Dentro da pasta conf, abra a pasta extra, e em seguida abra httpd-ssl e procure por : Listen 443 E por: <virtualhost _default_:443=""> Substitua esses 443 por 4499. Agora vá em seu firewall e Adicione a Porta 8090 e Porta 80 e marca a opção TCP. Se usar Roteador, desbloqueie as portas também. Site por porta 80 localhost Site por porta 8090 localhost:8090 Colocando seu site online pela porta 80 (A porta 80 seria o ip normal de seu servidor. Exemplo : teste.servegame.com. ) A porta 80 não necessita de nada no final. Para que as pessoas entrem pela porta 80, não necessita mudar nada na pasta do Xampp. Pois ela ja está configurada para entrarem. Só é necessário desbloquear a porta 80 no seu modem ou roteador. E desbloquear a porta 80 pelo Firewall também. VIDEO AULA - FEITA EM 2/4/2012 (DESCULPA , AS VEZES TENHO QUE PENSAR QUANDO FALO EM PORTUGUES, PORQUE NAO MORO NO BRASIL)!! Créditos : 100% por Mim :] Não mexo mais com Tibia, mas ainda respondo a qualquer dúvida que eu esteja capacitado a responder (:1 ponto -
Baiak Yurots V1.1.9 [8.70] Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Baiak Yurots V1.1.9 Oque Mudou ? Mudo o Templo 100% Modificado Protocolo 8.70 100% Npc Baiak Seller Com Varios item vip funcionando os skills !! Atack das armas balanceada atack das runas balanceada todas as vocation balanceada e Muito Mais Você Vai Ver Nas SS (Screen Shots) Atk de Algumas Armas Avenger 65 de Atk Arcane Staff 65 de Atk Magic Sword 60 de Atk Thunder Hammer 60 de Atk Stonecuter Axe 60 de Atk Imperium Sword 90 de Atk Imperium Axe 90 de Atk Imperium Club 90 de Atk Baiak Sword 85 de Atk Entre Outras... acc do GOD Account:godbaiak Password:godbaiak Imagens:(Screen Shots) Teleports Templo Download Baiak Yurots 8.70 - > Baixar aki Download Dlls e Executer [Distro] [Obrigatorio para Abrir o ot] - >Down Distro Obrigatorio Scan Map Scan Do Distro Novos Comandos !aol = Para Comprar Aol !gmp = Para Comprar 100 Great Mana Potion !ghp = Para Comprar 100 Great Health Potion !shp = Para Comprar 100 Spirit Health Potion !uhp = Para Comprar 100 Ultimate Health Potion Gostou Crique Em REP +++ Obrigado Ajude Clike no Ali Embaixo (: Creditos GOD Louco Rook War Baiak Lula Vilden GOD BON Esse OT nao e copiado do Nosso amigo DexpironFox Nao Totalmente diferente....! Obs:Scan foi add obrigado a todos do xtibia.com!1 ponto
-
Creditos: Vodkart Kydrai fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ... o primeiro é o script que acontece quando voce mata um Monstro abre o teleport. o segundo é matar o monstro e sumir a parede por algum tempo. Obs: o Nome do monstro deve ser colocado com Letra Maiuscula. [ Matar monstro e abrir Teleport ] creaturescript\script [ Matar Monstro e parede sumir por determinado tempo ] creaturescript\script [ Matar Monstro e ser teleportado ] [ Matar Monstro e Ganhar Storage ]1 ponto
-
Oláaa gente ;D Hoje eu vou mostar como criar Corpses usando o otitemeditor No tutorial estarei mostrando como criar ID, e como adicionar o item type do item pelo Dat editor Agora vamos lá, estarei usando um Server de Pokémon como base: Primeiramente Baixe os programas necessários. Download: Ot item Editor: http://www.4shared.com/file/ur8xZioc/otitemeditor037.html Dat Editor: http://www.multiupload.com/KD9NW6TMF0 Scan Ot item editor: http://www.virustotal.com/file-scan/report.html?id=c72e216f7c17f9bd81c1ea8f0d9d18d729fca5783772e3b69b0b9469bf28c957-1308245391 Scan dat Editor: http://www.virustotal.com/file-scan/report.html?id=3c5e94e59df52ef693d12b0543aa66d6f8b0dee89a88bdb1e1cd1ca5d3d13195-1306952621 E baixe o tíbia no TibiaBR http://tibiabr.com/Downloads/Tibia_8.54 Depois de baixar tudo, Extraia o otitemeditor, o Dat editor E o instale o tíbia 8.54 Procure deixar tudo na mesma pasta para facilitar E pegue o Tibia.dat E o Tibia.spr e coloque dentro da pasta do Otitemeditor Abra o Otitemeditor Lembre-se se você não colocar o Tibia.dat E o Tibia.spr não ira funcionar (USE SEMPRE O DAT E O SPR DO TIBIA SE NÃO NÃO FUNCIONARA) Clique em File / Load otb E abra o Items.otb do seu Server que geralmente fica na pasta Data / Items / Items.otb Os items que aparecerão vão ser do tíbia Mas não se preocupe Porque os itens vão funcionar como os do Pokemon. Abra o dat editor, Vá em : File / Open Procure a pasta do client do seu Server, e nos seus devidos lugares abra o Tibia.dat e Tibia.spr (USE SEMPRE O DAT E O SPR DO CLIENT QUE VOCÊ USA PARA ENTRAR NO SEU SERVER) no meu caso o de pokemon Espere carregar e as sprites do seu client irão aparecer As sprites irão aparecer no Canto esquerdo Agora clique em: File / New / Item E os corpses aparecerão Agora escolha o corpse que você deseja, eu vou usar o do Bayleef Pegue o Item Type do item (Que é está na tabelinha No centro a baixo) E Guarde. Agora vá no Otitemeditor e Clique no + Que está ao lado do Deprecated Escolha qualquer um dos números Abaixo ( Esse numero será o id do seu item) Vou usar o numero 110 (GUARDE ESSE NUMERO) Clique no numero que você escolheu E na caixinha ao lado onde esta escrito CID Ponha o numero que eu falei pra você guardar. Retire o Not moveable da caixinha ao lado do Cid. Agora clique com o botão direito no item number que você escolheu e selecione NONE. Clique em File / Save as... E salve em cima do seu otb Antigo Agora vá na pasta do seu Server Clique em: Data / Items / Items.xml E abra com o bloco de notas Copie os dados de qualquer monstro, e cole abaixo Agora pegue o item id que você criou (AQUELE SEGUNDO NUMERO QUE EU FALEI PARA GUARDAR (OU SEJA O ITEM ID) E ponha encima do id antigo do item , e mude o nome do item Para “Fainted Nomedopoke” Salve e feche. Agora vá em: Data / Monsters / Pokes . Abra o XML do Pokémon que você esta editando. E mude o corpse=" ID DO CORPO"/> Mude o id do corpse e salve. Prontoooo Novo corpse adicionado CASO NÃO SAIBA CRIAR UM NOVO MONSTRO OLHE MEU OUTRO TOPICO (ENCINANDO A CRIAR POKEMONS FORMATO .IDC) http://www.xtibia.com/forum/topic/157664-pokemons-formato-idc/ Se te ajudei dá um +REP pra min aeee Não cai o dedo GENTE TINHA UM ERRO NO TUTORIAL, JÁ FOI CONSERTADO Créditos Psycho Okama : <Eooooo FUIIIIIIIIZ1 ponto
-
Cooldown Para Spells
Tiag017 reagiu a Demonbholder por um tópico no fórum
Faaala galera! Tudo bom? Eu estava olhando uns tutoriais por ai, os quais ensinavam como colocar cooldown, ou tempo de exaustão, entre as magias. O problema é que, em todos estes, utilizava-se 1 storage para cada spell. Você pode vir a me perguntar: "qual o problema disso?". O problema é que, quanto mais storages você utiliza, mais são as chances de ocorrer bugs em seu servidor graças ao mesmo storage sendo usado ao mesmo tempo. Agora que eu já expliquei as vantagens de usar apenas 1 storage, podemos começar a explicar as funções. Antes de mais nada, vamos a elas: Lib function getCooldown(cid, spellname) local storage = tostring(getPlayerStorageValue(cid, 40001)) local spellname = '"' .. spellname .. '"' return string.find(storage, spellname) and tonumber(string.match(storage, "%d+", string.find(storage, spellname) + #spellname)) - os.time() or 0 end function setCooldown(cid, spellname, seconds) local storage = getPlayerStorageValue(cid, 40001) == -1 and "" or tostring(getPlayerStorageValue(cid, 40001)) local spellname = '"' .. spellname .. '"' if string.find(storage, spellname) then local gsub = string.gsub(storage, string.match(storage, "%d+", string.find(storage, spellname) + #spellname), tostring(os.time() + seconds)) setPlayerStorageValue(cid, 40001, gsub) else setPlayerStorageValue(cid, 40001, storage .. spellname .. " " .. tostring(seconds + os.time()) .. " ") end end function isExhausted(cid, spellname) return getCooldown(cid, spellname) > 0 end Certo, você pode adicionar isto em data/lib/function.lua, ou, pode criar um arquivo com o formato .lua nesta mesma pasta e nomeá-lo para qualquer coisa. -- Agora vamos explicar as funções: *As informações em itálico são apenas por curiosidade: function getCooldown - Bom, esta função vai retornar o tempo, em segundos, do cooldown da mágia. Seus argumentos são o uid do jogador e o nome da mágia. Cuidado, Exura é diferente de exura. Se não houver cooldown para a magia no jogador, retorna 0. Utilizei o storage 40001 para colocar os cooldowns. Você pode perceber que ele adiciona uma string ao storage, ficando, por exemplo, assim: "Exura" 1308376293 "Exori" 1308376393 As aspas são para precaver bugs como Exura e Exura gran. O número ao lado é o cooldown somado a função os.time() que é o segundos retornados pela CPU na hora que o cooldown foi adicionado. function setCooldown - Aqui teremos a função que vai adicionar o cooldown ao jogador. Seus argumentos são o uid do jogador, o nome da magia e os segundos de cooldown. A função vai checar se já há o cooldown no storage do jogador. Se já houver, a função simplesmente troca este velho tempo pelo novo. Se não houver, ela simplesmente adicionar no final da string o nome da spell e o tempo mais a função os.time. function isExhausted - Por ultimo, temos a função que retorna se o jogador está, ou não, exausto de usar aquela magia. Retorna TRUE se o cooldown for acima e zero, caso contrário, retorna FALSE. -- Simples não? Vamos a um exemplo, usaremos o script do exevo mas san (Divine Caldera): local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 6) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Para adicionar o cooldown, simplesmente fazemos algumas alterações, deste jeito: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 6) local area = createCombatArea(AREA_CIRCLE3X3) setCombatArea(combat, area) function onCastSpell(cid, var) if isExhausted(cid, "exevo mas san") == FALSE then return doCombat(cid, combat, var), setCooldown(cid, "exevo mas san", 10) end return FALSE, doPlayerSendCancel(cid, "You are exhausted.") end Observe o que muda: function onCastSpell(cid, var) if isExhausted(cid, "exevo mas san") == FALSE then return doCombat(cid, combat, var), setCooldown(cid, "exevo mas san", 10) end return FALSE, doPlayerSendCancel(cid, "You are exhausted.") end Esta será a base de todas as spells, você só tem que trocar o nome e o tempo. -- Avisem se encontrarem algum bug comprometedor. Abraços.1 ponto -
Sistema De Novos Items
Edenfield reagiu a MatheusGlad por um tópico no fórum
Bem, como todos sabem, não da pra criar 2 items com o mesmo sprite, somente editando a source e o dat etc... Usando esse sistema que eu fiz voce nao precisara editar nada somente adicionar os scripts. Primeiramente vá na pasta lib e crie um arquivo ItemsEditedLib.lua e adicione isso dentro: function doPlayerAddEditedItem(cid, itemid) local newxml = io.open("data/items/newitems.xml", "r") local configs = {} for i in newxml:read("*a"):gmatch("<item (.-)</item>") do local itemid = tonumber(i:match('id="(.-)"')) local itemconfig = { ["spriteid"] = tonumber(i:match('spriteid.-=.-"(.-)"')), ["article"] = i:match('article.-=.-"(.-)"'), ["name"] = i:match('name.-=.-"(.-)"'), ["description"] = i:match('key.-=.-"description".-value.-=.-"(.-)"'), ["defense"] = tonumber(i:match('key.-=.-"defense".-value.-=.-"(.-)"')), ["attack"] = tonumber(i:match('key.-=.-"attack".-value.-=.-"(.-)"')), ["extradefense"] = tonumber(i:match('key.-=.-"extradef".-value.-=.-"(.-)"')), ["armor"] = tonumber(i:match('key.-=.-"armor".-value.-=.-"(.-)"')), ["extraattack"] = tonumber(i:match('key.-=.-"extraatk".-value.-=.-"(.-)"')), } configs[itemid] = itemconfig end if configs[itemid] then local item = doPlayerAddItem(cid, configs[itemid].spriteid) for i,x in pairs(configs[itemid]) do doItemSetAttribute(item, i, x) end end end Depois vá na pasta items e adicione um arquivo newitems.XML (XML NAO LUA!!!) e adicione isso dentro: <?xml version="1.0" encoding="UTF-8"?> <items> <item id="100" spriteid="2400" article="a" name="magic edited sword"> <attribute key="description" value="Arma editada." /> <attribute key="defense" value="45" /> <attribute key="attack" value="100" /> <attribute key="extradef" value="10" /> <attribute key="extraatk" value="10" /> </item> <item id="101" spriteid="2472" article="a" name="master plate armor"> <attribute key="description" value="Armor editada." /> <attribute key="armor" value="19" /> </item> </items> Bem como voces podem ver, o xml guarda os novos items, o xml funciona praticamente como o items.xml so que tem um novo campo o "spriteid", nele fica o itemid original. Eu sei que ainda faltam atributos, com o tempo e com os pedidos eu vou adicionando. (É importante que voces peçam por novos atributos, porque os outros são mais complicados e eu nao vou faze-los para ninguem usar) Atributos: "description" "defense" "attack" "extradefense" "armor" "extraattack" Para adicionar os novos itemids aos players use doPlayerAddEditedItem(cid, ITEMID) em vez de doPlayerAddItem...1 ponto -
Juntando Um Mapa Ao Outro: Rme
antonioca1 reagiu a Filippe Ferreira por um tópico no fórum
Juntando um mapa ao outro no RME Abra o RME com o mapa que você quer copiar, após isso vá em File/Open e procure o mapa em que você quer colar outro. E então ficara os dois no mesmo RME, só que em abas diferentes: Feito isso vá no mapa que você quer copiar, no canto terá um quadradinho, clique nele, o mesmo vai virar um lápis; Continue no mapa que deseja copiar, e então segura shift e arraste o mouse por cima da área que você quer copiar, ele ficará escuro após selecionar como na foto abaixo: Depois é só apertar ctrl + v no mapa que você quer colar.1 ponto -
Ice Baiak Editado (8.60)
Joao103 reagiu a XxGabriielxX por um tópico no fórum
Eaw galera bllz estou akiie para mostrar o novo ice baiak ice baiak tah super edited :forward: Scan= http://www.virustotal.com/url-scan/report.html?id=1c0241afd680ef463e95628a5fb1d380-1307760502 SIte http://www.speedyshare.com/files/28911957/Baiak_Editado_BY_Gabriel.rar Gostou +rep :button_ok: vlx1 ponto -
• nome: Sistema de Ginásio / GYM para pokemon. • autor: brun123 (mastercraft) • versão testada: TFS 0.36 pl 1 (8.54) Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso. Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo: Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro: Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags: <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro: Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)": if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro: function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end e adicione essa tag no creaturescripts.xml (data/creaturescripts): <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/> e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código: registerCreatureEvent(cid, "PlayerAttack") Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha: function onDeath(cid, deathList) e abaixo dela, adicione esse código: local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs: Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha: "doGymBattle("Brock", "Brock Geodude", cid, 1)" o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado. Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock". Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte: if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras): funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula. Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema. Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela: ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema. • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo. • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois. • msgwin significa o que o NPC irá dizer quando o player vencer o duelo. • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon. • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai... Uma tabela detalhada sobre a configuração: Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml. Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon: for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive. Deve-se também checar pelos storages usado em players, somente o 990 e o 991. No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade). Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC. Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor. Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso: --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges. Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas. Quaisquer erros, tentarei responder o mais rápido possível.1 ponto
-
Tfs 0.4 Rev4408 Compiled (8.7+)
Jholzika reagiu a mdgabrielzim por um tópico no fórum
Download Scan Chega de pagar o que você pode achar de graça aqui né Tfs Compilado Para Tibia (8.7 +)aproveite e se gostar +rep =D Creditos DiegoSkate.1 ponto -
Bom, eu chego a ficar com raiva de pessoas que escrevem assim nas placas: Ou que edita NPCs assim: Ahhh, dá vontade de dar um tiro. Esse é o tipo de edição feita por um retardado. Eu tenho 14 anos, sou RPG Maker. Tou na Equipe de um OTServ como RPG Maker e na equipe de 2 servers de Ragnarok como Roteirista. Idade não significa nada. Agora, tem gente que acha que OTServ é palhaçada e não pensam em um bom RPG, em sistemas bons para seu OT, o que vai fazer sucesso, o que iria equilibrar o servidor. NÃO! Tem muita gente que simplesmente baixa um OT, dai fica uma semana perguntando como edita a droga do Map, dai quando consegue começa a fazer quadradinhos no mapa e bota 300 kg de respawn de Demon. Dai chega no Xtibia e diz que é mapper profissional. Por isso que o bom e velho Yurots está o lixo brilhante Baiak...1 ponto
-
Vlww ainda hj to postando mais algumas ss é q to com pouco tempo pra mexe na net to mó enrolado no trampo ASSAUHAS1 ponto
-
Johann07, siga os passos abaixo! 1) Abra o phpMyAdmin de seu website (Exemplo: http://localhost/phpmyadmin). - Escolha a database atualmente usada e entre na tabela accounts. - Clique no ícone de editar () na account que você deseja tirar o administrador. - Procure pelo campo page_access, provavelmente estará o valor 3, mude para 0 e clique em Executar. - Se quiser adicionar administrador para alguma outra conta, repita os passos porém ao invés de mudar o valor para 0, mude para 3.1 ponto
-
Resetar Server
williampasqualini reagiu a AlexxNica por um tópico no fórum
Rexis, estou sem um servidor aqui para testar, porém, vou lhe passar uma query que pode resolver o problema (faça backup antes de testar). 1) Abra o phpMyAdmin de seu website (Exemplo: http://localhost/phpmyadmin). - Escolha a database atualmente usada. - Clique sobre o menu SQL, encontrado no canto superior da página. - Coloque o código abaixo no campo em branco que irá aparecer, após isto, clique em Executar.1 ponto -
Tipo tenho um script parecido. O Player vai poder jogar item no chão mas ele sera automaticamente removido.. Vermelho: Action id para adicionar no map editor pro script funcionar. Verde: Nome que voce vai dar para o arquivo.1 ponto
-
Como Jogar No Tibia Flash Client
carvalhosexy reagiu a pessoa93 por um tópico no fórum
Primeiro entre em sua account e clique em My account: Segundo clique em Join Beta Terceiro clique em PLAY Simples e fácil. Gostou? Agradeça1 ponto -
[Encerrado] Qual A Diferença ?
JonatasPereira reagiu a pessoa93 por um tópico no fórum
Isso ai já não é o executável, já é a pasta data. O TFS vem "zerado", ou seja, sem actions, npcs e talz. vem só o basico de um servidor precisa, cabe a você fazer o resto. Esses outros são já que a galera editou.1 ponto -
Sobre Fonte Do Site
RHCP reagiu a ultimate1996 por um tópico no fórum
Vá em htdocs/layouts e abra o arquivo layout.php . Depois de : <html xmlns="http://www.w3.org/1999/xhtml"> <head> Coloque isso : <?header("Content-Type: text/html; charset=ISO-8859-1",true);?> Pronto. Salve e feche. Agora qualquer arquivo em que você for usar o acento, não sofrerá nenhuma alteração.1 ponto -
Estava sem nada pra fazer e lendo alguns tutoriais sobre script perguntei ao Bholder como fazer para treinar e praticar o que estou aprendendo ele disse pra mim botar em prática algumas idéias, então... Resolvi pegar o Magic Teleport (Clique Aqui) do Prof° Marcelin que foi inspirado no Rad e deixar 100% igual ao do Rad. Sei que não foi muita coisa que fiz mas foi para treinar e para disponibilizar a action 100% igual ao Rad, aos que querem ela. Futuramente estarei criando mais alguns scripts caso tenham idéias simples de scripts me mandem MSG para mim tentar alguma coisa. É claro que o do Marcelin oferece funções mais avançadas e complexas, mas o meu intuito foi postar aos Hoster desses servidores pequenos inspirados no Rad, para terem mais uma coisa igual (66'. Então sem mais delongas... Funções: Quando o player der use no item determinado é executado três condições: 30% De Quebra (Magic TP, não teleporta e é removido do player); 30% De Falha (Magic TP, não teleporta mas continua com o player); [Parte feita por mim] 40% Teleportar (Magic TP, teleporta o player e é removido dele). actions/scripts/magicteleport.lua -- Script 99% Marcello 1% Xapinhal NOREMOVE -- function onUse(cid, item, pos, item2, topos) config = { possibilidade = 30 , --[[ Porcentagem de Quebra. ]] possibilidade2 = 30 , --[[ Porcentagem de Falha. ]] ptemp ="yes", princ = {x=2242, y=2057, z=7} --[[ Local que player irá si for teleportado. ]] } local chance = math.random(1, 100) local chance2 = math.random(1, 100) local msgp ="~ "..getPlayerName(cid).." Foi Teleportado Com Sucesso. ~" local fail ="'O Teleport Quebrou.'" local fail2 ="'O Teleport Falhou.'" if chance >= 1 and chance <= config.possibilidade then doCreatureSay(cid, fail, TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) doSendMagicEffect(getPlayerPosition(cid), 29) return 1 elseif chance2 >= 1 and chance2 <= config.possibilidade2 then doCreatureSay(cid, fail2, TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return 1 elseif(config.ptemp == "yes") then doTeleportThing(cid, config.princ) doCreatureSay(cid, msgp, TALKTYPE_ORANGE_1) doRemoveItem(item.uid, 1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) return 1 end return TRUE end actions/actions.xml <action itemid="2349" script="teleportmagico.lua"/>1 ponto
-
:button_cancel: vlw's aee . so novo. :cool:1 ponto
-
Scriptear
heavy2 reagiu a Demonbholder por uma questão
Olha, vejo muita gente querendo aprender, é mesmo uma pena que eu não possa ensinar todos. É por isso que eu vou colocar aqui, a série de tutoriais pelos quais eu aprendi lua em otserv. 1º Passo. Primeiro de tudo, crie uma pasta no seu favoritos e adicione todos os links abaixo. Como requisito para aprendermos lua, é necessário termos as funções de lua em otserv. Siga os links abaixo: Funções Explicadas (Não todas) Funções não Explicadas (Quase todas) Estas são as funções, vamos usá-las depois de aprender e começar a fazer os primeiros scripts. 2º Passo. Agora vamos começar a aprender. A primeira coisa é ler todo esse tutorial várias vezes: Começando em lua para otserv. Depois de ler esse, você pode ler os materiais de apoio, siga estes dois tutoriais abaixo: Material de apoio Inicio 1 Material de apoio Inicio 2 Material de apoio Inicio 3 Ok, depois disso, se tiver certeza que entendeu, pelo menos o principal acima, vá para o próximo passo. 3º Passo. Dessa vez o negócio começa a ficar mais sério, se você aprender o passo 3, ai você vai estar na metade do caminho para se tornar um scripter. Siga os tutoriais: Intermediário em lua para otserv. Feito, leia bastante esse tutorial, teste seu scripts, brinque com a linguagem. Vamos ao material de apoio para quem não entendeu muito bem essa parte. Material de apoio Intermediário 1 Bom, continue brincando com lua e testando suas dúvidas, agora vamos ao último passo. 4º Passo. Por fim, vamos ao último passo para poder nos considerar um scripter iniciante. O último passo consiste em estender o seu conhecimento de otserv, por isso, é uma série de tutoriais próprios para action, npcs, spells e etc. Actions Movements Spells Monstros E agora, o mais complicadinho desses: Npcs Proto, com isso você deve conseguir aprender. Créditos pelos tutoriais: DrakyLucas Apocarai tibiaa4e Oneshot Programas úteis: Script live by Colex - Ideal para iniciantes. Scite - Ideal para quem já se aprofundou um pouco mais na linguagem. Se não quiser utilizar estes programas acima, pode usar o bloco de notas.1 ponto -
1 ponto
-
Item Que Da Addon
Bruno1994 reagiu a PsyMcKenzie por um tópico no fórum
tenho esse aki acho melhor tipo vc fala !addon (nome do addon) e vc ganha o addon e o item some em talkactions/script se cria uma pasta com nome de addondoll e cola isso dentro: function onSay(cid, words, param) local femaleOutfits = { ["citizen"]={136}, ["hunter"]={137}, ["mage"]={138}, ["knight"]={139}, ["nobleman"]={140}, ["summoner"]={141}, ["warrior"]={142}, ["barbarian"]={147}, ["druid"]={148}, ["wizard"]={149}, ["oriental"]={150}, ["pirate"]={155}, ["assassin"]={156}, ["beggar"]={157}, ["shaman"]={158}, ["norsewoman"]={252}, ["nightmare"]={269}, ["jester"]={270}, ["brotherhood"]={279}, ["demonhunter"]={288}, ["yalaharian"]={324} } local maleOutfits = { ["citizen"]={128}, ["hunter"]={129}, ["mage"]={130}, ["knight"]={131}, ["nobleman"]={132},["summoner"]={133}, ["warrior"]={134}, ["barbarian"]={143}, ["druid"]={144}, ["wizard"]={145}, ["oriental"]={146}, ["pirate"]={151}, ["assassin"]={152}, ["beggar"]={153}, ["shaman"]={154}, ["norsewoman"]={251}, ["nightmare"]={268}, ["jester"]={273}, ["brotherhood"]={278}, ["demonhunter"]={289}, ["yalaharian"]={325} } local msg = {"Digite o nome correto!", "Voce não possui Addon Doll!", "Bad param!", "Você recebeu seu addons!"} local param = string.lower(param) if (not isPremium(cid)) then doPlayerSendCancel(cid, "Você nao tem premium account.") return TRUE end if(getPlayerItemCount(cid,2112) > 0) then if(param ~= "" and maleOutfits[param] and femaleOutfits[param]) then doPlayerRemoveItem(cid, 2112, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[4]) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) if(getPlayerSex(cid) == 0)then doPlayerAddOutfit(cid, femaleOutfits[param][1], 3) else doPlayerAddOutfit(cid, maleOutfits[param][1], 3) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1]) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2]) end end em vermelho o id do item em talkactions xml voce coloka isso: <talkaction words="!addon" event="script" value="addondoll.lua"/> se puder da um rep+ ae tbm sou novo ake mais seu um poko de ot =D até maiis.1 ponto -
Outfit Do Acc Manager
eduardolokao reagiu a FabricioO23 por um tópico no fórum
SqliteStudio > Tables > Players > Encontre o 'Looktype' do 'Account Manager' e mude pra qualquer outro que você queira. Lista de Looktypes: 0 - Void 1 - <Nothing> 2 - Orc warlord 3 - Warwolf 4 - Orc rider 5 - Orc 6 - Orc shaman 7 - Orc warrior 8 - Orc berserker 9 - Necromancer 10 - Yellow butterfly 11 - Massive water elemental 12 - Archdemon 13 - Black sheep 14 - Sheep 15 - Troll 16 - Bear 17 - Beholder 18 - Ghoul 19 - Slime 20 - Quara predator 21 - Rat 22 - Cyclops 23 - Minotaur mage 24 - Minotaur archer 25 - Minutaur 26 - Rotworm 27 - Wolf 28 - Snake 29 - Minotaur guard 30 - Spider 31 - Deer 32 - Dog 33 - Skeleton 34 - Dragon 35 - Demon 36 - Poison spider 37 - Demon skeleton 38 - Giant spider 39 - Dragon lord 40 - Fire devil 41 - Lion 42 - Polar bear 43 - Scorpion 44 - Wasp 45 - Bug 46 - Quara constrictor 47 - Quara hydromancer 48 - Ghost 49 - Fire elemental 50 - Orc spearman 51 - Green Djinn 52 - Winter wolf 53 - Frost troll 54 - Witch 55 - behemoth 56 - Cave rat 57 - Monk 58 - Priestess 59 - Orc leader 60 - Pig 61 - Goblin 62 - Elf 63 - Elf arcarnist 64 - Elf Scout 65 - Mummy 66 - Dwarf geomancer 67 - Stone golem 68 - Vampire 69 - Dwarf 70 - Dwarf guard 71 - Dwarf soldier 72 - Quara mantassin 73 - Hero 74 - Rabbit 75 - Game master 76 - Swamp troll 77 - Quara pincher 78 - Banshee 79 - Ancient scarab 80 - Blue djinn 81 - Cobra 82 - Larva 83 - Scarab 84 - Ormuc 85 - Morguthis 86 - thalas 87 - Dipthrah 88 - Arkothep 89 - Mahrdis 90 - Vashresamun 91 - Ashmunrah 92 - Mimic 93 - Pirate marauder 94 - Hyaena 95 - Gargoyle 96 - Pirate cutthroat 97 - Pirate buccaneer 98 - Pirate corsair 99 - Lich 100 - Crypt shambler 101 - Bone beast 102 - Death slicer 103 - Efreet 104 - Marid 105 - Badger 106 - Skunk 107 - Demon 108 - Elder beholder 109 - Gazer 110 - Yeti 111 - Chicken 112 - Crab 113 - Lizard templar 114 - Lizard Sentinel 115 - Lizard Snakecharmer 116 - Kongra 117 - Merlkin 118 - Sibang 119 - Crocodile 120 - Carnaphila 121 - Hydra 122 - Bat 123 - Panda 124 - Centipede 125 - tiger 126 - Old Woman 127 - Old man 128 - Male citizen 129 - Male hunter 130 - Male mage 131 - Male knight 132 - Male nobleman 133 - Male summoner 134 - Male warrior 135 - <Nothing> 136 - Fenale citizen 137 - Female hunter 138 - Female mage 139 - Female Knight 140 - Female noblewoman 141 - Female summoner 142 - Female warrior 143 - Male barbarian 144 - Male druid 145 - Male wizard 146 - Male oriental 147 - Female barbarian 148 - Female druid 149 - Female wizard 150 - Female oriental 151 - Male pirate 152 - Male assassin 153 - Male begger 154 - Male shaman 155 - Female pirate 156 - Female assassin 157 - Female begger 158 - Female shaman 159 - Elf 160 - Dwarf 161 - <Nothing> 162 - <Nothing> 163 - <Nothing> 164 - <Nothing> 165 - <Nothing> 166 - <Nothing> 167 - <Nothing> 168 - <Nothing> 169 - <Nothing> 170 - <Nothing> 171 - <Nothing> 172 - <Nothing> 173 - <Nothing> 174 - <Nothing> 175 - <Nothing> 176 - <Nothing> 177 - <Nothing> 178 - <Nothing> 179 - <Nothing> 180 - <Nothing> 181 - <Nothing> 182 - <Nothing> 183 - <Nothing> 184 - <Nothing> 185 - <Nothing> 186 - <Nothing> 187 - <Nothing> 188 - <Nothing> 189 - <Nothing> 190 - <Nothing> 191 - <Nothing> 192 - Carrion worm 193 - Enlighted of the cult 194 - Adept of the cult 195 - Pirate skeleton 196 - Pirate ghost 197 - Tortoise 198 - Thornback tortoise 199 - Mammoth 200 - Blood crab 201 - Demon 202 - Minotaur guard 203 - Elf arcanist 204 - Dragon lord 205 - Stone golem 206 - Monk 207 - Minotaur guard 208 - giant spider 209 - Necromancer 210 - Elder beholder 211 - Elephant 212 - Flamingo 213 - Purple butterfly 214 - Dworc voodoomaster 215 - Dworc fleshhunter 216 - Dworc venomsniper 217 - Parrot 218 - Terror bird 219 - Tarantula 220 - Serpent spawn 221 - Spit nettle 222 - Toad 223 - Seagull 224 - Green frog 225 - Monk 226 - Frog 227 - Blue butterfly 228 - Red butterfly 229 - Ferumbras 230 - Hand of cursed fate 231 - Undead dragon 232 - Lost soul 233 - Betrayed wraith 234 - Dark torturer 235 - Spectre 236 - Destroyer 237 - Diabolic imp 238 - Defiler 239 - Wyvern 240 - Hellhound 241 - Phantasm 242 - Blistering fire elemental 243 - Hellfire fighter 244 - Juggernaut 245 - Nightmare 246 - Blightwalker 247 - Plaguesmith 248 - Frost dragon 249 - Chakoya tribewarden 250 - Penguin 251 - Male norseman 252 - Female norsewoman 253 - Barbarian headsplitter 254 - Barbarian skullhunter 255 - Barbarian bloodwalker 256 - Braindeath 257 - Frost giant 258 - Husky 259 - Chakoya toolshaper 260 - Chakoya windcaller 261 - Ice golem 262 - Silver rabbit 263 - Crystal spider 264 - Barbarian brutetamer 265 - Frost giantess 266 - Comunity manager 267 - Swimming 268 - Male nightmare knight 269 - Female nightmare knight 270 - Female jester 271 - Dragon hatchling 272 - Dragon lord hatchling 273 - Male jester 274 - Squirrel 275 - Sea serpent 276 - Cat 277 - Cyclops smith 278 - Male brotherhood of bones 279 - Female brotherhood of bones 280 - Cyclops drone 281 - Troll champion 282 - Island troll 283 - Frost dragon hatchling 284 - Cockroach 285 - Massive earth elemental 286 - Water elemental 287 - Vampire overlord 288 - Female demonhunter 289 - Male demonhunter 290 - Massive energy elemental 291 - Wyrm 292 - Animated pumpkin 293 - Energy element 294 - Wisp 295 - Rotworm queen 296 - Goblin assassin 297 - Goblin scavanger 298 - Skeleton warrior 299 - Bog raider 300 - Grim reaper 301 - Earth element 302 - God 303 - Undead tortoise? 304 - Worker golem 305 - Mutated rat 306 - Undead gladiator 307 - Mutaded bat 308 - Werewolf 309 - Yalaharian 310 - Haunted treeling 311 - Zombie 312 - Vampire bride 313 - Gozzler 314 - Acid blob 315 - Death blob 316 - Mercury blob 317 - Young sea serpent 318 - Mutated tiger 319 - Haunted spirit 320 - Nightstalker 321 - Nightmare scion 322 - Hellspawn 323 - Mutaded human 324 - Female yalaharian 325 - Male yalaharian 326 - War golem1 ponto -
Cara acho que sua duvida foi sanada, mais a área mais correta para o seu tópico seria em "Duvida sobre Servidores", portanto tópico movido. Abraços, e preste mais atenção :happy:1 ponto
-
-1 pontos
-
copiou o topico na cara de pal,tu não arrumou quase nada rs-1 pontos
-
Mais que otário deu Ctrl+c, Ctrl+v ve se faz alguma coisa que preste e delete o topico Reportado !-1 pontos
-
Pokemon Ex 2.2
Lordfire reagiu a Mateusdeli123 por um tópico no fórum
LOL copio o topico e tambem não tem nada de novo-1 pontos -
Pokemon Ex 2.2
Lordfire reagiu a eddievanhalen por um tópico no fórum
LoL tu copio o topico do "emptyrlz". criatividade nada néh-1 pontos