Search the Community
Showing results for tags 'Pokemon'.
Found 39 results
-
Base: The Ruby Server Qual é a sua pergunta? Já fiz o tutorial e tudo mas dá aquele erro ao entrar na página Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
-
Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo: https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/ https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/ Obs: não delete esse formulário pré-definido, preencha-o corretamente para postar o seu tópico! Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). Base: The Ruby Server Qual é a sua pergunta? Quero ver se alguém me ajuda a compilar ou se já tem a base compilada Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
-
Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). versão do TFS: TFS 0.3.6 protocolo: 8.54 Base: Pokémon Qual é a sua pergunta? Olá pessoal boa noite, gostaria de pedir uma ajuda com um problema em statsChange, pois a minha visão, está configurada normal, mas os pokémons selvagens não está dando "dano" nas skills deles, nem no "melee" que é considerada uma spell, chamada "Attack". O summon está soltando e tirando dano normalmente, mas infelizmente estou nesse impar-se dos selvagens. Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
-
Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo: https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/ https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/ Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). Ex: The Forgotten Server 1.3, Versão: 10.98. Base: The Forgotten Server 1.3 Qual é a sua pergunta? Estou com um projeto que recentemente fiz um post no meu perfil que é um Poketibia no tfs 1.3 porém nunca lidei com tfs e gostaria de saber por onde começar a estudar para poder alcançar meus objetivos por enquanto eu gostaria de adicionar o sistema de pokemons mas nao sei nem como começar nao sei como o servidor le os arquivos qual a ordem e oque preciso adicionar tentei comparar com o Pokemon Ruby que foi o unico projeto que encontrei nessa versão mas nao foi nada esclarecedor desde ja agradeço a atenção Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
-
Programação Você não tem permissão para visualizar este conteúdo
felipexrz posted a question in Programação
Ex: The Forgotten Server 1.3, Versão: 10.98. Base: Old The Ruby Project - Base Pokémon Qual é a sua pergunta? Boa Noite! Estou começando agora no mundo da programação e queria aprender a programar com um projeto que tenho em mente, que é fazer um server de Poketibia, pesquisei bastante e essa base zerada é oque eu procurava. porem não estou conseguindo abrir as paginas de tutorial do post. Gostaria de Saber como posso ter acesso a esses tutorias desde já agradeço! Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:- 1 reply
-
- programacao
- duvida
-
(and 1 more)
Tagged with:
-
Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo: https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/ https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/ Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.). The Forgotten Server 1.3, Versão: 10.98. Base: The Ruby Project Qual é a sua pergunta? Depois do servidor online está dando esse erro cod 2 ao tentar logar. Tambem não estou conseguindo entrar no discord do The ruby project Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo: Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:
-
Salve galera, tudo certo? Estou trazendo uma modificação muito bacana para o seu OTClient, o que consiste essa modificação? Ela adiciona um nome encima do nome, explicação meio bosta né? Então tomem uma imagem da mesma: Como adicionar essa delicia de modificação? Simples, basta seguir as instruções que irei deixar abaixo! OBS: É necessário ter as sources do seu cliente! Procure essa parte em creature.cpp: if(drawFlags & Otc::DrawNames) { if(g_painter->getColor() != fillColor) g_painter->setColor(fillColor); m_nameCache.draw(textRect); } E troque por: if (drawFlags & Otc::DrawNames) { if (g_painter->getColor() != fillColor) g_painter->setColor(fillColor); CachedText shiny; shiny.setText("Shiny"); shiny.setFont(g_fonts.getFont("verdana-11px-rounded")); Rect shinyrect = Rect(point.x - shiny.getTextSize().width() / 2.0, point.y - 26, shiny.getTextSize()); if (m_name.find("Shiny") != std::string::npos) { char* shinys = "Shiny"; std::string nname = m_name; nname.erase(0, 5); m_nameCache.setText(nname); m_nameCache.draw(textRect); g_painter->setOpacity(0.5); g_painter->setColor(Color(255, 255, 0)); shiny.draw(shinyrect); g_painter->resetColor(); g_painter->resetOpacity(); m_nameCache.setText(m_name); } else { m_nameCache.draw(textRect); } } E pronto, apenas compile com essa modificações! Créditos: Refe, pela criação do código;
-
Fala galera linda do meu coração tudo certo? Então estou com um seguinte problema é um modulo de inventario voltado a poketibia, consegui adaptar parte dele ao meu servidor porem a barra de life do pokémon estou tendo alguns problemas e não consigo fazer ela funcionar: O código do inventario: O código do goback caso precise, não sei:
-
Old The Ruby Project - Base Pokémon Ao olhar as diversas bases que podem ser encontradas aqui no fórum e em outros locais da internet, pude ver que todas elas carecem de qualidade. Todas estas bases são feitas utilizando gambiarras para diversos sistemas funcionarem, e com isso vários problemas surgem, como de sistemas que não funcionam direito, e o mais importante, com um desempenho extremamente baixo, gerando apenas servidores instáveis. Com isso eu decidi que iria começar a desenvolver uma base para servidores relacionados a Pokémon, com dois objetivos. Um dos objetivos é ganhar mais conhecimento em cima da linguagem de programação C++, o outro objetivo é disponibilizar uma base completamente estável, funcional e de fácil configuração e desenvolvimento para servidores de Pokémon, para que mais ótimos trabalhos possam surgir. Este projeto também irá incluir um cliente próprio e estável, junto com um website. Também planejo criar uma espécie de Wiki para o servidor, cliente e website, com o objetivo de auxiliar quem for desenvolver em cima deste servidor, e também aqueles que pouco entendem do assunto relacionando a criação de escripts, Pokémon, spells e etc. Alguns poucos sistemas foram implementados no servidor por ora. Sistemas como o de catch e de goback serão implementados mais para frente, quando outros sistemas forem completamente implementados, como o sistema de configuração de Pokeballs, criação de Pokémons e sistema de shinys. Estou visando a qualidade do servidor como um todo, por isso algumas coisas irão demorar para aparecer. O sistema de Pokeballs e de criação de Pokémon já está bem encaminhado, e um sistema de gêneros também já está pronto com fácil configuração, onde o spawn destes Pokémon com sexo será por % igual aos jogos da franquia. Um sistema de surgimento de Ditto aleatório já está praticamente implementado, onde um Pokémon aleatório pode ser um Ditto disfarçado. [+] Informações do Servidor Baseado em: TFS 1.3 Protocolo: 10.98 [+] Informações do Client Baseado em: otclient 0.6.6 [+] Informações do Website Baseado em: nenhum Desenvolvido em: PHP (por ser o mais comum na comunidade) Como contribuir? Eu gostaria muito que a comunidade ajudasse no desenvolvimento deste projeto, pois o mesmo será disponibilizado para todos, e para contribuir não necessariamente é preciso entender de programação. Você pode também ajudar testando e reportando os bugs encontrados no repositório do projeto no GitHub, assim como com sugestões e ideias de mudança/implementação no servidor através do próprio repositório ou através do Discord, ou ajudar na criação de guias para o website do projeto. Links [+] RubyServer - GitHub https://github.com/oldtherubyproject/rubyserver [+] RubyClient - GitHub https://github.com/oldtherubyproject/rubyclient [+] RubyWebsite - Github https://github.com/oldtherubyproject/rubywebsite [+] RubyRME - Github https://github.com/oldtherubyproject/rubyrme [+] The Ruby Project - Discord https://discord.gg/XTrZGpy Algumas Imagens
-
Faaaaala ai Galerinha, cheguei para ficar com vocês, então estou trazendo o meu servidor editado em cima do PDA para o forum e espero que gostem :3 ,fiquem com as informações do servidor logo abaixo Edições: Adicionado Pokémons da 3° a 4° geração Adicionado novos remakes Novo mapa customizado Novos poder Novos sistemas de recompensa entre outras... PrintScreen's : Algumas informações Adicionais: Servidor Base PDA by slicer 1.9.1 Pokémon Sem level Está faltando alguns Pokémons da 4° geração Downloads: Server (Mega) https://mega.co.nz/#!vBoxFaYC!U5ucsHAaVfgauOiZT_uWqAjGRj025gsFAUOPwxEmbIw Client (Mega) https://mega.co.nz/#!SJgGyagI!MmxCOiYPhCQElJIkXapFMRwJ54cAa2ubNrXjYXyReFo Créditos : Slicer Minha Equipe em Geral Glauber GabrielTxu Todo rep+ é bom xD
-
Infraestrutura [PokeTibia] Recomendação para servidor sério
vitorguerreiro posted a question in Infraestrutura
Boa tarde, Estou começando a ler bastante aqui no fórum sobre servidores de PokeTibia. Sou bem leigo ainda no assunto e não sei o que significa algumas coisas. Como por exemplo: - O que são (significado dessas siglas também?) e quais as diferenças de PDA, DxP e pokemon flash (ouvi pouco falar)? - Teriam outras opções além desses? - Qual é o mais recomendado para começar um servidor sério em que eu possa alterar a source para implementar features futuras? - Qual ambiente mais recomendado para programar/compilar? Linux ou Windows? Obrigado desde já. -
De um mês pra ca, mudei o foco da programação. Estou interessado em criar um app que capte algumas informações do cliente (próprio: pokexgames), e gere informações para meu app. Exemplo: Aparece um monstro X na tela App capta nome do monstro App busca no database sqlite os dados Retorna os dados do monstros como informação a interface Gostaria de saber se alguém tem uma idéia de como fazer isso. Se fosse um cliente normal, eu poderia desmembrar um bot (tibia auto), e pegar o método que faz essa captação de nomes dos monstros. Obs: Não é um bot, sei que é contra as regras.
-
POKEMONS REALISTAS na Perspectiva 45º!!!! E uma humilde cachoeira.
Leshrot posted a topic in Sprites
Fala galera, aqui é o Leshrot, antigo "Gogeta" de vários outros fórums que existiam e existem até hoje de otserv (como esse). Talvez nem se lembrem de mim, comecei a spritear há 7 anos atrás. Aqui está o Lugia (deitado): Se quiserem, podem usar o Lugia, Free for use! E uma cachoeira de teste. Acabei de criar uma página no face sobre sprites, prato cheio pra quem quiser aprender ou ver grandes obras. https://www.facebook.com/SpriteArtBrasil?ref=hl Pra quem quiser acesso a mais sprites minhas e de vários outros grandes spriters brasileiros é só dar uma curtida pra ver sprites, dicas e também tirar dúvidas PS: também podem rolar algumas entrevistas com spriters antigos e revelações.- 3 replies
-
- Pokemon Realista
- Pokemon
-
(and 7 more)
Tagged with:
-
http://www.monstermmorpg.com/
-
- pokemon
- pokemon mmorpg
- (and 8 more)
-
Vocês jogariam um ATS de Pokemon em batalha tática, estilo final fantasy tactics, dofus, tactics ogre, etc?
-
fala ai galera, não sou de postar tópicos referentes a outros servidores, só que hoje vi um fato em um servidor famoso, o tal do PXG = PokeXGames, pra quem não sabe, é o antigo SvkE, é o servidor mais famoso de pokémon na atualidade, entrei lá ante-ontem só que havia esquecido meu password de uma conta level 107, daí utilizei o canal de report em outra conta de um amigo em sapphire, e perguntei pro gm como poderia proceder para recuperar, ele me disse que eu deveria enviar um ticket no site com todos os dados da conta para provar a titularidade da mesma e se fosse possível eles recuperariam. até ai tudo ok, fui lá pra enviar o ticket no site deles, e deparei com isso: e adivinha o que achei embaixo?... pra quem duvida, segue o link: http://www.blogpxg.com/tutoriais/sistema-de-ticket/ entrei no game, utilizei o canal de report e fiz a seguinte pergunta: é filhos... fiquei P* da vida com o que acabei de ver, ou seja, eu que nunca donatei ao servidor, upei minha conta na famosa "raça" até mesmo porque doação é pra quem quer ou puder, não posso ter minha conta recuperada? então só quem já doou ao servidor, se perder sua conta pode ter acesso a ela denovo? agora vamos ser sinceros, DOAÇÃO é o caralho! DOAÇÃO é so um meio deles ganharem nas custas dos otários que pensam que o seu dinheiro vai ser pra melhorias do servidor, sim, boa parte pode voltar para melhoria mesmo, só que quem enxe o bolso ai é os GMs, to nem ai pra quanto eles ganham, se estão ali so pra enriquecer ou algo do gênero, só fiquei puto porque quem não doa não tem praticamente nada, SUPORTE SÓ PARA DOADORES! Obs: Oferecer algo em troca do dinheiro doado não é LEGAL, isso continua sendo crime, mesmo se eles recuperarem minha conta, não volto a jogar, só por essa falta de respeito comigo e com outros que possam vir a acontecer, e lembrem-se SUPORTE NO PXG É SOMENTE PARA DOADORES!
-
Você deve estar se perguntando: Porque tanta gente desiste de criar OT de Pokemon? Resposta: Um cara vai lá, todo todo achando que vai criar um pokemon bonzão, fazer sucesso, etc.O que realmente acontece é: O cara cria a equipe, e acha que está ficando bom. De repente alguém da equipe fala: Ou, eu não quero mais ser da equipe não, estou sem tempo, etc. Você pensa que vai achar outro pra substituir, mas ninguém quer mais ser da equipe. Então, você desiste, o outro cara também desiste, e assim, aos poucos todo mundo vai desistindo. Por MIM, Eu acho que é isso que acontece na realidade. Até mais.
-
Votem: Star Wars Tibia ou PokeTibia
-
Informações sobre o script: • Nome: Sistema de Order (controlar o pokemon), composto por uma biblioteca e uma action. • Autor: mastercraft • Versão do Tibia/Server: Testado em TFS 0.36pl1 (Tibia 8.54). Acredito que o melhor sistema de order que tenha aparecido na net foi o meu, enfim, eu melhorei o sistema de ordenar o pokemon andar até tal lugar. Antes era bem limitado, agora o sistema ficou bem parecido com aquele do SvkE, feito apenas em lua. Primeiramente, crie um arquivo chamado move.lua na pasta data/lib. Se você usa a mesma lib, mas a da versão do pokemon dash, substitua, pois esta é atualizada. Coloque isso dentro do arquivo: function doPushCreature(uid,direction,distance,time) if isCreature(uid) == TRUE then local rand = (2*math.random(0,1))-1 local rand2 = math.random(-1,0) if direction == 0 then signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0} elseif direction == 1 then signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 2 then signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0} elseif direction == 3 then signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 4 then signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0} elseif direction == 5 then signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0} elseif direction == 6 then signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0} else signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0} end local pos = getThingPos(uid) nsig = #signal nvar = 0 repeat nvar = nvar+1 newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z} newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0} until getTileThingByPos(newtile).uid ~= 0 and hasProperty(getTileThingByPos(newtile).uid,3) == FALSE and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2) if distance == nil or distance == 1 then doTeleportThing(uid,newpos,TRUE) else distance = distance-1 doTeleportThing(uid,newpos,TRUE) if time ~= nil then addEvent(doPushCreature,time,uid,direction,distance,time) else addEvent(doPushCreature,500,uid,direction,distance ,500) end end end end function walkTo(cid, direction, finalpos) if not isCreature(cid) then return false end if isWalkable(getPosByDir(getThingPos(cid), direction), cid, 0, 0) and direction <= 3 then doPushCreature(cid, direction, 1, 0) return true end if direction >= 4 then if direction == 4 then if math.random(1,2) == 1 then if isWalkable(getPosByDir(getThingPos(cid), 3), cid, 0, 0) then newdir = 3 else newdir = 2 end else if isWalkable(getPosByDir(getThingPos(cid), 2), cid, 0, 0) then newdir = 2 else newdir = 3 end end elseif direction == 5 then if math.random(1,2) == 1 then if isWalkable(getPosByDir(getThingPos(cid), 2), cid, 0, 0) then newdir = 2 else newdir = 1 end else if isWalkable(getPosByDir(getThingPos(cid), 1), cid, 0, 0) then newdir = 1 else newdir = 2 end end elseif direction == 6 then if math.random(1,2) == 1 then if isWalkable(getPosByDir(getThingPos(cid), 0), cid, 0, 0) then newdir = 0 else newdir = 3 end else if isWalkable(getPosByDir(getThingPos(cid), 3), cid, 0, 0) then newdir = 3 else newdir = 0 end end elseif direction == 7 then if math.random(1,2) == 1 then if isWalkable(getPosByDir(getThingPos(cid), 1), cid, 0, 0) then newdir = 1 else newdir = 0 end else if isWalkable(getPosByDir(getThingPos(cid), 0), cid, 0, 0) then newdir = 0 else newdir = 1 end end end doPushCreature(cid, newdir, 1, 0) return true end if direction <= 3 and not isWalkable(getPosByDir(getThingPos(cid), direction), cid, 0, 0) then if direction == 0 then if getDirectionTo(getThingPos(cid), finalpos) == 6 then if isWalkable(getPosByDir(getThingPos(cid), 3), cid, 0, 0) then newdir = 3 else newdir = 6 end elseif getDirectionTo(getThingPos(cid), finalpos) == 7 then if isWalkable(getPosByDir(getThingPos(cid), 1), cid, 0, 0) then newdir = 1 else newdir = 7 end end elseif direction == 1 then if getDirectionTo(getThingPos(cid), finalpos) == 7 then if isWalkable(getPosByDir(getThingPos(cid), 0), cid, 0, 0) then newdir = 0 else newdir = 7 end elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then if isWalkable(getPosByDir(getThingPos(cid), 2), cid, 0, 0) then newdir = 2 else newdir = 5 end end elseif direction == 2 then if getDirectionTo(getThingPos(cid), finalpos) == 4 then if isWalkable(getPosByDir(getThingPos(cid), 3), cid, 0, 0) then newdir = 3 else newdir = 4 end elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then if isWalkable(getPosByDir(getThingPos(cid), 1), cid, 0, 0) then newdir = 1 else newdir = 5 end end elseif direction == 3 then if getDirectionTo(getThingPos(cid), finalpos) == 4 then if isWalkable(getPosByDir(getThingPos(cid), 2), cid, 0, 0) then newdir = 2 else newdir = 4 end elseif getDirectionTo(getThingPos(cid), finalpos) == 6 then if isWalkable(getPosByDir(getThingPos(cid), 0), cid, 0, 0) then newdir = 0 else newdir = 6 end end end doPushCreature(cid, newdir, 1, 0) return true end doPushCreature(cid, direction, 1, 0) end function markPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 145, pos.x) setPlayerStorageValue(sid, 146, pos.y) setPlayerStorageValue(sid, 147, pos.z) end function getMarkedPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 145) local yy = getPlayerStorageValue(sid, 146) local zz = getPlayerStorageValue(sid, 147) return {x = xx, y = yy, z = zz} end function getOwnerPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 148) local yy = getPlayerStorageValue(sid, 149) local zz = getPlayerStorageValue(sid, 150) return {x = xx, y = yy, z = zz} end function markOwnerPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 148, pos.x) setPlayerStorageValue(sid, 149, pos.y) setPlayerStorageValue(sid, 150, pos.z) end function recheck(sid) if not isCreature(sid) then return end if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y then doChangeSpeed(sid, -getCreatureSpeed(sid)) doChangeSpeed(sid, getCreatureBaseSpeed(sid)) return true end addEvent(recheck, 120, sid) end function goThere(sid, thepos) if not isCreature(sid) then return true end if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end if isCreature(getCreatureTarget(getCreatureMaster(sid ))) then doChangeSpeed(sid, -getCreatureSpeed(sid)) doChangeSpeed(sid, getCreatureBaseSpeed(sid)) return true end if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then addEvent(recheck, 350, sid) return true end if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y then doChangeSpeed(sid, -getCreatureSpeed(sid)) doChangeSpeed(sid, getCreatureBaseSpeed(sid)) return true end doChangeSpeed(sid, - getCreatureSpeed(sid)) doChangeSpeed(sid, getCreatureBaseSpeed(sid)) walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid)) doChangeSpeed(sid, - getCreatureSpeed(sid)) addEvent(goThere, 1000 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid)) end Agora, você precisa de um item que seja Useable, ou seja, ao apertar o botão direito, você tem a opção use with... A tag você deve colocar no actions.xml (data/actions): <action itemid="[b][color=red]xxxx[/color][/b]" event="script" value="move.lua" allowfaruse="1"/> sendo xxxx o id do item que você quer ter como o "order". Agora você cria uma arquivo chamado move.lua em data/actions/scripts, e coloque isso dentro: function onUse(cid, item, frompos, item2, topos) if getPlayerItemCount(cid, item2.itemid) >= 1 then return false end if #getCreatureSummons(cid) == 0 then return true end doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", go there!", 1) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) markPos(getCreatureSummons(cid)[1], topos) markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid)) addEvent(goThere, 500, getCreatureSummons(cid)[1], topos) return true end Para quem usa o sistema de order do pokemon dash, substitua o arquivo order.lua por este: local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'} local direction = {'4', '5', '6', '7'}[/color] [color=royalblue] -- ridefly local ridefly = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo'} local ride = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros'} local fly = {'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo'} local flys = { [265] = {229, 2300, 350}, -- moltres [283] = {230, 2100, 350}, -- artic [199] = {224, 2600, 350}, -- zapdos [9] = {232, 2200, 525}, -- 1000 [34] = {233, 2200, 525},-- two [210] = {221, 1300, 410},-- nite [80] = {222, 900, 375}, -- geot [17] = {226, 800, 400}, -- fearow [10] = {227, 1100, 410}, -- aero [67] = {216, 1000, 410}, -- chari [97] = {316, 600, 440}, -- porygon } local rides = {[/color] [color=royalblue] [93] = {128, 780, 400}, -- tauros [114] = {129, 800, 375}, -- kyuubi [220] = {130, 800, 395}, -- rapid [16] = {131, 410, 500}, -- ponyta [77] = {132, 400, 510}, -- rhyhorn [88] = {12, 900, 390}, -- arcan [493] = {492, 1000, 360}, -- shiny arca [496] = {494, 420, 420}, -- shiny vneu [292] = {293, 480, 430}, -- cristal onix [248] = {126, 450, 450}, -- onix [22] = {134, 390, 450}, -- venu [120] = {133, 750, 380}, -- dodrio [26] = {135, 420, 500}, -- doduo } local bolas = {'2222', '2223', '2224'} local ultra = {'2220', '2221', '2227'} local etudao = 9506 local mind = 9507[/color] [color=royalblue] -- ROCK SMASH[/color] [color=royalblue] local rocksmash = {'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax', 'Poliwrath'} local erockmash = 9502 local cdrocksmash = 5 -- ROCK SMASH -- DIG[/color] [color=royalblue] local digholes = {'468', '481', '483'} local dig = {'Raticate', 'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax'} local edig = 9504 local cddig = 5 -- DIG -- CUT[/color] [color=royalblue] local cut = {'Raticate', 'Bulbasaur', 'Ivysaur', 'Venusaur', 'Charmeleon', 'Sandshrew', 'Sandslash', 'Gloom', 'Vileplume', 'Paras', 'Parasect', 'Meowth', 'Persian', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Farfetchd', 'Krabby', 'Kingler', 'Exeggutor', 'Cubone', 'Marowak', 'Tangela', 'Scyther', 'Pinsir'} local ecut = 9503 local cdcut = 5 -- CUT -- BLINK[/color] [color=royalblue] local blink = {'Abra', 'Kadabra', 'Alakazam', 'Porygon'} local exhaustblink = 9501 local cdblink = 50 -- BLINK -- LIGHT[/color] [color=royalblue] local light = {'Abra', 'Kadabra', 'Alakazam', 'Magnemite', 'Magneton', 'Drowzee', 'Hypno', 'Voltorb', 'Electrode', 'Mrmime', 'Electabuzz', 'Jolteon', 'Porygon', 'Pikachu', 'Raichu'} local exhautStorage = 9500 local time = 600 local cd = 17 -- LIGHT -- CONTROL[/color] [color=royalblue] function onUse(cid, item, frompos, item2, topos) if getPlayerItemCount(cid, item2.itemid) >= 1 then return false end if exhaustion.get(cid, etudao) then doPlayerSendCancel(cid, "Please wait a few seconds before using order again!") return true end if isMonster(item2.uid) and item2.uid ~= getCreatureSummons(cid)[1] and item2.uid ~= cid then if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use order.") return true end if exhaustion.get(cid, mind) then doPlayerSendCancel(cid, "Your pokemon is too exhausted from the last control, this ability has 2 minutes cooldown.") return true end if isPlayer(getCreatureMaster(item2.uid)) then doPlayerSendCancel(cid, "You cant control the mind of someone's else pokemon.") return true end if not isInArray({"Alakazam", "Tentacruel", "Gengar"}, getCreatureName(getCreatureSummons(cid)[1])) then doPlayerSendCancel(cid, "This pokemon cant control minds.") return true end exhaustion.set(cid, mind, 240) doCreatureSay(getCreatureSummons(cid)[1], "CONTROL MIND!", TALKTYPE_MONSTER) doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(item2.uid), 39) registerCreatureEvent(item2.uid, "Controled") doSendMagicEffect(getThingPos(item2.uid), 136) doSendMagicEffect(getThingPos(item2.uid), 134) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 133) setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1])) setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1])) doConvinceCreature(cid, item2.uid) if getCreatureSpeed(item2.uid) == 0 then doChangeSpeed(item2.uid, 180) end doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", control "..string.lower(getCreatureName(item2.uid)).."'s mind!", 1) local cmed = item2.uid local cmname = getCreatureName(getCreatureSummons(cid)[1]) local cmpos = getThingPos(getCreatureSummons(cid)[1]) doRemoveCreature(getCreatureSummons(cid)[1]) local cmzao = doSummonCreature(""..cmname.." cm", cmpos) doConvinceCreature(cid, cmzao) setPlayerStorageValue(cid, 888, 1) local function check(params) if isCreature(params.cid) then if getPlayerStorageValue(params.cid, 888) <= 0 then return true end -- CONTROL if not isCreature(cmed) then[/color] [color=royalblue] local pkcmpos = getThingPos(getCreatureSummons(cid)[1]) doRemoveCreature(getCreatureSummons(cid)[1]) local item = getPlayerSlotItem(cid, 8) local pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), pkcmpos) doConvinceCreature(cid, pk) doCreatureSetLookDir(getCreatureSummons(cid)[1], 2) registerCreatureEvent(pk, "DiePoke") registerCreatureEvent(pk, "Exp") registerCreatureEvent(cid, "PlayerPokeDeath") setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209))) setPlayerStorageValue(cid, 888, 0) end if params.rod == 20 then local lifecmed = getCreatureMaxHealth(cmed) - getCreatureHealth(cmed) local poscmed = getThingPos(cmed) local cmeddir = getCreatureLookDir(cmed) local namecmed = getCreatureName(cmed) doRemoveCreature(getCreatureSummons(cid)[1]) local back = doSummonCreature(""..namecmed.." s", poscmed) if getCreatureSpeed(back) == 0 then doChangeSpeed(back, 180) end doCreatureSetLookDir(back, cmeddir) doCreatureAddHealth(back, -lifecmed) local item = getPlayerSlotItem(cid, 8) local mynewpos = getThingPos(getCreatureSummons(cid)[1]) doRemoveCreature(getCreatureSummons(cid)[1]) pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), mynewpos) doConvinceCreature(cid, pk) doCreatureSetLookDir(getCreatureSummons(cid)[1], 2) registerCreatureEvent(pk, "DiePoke") registerCreatureEvent(pk, "Exp") registerCreatureEvent(cid, "PlayerPokeDeath") setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209))) setPlayerStorageValue(cid, 888, 0) else doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220) end end end for rod = 1, 20 do addEvent(check, rod*500, {cid = cid, rod = rod}) end return true end if item2.uid == cid then[/color] [color=royalblue] if getPlayerStorageValue(cid, 888) >= 1 then doPlayerSendCancel(cid, "You cant fly neither ride pokemons being controled.") return true end if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 then doPlayerSendCancel(cid, "You need a pokemon to use order.") return true end if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and not isInArray(ridefly, getCreatureName(getCreatureSummons(cid)[1])) then[/color] [color=royalblue] doPlayerSendCancel(cid, "You can't ride this pokemon nor fly with it.") return true end if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then[/color] [color=royalblue] return true end if getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and isInArray(ride, getCreatureName(getCreatureSummons(cid)[1])) then[/color] [color=royalblue] local pokemon = rides[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType] if getCreatureSpeed(getCreatureSummons(cid)[1]) >= 1 then doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) end local function ride(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.d then doChangeSpeed(cid, -250) doChangeSpeed(cid, pokemon[2]) exhaustion.set(cid, etudao, 4) setPlayerStorageValue(cid, 17001, 1) doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1) setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1])) setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) else dirh = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid)) if dirh == NORTHWEST then if math.random(1,100) >= 51 then dirh = NORTH else dirh = WEST end elseif dirh == SOUTHWEST then if math.random(1,100) >= 51 then dirh = SOUTH else dirh = WEST end elseif dirh == SOUTHEAST then if math.random(1,100) >= 51 then dirh = SOUTH else dirh = EAST end elseif dirh == NORTHEAST then if math.random(1,100) >= 51 then dirh = NORTH else dirh = EAST end end local dirh = dirh if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) end end end end end local function speed(params)[/color] [color=royalblue] if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1])) end end end end doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", let me ride you!", 1) exhaustion.set(cid, etudao, 4) if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then distanc = 1 else distanc = 0 end local distance = distanc for i=1,12 do addEvent(ride, pokemon[3]*i, {cid = cid, d = distance}) addEvent(speed, ((pokemon[3]*12)+100), {cid = cid}) end return true end if getPlayerStorageValue(cid, 17001) >= 1 then[/color] [color=royalblue] setPlayerStorageValue(cid, 17001, 0) if getPlayerGroupId(cid) ~= 6 then setPlayerGroupId(cid, 8) end doCreatureSetLookDir(cid, 2) doChangeSpeed(cid, -(getCreatureSpeed(cid))) if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then doChangeSpeed(cid, 400*getPlayerGroupId(cid)) else doChangeSpeed(cid, 250) end doRemoveCondition(cid, CONDITION_OUTFIT) local item = getPlayerSlotItem(cid, 8) doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1) doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")) local pk = getCreatureSummons(cid)[1] registerCreatureEvent(cid, "PlayerPokeDeath") if isInArray(bolas, item.itemid) then registerCreatureEvent(pk, "DiePoke") elseif isInArray(ultra, item.itemid) then registerCreatureEvent(pk, "DiePoke2") end setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209))) return true end if getPlayerStorageValue(cid, 17000) >= 1 then[/color] [color=royalblue] if getTileInfo(getThingPos(cid)).itemid == 460 or getTileInfo(getThingPos(cid)).itemid == 1023 or getTileInfo(getThingPos(cid)).itemid == 1022 then doPlayerSendCancel(cid, "You can\'t stop flying at this height!") return true end if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then doPlayerSendCancel(cid, "You can\'t stop flying above the water!") return true end if getPlayerGroupId(cid) ~= 6 then setPlayerGroupId(cid, 8) end doCreatureSetLookDir(cid, 2) setPlayerStorageValue(cid, 17000, 0) doChangeSpeed(cid, -(getCreatureSpeed(cid))) if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then doChangeSpeed(cid, 200*getPlayerGroupId(cid)) else doChangeSpeed(cid, 250) end doRemoveCondition(cid, CONDITION_OUTFIT) local item = getPlayerSlotItem(cid, 8) doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1) doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")) local pk = getCreatureSummons(cid)[1] registerCreatureEvent(cid, "PlayerPokeDeath") if isInArray(bolas, item.itemid) then registerCreatureEvent(pk, "DiePoke") elseif isInArray(ultra, item.itemid) then registerCreatureEvent(pk, "DiePoke2") end setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209))) doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209))) return true end if not isPremium(cid) then[/color] [color=royalblue] doPlayerSendCancel(cid, "Only premium members are allowed to fly.") return true end if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(fly, getCreatureName(getCreatureSummons(cid)[1])) then[/color] [color=royalblue] if getPlayerStorageValue(cid, 17000) <= 0 then local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType] local function fly(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.dd then doPlayerSendTextMessage(cid,27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower." ) setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1])) setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1])) setPlayerStorageValue(cid, 17000, 1) registerCreatureEvent(cid, "Flying") doChangeSpeed(cid, -250) doChangeSpeed(cid, pokemon[2]) exhaustion.set(cid, etudao, 4) doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1) doRemoveCreature(getCreatureSummons(cid)[1]) else dir = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid)) if dir == NORTHWEST then if math.random(1,100) >= 51 then dir = NORTH else dir = WEST end elseif dir == SOUTHWEST then if math.random(1,100) >= 51 then dir = SOUTH else dir = WEST end elseif dir == SOUTHEAST then if math.random(1,100) >= 51 then dir = SOUTH else dir = EAST end elseif dir == NORTHEAST then if math.random(1,100) >= 51 then dir = NORTH else dir = EAST end end local dir = dir if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) end end end end end local function speed(params)[/color] [color=royalblue] if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1])) end end end end doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", lets fly!", 1)[/color] [color=royalblue] exhaustion.set(cid, etudao, 4) if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then distancc = 1 else distancc = 0 end local distancee = distancc for i=1,12 do addEvent(fly, pokemon[3]*i, {cid = cid, dd = distancee}) addEvent(speed, ((pokemon[3]*12)+100), {cid = cid}) end return true end return true end end -- ROCK SMASH if item2.itemid == 1285 and getPlayerStorageValue(cid, 63215) <= 0 then if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use rock smash.") return true end if not isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) then doPlayerSendCancel(cid, "This pokemon can't use rock smash.") return true end if isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) then if exhaustion.get(cid, erocksmash) then doPlayerSendCancel(cid, "Please wait a few seconds before using rock smash again!") return true end if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then[/color] [color=royalblue] return true end doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) local function tocut(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then return true end if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 100) >= 1 then return true end if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then doSendMagicEffect(topos, 118) doTransformItem(getTileItemById(topos, 1285).uid, 2257) exhaustion.set(cid, erocksmash, cdrocksmash) setPlayerStorageValue(getCreatureSummons(params.cid)[1], 100, 1) local function detrans(params) doTransformItem(getTileItemById(topos, 2257).uid, 1285) if isCreature(getCreatureSummons(params.ciddd)[1]) then setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 100, 0) end end addEvent(detrans, 5500, {ciddd = cid}) doCreatureSay(getCreatureSummons(cid)[1], "ROCK SMASH!", TALKTYPE_MONSTER) local function nmr(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) end end end end addEvent(nmr, 400, {cid = cid}) else local badire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos) if badire == NORTHWEST then if math.random(1,100) >= 51 then badire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = NORTH else badire = WEST end else badire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = WEST else badire = NORTH end end elseif badire == SOUTHWEST then if math.random(1,100) >= 51 then badire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = SOUTH else badire = WEST end else badire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = WEST else badire = SOUTH end end elseif badire == SOUTHEAST then if math.random(1,100) >= 51 then badire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = SOUTH else badire = EAST end else badire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = EAST else badire = SOUTH end end elseif badire == NORTHEAST then if math.random(1,100) >= 51 then badire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = NORTH else badire = EAST end else badire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then badire = EAST else badire = NORTH end end end local badire = badire if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) end end end end end doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", smash this rock!", 1)[/color] [color=royalblue] local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1]) local temk = 1000 -(2.3 * speed) addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos}) for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos}) end return true end end -- ROCK SMASH END -- CUT[/color] [color=royalblue] if item2.itemid == 2767 and getPlayerStorageValue(cid, 63215) <= 0 then if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use cut.") return true end if not isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) then doPlayerSendCancel(cid, "This pokemon can't use cut.") return true end if isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) then if exhaustion.get(cid, ecut) then doPlayerSendCancel(cid, "Please wait a few seconds before using cut again!") return true end if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then return true end doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) local function tocut(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then return true end if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 101) >= 1 then return true end if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then doSendMagicEffect(topos, 141) doTransformItem(getTileItemById(topos, 2767).uid, 6216) exhaustion.set(cid, ecut, cdcut) setPlayerStorageValue(getCreatureSummons(params.cid)[1], 101, 1) local function detrans(params) doTransformItem(getTileItemById(topos, 6216).uid, 2767) if isCreature(getCreatureSummons(params.ciddd)[1]) then setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 101, 0) end end addEvent(detrans, 5500, {ciddd = cid}) doCreatureSay(getCreatureSummons(cid)[1], "CUT!", TALKTYPE_MONSTER) local function nmr(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) end end end end addEvent(nmr, 400, {cid = cid}) else adire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos) if adire == NORTHWEST then if math.random(1,100) >= 51 then adire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = NORTH else adire = WEST end else adire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = WEST else adire = NORTH end end elseif adire == SOUTHWEST then if math.random(1,100) >= 51 then adire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = SOUTH else adire = WEST end else adire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = WEST else adire = SOUTH end end elseif adire == SOUTHEAST then if math.random(1,100) >= 51 then adire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = SOUTH else adire = EAST end else adire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = EAST else adire = SOUTH end end elseif adire == NORTHEAST then if math.random(1,100) >= 51 then adire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = NORTH else adire = EAST end else adire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then adire = EAST else adire = NORTH end end end local adire = adire if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) end end end end end doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", cut this bush!", 1)[/color] [color=royalblue] local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1]) temk = 1000 -(2.3 * speed) addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos}) for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos}) end return true[/color] [color=royalblue] end end -- CUT END -- DIG[/color] [color=royalblue] if isInArray(digholes, item2.itemid) and getPlayerStorageValue(cid, 63215) <= 0 then if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use dig.") return true end if not isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) then doPlayerSendCancel(cid, "This pokemon can't use dig.") return true end if isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) then if exhaustion.get(cid, edig) then doPlayerSendCancel(cid, "Please wait a few seconds before using dig again!") return true end if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then return true end doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) local function tocut(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then return true end if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 99) >= 1 then return true end if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then doSendMagicEffect(topos, 3) setPlayerStorageValue(getCreatureSummons(params.cid)[1], 99, 1) doTransformItem(getTileItemById(topos, item2.itemid).uid, item2.itemid+1) exhaustion.set(cid, edig, cddig) local function detrans(params) doTransformItem(getTileItemById(topos, item2.itemid+1).uid, item2.itemid) if isCreature(getCreatureSummons(params.ciddd)[1]) then setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 99, 0) end end addEvent(detrans, 5500, {ciddd = cid}) doCreatureSay(getCreatureSummons(cid)[1], "DIG!", TALKTYPE_MONSTER) local function nmr(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) end end end end addEvent(nmr, 400, {cid = cid}) else local cdire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos) if cdire == NORTHWEST then if math.random(1,100) >= 51 then cdire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = NORTH else cdire = WEST end else cdire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = WEST else cdire = NORTH end end elseif cdire == SOUTHWEST then if math.random(1,100) >= 51 then cdire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = SOUTH else cdire = WEST end else cdire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = WEST else cdire = SOUTH end end elseif cdire == SOUTHEAST then if math.random(1,100) >= 51 then cdire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = SOUTH else cdire = EAST end else cdire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = EAST else cdire = SOUTH end end elseif cdire == NORTHEAST then if math.random(1,100) >= 51 then cdire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = NORTH else cdire = EAST end else cdire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then cdire = EAST else cdire = NORTH end end end local cdire = cdire if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) end end end end end doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", open this hole!", 1)[/color] [color=royalblue] local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1]) temk = 1000 -(2.3 * speed) addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos}) for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos}) end return true end end -- DIG END -- BLINK[/color] [color=royalblue] if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then doPlayerSendCancel(cid, "You need a pokemon to use order.") return true end if not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then if isInArray(blink, getCreatureName(getCreatureSummons(cid)[1])) then if exhaustion.get(cid, exhaustblink) then doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) markPos(getCreatureSummons(cid)[1], topos) markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid)) addEvent(goThere, 500, getCreatureSummons(cid)[1], topos) else if not isWalkable(topos, cid, 0, 0) then doPlayerSendCancel(cid, "Your pokemon cannot teleport there.") return true end if getItemName(item2.uid) == "shallow water" then doPlayerSendCancel(cid, "Your pokemon cannot teleport there.") return true end doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), topos, 39) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 211) doTeleportThing(getCreatureSummons(cid)[1], topos, false) doSendMagicEffect(topos, 134) doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", teleport there!", 1) doCreatureSay(getCreatureSummons(cid)[1], "BLINK!", TALKTYPE_MONSTER) exhaustion.set(cid, exhaustblink, cdblink) return true end return true end end --- BLINK END -- LIGHT --[/color] [color=royalblue] if isCreature(item2.uid) and getCreatureMaster(item2.uid) == cid and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and item2.uid ~= cid then if not isInArray(light, getCreatureName(getCreatureSummons(cid)[1])) then doPlayerSendCancel(cid, "This pokemon can't use flash.") return true end if isInArray(light, getCreatureName(getCreatureSummons(cid)[1])) then if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then return doPlayerSendCancel(cid,"Please use flash on your pokemon.") end if exhaustion.get(cid, exhautStorage) then doPlayerSendCancel(cid,"Please wait a few seconds before using flash again!") return true end exhaustion.set(cid, exhautStorage, cd) doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use flash!", 1) doCreatureSay(getCreatureSummons(cid)[1], "FLASH!", TALKTYPE_MONSTER) doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 28) doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000) return true end end -- LIGHT END -- if #getCreatureSummons(cid) == 0 then return true end if getPlayerStorageValue(getCreatureSummons(cid)[1], 12) == 1 then doPlayerSendCancel(cid, "You can\'t order your pokemon to move now.") return true end doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1) doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1])) markPos(getCreatureSummons(cid)[1], topos) markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid)) addEvent(goThere, 500, getCreatureSummons(cid)[1], topos) return true end[/color] Características do novo move: • neste não há cooldown como o antigo, o jogador pode usar livremente sem dar nenhum erro no pokemon. • neste, ao usar o order e o pokemon chegar ao destino, ele permanece ali até o jogador mover-se. • neste o pokemon anda apenas em linha reta. • agora, ao selecionar um novo alvo, o pokemon volta a andar sozinho. enfim, há outros detalhes também que tratam apenas a correção de bugs, qualquer erro, avisem-me. Qualquer um tem permissão para postar em outro fórum, só peço que coloquem os créditos. A função doPushCreature não é minha. Foi feita pelo Dokmos.
-
Final Monster Pack Fractal Pack by morbidsheep199.deviantart.com [spoiler=Preview] Contém: 200 Fractais Tamanho: 97 MB Comentários: Um pack giganorme e extremamente útil de fractais. - Download
- 4 replies
-
- black label society
- deviantart
- (and 8 more)
-
Olaa Galera ! Vim aqui falar de um servidor de naruto que eu queria fazer 1 Equipe. Preciso de tudo , scripter , mapper , spell maker , monster maker , etc,Quem quiser fazer parte da ekipe add msn : [email protected] ou Skype : suddennokia Vlww !
-
Pokemon Surf System 1.0 Instalando Primeiro va na pasta do seu otserver, e va em data/actions/scripts.Crie 1 arquivo chamado surf.lua e coloque isto dentro dele [size=3][color=#000000][font=Times New Roman] [left][color=#333333][font=monospace][color=#b1b100]local[/color] pokes [color=#66cc66]=[/color] [color=#66cc66]{[/color] [color=#66cc66][[/color][color=#ff0000]"Poliwag"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]278[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Tentacruel"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]185[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Blastoise"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]184[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Dewgong"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]183[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Kabutops"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]189[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Omastar"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]188[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Gyarados"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]187[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Poliwrath"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]190[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Shiny Gyarados"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]529[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]410[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Shiny Seadra"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]522[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Shiny Tentacruel"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]522[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Squirtle"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]273[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Shiny Blastoise"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]523[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]"Wartotle"[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]275[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Tentacool'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]274[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Staryu'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]266[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Starmie'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]267[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Golduck'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]271[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Poliwhirl'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]137[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Tentacool'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]277[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Goldeen'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]268[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Seaking'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]269[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Seadra'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]270[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Snorlax'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]300[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#ff0000]'Vaporeon'[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]lookType[color=#66cc66]=[/color][color=#cc66cc]191[/color], speed [color=#66cc66]=[/color] [color=#cc66cc]400[/color][color=#66cc66]}[/color] [color=#66cc66]}[/color] [color=#b1b100]local[/color] configs [color=#66cc66]=[/color] [color=#66cc66]{[/color] [color=#66cc66][[/color][color=#cc66cc]4647[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]x [color=#66cc66]=[/color] -[color=#cc66cc]2[/color], y [color=#66cc66]=[/color] [color=#cc66cc]0[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#cc66cc]4645[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]x [color=#66cc66]=[/color] [color=#cc66cc]2[/color], y [color=#66cc66]=[/color] [color=#cc66cc]0[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#cc66cc]4646[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]x [color=#66cc66]=[/color] [color=#cc66cc]0[/color], y [color=#66cc66]=[/color] [color=#cc66cc]2[/color][color=#66cc66]}[/color], [color=#66cc66][[/color][color=#cc66cc]4644[/color][color=#66cc66]][/color] [color=#66cc66]=[/color] [color=#66cc66]{[/color]x [color=#66cc66]=[/color] [color=#cc66cc]0[/color], y [color=#66cc66]=[/color] -[color=#cc66cc]2[/color][color=#66cc66]}[/color] [color=#66cc66]}[/color] [color=#b1b100]function[/color] onUse[color=#66cc66]([/color]cid, item, fromPosition, itemEx, toPosition[color=#66cc66])[/color] [color=#b1b100]local[/color] playerpos [color=#66cc66]=[/color] getCreaturePosition[color=#66cc66]([/color]cid[color=#66cc66])[/color] [color=#b1b100]if[/color] #getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color] [color=#66cc66]<=[/color] [color=#cc66cc]0[/color] [color=#b1b100]and[/color] getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]63215[/color][color=#66cc66])[/color] [color=#66cc66]<=[/color] [color=#cc66cc]0[/color] [color=#b1b100]then[/color] [color=#b1b100]return[/color] doPlayerSendCancel[color=#66cc66]([/color]cid, [color=#ff0000]"You need a pokemon to surf."[/color][color=#66cc66])[/color] [color=#b1b100]end[/color] [color=#b1b100]local[/color] l [color=#66cc66]=[/color] [color=#b1b100]false[/color] [color=#b1b100]for[/color] i,x [color=#b1b100]in[/color] [color=#b1b100]pairs[/color][color=#66cc66]([/color]pokes[color=#66cc66])[/color] [color=#b1b100]do[/color] [color=#b1b100]if[/color] getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]63215[/color][color=#66cc66])[/color] [color=#66cc66]<=[/color] [color=#cc66cc]0[/color] [color=#b1b100]and[/color] i:lower[color=#66cc66]([/color][color=#66cc66])[/color] [color=#66cc66]==[/color] getCreatureName[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color]:lower[color=#66cc66]([/color][color=#66cc66])[/color] [color=#b1b100]then[/color] l [color=#66cc66]=[/color] [color=#b1b100]true[/color] [color=#b1b100]end[/color] [color=#b1b100]end[/color] [color=#b1b100]if[/color] [color=#b1b100]not[/color] l [color=#b1b100]and[/color] getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]63215[/color][color=#66cc66])[/color] [color=#66cc66]<=[/color] [color=#cc66cc]0[/color] [color=#b1b100]then[/color] [color=#b1b100]return[/color] doPlayerSendCancel[color=#66cc66]([/color]cid, [color=#ff0000]"This pokemon can't surf."[/color][color=#66cc66])[/color] [color=#b1b100]end[/color] [color=#b1b100]if[/color] getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]63215[/color][color=#66cc66])[/color] [color=#66cc66]<=[/color] [color=#cc66cc]0[/color] [color=#b1b100]then[/color] doTeleportThing[color=#66cc66]([/color]cid, [color=#66cc66]{[/color]x[color=#66cc66]=[/color]playerpos.x+configs[color=#66cc66][[/color]itemEx.itemid[color=#66cc66]][/color].x, y[color=#66cc66]=[/color]playerpos.y+configs[color=#66cc66][[/color]itemEx.itemid[color=#66cc66]][/color].y, z[color=#66cc66]=[/color]playerpos.z[color=#66cc66]}[/color][color=#66cc66])[/color] setPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]63215[/color], [color=#cc66cc]1[/color][color=#66cc66])[/color] doSetCreatureOutfit[color=#66cc66]([/color]cid, pokes[color=#66cc66][[/color]getCreatureName[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color][color=#66cc66]][/color], -[color=#cc66cc]1[/color][color=#66cc66])[/color] doCreatureSay[color=#66cc66]([/color]cid, [color=#ff0000]"Let's surf, "[/color]..getCreatureName[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color], [color=#cc66cc]1[/color][color=#66cc66])[/color] setPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]61209[/color], getCreatureMaxHealth[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color][color=#66cc66])[/color] setPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]61210[/color], getCreatureHealth[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color][color=#66cc66])[/color] doChangeSpeed[color=#66cc66]([/color]cid, pokes[color=#66cc66][[/color]getCreatureName[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color][color=#66cc66]][/color].speed[color=#66cc66])[/color] doRemoveCreature[color=#66cc66]([/color]getCreatureSummons[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color][color=#66cc66])[/color] [color=#b1b100]else[/color] doTeleportThing[color=#66cc66]([/color]cid, [color=#66cc66]{[/color]x[color=#66cc66]=[/color]playerpos.x-configs[color=#66cc66][[/color]itemEx.itemid[color=#66cc66]][/color].x, y[color=#66cc66]=[/color]playerpos.y-configs[color=#66cc66][[/color]itemEx.itemid[color=#66cc66]][/color].y, z[color=#66cc66]=[/color]playerpos.z[color=#66cc66]}[/color][color=#66cc66])[/color] setPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]63215[/color], [color=#cc66cc]0[/color][color=#66cc66])[/color] doRemoveCondition[color=#66cc66]([/color]cid, CONDITION_OUTFIT[color=#66cc66])[/color] [color=#b1b100]local[/color] item [color=#66cc66]=[/color] getPokeOutLive[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66][[/color][color=#cc66cc]1[/color][color=#66cc66]][/color] doCreatureSay[color=#66cc66]([/color]cid, [color=#ff0000]"Im tired of surf, "[/color] .. getItemAttribute[color=#66cc66]([/color]item, [color=#ff0000]"poke"[/color][color=#66cc66])[/color]:match[color=#66cc66]([/color][color=#ff0000]"This is (.-)'s pokeball."[/color][color=#66cc66])[/color], [color=#cc66cc]1[/color][color=#66cc66])[/color] [color=#b1b100]local[/color] pk [color=#66cc66]=[/color] doSummonCreature[color=#66cc66]([/color]getItemAttribute[color=#66cc66]([/color]item, [color=#ff0000]"poke"[/color][color=#66cc66])[/color]:match[color=#66cc66]([/color][color=#ff0000]"This is (.-)'s pokeball."[/color][color=#66cc66])[/color], getThingPosition[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66])[/color] doConvinceCreature[color=#66cc66]([/color]cid, pk[color=#66cc66])[/color] registerCreatureEvent[color=#66cc66]([/color]pk, [color=#ff0000]"DiePoke"[/color][color=#66cc66])[/color] registerCreatureEvent[color=#66cc66]([/color]cid, [color=#ff0000]"PlayerPokeDeath"[/color][color=#66cc66])[/color] registerCreatureEvent[color=#66cc66]([/color]cid, [color=#ff0000]"LogoutPoke"[/color][color=#66cc66])[/color] setCreatureMaxHealth[color=#66cc66]([/color]pk, getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]61209[/color][color=#66cc66])[/color][color=#66cc66])[/color] doCreatureAddHealth[color=#66cc66]([/color]pk, getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]61209[/color][color=#66cc66])[/color][color=#66cc66])[/color] doCreatureAddHealth[color=#66cc66]([/color]pk, getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]61210[/color][color=#66cc66])[/color]-getPlayerStorageValue[color=#66cc66]([/color]cid, [color=#cc66cc]61209[/color][color=#66cc66])[/color][color=#66cc66])[/color] doChangeSpeed[color=#66cc66]([/color]cid, getCreatureBaseSpeed[color=#66cc66]([/color]cid[color=#66cc66])[/color]-getCreatureSpeed[color=#66cc66]([/color]cid[color=#66cc66])[/color][color=#66cc66])[/color] [color=#b1b100]end[/color] [color=#b1b100]return[/color] [color=#b1b100]true[/color] [color=#b1b100]end[/color][/font][/color][/left] [/font][/color][/size] Salve e feche o arquivo. Agora va em data/actions e abra o arquivo actions.xml e adicione esta tag. [color=#000000][font=Times New Roman] [left][color=#333333][font=monospace][color=#009900][size=3][color=#000000][b]<action[/b][/color] [color=#000066]itemid[/color]=[color=#ff0000]"4647;4645;4646;4644"[/color] [color=#000066]event[/color]=[color=#ff0000]"script"[/color] [color=#000066]value[/color]=[color=#ff0000]"surf.lua"[/color][/size][color=#000000][b][size=3]/>[/size][/b][/color][/color][/font][/color][/left] [/font][/color] Salve e Feche. Pronto Surf instalado
-
Nome: Pokedex (Básica) Autor: Wantedzin (Perdigues) Versão Testada: TFS 0.3.6 (Nescessário ter o OTAL) Agradecimentos ao: MaXwEllDeN - Pela idéa de criar uma pasta pokedex pra ler os scripts. rd_caldas - Pelas ajudas com alguns scripts que me prporcionaram o conehcimento pra fazer este script. crimm - Da otland pela base do script. felipedaniel - pela função de mostrar quantos pokemons vc já tem liberado. Bom o script está simples mas esta bem funcional vamos ao script: Na pasta actions abra a pasta scripts, crie uma pasta chamada pokemon e dentro dela um arquivo LUA e nomeie-o para pokedex.lua e cole isso: [spoiler=pokedex.lua] function onUse(cid, item, fromPos, itemEx, toPos) local pokemon = itemEx.uid local pokemons = { {"Bulbasaur", "1.txt", 11395, 20, 100, "Bulbasaur", 99101}, {"Ivysaur", "2.txt", 11396, 20, 100, "Ivysaur", 99102}, } for _,n in pairs(pokemons) do if isSummon(pokemon) then local Dex = io.open('data/pokedex/' .. n[2],'r') if getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) >= n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then doShowTextDialog(cid, n[3], Dex:read("*all")) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.") doPlayerAddExperience(cid, n[5]) setPlayerStorageValue(cid, n[7], 1) elseif getCreatureName(pokemon) == n[1] and getPlayerLevel(cid) < n[4] and getPlayerStorageValue(cid, n[7]) <= 0 then doShowTextDialog(cid, n[3], Dex:read("*all")) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need level " .. n[4] .. " to unlock this pokemon.") elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then doShowTextDialog(cid, n[3], Dex:read("*all")) end Dex:close() elseif isMonster(pokemon) then local Dex = io.open('data/pokedex/' .. n[2],'r') if getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) <= 0 then doShowTextDialog(cid, n[3], Dex:read("*all")) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have unlocked " .. n[6] .. " in your pokedex") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have gained " .. n[5] .. " experience points.") doPlayerAddExperience(cid, n[5]) setPlayerStorageValue(cid, n[7], 1) elseif getCreatureName(pokemon) == n[1] and getPlayerStorageValue(cid, n[7]) >= 1 then doShowTextDialog(cid, n[3], Dex:read("*all")) end Dex:close() end end local store = {99100, 99101, 99102, 99103, 99104, 99105, 99106, 99107, 99108, 99109} local unlock = {} for i = 1, #store do if getPlayerStorageValue(cid, store[i]) > 0 then table.insert(unlock, 1) end end if isPlayer(itemEx.uid) then doPlayerSendTextMessage(cid, 27, "You have unlocked " .. #unlock .. "/151 pokemons in your PokeDex") end return true end agora vá na pasta actions e abra o actions.xml e adicione esta tag em qualquer lugar: [spoiler=actions.xml] <action itemid="xxxx" event="script" value="pokemon/pokedex.lua" allowfaruse="1" blockwalls="1"/> substitua o xxxx pelo item que quer usar como pokedex. agora nas pasta data crie uma outra pasta chamada pokedex esalve este texto dentro da pasta pokedex e nomeie-o para o nome desejado. [spoiler=exemplo.txt] Name: Bulbasaur Type: Grass Reuires Level: 20 Moves: Quick Attack - m1 - level 20 Razor Leaf - m2 - level 20 Vine Whip - m3 - level 20 Headbutt - m4 - level 20 Leech Seed - m5 - level 22 Solar Beam - m6 - level 40 Sleep Powder - m7 - level 35 Stun Spore - m8 - level 28 Poison Powder - m9 - level 26 Evolutions: Bulbasaur, requires level 20 Ivysaur, requires level 40 Vanusaur, requires level 80 Habilities: Cut No caso do meu script está pela ordem dos pokemons como são 151 meus scripts vão de 1 a 151 de acordo com a ordem da pokedex. Agora vamos aprender a configurar os scripts: [spoiler=Configurando]no pokedex.lua temos: local pokemons = { {"Bulbasaur", "1.txt", 11395, 20, 100, "name", 99101}, {"Squirtle", "2.txt", 11401, 20, 500, 99102}, } Verde - É o nome que o monster deve ter para que o script funcione. Laranja - É o nome do arquivo.txt que ele vai buscar as informações deste pokemon (é o arquivo.txt que vc crio na ultima etapa) OBS: se o noem do script for BuLBasaur.txt deve ser adicionado como BuLBasaur.txt pois é case sensitive.) Rosa - É a imagem do pokemon que vai aparecer na janelinha com o texto. Azul - O level que o pokemon pode ser usado(usado pra se for um summon ele não dar a xp) Vermelho - Experiência que o player ganha ao usar a Pokedex no monstro a primeira vez. PRETO NEGRITO - é a mensgaem que vai aparecer com o nome do Pokemoné desnecessário amis pra mim tem uma outra utilidade mas tah ai uma coisa a mais pra vcs editarem...caso não queiram apenas substitua isso nas tags ("You have unlocked " .. n[6] .. " in your pokedex", por "You have unlocked " .. n[1] .. " in your pokedex" e tah pronto) SUBLINHADO - É o storage value que será adicionado ao player quando ele usar a Pokedex no pokemon a primeira vez. (OBS: Cada pokemon deve ter seu storage value diferente se não os cript não funciona corretamente) Ultima observação ao final deve-se adicionar uma virgula antes de criar um novo pokemon, reparem no exemplo: {"Bulbasaur", "1.txt", 11395, 20, 100, "name", 99101}, Ao final temos sublinhado a storage value, ai vem uma chave( } ) fechando a tabela e após a chave temos a virgula. antes de adicionar uma nova chave abaixo deve-se ter uma virgula ou o script não funciona. [spoiler=Screenshots] Ao dar dex no summon abre a janela com a imagem do pokemon e as informações dele. Recebe também a mensagem de experiencia e o nome do pokemon que foi liberado. Nessa imagem o char de teste tenta usar a Pokedex em um summon no caso o pokemon do ADM e veja a mensagem que ele recebe em azul. O mesmo char de teste no level 4 usa dex no mesmo pokemon só que desta vez ele é monster e a experiencia é adicionada ao player e ele pode ver o pokemon. A caixa com informações também é mostrada. Bom se não funcionar será nescessário adicionar isso: [spoiler=isSummon] function isSummon(sid) for i, pid in ipairs(getPlayersOnline()) do for c, cid in pairs(getCreatureSummons(pid)) do if (cid == sid) then return true end end end return false end Isso deve ser adicionado na pasta lib do seu otserver. O que faz esta versão: - Diferencia monstros de summons ou seja se o monstro for um summon assim como no Pokemon Online você precisa ter o level dele para poder usar a pokedex nele a ganhar a experiencia que cada pokemon da. Este script faz a mesma coisa. Se for monstro por ele poder te atacar você ganha a experiencia se for summon checa o level e compara com o do pokemon. --- Bom é isso tá simples mais também não vou sair distribuindo tudo 100% feito.Até porquê qualquer um poderia pegar e falar que os erver tem pokedex. Então tah ai usem como base para novos scripts melhores. Fiz esse em 20 minutos e liberei pra vcs só pra ver se diminui os pedidos deste script em lojas da OTNET. Quem gostou dá um Thanks. Se te ajudei doe V$ pra mim :yes: É meu primeiro script pra OTNET espero que tanham gostado. ---------- EDITANDO Versão da Pokedex Atualizada agora com função de mostrar quantos pokemons já foram liberados na sua pokedex. Agradecer muito ao felipedaniel que foi quem criou essa parte do script e contribuiu pra que esse script evolui-se mais uma vez Bom só postando como fazer pra confirar este novo script: local store = {99100, 99101, 99102, 99103, 99104, 99105, 99106, 99107, 99108, 99109} Como podem ver essa é uam nova tabela que foi adicionada ela é bem smples cada storage value que você adicionar a um pokemon na primeira tabela deve ser adicionado aqui também se vc tiver usando storages value de 1 a 151 por exemplo deve-se colocar na tabela: local store = {1, 2, 3, 4, 5, ..., 150, 151} Bom é isso valeu pessoal... Gostou agradece... -------------- UPDATE Pasta pokedex com a informação de uns 120 pokemons.... Tah ai agradeçam o felipedaniel pq o cara além de ter vontade tah afim mesmo de ajudar vcs... http://sharex.xpg.com.br/files/2929513081/pokedex.rar.html tah ai o link pras txt dos pokemons o link foi feito pelo felipedaniel todos os thanks são pra ele... sugiro q todos q usarem doem V$ pra ele.... o cara merece.... Valeu moçada...