Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/15/11 em todas áreas

  1. meubk

    [Talkaction]Sistema De Rep

    Engraçado não ?, pois é resolvi fazer um sistema de Reputação para o tibia. Você tá lá noob, ganha um item dum cara fodão, oke vc pode fazer por ele ? de um REP+, pra ele, isso mesmo as pessoas que mais ajudá no server concerteza terá + reps. vejá as SS. Explicação dos comandos. !rep (nomi do player) - dá um rep para um player. !myrep - consulta minha reputação !rankrep - confere os reps de quem está online Vamos aos scripts. 1° crie um arquivo com nome de replogin.lua na pasta creaturescripts/scripts e cole o seguinte script function onLogin(cid) if getPlayerStorageValue(cid, 6003) <= 0 then setPlayerStorageValue(cid, 6001, 0) setPlayerStorageValue(cid, 6003, 1) end return TRUE end TAG : <event type="login" name="RepLogin" event="script" value="replogin.lua"/> e registre no arquivo creaturescripts/scripts/login.lua adicione : registerCreatureEvent(cid, "RepLogin") vá na pasta talkactions/scripts e crie um arkivo com nomi de rep.lua e cole o script : local configs = { rephours = 24 -- qntas em qntas horas pode dar rep, 24 para 1 dia. } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end function onSay(cid, words, param) local cd = math.ceil(configs.rephours/2) local storage = 6002 if words == "!rep" then if os.time()-getPlayerStorageValue(cid, storage) <= cd then minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage))) return doPlayerSendTextMessage(cid, 27, "Wait " .. configs.rephours .. " fours for the next rep.") end if getPlayerByName(param) then local p = getPlayerByName(param) if getPlayerIp(cid) == getPlayerIp(p) or getPlayerAccount(cid) == getPlayerAccount(p) then return doPlayerSendTextMessage(cid, 27, "IP ACCOUNT PROTECT.") end setPlayerStorageValue(p, 6001, getPlayerStorageValue(p, 6001) + 1) doPlayerSendTextMessage(cid, 27, "You gave reputation + 1 for " .. getCreatureName(p) .. ".") doPlayerSendTextMessage(p, 21, "You received reputation + 1 of ".. getCreatureName(cid) ..".") setPlayerStorageValue(cid, storage, os.time()+3600*cd) else doPlayerSendTextMessage(cid, 27, "Player Not Found.") end elseif words == "!myrep" then return doPlayerSendTextMessage(cid, 27, "My Reputation : " .. getPlayerStorageValue(cid, 6001)) elseif words == "!rankrep" then local e = getPlayersOnline() local text = "" for _, pid in ipairs(e) do text = text .. "[" .. getCreatureName(pid) .. "] Reputation: " .. getPlayerStorageValue(pid, 6001) .. "\n\n" end text = "[RANK REPUTATION ONLINES]\n\n" .. text doShowTextDialog(cid, 2525, text) end return TRUE end TAG: <talkaction words="!rep;!myrep;!rankrep" event="script" value="rep.lua"/> Configurando : Você só configura essa parte : local configs = { rephours = 24 } rephours = 24, significa de qntas em qntas horas pode dar rep, ai caso querer ki for um dia ki tem 24 horas. ou seja vai fica 1 rep por dia. Então tá explicado, espero que vcs gostem do script, obrigado a todos. fui...
    2 pontos
  2. PedroXtibiaaaa

    Como Criar Um Pokétíbia?

    Tutorial de como criar um servidor de tibia, da pra adaptar pra poketibia, leia com atenção! Clique aqui
    2 pontos
  3. Alissow OTs 4.11! Esta versão 4.11 foi meio apressada, só adicionamos as features novas do 8.6. Aproveitem. Créditos: Alissow Comedinha Luis Nirk TFS Team Viniply Xedegux Sobre o OT/Mapa: Principais quests: -Annihilator -Inquisition Quest -Pits of inferno -Demon Oak -Solar axe quest -HOTA -MPA quest -The Challenger Monstros: -Total monstros: 10292 -Total spawn: 5587+ Cidades: -12 Cidades -200 Houses+- Raids/Invasões: -Rat -Orshabaal -Ghazbaran -Giant spider/The old window -Ferumbras -Morgaroth Spells: -Magias editadas para balanceamento das vocações Changelog Atualização [3.4 BETA]: - Removido áreas não usadas no mapa, diminuindo o tamanho em MBs - Adicionado Anti Magebomb System - Corrigido bugs no npc addon - Adicionado sistema onde os npcs falam sozinhos (Igual como foi adicionado no global). First ;] - Adicionado Elf village em Venonh ( bem parecida com a do global ;]) - Potions desaparecem quando usadas - Corrigido sistema de Up - Corrigido sistema de Monster Counter - Nova dragon lair em Mirand Theraan (Subsolo) - Adicionado porta de level, que protege leveis baixos acessarem os demons da cidade de Flam - Ampliado deserto da cidade de Mirand Theraan - Adicionado Ilha de Goroma - Adicionado Forbidden islands - Ampliado floresta da cidade de alfon e colocado área de macacos parecida com Banuta. - Ligação de alfon com Mirand Theraan - Corrigido bugs reportados nas portas das casas - Corrigido posição dos buracos e escadas - Adicionado beds em todas as casas - Corrigido bugs em casas de yalahar - Adicionado Blue legs quest ( Koshei The Deathless global) - Corrigidas quase todas as areas de Yalahar - Teleports em Yalahar substituidos por NPCs de teleport do global - Corrigido pequenos erros no npc Capitao Coruja, e adicionado viagem à goroma - diminuido ataque do Eye of the seven - Ice rapier agora quebra - Corrigido npc Banker - Adicionado quase todos os items 8.5 - Adicionado medusa - Adicionado Todos os outfits novos - Corrigido NPC Banker (que dava dinheiro) Script By Ta4e - Corrigido Annihilator Quest - Adicionado Notice System - Adicionado novo distro, compilado por Comedinha Atualização nº 2 [3.4]: Otserv atualizado... Corrigido debugs frequentes Corrigido debugs na magia exevo pan Corrigido bugs nos npcs Roy e Firewalker Adicionados mais novos items 8.5, agora temos 90% dos items novos... Atualização 3.5 [06/08/2009]: - Cidade principal (dorion) totalmente reformada - corrigido blue legs quest - Corrigido alavancas de compra de potions - Adicionado alavancas de compra de runas - Corrigido npc Bank - Adicionado NPC King Arthas, que vende promotion - Adicionado npc Rashid, que vende items. - Arrumado Wild Growth rune - Arrumado Utani Hur - Magias reajustadas - Novo estilo de server save - Ilha de mystic reformulada (by Nirk) - Adicionado nova magia para knights "Exkordium". - Adicionado nova magia para mages (promoted) "Exura Seil". - Adicionado nova magia para mages (promoted) "Exevo Gran Frigo". (arrumar -> sem exhausted nem gasta mana) - Adicionados novos monstros. - Adicionado quest challenge (lvl 250) - Corrigido bug do Dead Cyclops - Bug aol Arrumado - Poi Modificada - Corrigido teleports ghouls yalahar - Modificada demon helmet quest, assim como o premio da quest - Corrigido nome do Hallowed axe - Corrigido bug das houses - Corrigido bug dos items andaveis Atualização Patch 3.5.1 [07/08/2009]: - Corrigido erro na inicialização do Ot - Bug das potions corrigido - Bug do aol corrigido (pelomenos pra mim) - Bug dos outfits corrigido - Corrigido erros nas escadas na ilha PvP - O monstro The Fastest Turtle agora não morre, se tornando um monstro apenas para atrapalhar - Retirada suposta quest dos 3 hellhounds e 1 minishabaal - Adicionado teleport de retorno na Ferumbras Tower - Corrigido posições da raid de The old widow - Corrigido bug das escadas nas minas de demons - Corrigido alguns bugs vistos no mapa Atualização 3.6 [10/08/2009]: - Arrumado bugs criticos - Arrumado comando !promote/!demote - Atualizado Items.xml - Bug das Beds arrumado - Modificações na cidade, como, nature e caves - Nova sala de treino - Adicionado comando !highscores Atualização 3.7! Beta [18/12/2009]: - Guildhall support (Elf) - Nova deathlist(Elf, OpenTibia SVN) - Frags funcionando (Elf) - Atualizado monstros e items (slawkens, KaczooH, Elf) - Novas talkactions: /commands, /wp, /storage, /config, /promote & /demote. (slawkens) - Novas funções lua - Novos creatureevents (slawkens, Elf) - Novos configuráveis (Elf, slawkens) - Modificado ataque de monstros existentes (especialmente outfits e velocidade) (Elf) - Monstros reorganizados & atualizados (Nem todos) (slawkens) - Melhorado sistema de banimentos (Elf) - Reescrita janela de Rule Violation (Elf) - Arrumado Stamina (Elf, OpenTibia SVN) - Casas agora são salvas nas modificações do dono (Elf) - Escadas de yalahar funcionando perfeitamente (Elf, Talaturen) - Sistema de nado & waterball completo (slawkens) - Monstros invisiveis não são mais mandandos ao client (anti bot) (OpenTibia SVN) - Anti-dash (OpenTibia SVN) - Sistema de leilão de casas, possibilidade de usar site para vender casas (house_actions table) (OpenTibia SVN, Elf) - Salvando bot actions para /logs/bots por cada player. Por exemplo, bot pode enviar mensagem com mais de 255 caracteres (slawkens) - Novos raid events- item spawning & disappearing and more (Elf) - Modificações no NPC system (Elf) - NPCs OutfitModule (Elf) - Completo 8.53 support, com wars (Elf) - Completo 8.54 support (Elf) - Arrumado NPC voices (Elf) - Players serão informados quando o Gamemaster logar ou ficar invisivel (slawkens) - Arrumado Player Deaths (Elf, slawkens) - Arrumado Abuso de PZ (slawkens) - Portas agora não ajudam players a entrar em PZ (slawkens) - Magic level formula (OpenTibia SVN, KaczooH) - Memory leaks (Elf) - Queries optimization (Talaturen) - Janelas podem ser abertas do lado de fora da casa- agora apenas GMs podem fazer isso (slawkens) - arrumado Efeitos para o Ghost (GM)- configuravel (slawkens) - Corrigido >> Ghost debugging players (OpenTibia SVN, Elf) - Corrigido erro na promotion (Elf) - Corrigido vários erros no console. (slawkens) - Corrigido Spam de magias (Elf) - Corrigido stamina premium (Elf) - Corrigido Clean (Elf) - Corrigido vários outfits (Elf) - Corrigido Ghost (Elf) - Todas as correções no OpenTibia SVN (Open Tibia SVN, Elf) - Corrigido Todos os crashes possiveis (Elf) - Npcs Corrigidos (Comedinha) - Distro Reformulado (comedinha) - Bugs de reports arrumados (Comedinha) - Novos outfits (Alissow) - Actions Arrumadas (Comedinha) - Libs trocadas (Comedinha) - Talkactions bugadas arrumadas (Comedinha) - Reforma na área Sul da cidade Dorion (Alissow) - Adicionado monstros 8.54 (Alissow) - Corrigido bug das potions infinitas (Alissow) Atualização 3.7 Patch 1 [27/12/2009]: - Rampa na frente da loja de foods retirada (Alissow) - Arrumado bugs de mapa em anknor (Alissow) - Bug na Lib dos npcs corrigido (Alissow) - Bug do acc manager arrumado! (Alissow) - Magias "Exkordium" e "Ice Storm" arrumadas (Alissow) - Monstros 8.54 funcionando (Alissow) - 2º Addon Yalaharian arrumado (Alissow) - Addons Warmaster adicionados no NPC Addoner (Alissow) - Pequenas modificações na cidade principal, Dorion, para melhora da jogabilidade (Alissow) - Comando /Deathlist retirado (Alissow) - Magic Wall Rune arrumada (Alissow) - Quest Annihilator arrumada (Alissow) - "Your depot contain x items" Arrumado (Alissow) - Addons reorganizados, mais facil aggora (Alissow) - Tempo de Red skull e Black skull reduzidos para 24 e 42 horas (Alissow) - Reduzida porcentagem de morte (Alissow) - Acrescentado chance de critical hits (Alissow) - ShowHealingDamage Adicionado (Alissow) - Várias partes do mapa remapeadas (Alissow) - NPCs para recarga de Soft boots & Firewalker boots arrumados [Não testado] (Alissow) - Comando !frags arrumado! (Alissow) - Agora é possivel fazer addons sem precisar do comando !buypremium (Alissow) Atualização 3.8 [17/01/2010]: - Arrumado bug nas escadas do Dlair (Alissow) - Todos os bugs nos NPCs arrumados (Comedinha) - Novas talkactions [a pedidos] (Comedinha) - Deathlist arrumada (Comedinha) - Novo Distro (Comedinha) - MySQL Atualizada (Comedinha) - Firewarker boots não é mais gasta quando não está usando (Comedinha) - Problemas com items no Rashid arrumados (Alissow, Comedinha, Comunidade) - O NPC Banker foi corrigido, mas achei mais seguro retira-lo, visto que ninguem usava e poderia causar outro tipo de bug - Ilha (Sim aqui é uma ilha) de Zao adicionada (Alissow, Barker) - Monstros 8.54 aperfeiçoados (Alissow, Markithu, Zkum) - Reduzido danos da magia Exkordium (Alissow) - Os npcs Dark Rodo e Rachel vendem Blank Runes (Alissow) - Magias que não hitavam anteriormente foram arrumadas (Alissow) - Comando !buypremium arrumado (Alissow) - Arena PVM - Mais conhecida como Arena Svargrond - FUNCIONANDO!!! (Alissow) - Magia LightChain Retirada (Alissow) - Adicionado um sisteminha legal no templo (Alissow) - NPC Rashid retirado (Alissow) Atualização 3.8 Minor Patch 1 [17/01/2010]: - Comando Deathlist retirado novamente, fizemos testes equivocados. Se você é uma das 16 pessoas que baixou a versão anterior (3.8) não precisa baixar esta, basta retirar o comando !deathlist e /deathlist do seu Talkactions.xml, Os comandos causam quedas no servidor. Atualização 3.9 [15/02/2010]: - Cidade principal (Dorion) reformada, novo templo, novo depot, novo porto, novos npcs :] (Alissow) - Adicionado Reputation System (Comedinha, Cybermaster) - Adicionado !bless system (Comedinha) - /info melhorado (Comedinha) - Jail System (Comedinha) - Bug chatinho nos tiles pretos arrumado. - Magic Wall Funcionando! (Alissow) - Agora você pode fazer bolos e pães :] (Comedinha, Jean, Ojani) - Adicionado sistema de casamento (Comedinha, ScorpiOOn93, Alissow) - Loot The Fastest Turtle diminuido (Alissow) - Loot e experiencia do Feromous mais baixo (Alissow) - Sistema de parceis para Dorion funcionando (Alissow) - Guildwar System (Comedinha) - Anti MageBomb System (Comedinha, Huggen) - Adicionado Anti Nuker - Esse funciona! (Comedinha) - Adicionado Map Marks, para os players novos (Alissow, Comedinha) Atualização 4.0 [15/02/2010]: - Cidade Mountain totalmente reformada (Alissow) - Montanha de Goblins de Dorion reformada (Alissow) - Demonic Castle de Dorion reformado (Alissow) - Cidade de Venonh modificada (Luis) - Distro atualizado, funcionando nos clients 8.54, 8.55, 8.56 e 8.57 (Comedinha) - Comando !bless retirado (Alissow) - O NPC Ermes não vende mais items de decoração (Alissow) - Arrumado bugs na Ferumbras Tower (Alissow) - O comando !AFK on agora mantem o player parado (Comedinha) - Arrumado bugs nas escadas da área de DeathFans (Alissow) - Comando !Deathlist funcionando! (Alissow, Doidinmapper, GT Thionix) - Sistema de REP atualizado (Comedinha) - Sistema de Polls (Comedinha) - Banco por comandos (Comedinha) - Novos comandos de addon e accounts (Comedinha) - Sistema de futebol completo! (Comedinha) - Sistema Antibot (Comedinha) - Magia Spared Hur modificada (Alissow, Orzeleagle) - Adicionado sistema de montaria (Alissow, unknown666) - Adicionado Canivetes (Alissow, Siramix) - Nova hunt Subaquatica (Luis) Atualização 4.11! [11/07/2010]: - Versão 8.6, todos os items, outfits e monstros novos (Comedinhasss, Fireelement) - Adicionados os novos monstros 8.6 (Alissow) - Bug das potions arrumado (Comedinha, Matheusmkalo, Gabriel linhares, Fireelement) - Erros das runas arrumado (Comedinha, Gabriel linhares, Matheusmkalo, fireelement) Download Servidor: 4shared Tamanho: 17,416 KB Download: http://www.4shared.com/file/ez8XKrju/860_Alissow_Ots_411.html Link protegido: http://lix.in/-8d4bc0 Scan VirusTotal: http://www.virustotal.com/pt/analisis/983abb574dbb957a75aa1fd29eb804065f775e6a0c43216aa277686d32bce22a-1263702373 Atenção - Acc do God: god/god - LEIA o tópico antes de postar qualquer coisa ou duvida - Reportem se houver algum bug - A database fica na pasta schemas+Database - Proibido o uso do nosso distro sem o nosso consenso, obrigado. Andei percebendo que há muitos mapas feitos por mim em outros servidores postados aqui no xtibia, eu não sei se vocês sabem, mas isso é PLÁGIO. Eu não sou uma pessoa egoista, tudo que eu posto aqui no XTibia é para ser compartilhado, mas desde que mantenham os devidos créditos. Será denunciado qualquer tipo de "roubo" sem minha autorização para beneficio próprio. Eu sei que vocês não se importam muito com isso, eu também não deveria me importar, mas é o tempo e a dedicação de outra pessoa que vocês estão roubando, então peço gentilmente aos que tem conhecimento desses mapas, que me apontem. Não tem graça trabalhar horas e horas e ser roubado em dois minutos.
    1 ponto
  4. FAZENDO SEU OT, BOTANDO ONLINE, LIBERANDO PORTAS, BOTANDO SITE ONLINE, CRIANDO IP FIXO e mais umas coisas Então pessoal, nesse SUPER HIPER MEGA DOUBLE SUPER-SONICO BLASTER 3D JACK BAUER CHUCK NORRIS tutorial, vou ensinar a vocês a como criar um OTserv do zero! (Inclusive SITE!) Primeiro, você precisa baixar esses arquivos aê: OT - Link da seção com downloads: http://www.xtibia.com/forum/forum/596-downloads-de-otserv/ Appserv - Link do download: http://www.appservnetwork.com/ SCRIPTS DO SEU SITE - Link da seção de downloads: http://www.xtibia.com/forum/forum/581-downloads-de-websites/ Só isso : ) Então vamos lá. 1º CRIANDO SEU SERVER Primeiro, extraia o conteúdo do seu OTserver em alguma pasta! Você verá que tem um arquivo com esse nome: config.lua Clique com o botão direito nele, vá em abrir com: Bloco de notas. >>>>> Dentro dele, tem várias coisas.... Só vamos configurar as seguintes coisas: -- server ip (the ip that server listens on) ip = "AQUI VOCÊ POE O SEU IP" -- monster lootrating (how much faster you get items from monsters) lootmul = AQUI VOCÊ POE A PORTECENTAGEM DE CHANCE DE LOOT QUE TEM exemplo: 20 (o máximo é 100!) -- skill multiplier (another multiplier in data/vocations.xml)[/font][/font] skillmul = AQUI TU POE QUANTAS VESES VAI MULTIPLICAR O SKILL exemplo: 6 -- manaspent multiplier (another multiplier in data/vocations.xml) manamul = AQUI TU POE QUANTAS VESES VAI MULTIPLICAR O MAGIC LEVEL exemplo: 5 Bom, alí onde você poe o seu IP, você pega o seu ip nesse site: www.whatip.com Ve seu ip e cola lá. Quando terminar é só clicar em arquivo, salvar e fechar. Pronto, lembrando que toda vez que você desligar e ligar sua internet, o ip muda. Tem que editar lá também. 2º LIBERANDO AS PORTAS 7171 Como iremos fazer isso? Fácil! primeiro você tem que saber de uma coisa, se sua internet for a RÁDIO, você não poderá ter um OTserv. APENAS VIA HAMACHI! Link ensinando a fazer server via hamachi: http://www.xtibia.com/forum/index.php?showtopic=27981 Ok, caso não seja a rádio, vamos lá. Sua internet precisa se conectar por um discador ou já vem conectado direto quando liga?! Se precisar de discador, pra liberar as portas basta fazer isso: Primeiro, Vamos ao painel de controle. Iniciar> Painel de Controle. Clique em FireWall do Windows. Clique na aba Exceções E clique em Adicionar porta. Configure da seguinte maneira. Nome: Open Tibia Porta: 7171 Protocolo: TCP IMAGEM: Dê OK. Pronto, liberou as portas! Mas se é só ligar e já conecta direto sem discador, você tem que saber o modelo de seu modem. Ai você vem nesse site: http://portforward.com/routers.htm Acha o modelo do seu modem, clica. Dai na próxima tela, procure por TIBIA. Ai é só você seguir os passos lá e pronto! Mas não se esqueça de fazer aquilo do FireWall que eu disse ali em cima eim! Pronto! 3º PONDO O OT ONLINE Como faremos isso? Basta entrar na pasta do OT e abrir o arquivo EXECUTÁVEL que tem lá! Não é o Restarter nem o Remote Control! Pronto. Seu server está online! Mas você não tá consseguindo entrar né? É porque você entra pelo ip que você pega desse jeito: Vá ao Iniciar Clique em Executar Digite: cmd Depois digite: ipconfig Ai você pega o Endereço de IP e cola no IPCHANGER e entra! Mas só você que entra por esse IP! Os outros entram por aquele do www.whatip.com 4º AUMENTANDO A EXP Mas a EXP ainda está baixa! Como vamos arrumar? Fácil! Primeiro, vamos até a pasta do OT, Vá na pasta Data Depois, abra o arquivo stages.xml Estará mais ou menos assim: <?xml version="1.0"?> <stages> <stage minlevel="1" maxlevel="999999" multiplier="35"></stage> </stages> Vou explicar: stage minlevel="1" Isso, é o level que a exp começa. No caso, isso é usado para se quiser experiências variadas. No meu caso, eu puis como level mínimo 1. E onde está maxlevel="999999" Isso é o level que a exp desejada chega. Tipo, Quando chegar no level 500, a exp para de ser tal! Entende? Essa parte é a mais importante: multiplier="35" Essa é a EXP! Se você por ali, 50, vai ficar 50 veses mais rápido de upar do que no Tibia normal! Pronto! A exp tá configurada.. Seu server tá online.. quer mais o que?!?! Arrumar a regeneração de mana e hp? Ok né, vamos lá então! 5º ARRUMANDO A REGENERAÇÃO DE MANA/HP Abra a pasta de seu OT, Depois vá na pasta Data! Agora, abra o arquivo Vocations.xml Ai lá tem todas as vocações. Ai cada uma é mais ou menos assim: <vocation id="1" name="Sorcerer" description="a sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="10" gainmanaticks="3" gainmanaamount="50" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120"> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> Então, Onde está esse: gainmanaamount="50" É a quantidade de Mana que ganha. E onde está esse: gainmanaticks="3" É o tempo que irá demorar para subir a mana, Ai no caso está 3 segundos! -- E para mudar a regeneração de HP, Onde está esse: gainhpamount="10" É a quantidade de HP que ganha. E onde está esse: gainhpticks="6" É o tempo que vai demorar para subir o HP! Então é isso! Edite todas as vocações Salve, resete o Servidor e pronto! Mas po, um server sem GM não dá né?! Vamos aprender a criar um char GM! 6º CRIANDO UM CHAR GM/GOD Primeiro, Vamos ao arquivo do character que irá virar gm. Geralmente, está na pasta Players. Está mais ou menos assim: (cortado algumas partes do script para ficar menos) <?xml version="1.0" encoding="UTF-8"?> <player name=" XTibia" account="58585858" sex="1" lookdir="2" exp="4200" voc="3" level="99999999" access="0" cap="380" maglevel="256" Para mudar para GM/GOD Basta mudar o nome e o Acces! Vamos mudar o Acces para 5 (GOD) E o nome para GM XTibia <?xml version="1.0" encoding="UTF-8"?> <player name="GM XTibia" account="58585858" sex="1" lookdir="2" exp="4200" voc="3" level="99999999" access="5" cap="380" maglevel="256" Os acessos são os seguintes: 5- GOD 4- Senior GM 3- GM 2- Sênior Tutor 1- Tutor Depois de ter mudado isso, Volte a pasta players. Lá, renomeie o arquivo do character para o nome que você pois dentro do arquivo. Agora, saia da pasta players e vá para a pasta ACCOUNTS Localize a account do player que irá virar GM, E vamos editá-la. Vai estar mais ou menos assim: <?xml version="1.0"?> <account pass="senha123**" premDays="0" premEnd="0"> <characters> <character name="XTibia"/> </characters> </account> Mude o nome para o nome que você pois no arquivo do character. Ficando assim: <?xml version="1.0"?> <account pass="senha123**" premDays="0" premEnd="0"> <characters> <character name="GM XTibia"> </characters> </account> Feito! Lembrando que para editar o character, ele precisa estar offline! Tá, agora você ve aqueles IPs bonitos né? Tipo assim: mamae.servegame.com Então vamos fazer! 7º CRIANDO IP FIXO Entre no site www.no-ip.com Logo depois, registre-se. Clicando em sign-up. Preencha como desejar. Depois de ter se cadastrado, Você receberá um email com a confirmação do cadastro. Feito. Agora, entre com seu email cadastrado e senha. Na tela que aparecer, clique em Hosts/Redirects. Clique em ADD Uma nova telá irá aparecer. Em name ponha o que você quiser. APENAS O NOME! Não ponha nada mais! Só o nome. Em baixo, escolha o serviço que você quiser. Exemplo, .servegame.com Pronto. Não mecha em mais nada e clique em Create Host. Feito! Seu IP fixo está criado! Espere 5 minutos antes de usá-lo. Lembre-se de todo dia que resetar sua Internet e seu IP mudar, ir no site do no-ip.com e clicar em manage hosts Acha o seu IP Fixo e clica em modify. Daí muda seu IP! ps: o IP que vai no config.lua é o IP de números. Pronto! Seu IP agora tá bonitinho =) Tá, agora você já tem seu OT, configurado, char GM, IP fixo e server ONLINE! Vamos partir pro site?! Acho que é uma boa : ) 8º INSTALANDO E CONFIGURANDO O APPSERV (SITE) Então, sabe aquele AppServ 2.5.9 que eu falei pra você baixar no início do tutorial? Vamos usa-lo agora! Então, dê um clique duplo no ícone do setup do AppServ e vamos instalar! Siga as fotos, preencha igualzinho! Vou mandar um esquema antes! Desmarca PHP My Admin e My SQL Poe o nome do server NAO PODE TER ESPAÇO! Poe o teu EMAIL em baixo. E poe 8090 na port. Depois dá NEXT deixa ir, e no final desmarca as duas caixinhas! Fotos na seqüencia: 1 2 3 4 Pronto! Depois de instalado, Vamos liberar as portas necessárias! Que no caso é a 8090! Faça o mesmo procedimento da porta 7171! Dito láááá em cima! Sobe um montão pouquinho que você acha eu ensinando a desbloquear! Mas muda o nome da porta poe OT Site. OK? Feito, agora sabe os scripts que eu falei para você baixar?! Então, copia os arquivos do script do seu SITE e cola dentro da pasta WWW Que tá no C:\\\\\\\\Appserv\\\\\\\\www Cola dentro dessa www ai! Ai depois, você abre o config.php E configura ai. Geralmente é fácil! Se tiver algo assim: datadir Siginifica que eles querem o destino da pasta data. Qualquer dúvida na hora de configurar, pode adicionar meu msn! Tá na minha assinatura. Depois de configurar, Volte na pasta Appserv e abra a pasta Apache. Abre o arquivo apache_start Essa é a imagem de quando você abre: Pronto! Agora vai lá e testa pra ver se tá on o seu site. http://SEUIP:8090 Lembrando que os outros vão usar o IP do www.whatip.com ( ou o fixo) Mas você entra com o IP interno do executar>cmd>ipconfig Ok? Então é isso galera! Espero que tenha ficado bem explicadinho! Tirei muito tempo meu pra fazer isso! Mas valeu apena! Queria aproveitar pra mandar um beijo pro Frozen, Rickzs, Powerzin, Rustty, JV e Addict! Qualquer coisa que tenha faltado, fala que eu edito! TUTORIAL 100% BY LASTSOULS! Não tem crédito a ninguém alem de mim. PROIBIDA A CÓPIA NÃO AUTORIZADA! XTibia, a sua comunidade de Tibia e OTserv. 2008
    1 ponto
  5. Vmspk

    Azeroth Server Updated

    Azeroth Server Updated 14/07/2011: v1.0 Outras Versões: v1.1 [8.60]: http://www.xtibia.co...oth-rpg-reborn/ v2.0 [9.60]: http://www.xtibia.com/forum/topic/205054-960-azeroth-rpg/ Versão: 8.70 Distro: Crystal Server Mapa Base: Yourots Edited e Mix Yourots Features: > 7 Cidades: Azeroth Avalon Zatur Liberty Bay Gloria Sand Trap Tiquanda > Montarias por quest(NPC Mount Master, cavernas ao norte de Azeroth). > NPCs de Travel/Boat diferentes para cada cidade. > Corrigidos Vários Bugs do mapa. > Templo Reformado > Retirados Vários Itens custom e suas quests do antigo Riot Server. > Adicionada Dragon Dungeon. > Adicionado Vulcão de Goroma. > Adicionada Quest Especial em Gloria (NPC Gloria Scientist). > Adicionada Ferumbras Tower. > Várias Hunts adicionadas. > Adicionada Formorgar Mines. > Sistema de Refinamento e Slot. > 6 Novas Mounts. > Principais Quests: Annihilator Pits of Inferno The Inquisition FireWalker Boots Demon Helmet Draken Hell Conquer > 23 Raids Automáticas e configuradas: > Sistema de Guerras pelo Castelo [Honor Castle, a oeste de Azeroth] Evento automático. Quando a guerra é anunciada as guilds podem batalhar pelo controle do castelo, dando use no monumento do último andar e permanecendo assim até a guerra acabar. O último jogador a ter o controle do castelo antes do tempo acabar será o vencedor, e sua guild se tornará dona do castelo. Todos os membros da Guild ganharão uma recompensa e poderão acessar o mapa do subsolo. Os membros de outras Guilds serão teleportados para o templo e não poderão acessar o castelo. O sistema envia mensagens a todos antes de o evento começar, quando começar, quando o dono do castelo muda, antes de se finalizar e ao finalizar, relatando o conquistador do castelo e a guild vencedora. Imagens: Raids Castle Upgrade & Slot System Não há teleports diretos para hunts ou quests. Não há items ou monstros editados(além dos trainers). Não há sistema VIP(premium account valorizada). Não há raids com monstros excessivamente fortes nas cidades iniciais. Acc God: 2/password Créditos:Unknow YourOts Edited, Mix Yourots Team, Crystal Server Team, Tryller, Mock, TFS Team e um pouquinho (bem pouquinho) pra mim xD. Source - IP Changer 8.70 - Utilitários(opcional) - Map Editor *Utilitários inclui: Lista com códigos de todos os looktypes, SQLite Studio 1.1.1, códigos das cores dos outfits e o OTRestarter. Download Azeroth Server V 1.0 - Completo [MEDIAFIRE] Comandos: !war para executar a guerra pelo castelo manualmente, !reset para interromper o funcionamento da war e !castle para limpar todos os dados, ou seja, o castelo volta a ser terra de ninguém. V 0.2 V 0.3 V 0.4 V 1.0 Último pedido meu: encham o saco dos adms pra colocarem o tópico do tryller como fixo. É o melhor distro 8.70 que nós temos aqui, talvez ele salve os ots 8.70 daqui pra frente Contato: vmspk@hotmail.com Edit - Coloquei os Scans Edit2 - Adicionado comando Edit3 - Atualização Edit4 - Atualização http://img208.images...claymorepsf.jpg
    1 ponto
  6. meubk

    [Globalevents]Lotery System.

    Sistema de loteria feito por min, podendo ter classificação de qntos vão ganhar. Crie um arquivo chamado lotery.lua local premio = { [1] = {item = 2160, count = 60}, [2] = {item = 2165, count = 1} } local configs = { hours = 3, -- quantas em quantas horas, vai acontecer. winners = 3 -- qntos players podem ganhar. } function onThink(interval, lastExecution) local p = getPlayersOnline() local winners = configs.winners if #p < winners then winners = #p end for i = 1, winners do local p = getPlayersOnline() local c, w = #p, #premio local d, e = math.random(c), math.random(w) local playerwin = p[d] doPlayerAddItem(playerwin, premio[e].item, premio[e].count) doBroadcastMessage("[" .. i .. "ST PLACE] Winner: " .. getCreatureName(playerwin) .. ", Reward: " .. premio[e].count .. " " .. getItemNameById(premio[e].item) .. ", Congratulations!") if i == winners then doBroadcastMessage("(Next Lottery in " .. configs.hours .. " hours.)") end doSendMagicEffect(getThingPos(playerwin), 12) end return true end 19:27 [1ST PLACE] Winner: Dante, Reward: 1 stealth ring, Congratulations! 19:27 (Next Lottery in 3 hours.) Tag: <globalevent name="Lotery" interval="10800" event="script" value="lotery.lua"/> O interval é sempre o tantode horas * 3600, exemplo 3 * 3600 = 10800. Configurando premios : local premio = { [1] = {item = 2160, count = 60}, [2] = {item = 2165, count = 1} } é só ir adicionando como em cima, mais o numero do [] , item é o id, e count é o tanto, vai aumentando exemplo : local premio = { [1] = {item = 2160, count = 60}, [2] = {item = 2165, count = 1}, [3] = {item = 2166, count = 1} }
    1 ponto
  7. Alissow

    Mindrage's Spellmaker 0.68B

    Este programa foi desenvolvido por MindRage, com o objetivo de facilitar a criação de magias em OTServers. Imagem: Download: Mindrage\'s Spellmaker 0.68b.rar Mirror: Clique aqui Scan: Clique aqui
    1 ponto
  8. Olá galera do XTibia; eu postei já vários tópicos, incluindo sistemas, e scripts em parceria com o Vodkart, por exemplo, que infelizmente, não foram muito apreciados (links na minha assinatura). Então eu pensei em fazer algo grande, um sistema que talvez não fosse compartilhado por outras pessoas, sem negociações de dinheiro. Foi ai que me veio uma idéia, que inicialmente eu pensei que poderia ser grande, um sistema difícil e com vários scripts. Trabalhando nisso por alguns dias, eu desenvolvi um sistema de reputação, ou recompensa, como preferirem, utilizando apenas dois scripts lua. Não posso dizer que foi fácil, tive meus problemas, mas não foi tão difícil quanto o esperado. Bom, vamos ao que interessa; o sistema funciona assim: Há um npc, e este npc pode colocar recompensas pela cabeça dos jogadores, desde que você o pague, é claro. São dez níveis de recompensa, sendo que a cada nível, a recompensa vai melhorando. Exemplo de uso: Um pk me matou, e não tenho forças para mata-lo. Quero que ele sofra, mas não quero ser descoberto, pois não quero morrer para ele de novo. A solução? Caçador de recompensas. Vou contratar o caçador de recompensas e usar todo o meu dinheiro para aumentar sua recompensa ao nível máximo, o nível 9! Assim, uma mensagem irá avisar a todos no servidor que o jogador teve sua recompensa aumentada, e assim, os mais fortes irão matar este pk para mim, e ele não saberá que fui eu. Assim que o jogador for morto, a recompensa será resetada, e o cara que matou irá ganhar um item de acordo com o nível da recompensa. Vamos aos scripts e suas explicações: Versão 1.5: As seguintes opções de palavras são validas para versão 1.5: Informaçoes - O npc irá explicar detalhadamente como funciona o sistema para o jogador. Recompensa - O npc irá te dizer o nível de sua recompensa. Level - Diga level, e depois o nome do jogador que você deseja consultar, e irá saber o nível da recompensa dele. Promover - Diga promover e promova a recompensa de algum jogar, lembrando que a recompensa será aumentado 1 por 1. Espero que gostem, me esforcei de mais para fazer este sistema, espero que todos que utilizarem, comentem; é só comentar dizendo se gostou ou não, ou se encontrou algum erro, enfim, comentem.
    1 ponto
  9. rj157

    Bom Galera Do Poke Dash

    Bom é O Seguinte!! Meu Objetivo é Que "Todos Colaborem Ajudando Em Alguma Coisa" Mais Alguns Falam : A Eu Nao Sei Nada ... Nao Sabe? Entum Pelomenos Nao Exija Nada...Exemplo: Faz A Pergunta Uma Vez... Ninguem Responde e Essa Pessoa Vai E Da Flood E Refaz A Pergunta!! Bom Mais Voltando Ao Assunto Esse Topico Eu Estava Penssando O Seguinte... Que Todos Que Tiverem Algum Trabalho Testado Postem...!! Mais Sempre Tem Um E Pergunta ... Porque Eu Deveria Postar Meu Script Aki? Sendo Que Nao Foi Facil Fazer Ou Achar? Porque Passar Para Todos ? Simples:Porque Voce Ajudando As Pessoas Com As Coisas Que Voce Tem ... As Pessoas Podem Te Ajudar Com As Coisas Que Voce Nao Tem Entao Porfavor Antes De Fazerem Perguntas Penssem Um Poco Na Descriçao Do Topico Obrigado!! Bom Agora Eu Irei Passar Algumas Coisas Que Muitos Precisam E Estarei Postando Agora A Descriçao Do Server Testado... Pokemon Dash :Criado Por Brun123(mastercraft), glugluguga. Versao :8.54 Site Para Baixar O Server E Ter As Informaçoes Do Que Contem Nele:http://www.xtibia.com/forum/topic/149604-854pokeserver-tfs-036-v50/ Bom e Como è Meu Segundo Topico Nao Sou Muito Experiente Entao Qualquer Erro De Portugues Ou Qualquer Coisa Que Esteja Faltando Avise.. E Fugindo Meio Do Assunto Preciso Que Alguem me Encine A Botar Imagem No Topico E Deixar Ele Cada Veiz Melhor E Pesso Para Colaborarem Como Ja Foi Dito Bom E è Isso Ae Quem Souber As Coisas Do Topico EX:Botar Imagens,Cores Nas Letras e tambem botar arquivos para download no megaupload que preciso botar meu m6 que eu mesmo fiz... e botar mais algumas coisas como items.xml e outros Me Add Msn romariopnascimento@hotmail.com... Agora Irei Postar Alguns Scripts Que Eu Tenho.. Bom Muitos Nao Sao Meus E Nao Sei O Nome De Muitos Dos Criadores ... Só Mesmo O Do Bruno e Do Glugluguga E Tudo Que Eu Postar Estara Editado Por Mim [ Revive ] - fiz em cima de uns Scripts aqui , então n ligue para esse DEMON e VAMPIRE no meio do Script. Bem Falei Que Estava Esperando Alguem Me Encinar A Por Um Arquivo Para Download e Ja Me Enssinaram Agora Como Prometido Esta Ae Catch 100% Configurado Com Life Do Go/back Do Server Todas As Boxs Configuradas Com Life Do Go/Back m1,m2 e m6 Bom Estou Pulando Do m2 Ao m6 Simplesmente Porque Eu Peguei O m1 e o m2 De Outro Topico E Comecei A Editar Dos Mais Dificeis Que è O m6 Evolution 100% [ Npc que compra Stones ] - Igual ao do Global , ow seja não eh por Trade [ Npc Premium Seller por Diamonds ] - Ele vende 1 Dia de premium por 1 Diamond , logo arrumarei para 10 Diamonds ser 30 Dias. [ Comando /AddPoke ] - Agora Adicionados Para Todos Os Pokemons [ Revive por Talkaction ] - Para aqueles que querem vantagiar a vida dos Premmy. [ Descrições da Pokedex 100 % ] - Feito para Pokemon Dash , So substituir a pasta "pokedex" Tentando Editar Com Os Lendarios Bom Agora Quero Pedir Mil Desculpas Por Ter Sem Querer Ter Refeito O Topico =[... Bom Mais Ja Esta Tudo Ae Denovo... Se Estiver Faltando Algo Avisem... Estou Tentando Fazer O Npc Que Pinta Ball Para Postar Aki ... Se Eu Conssiguir Posto e Agora ... Irei Distribuir Os Creditos Bom e Só Para Relembrar... Estou Criando Um Projeto Pokemon e Se Voce For Experiente e Tiver Afim... De Criar O Melhor Servidor Pokemon Entrem No Meu Outro Topico E Confiram As Informaçoes Que Tem No Server E Como Se Eleger A Algum Cargo ??Te Ajudei?? Rep+ A Sua Visita Me Alegra
    1 ponto
  10. Alissow

    Instalando Rme 8.70

    Veja bem, aqui você vai aprender a instalar uma versão não oficial do RME 8.7, eu já vou avisando que não é recomendado o uso por usuários iniciantes, de qualquer forma, todos podem instalar, basta seguir os passos do tutorial. Fiz até um video explicativo, fica impossivel não conseguir fazer. Imagem por: kudzu1988 0.1 - Faça uma cópia de segurança antes de substituir QUALQUER COISA. 1 - Primeiro, instale o Tibia 8.7. Caso não o tenha, baixe AQUI 2 - Abra o RME 3 - Crie um novo mapa 8.60 (CTRL + P) 4 - Vá em File > Preferences > Client Versions 5 - Desmarque "Check File Signatures" 6 - Na mesma janela, em "Version 8.60 search patch", clique em Browse e encontre a pasta do tibia 8.70. Dê OK mas não feche o RME 7 - Download o OTB 8.7 Clicando Aqui.. 8 - Copie e cole o items.otb que você acabou de baixar na pasta C:\Arquivos de Programas\Remere's Map Editor\data\860\ e substitua o já existente. Copie também os arquivos "extensions_byzbizo_87" e "extensions_byzbizo_full v110 for 862" para a pasta C:\Arquivos de Programas\Remere's Map Editor\data\860\extensions. 9 - Abra a janela do RME (Que você não deve ter fechado) e aperte f5. Caso foi solicitado a pasta 8.60, vá na pasta 8.70. ATENÇÃO! Depois de fazer isso, se você tentar abrir qualquer outro mapa 8.7 irá aparecer a seguinte mensagem: ERROR Unsupported client version! (8) ERROR Error loading map! Para contornar o erro, basta abrir o RME normalmente, criar um novo mapa (CTRL + N), depois vá em File > Import > Import Map, verifique se está tudo assim: Depois é só clicar em Browse e carregar o seu mapa. Você também pode ver o video, que contem a mesma explicação. (Veja em tela cheia) Créditos: Alissow, Remere, Zbizu
    1 ponto
  11. Vodkart

    Npc Pokemoncollector Funcionando

    Explicação: é dada uma lista na ordem alfabética com os pokemons que esse NPC compra,depois disso há 2 versões V 1.0 --[[ PokeServer ]] -- : basta dizer o nome do pokemon que você quer vender e colocar o mesmo no slot da pokebola... V 2.0 --[[ Pokemon Dash --]] : a pokebola tem que estar dentro da backpack,com a função "sellPokemon(cid, name, price)" que não é minha NPC/SCRIPT buy_pokemons.lua V 1.0 V 2.0 NPC Comprador.xml <?xml version="1.0"?> <npc name="Comprador" script="data/npc/scripts/buy_pokemons.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. quer me vender alguns {pokemon}? " /> </parameters> </npc>
    1 ponto
  12. Eskylo

    [Pedido]Modificar Capacidade De Peso

    Vou te passar a parte que muda a capacidade máxima do jogador, espero que ajude. Vá até a pasta data/creaturescripts/scripts e abra o arquivo login.lua, procure pela linha function onLogin(cid) logo abaixo dessa linha adicione: doPlayerSetMaxCapacity(cid, 6.01) Ponha 6.01, pois senão buga e o player só consegue pegar 5 itens de peso 1oz.
    1 ponto
  13. Demonbholder

    Runa Tipo Utevo Res

    Ahhhh, mal cara, errei no uso da função, agora ta certo.
    1 ponto
  14. Vodkart

    Fly So Para Vip!

    -- feito por brun123, editado por glugluguga local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'} local direction = {'4', '5', '6', '7'} -- 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 = { [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 -- ROCK SMASH 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 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 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 local blink = {'Abra', 'Kadabra', 'Alakazam', 'Porygon'} local exhaustblink = 9501 local cdblink = 50 -- BLINK -- LIGHT 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 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 if not isCreature(cmed) then 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 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 (isVip(cid) == FALSE) then doPlayerSendCancel(cid, "You need a vip account to fly in this pokemon!.") return true end if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and not isInArray(ridefly, getCreatureName(getCreatureSummons(cid)[1])) then 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 return true end if getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and isInArray(ride, getCreatureName(getCreatureSummons(cid)[1])) then 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) 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 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") registerCreatureEvent(pk, "DiePoke") registerCreatureEvent(pk, "Exp") 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 if isInArray({460, 1022, 1023}, getTileInfo(getThingPos(cid)).itemid) 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") registerCreatureEvent(pk, "DiePoke") registerCreatureEvent(pk, "Exp") 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) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(fly, getCreatureName(getCreatureSummons(cid)[1])) then 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) 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) 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 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) 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 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) 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 -- CUT END -- DIG 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) 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 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 if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 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])) setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1) local function move(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then return true end if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then local function speeed(params) if isCreature(params.sum) then if getCreatureSpeed(params.sum) == 0 then doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum)) end end end addEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]}) end setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0) return true end local edire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos) if edire >= 0 and edire <= 7 then if edire == NORTHWEST then if math.random(1,100) >= 51 then edire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = NORTH else edire = WEST end else edire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = WEST else edire = NORTH end end elseif edire == SOUTHWEST then if math.random(1,100) >= 51 then edire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = SOUTH else edire = WEST end else edire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = WEST else edire = SOUTH end end elseif edire == SOUTHEAST then if math.random(1,100) >= 51 then edire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = SOUTH else edire = EAST end else edire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = EAST else edire = SOUTH end end elseif edire == NORTHEAST then if math.random(1,100) >= 51 then edire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = NORTH else edire = EAST end else edire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then edire = EAST else edire = NORTH end end end local edire = edire if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) end end end end end local function voltarnormal(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then local function speeed(params) if isCreature(params.sum) then doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum)) end end addEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]}) end setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0) end end end local pois = getThingPos(item2.uid) local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1]) local temk = 1000 -(2.3 * speed) local SumPos = getThingPos(getCreatureSummons(cid)[1]) local travelx = math.abs((topos.x) - (SumPos.x)) local travely = math.abs((topos.y) - (SumPos.y)) local travel = ((travelx) + (travely)) addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid}) for i = 1, travel do addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid}) end addEvent(voltarnormal, temk * travel, {cid = cid}) exhaustion.set(cid, etudao, travel) 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 -- 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 getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then doPlayerSendCancel(cid, "You can\'t order your pokemon to move now.") 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])) setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1) local function move(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then return true end if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then local function speeed(params) if isCreature(params.sum) then if getCreatureSpeed(params.sum) == 0 then doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum)) end end end addEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]}) end setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0) setPlayerStorageValue(cid, etudao, -1) return true end local dire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos) if dire >= 0 and dire <= 7 then if dire == NORTHWEST then if math.random(1,100) >= 51 then dire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = NORTH else dire = WEST end else dire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = WEST else dire = NORTH end end elseif dire == SOUTHWEST then if math.random(1,100) >= 51 then dire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = SOUTH else dire = WEST end else dire = WEST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = WEST else dire = SOUTH end end elseif dire == SOUTHEAST then if math.random(1,100) >= 51 then dire = SOUTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = SOUTH else dire = EAST end else dire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = EAST else dire = SOUTH end end elseif dire == NORTHEAST then if math.random(1,100) >= 51 then dire = NORTH if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = NORTH else dire = EAST end else dire = EAST if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then dire = EAST else dire = NORTH end end end local dire = dire if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1])) doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) else doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0) doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1])) end end end end end local function voltarnormal(params) if isCreature(params.cid) then if isCreature(getCreatureSummons(params.cid)[1]) then setPlayerStorageValue(cid, etudao, -1) if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then local function speeed(params) if isCreature(params.sum) then if getCreatureSpeed(params.sum) == 0 then doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum)) end end end addEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]}) end setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0) end end end local pois = getThingPos(item2.uid) local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1]) local temk = 1000 -(2.3 * speed) local SummonPos = getThingPos(getCreatureSummons(cid)[1]) local travelx = math.abs((topos.x) - (SummonPos.x)) local travely = math.abs((topos.y) - (SummonPos.y)) local travel = ((travelx) + (travely)) addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid}) for i = 1, travel-1 do addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid}) end addEvent(voltarnormal, temk*travel, {cid = cid}) exhaustion.set(cid, etudao, travel) return true end
    1 ponto
  15. Gente hoje vou postar uma videoaula de como desbloquear as portas do roteador tp-link mas isso pode ser uma base para desbloquear portas de outros roteadores. http://www.youtube.com/watch?v=bSUA1GFdpl8
    1 ponto
  16. Demonbholder

    Random Box + Host

    Não foi testado: function onUse(cid, item) if getPlayerStorageValue(cid, 15278) == -1 then local config = { item1 == ?????, item2 == ?????, item3 == ?????, item4 == ?????, item5 == ?????, item6 == ?????, item7 == ?????, item8 == ?????, item9 == ?????, item10 == ????? } local random = math.random(1, 10) if random == 1 then doTransformItem(item.uid, config.item1) setPlayerStorageValue(cid, 15278, 1) elseif random == 2 then doTransformItem(item.uid, config.item2) setPlayerStorageValue(cid, 15278, 1) elseif random == 3 then doTransformItem(item.uid, config.item3) setPlayerStorageValue(cid, 15278, 1) elseif random == 4 then doTransformItem(item.uid, config.item4) setPlayerStorageValue(cid, 15278, 1) elseif random == 5 them doTransformItem(item.uid, config.item5) setPlayerStorageValue(cid, 15278, 1) elseif random == 6 them doTransformItem(item.uid, config.item6) setPlayerStorageValue(cid, 15278, 1) elseif random == 7 them doTransformItem(item.uid, config.item7) setPlayerStorageValue(cid, 15278, 1) elseif random == 8 them doTransformItem(item.uid, config.item8) setPlayerStorageValue(cid, 15278, 1) elseif random == 9 them doTransformItem(item.uid, config.item9) setPlayerStorageValue(cid, 15278, 1) elseif random == 10 them doTransformItem(item.uid, config.item10) setPlayerStorageValue(cid, 15278, 1) end end return doPlayerSendCancel(cid, "Você só pode usar uma vez este item") end No lugar dos ????? vc põe o id dos itens.
    1 ponto
  17. Fir3element

    Sources

    claro q tem items.cpp antes else if(Items::dwMinorVersion != CLIENT_VERSION_860) { std::cout << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } depois /*else if(Items::dwMinorVersion != CLIENT_VERSION_860) { std::cout << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; }*/ é só bota /* e */ flwsss
    1 ponto
  18. rj157

    Bom Galera Do Poke Dash

    Muito Bom Redspark Isso Que Eu Queria Dizer ... Mais Nao Respondeu =[ A Pergunta Mereço Os 30%? Rep+ Please Ja Te Dei O Seu Rep+ Por Estar Colaborando E Ter Intendido O Que Eu Queria Dizer Com (Ajudar Para Ser Ajudado) Ae Voce... è Voce Mesmo Deseja Fazer Parte Da Minha Equipe Poke Dark? Entrem E Confira As Informaçoes Do Serv E Tambem Como Se Eleger a Equipe!! http://www.xtibia.com/forum/topic/151385-pokemon-darkness/
    1 ponto
  19. Vodkart

    Por Favor, Quero Um Npc De Troca.

    nome do seu script.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'key') then selfSay('Como voce ficou sabendo da chave? De qualquer jeito, eu posso vende-la por 3 small ruby. Quer comprar? {yes} ', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if doPlayerRemoveItem(cid,2147,3) then local x = doPlayerAddItem(cid,2700,1) doItemSetAttribute(x, "aid", 2700) selfSay("toma sua chave!",cid) talkState[talkUser] = 0 else selfSay("seu idiota,você não tem 3 small ruby para trocar!.",cid) talkState[talkUser] = 0 end elseif msg == "no" and talkState[talkUser] == 1 then selfSay("então vá embora e me deixe em paz!", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC NOME DO SEU NPC.XML <?xml version="1.0"?> <npc name="NOME DO SEU NPC" script="data/npc/scripts/nome do seu script.lua" walkinterval="10000" floorchange="0"> <health now="100" max="100"/> <look type="131" head="19" body="19" legs="19" feet="19" addons="3"/> <parameters> <parameter key="message_greet" value="Oque você quer |PLAYERNAME| seja o que for, fale rapido.Estou muito ocupado...{key}" /> </parameters> </npc>
    1 ponto
  20. Vodkart

    Transformaçao

    acho que está faltando parte do script,porque não deu para entender nada... addEvent(trans7,ext,cid) parâmetros "trans7" e "ext" não tem ai... ou você só quer saber a função que é usada para aumentar o HP/MANA? ---EDITED aff cara tu reviveu um tópico de julho de 2010 -.-
    1 ponto
  21. WaldirJunior

    Transformaçao

    To Atras disso tdm , tentei fazer no meu , mas nao consegui...
    1 ponto
  22. Blz Kara Vo posta o ot ake mais tem noticia triste essa semana leia mais ake -> [imporantante]Pokemon Online (Svke) Topico do forum do jogo = [importantissimo] Acabando Pokemon Online[sVKE]
    1 ponto
  23. é isso mesmo,o id das pokebollas são diferentes tem que editar ali alias qual o seu servidor pokemon?
    1 ponto
  24. oiacaio

    [Talkactions]Sistema M1 Do Xotservx

    Pessoal venho aqui trazer o sistema de move do xotservx, mas com todos 151 pokes(nao tem os movements dos shinys), tenho o m1 e o m2, que achei em um serve, nao sei quem fez, mas vou postar aqui pra vocês pra facilitar a edição das spells. M1: function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function doSendMagicEffectInArea(pos,effect,area,cid) -- Function by mock local centro = {} centro.y = math.floor(table.getn(area)/2)+1 for y = 1, table.getn(area) do for x = 1, table.getn(area[y]) do if area[y][x] > 0 then centro.x = math.floor(table.getn(area[y])/2)+1 if type(effect) == 'table' then doSendMagicEffect({x=pos.x+x-centro.x,y=pos.y+y-centro.y,z= pos.z},(effect[area[y][x]] or 0),cid) else doSendMagicEffect({x=pos.x+x-centro.x,y=pos.y+y-centro.y,z= pos.z},effect or 0,cid) end end end end return true end function getTime(s) -- by : Mkalo. local n = math.floor(s / 60) s = s - (60 * n) return n, s end -- AREAS -- local arr1 = { {1, 1, 1}, {1, 0, 1}, {1, 1, 1}, } local arr2 = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 0, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, } local pokes = { ["Bulbasaur"] = {attackname = "Quick Attack", level = 1, storage = 1900, cd = 2, atkmin = 40, atkmax = 60, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Ivysaur"] = {attackname = "Quick Attack", level = 40, storage = 1900, cd = 2, atkmin = 100, atkmax = 150, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Venusaur"] = {attackname = "Quick Attack", level = 85, storage = 1900, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Charmander"] = {attackname = "Scratch", level = 1, storage = 1901, cd = 2, atkmin = 30, atkmax = 50, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Charmeleon"] = {attackname = "Scratch", level = 40, storage = 1901, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Charizard"] = {attackname = "Scratch", level = 85, storage = 1901, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Squirtle"] = {attackname = "Headbutt", level = 1, storage = 1902, cd = 2, atkmin = 40, atkmax = 60, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Wartortle"] = {attackname = "Headbutt", level = 40, storage = 1902, cd = 2, atkmin = 100, atkmax = 150, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Blastoise"] = {attackname = "Headbutt", level = 85, storage = 1902, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Caterpie"] = {attackname = "Headbutt", level = 1, storage = 1902, cd = 2, atkmin = 5, atkmax = 15, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Metapod"] = {attackname = "String Shot", level = 15, storage = 1903, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 137, type = COMBAT_PHYSICALDAMAGE}, ["Butterfree"] = {attackname = "String Shot", level = 35, storage = 1903, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Weedle"] = {attackname = "Horn Attack", level = 1, storage = 1904, cd = 2, atkmin = 5, atkmax = 15, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Kakuna"] = {attackname = "String Shot", level = 15, storage = 1903, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 137, type = COMBAT_PHYSICALDAMAGE}, ["Beedrill"] = {attackname = "String Shot", level = 35, storage = 1903, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Pidgey"] = {attackname = "Quick Attack", level = 1, storage = 1900, cd = 2, atkmin = 5, atkmax = 15, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Pidgeotto"] = {attackname = "Quick Attack", level = 20, storage = 1900, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Pidgeot"] = {attackname = "Quick Attack", level = 65, storage = 1900, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Rattata"] = {attackname = "Quick Attack", level = 1, storage = 1900, cd = 2, atkmin = 5, atkmax = 15, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Raticate"] = {attackname = "Quick Attack", level = 25, storage = 1900, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Spearow"] = {attackname = "Quick Attack", level = 1, storage = 1900, cd = 2, atkmin = 5, atkmax = 15, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Fearow"] = {attackname = "Quick Attack", level = 50, storage = 1900, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Ekans"] = {attackname = "Bite", level = 15, storage = 1905, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Arbok"] = {attackname = "Bite", level = 35, storage = 1905, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Pikachu"] = {attackname = "Thunder Shock", level = 20, storage = 1906, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "area", arr = arr2, effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Raichu"] = {attackname = "Thunder Shock", level = 50, storage = 1906, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "area", arr = arr2, effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Sandshrew"] = {attackname = "Sand Attack", level = 20, storage = 1907, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Sandslash"] = {attackname = "Sand Attack", level = 55, storage = 1907, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Nidoranfe"] = {attackname = "Quick Attack", level = 10, storage = 1900, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Nidorina"] = {attackname = "Quick Attack", level = 30, storage = 1900, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Nidoqueen"] = {attackname = "Quick Attack", level = 65, storage = 1900, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Nidoranma"] = {attackname = "Quick Attack", level = 10, storage = 1900, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Nidorino"] = {attackname = "Quick Attack", level = 30, storage = 1900, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Nidoking"] = {attackname = "Quick Attack", level = 65, storage = 1900, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Clefairy"] = {attackname = "Doubleslap", level = 20, storage = 1908, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Clefable"] = {attackname = "Doubleslap", level = 45, storage = 1908, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Vulpix"] = {attackname = "Quick Attack", level = 15, storage = 1900, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Ninetales"] = {attackname = "Quick Attack", level = 70, storage = 1900, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Jigglypuff"] = {attackname = "Doubleslap", level = 20, storage = 1908, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Wigglytuff"] = {attackname = "Doubleslap", level = 45, storage = 1908, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Zubat"] = {attackname = "Super Sonic", level = 15, storage = 1909, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Golbat"] = {attackname = "Super Sonic", level = 35, storage = 1909, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Gloom"] = {attackname = "Absorb", level = 25, storage = 1910, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Vileplume"] = {attackname = "Absorb", level = 50, storage = 1910, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Paras"] = {attackname = "Absorb", level = 5, storage = 1910, cd = 2, atkmin = 5, atkmax = 20, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Parasect"] = {attackname = "Absorb", level = 50, storage = 1910, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Venonat"] = {attackname = "Absorb", level = 5, storage = 1910, cd = 2, atkmin = 5, atkmax = 20, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Venomoth"] = {attackname = "Absorb", level = 50, storage = 1910, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Diglett"] = {attackname = "Sand Attack", level = 10, storage = 1907, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Dugtrio"] = {attackname = "Sand Attack", level = 35, storage = 1907, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Meowth"] = {attackname = "Slash", level = 15, storage = 1912, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Persian"] = {attackname = "Slash", level = 30, storage = 1912, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Psyduck"] = {attackname = "Water Gun", level = 20, storage = 1913, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Golduck"] = {attackname = "Doubleslap", level = 55, storage = 1908, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Mankey"] = {attackname = "Scratch", level = 15, storage = 1901, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Primeape"] = {attackname = "Scratch", level = 35, storage = 1901, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Growlithe"] = {attackname = "Roar", level = 20, storage = 1914, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Arcanine"] = {attackname = "Roar", level = 90, storage = 1914, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Poliwag"] = {attackname = "Doubleslap", level = 5, storage = 1908, cd = 2, atkmin = 5, atkmax = 20, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Poliwhirl"] = {attackname = "MudShot", level = 25, storage = 1915, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Poliwrath"] = {attackname = "MudShot", level = 65, storage = 1915, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Abra"] = {attackname = "Psybeam", level = 20, storage = 1916, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "direcion", effectdir0 = 108, effectdir1 = 109, effectdir2 = 108, effectdir3 = 106, effectdir4 = 107, effectdir5 = 106, effectdir6 = 108, effectdir7 = 109, effectdir8 = 108, effectdir9 = 107, effectdir10 = 106, effectdir11 = 107, type = COMBAT_PHYSICALDAMAGE}, ["Kadabra"] = {attackname = "Psybeam", level = 45, storage = 1916, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "direcion", effectdir0 = 108, effectdir1 = 109, effectdir2 = 108, effectdir3 = 106, effectdir4 = 107, effectdir5 = 106, effectdir6 = 108, effectdir7 = 109, effectdir8 = 108, effectdir9 = 107, effectdir10 = 106, effectdir11 = 107, type = COMBAT_PHYSICALDAMAGE}, ["Alakazam"] = {attackname = "Psybeam", level = 80, storage = 1916, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "direcion", effectdir0 = 108, effectdir1 = 109, effectdir2 = 108, effectdir3 = 106, effectdir4 = 107, effectdir5 = 106, effectdir6 = 108, effectdir7 = 109, effectdir8 = 108, effectdir9 = 107, effectdir10 = 106, effectdir11 = 107, type = COMBAT_PHYSICALDAMAGE}, ["Machop"] = {attackname = "Triple Punch", level = 20, storage = 1917, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Machoke"] = {attackname = "Triple Punch", level = 47, storage = 1917, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Machamp"] = {attackname = "Triple Punch", level = 70, storage = 1917, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Bellsprout"] = {attackname = "Razor Leaf", level = 10, storage = 1918, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 79, type = COMBAT_PHYSICALDAMAGE}, ["Weepinbell"] = {attackname = "Razor Leaf", level = 25, storage = 1918, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 79, type = COMBAT_PHYSICALDAMAGE}, ["Victreebel"] = {attackname = "Razor Leaf", level = 50, storage = 1918, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 79, type = COMBAT_PHYSICALDAMAGE}, ["Tentacool"] = {attackname = "Acid", level = 15, storage = 1928, cd = 2, atkmin = 10, atkmax = 30, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Tentacruel"] = {attackname = "Super Sonic", level = 75, storage = 1909, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Geodude"] = {attackname = "Rock Throw", level = 15, storage = 1919, cd = 2, atkmin = 10, atkmax = 30, range = 1, typeattack = "intarget", effecta = 34, type = COMBAT_PHYSICALDAMAGE}, ["Graveler"] = {attackname = "Rock Throw", level = 40, storage = 1919, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 34, type = COMBAT_PHYSICALDAMAGE}, ["Golem"] = {attackname = "Rock Throw", level = 70, storage = 1919, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 34, type = COMBAT_PHYSICALDAMAGE}, ["Ponyta"] = {attackname = "Quick Attack", level = 20, storage = 1900, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Rapidash"] = {attackname = "Quick Attack", level = 55, storage = 1900, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Slowpoke"] = {attackname = "Aqua Tail", level = 20, storage = 1920, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Slowbro"] = {attackname = "Aqua Tail", level = 45, storage = 1920, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Magnemite"] = {attackname = "Super Sonic", level = 15, storage = 1909, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Magneton"] = {attackname = "Super Sonic", level = 45, storage = 1909, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Farfetch'd"] = {attackname = "Sand Attack", level = 40, storage = 1907, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Doduo"] = {attackname = "Sand Attack", level = 10, storage = 1907, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Dodrio"] = {attackname = "Sand Attack", level = 45, storage = 1907, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Seel"] = {attackname = "Headbutt", level = 20, storage = 1902, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Dewgong"] = {attackname = "Aqua Tail", level = 45, storage = 1920, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Grimer"] = {attackname = "Mud Shot", level = 15, storage = 1915, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Muk"] = {attackname = "Mud Shot ", level = 35, storage = 1915, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Shellder"] = {attackname = "Lick", level = 10, storage = 1921, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 145, type = COMBAT_PHYSICALDAMAGE}, ["Cloyster"] = {attackname = "Lick", level = 60, storage = 1921, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 145, type = COMBAT_PHYSICALDAMAGE}, ["Gastly"] = {attackname = "Lick", level = 20, storage = 1921, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 145, type = COMBAT_PHYSICALDAMAGE}, ["Haunter"] = {attackname = "Lick", level = 45, storage = 1921, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 145, type = COMBAT_PHYSICALDAMAGE}, ["Gengar"] = {attackname = "Lick", level = 80, storage = 1921, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 145, type = COMBAT_PHYSICALDAMAGE}, ["Onix"] = {attackname = "Sand Attack", level = 50, storage = 1907, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Drowzee"] = {attackname = "Headbutt", level = 25, storage = 1902, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Hypno"] = {attackname = "Headbutt", level = 55, storage = 1902, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Krabby"] = {attackname = "Bubbles", level = 10, storage = 1922, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Kingler"] = {attackname = "Bubbles", level = 40, storage = 1922, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Voltorb"] = {attackname = "Thunder Shock", level = 10, storage = 1906, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "area", arr = arr2, effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Electrode"] = {attackname = "Thunder Shock", level = 35, storage = 906, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "area", arr = arr2, effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Exeggcute"] = {attackname = "Hypnosis", level = 15, storage = 1923, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "area", arr = arr2, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Exeggutor"] = {attackname = "Hypnosis", level = 55, storage = 1923, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "area", arr = arr2, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Cubone"] = {attackname = "Headbutt", level = 10, storage = 1902, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Marowak"] = {attackname = "Headbutt", level = 55, storage = 1902, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Hitmonlee"] = {attackname = "Triple Kick Lee", level = 60, storage = 1924, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Hitmonchan"] = {attackname = "Triple Punch", level = 60, storage = 1924, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Lickitung"] = {attackname = "Lick", level = 55, storage = 1921, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 145, type = COMBAT_PHYSICALDAMAGE}, ["Koffing"] = {attackname = "Mud Shot", level = 15, storage = 1915, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Weezing"] = {attackname = "Mud Shot", level = 35, storage = 1915, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Chansey"] = {attackname = "Doubleslap", level = 60, storage = 1908, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Tangela"] = {attackname = "Absorb", level = 50, storage = 1910, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 8, type = COMBAT_PHYSICALDAMAGE}, ["Kangaskhan"] = {attackname = "Bite", level = 80, storage = 1905, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Horsea"] = {attackname = "Mud Shot", level = 10, storage = 1915, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Seadra"] = {attackname = "Mud Shot", level = 45, storage = 1915, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Goldeen"] = {attackname = "Horn Attack", level = 10, storage = 1904, cd = 2, atkmin = 10, atkmax = 25, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Seaking"] = {attackname = "Horn Attack", level = 45, storage = 1904, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Staryu"] = {attackname = "Swift", level = 15, storage = 1925, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 7, type = COMBAT_PHYSICALDAMAGE}, ["Starmie"] = {attackname = "Swift", level = 35, storage = 1925, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 7, type = COMBAT_PHYSICALDAMAGE}, ["Mr.Mime"] = {attackname = "Doubleslap", level = 60, storage = 1908, cd = 2, atkmin = 90, atkmax = 160, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Scyther"] = {attackname = "Quick Attack", level = 80, storage = 1900, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Jynx"] = {attackname = "Lovely Kiss", level = 80, storage = 1926, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Electabuzz"] = {attackname = "Quick Attack", level = 80, storage = 1900, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Magmar"] = {attackname = "Scratch", level = 80, storage = 1901, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Pinsir"] = {attackname = "Scratch", level = 45, storage = 1901, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Tauros"] = {attackname = "Headbutt", level = 45, storage = 1902, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Magikarp"] = {attackname = "Splash", level = 5, storage = 1927, cd = 2, atkmin = 5, atkmax = 15, range = 1, typeattack = "intarget", effecta = 53, type = COMBAT_PHYSICALDAMAGE}, ["Gyarados"] = {attackname = "Roar", level = 85, storage = 1914, cd = 2, atkmin = 160, atkmax = 215, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Lapras"] = {attackname = "Horn Attack", level = 80, storage = 1904, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Eevee"] = {attackname = "Sand Attack", level = 20, storage = 1907, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Vaporeon"] = {attackname = "Quick Attack", level = 55, storage = 1900, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Jolteon"] = {attackname = "Quick Attack", level = 55, storage = 1900, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Flareon"] = {attackname = "Quick Attack", level = 55, storage = 1900, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Porygon"] = {attackname = "Super Sonic", level = 40, storage = 1909, cd = 2, atkmin = 70, atkmax = 130, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Omanyte"] = {attackname = "Bite", level = 20, storage = 1905, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Omastar"] = {attackname = "Bite", level = 80, storage = 1905, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Kabuto"] = {attackname = "Scratch", level = 20, storage = 1901, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Kabutops"] = {attackname = "Scratch", level = 80, storage = 1901, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Snorlax"] = {attackname = "Scratch", level = 80, storage = 1901, cd = 2, atkmin = 160, atkmax = 210, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Dratini"] = {attackname = "Aqua Tail", level = 20, storage = 1920, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Dragonair"] = {attackname = "Headbutt", level = 60, storage = 1902, cd = 2, atkmin = 100, atkmax = 150, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Dragonite"] = {attackname = "Headbutt", level = 100, storage = 1902, cd = 2, atkmin = 170, atkmax = 220, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Rhydon"] = {attackname = "Iron Tail", level = 30, storage = 1929, cd = 2, atkmin = 60, atkmax = 80, range = 1, typeattack = "intarget", effecta = 160, type = COMBAT_PHYSICALDAMAGE}, ["Rhydon"] = {attackname = "Iron Tail", level = 75, storage = 1929, cd = 2, atkmin = 150, atkmax = 200, range = 1, typeattack = "intarget", effecta = 160, type = COMBAT_PHYSICALDAMAGE}, } function onSay(cid, words, param, target) if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "You do not have any pokemon.") end if getPlayerStorageValue(cid, 102032) == 1 then doPlayerSendCancel(cid, "Your pokemon is exhausted.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end for i,x in pairs(pokes) do local storage = x.storage local cd = x.cd if getCreatureSummons(cid) ~= 0 then if not getTilePzInfo(getPlayerPosition(cid)) then if getCreatureName(getCreatureSummons(cid)[1]) == i then if getCreatureTarget(cid) ~= 0 then if not isSummon(getCreatureTarget(cid)) or not isPlayer(getCreatureTarget(cid)) then if getPlayerLevel(cid) >= x.level then if os.time()-getPlayerStorageValue(cid, storage) <= cd then minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage))) return doPlayerSendTextMessage(cid, 26, "You need to wait ".. seconds .. " seconds to use " ..x.attackname..".") end if x.typeattack == "distance" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then doSendDistanceShoot(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid)), x.effectd) doSendMagicEffect(getCreaturePosition(getCreatureTarget(cid)), x.effecta) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) doCreatureSay(cid, ""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end if x.typeattack == "area" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then doSendMagicEffectInArea(getCreaturePosition(getCreatureSummons(cid)[1]),x.effecta,x.arr) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) doCreatureSay(cid,""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end if x.typeattack == "direcion" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 0, 1),x.effectdir0) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 1, 1),x.effectdir1) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 2, 1),x.effectdir2) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 3, 1),x.effectdir3) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) end else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end if x.typeattack == "intarget" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then doSendMagicEffect(getCreaturePosition(getCreatureTarget(cid)), x.effecta) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) doCreatureSay(cid, ""..i..", "..x.attackname..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end else doPlayerSendTextMessage(cid, 27, "You need level "..x.level.." to use " ..x.attackname..".") doSendMagicEffect(getCreaturePosition(cid), 2) return true end else doPlayerSendCancel(cid, "Invalid Target.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end else doPlayerSendCancel(cid, "Target not is avalied.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end end else doPlayerSendCancel(cid, "Do not Attack in Protection Zone.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end else doPlayerSendCancel(cid, "You need pokemon to use attacks.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end end return true end M2 function Poison(cid) -- by miih local arrpoison = { {0, 0, 0}, {0, 1, 0}, {0, 0, 0}, } for i = 1, 6 do addEvent(doSendMagicEffect, i*1000, getCreaturePosition(getCreatureTarget(cid)), 8) addEvent(doAreaCombatHealth, i*1000, getCreatureSummons(cid)[1], COMBAT_EARTHDAMAGE, getCreaturePosition(getCreatureTarget(cid)), arrpoison, -10, -15, 8) end return true end function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function doSendMagicEffectInArea(pos,effect,area,cid) -- Function by mock local centro = {} centro.y = math.floor(table.getn(area)/2)+1 for y = 1, table.getn(area) do for x = 1, table.getn(area[y]) do if area[y][x] > 0 then centro.x = math.floor(table.getn(area[y])/2)+1 if type(effect) == 'table' then doSendMagicEffect({x=pos.x+x-centro.x,y=pos.y+y-centro.y,z= pos.z},(effect[area[y][x]] or 0),cid) else doSendMagicEffect({x=pos.x+x-centro.x,y=pos.y+y-centro.y,z= pos.z},effect or 0,cid) end end end end return true end function getTime(s) -- by : Mkalo. local n = math.floor(s / 60) s = s - (60 * n) return n, s end -- AREAS -- local arr1 = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 0, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, } -- M1 System, by: XotserX. -- local pokes = { ["Bulbasaur"] = {attackname = "Razor Leaf", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 79, type = COMBAT_PHYSICALDAMAGE}, ["Ivysaur"] = {attackname = "Razor Leaf ", level = 40, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 79, type = COMBAT_PHYSICALDAMAGE}, ["Venusaur"] = {attackname = "Razor Leaf ", level = 85, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 79, type = COMBAT_PHYSICALDAMAGE}, ["Charmander"] = {attackname = "Ember", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 35, type = COMBAT_PHYSICALDAMAGE}, ["Charmeleon"] = {attackname = "Ember", level = 40, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 35, type = COMBAT_PHYSICALDAMAGE}, ["Charizard"] = {attackname = "Ember", level = 85, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 35, type = COMBAT_PHYSICALDAMAGE}, ["Squirtle"] = {attackname = "Bubbles", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Wartortle"] = {attackname = "Bubbles", level = 40, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Blastoise"] = {attackname = "Bubbles", level = 85, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Caterpie"] = {attackname = "String Shot", level = 1, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = "intarget", effecta = 137, type = COMBAT_PHYSICALDAMAGE}, ["Metapod"] = {attackname = "Headbutt", level = 15, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Butterfree"] = {attackname = "Super Sonic", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Weedle"] = {attackname = "String Shot ", level = 1, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = "intarget", effecta = 137, type = COMBAT_PHYSICALDAMAGE}, ["Kakuna"] = {attackname = "Headbutt", level = 15, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Beedrill"] = {attackname = "Poison Sting ", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Pidgey"] = {attackname = "Sand Attack", level = 1, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = " direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Pidgeotto"] = {attackname = "Sand Attack ", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = " direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Pidgeot"] = {attackname = "Sand Attack ", level = 65, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = " direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Rattata"] = {attackname = "Bite", level = 1, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Raticate"] = {attackname = "Bite", level = 25, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Spearow"] = {attackname = "Sand Attack", level = 1, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Fearow"] = {attackname = "Sand Attack", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "direcion", effectdir0 = 122, effectdir1 = 121, effectdir2 = 120, effectdir3 = 119, type = COMBAT_PHYSICALDAMAGE}, ["Ekans"] = {attackname = "Poison Fang", level = 17, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Arbok"] = {attackname = "Poison Fang", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Pikachu"] = {attackname = "Thunder", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "area", arr = arr1, effecta = 48, type = COMBAT_PHYSICALDAMAGE}, ["Raichu"] = {attackname = "Thunder", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "area", arr = arr1, effecta = 48, type = COMBAT_PHYSICALDAMAGE}, ["Sandshrew"] = {attackname = "Mud Shot", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = " intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Sandslash"] = {attackname = "Mud Shot", level = 55, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = " intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Nidoranfe"] = {attackname = "Bite", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Nidorina"] = {attackname = "Bite", level = 30, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Nidoqueen"] = {attackname = "Bite", level = 65, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Nidoranma"] = {attackname = "Bite", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Nidorino"] = {attackname = "Bite", level = 30, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Nidoking"] = {attackname = "Bite", level = 65, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Clefairy"] = {attackname = "Lovely Kiss", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Clefable"] = {attackname = "Lovely Kiss", level = 45, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Vulpix"] = {attackname = "Iron Tail", level = 15, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 160, type = COMBAT_PHYSICALDAMAGE}, ["Ninetales"] = {attackname = "Iron Tail", level = 70, storage = 2000, cd = 2, atkmin = 230, atkmax = 270, range = 1, typeattack = "intarget", effecta = 160, type = COMBAT_PHYSICALDAMAGE}, ["Jigglypuff"] = {attackname = "Lovely Kiss", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Wigglytuff"] = {attackname = "Lovely Kiss", level = 45, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Zubat"] = {attackname = "Bite", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Golbat"] = {attackname = "Bite", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Gloom"] = {attackname = "Acid", level = 25, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Vileplume"] = {attackname = "Acid", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Paras"] = {attackname = "Poison Sting", level = 5, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Parasect"] = {attackname = "Poison Sting", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Venonat"] = {attackname = "Super Sonic", level = 5, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Venomoth"] = {attackname = "Super Sonic", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Diglett"] = {attackname = "Slash", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = " intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Dugtrio"] = {attackname = "Sand Attack", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = " intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Meowth"] = {attackname = " Scratch", level = 15, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Persian"] = {attackname = "Scratch", level = 30, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 142, type = COMBAT_PHYSICALDAMAGE}, ["Psyduck"] = {attackname = "Aqua Tail", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Golduck"] = {attackname = "Water Gun", level = 55, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Mankey"] = {attackname = "Triple Kick", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Primeape"] = {attackname = "Triple Kick", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 110, type = COMBAT_PHYSICALDAMAGE}, ["Growlithe"] = {attackname = "Bite", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Arcanine"] = {attackname = "Bite", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Poliwag"] = {attackname = "Bubbles", level = 5, storage = 2000, cd = 2, atkmin = 70, atkmax = 90, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Poliwhirl"] = {attackname = "Doubleslap", level = 25, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Poliwrath"] = {attackname = "Doubleslap", level = 65, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Kadabra"] = {attackname = " Confusion", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "area", arr = arr1, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Alakazam"] = {attackname = " Confusion", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "area", arr = arr1, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Machop"] = {attackname = "Mega Punch", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 112, type = COMBAT_PHYSICALDAMAGE}, ["Machoke"] = {attackname = "Mega Punch", level = 47, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 112, type = COMBAT_PHYSICALDAMAGE}, ["Machamp"] = {attackname = "Mega Punch", level = 70, storage = 2000, cd = 2, atkmin = 230, atkmax = 270, range = 1, typeattack = "intarget", effecta = 112, type = COMBAT_PHYSICALDAMAGE}, ["Bellsprout"] = {attackname = "Vine Whip", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "direcion", effectdir0 = 80, effectdir1 = 83, effectdir2 = 81, effectdir3 = 82, type = COMBAT_PHYSICALDAMAGE}, ["Weepinbell"] = {attackname = "Vine Whip", level = 25, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "direcion", effectdir0 = 80, effectdir1 = 83, effectdir2 = 81, effectdir3 = 82, type = COMBAT_PHYSICALDAMAGE}, ["Victreebel"] = {attackname = "Vine Whip", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "direcion", effectdir0 = 80, effectdir1 = 83, effectdir2 = 81, effectdir3 = 82, type = COMBAT_PHYSICALDAMAGE}, ["Tentacool"] = {attackname = "Bubbles", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Tentacruel"] = {attackname = "Mud Shot", level = 75, storage = 2000, cd = 2, atkmin = 230, atkmax = 270, range = 1, typeattack = "intarget", effecta = 116, type = COMBAT_PHYSICALDAMAGE}, ["Geodude"] = {attackname = "Rock Throw", level = 15, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "area", arr = arr1, effecta = 44, type = COMBAT_PHYSICALDAMAGE}, ["Graveler"] = {attackname = "Rock Throw", level = 40, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "area", arr = arr1, effecta = 44, type = COMBAT_PHYSICALDAMAGE}, ["Golem"] = {attackname = "Rock Throw", level = 70, storage = 2000, cd = 2, atkmin = 230, atkmax = 270, range = 1, typeattack = "area", arr = arr1, effecta = 44, type = COMBAT_PHYSICALDAMAGE}, ["Ponyta"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Rapidash"] = {attackname = "Quick Attack", level = 55, storage = 2000, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Slowpoke"] = {attackname = "Aqua Tail", level = 20, storage = 2000, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Slowbro"] = {attackname = "Aqua Tail", level = 45, storage = 2000, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Magnemite"] = {attackname = "Thunder Shock", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "area", arr = arr1, effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Magneton"] = {attackname = "Thunder Shock", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "area", arr = arr1, effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Farfetch'd"] = {attackname = "Drill Peck", level = 40, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Doduo"] = {attackname = "Quick Attack", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = " intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Dodrio"] = {attackname = "Quick Attack", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = " intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Seel"] = {attackname = "Aqua Tail", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Dewgong"] = {attackname = "Headbutt", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Grimer"] = {attackname = "Acid", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Muk"] = {attackname = "Acid", level = 35, storage = 2000, cd = 2, atkmin = 130, atkmax = 160, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Shellder"] = {attackname = "Super Sonic", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Cloyster"] = {attackname = "Super Sonic", level = 60, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 22, type = COMBAT_PHYSICALDAMAGE}, ["Gastly"] = {attackname = "Shadow Ball", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 140, type = COMBAT_PHYSICALDAMAGE}, ["Haunter"] = {attackname = "Shadow Ball", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 140, type = COMBAT_PHYSICALDAMAGE}, ["Gengar"] = {attackname = "Shadow Ball", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 140, type = COMBAT_PHYSICALDAMAGE}, ["Onix"] = {attackname = "Iron Tail", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 160, type = COMBAT_PHYSICALDAMAGE}, ["Drowzee"] = {attackname = "Psybeam", level = 25, storage = 2000, cd = 2, atkmin = 30, atkmax = 60, range = 1, typeattack = " direcion", effectdir0 = 108, effectdir1 = 109, effectdir2 = 108, effectdir3 = 106, effectdir4 = 107, effectdir5 = 106, effectdir6 = 108, effectdir7 = 109, effectdir8 = 108, effectdir9 = 107, effectdir10 = 106, effectdir11 = 107, type = COMBAT_PHYSICALDAMAGE}, ["Hypno"] = {attackname = "Psybeam", level = 55, storage = 2000, cd = 2, atkmin = 90, atkmax = 140, range = 1, typeattack = " direcion", effectdir0 = 108, effectdir1 = 109, effectdir2 = 108, effectdir3 = 106, effectdir4 = 107, effectdir5 = 106, effectdir6 = 108, effectdir7 = 109, effectdir8 = 108, effectdir9 = 107, effectdir10 = 106, effectdir11 = 107, type = COMBAT_PHYSICALDAMAGE}, ["Krabby"] = {attackname = "Bubblebeam", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 25, type = COMBAT_PHYSICALDAMAGE}, ["Kingler"] = {attackname = "Bubblebeam", level = 40, storage = 2000, cd = 2, atkmin = 150, atkmax = 160, range = 1, typeattack = "intarget", effecta = 25, type = COMBAT_PHYSICALDAMAGE}, ["Voltorb"] = {attackname = "Spark", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Electrode"] = {attackname = "Spark", level = 35, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 207, type = COMBAT_PHYSICALDAMAGE}, ["Exeggcute"] = {attackname = "Confusion", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "area", arr = arr1, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Exeggutor"] = {attackname = "Confusion", level = 55, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "area", arr = arr1, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Cubone"] = {attackname = "Bonemerang", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "area", arr = arr2, effecta = 212, type = COMBAT_PHYSICALDAMAGE}, ["Marowak"] = {attackname = "Bonemerang", level = 55, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "area", arr = arr2, effecta = 212, type = COMBAT_PHYSICALDAMAGE}, ["Hitmonlee"] = {attackname = "Mega Punch", level = 60, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 112, type = COMBAT_PHYSICALDAMAGE}, ["Hitmonchan"] = {attackname = "Mega Punch", level = 60, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 112, type = COMBAT_PHYSICALDAMAGE}, ["Lickitung"] = {attackname = "Headbutt", level = 55, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Koffing"] = {attackname = "Acid", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Weezing"] = {attackname = "Acid", level = 35, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 20, type = COMBAT_PHYSICALDAMAGE}, ["Chansey"] = {attackname = "Great Love", level = 60, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "area", arr = arr1, effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Tangela"] = {attackname = "Absorb", level = 50, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "direcion", effectdir0 = 80, effectdir1 = 83, effectdir2 = 81, effectdir3 = 82, type = COMBAT_PHYSICALDAMAGE}, ["Kangaskhan"] = {attackname = "Headbutt", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 118, type = COMBAT_PHYSICALDAMAGE}, ["Horsea"] = {attackname = "Bubbles", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Seadra"] = {attackname = "Bubbles", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Goldeen"] = {attackname = "Poison Sting", level = 10, storage = 2000, cd = 2, atkmin = 90, atkmax = 100, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Seaking"] = {attackname = "Poison Sting", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Staryu"] = {attackname = "Slash", level = 15, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Starmie"] = {attackname = "Slash", level = 35, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Mr.Mime"] = {attackname = "Psychic", level = 60, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 134, type = COMBAT_PHYSICALDAMAGE}, ["Scyther"] = {attackname = "Slash", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Jynx"] = {attackname = "Doubleslap", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 148, type = COMBAT_PHYSICALDAMAGE}, ["Electabuzz"] = {attackname = "Thunder Punch", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "area", arr = arr1, effecta = 48, type = COMBAT_PHYSICALDAMAGE}, ["Magmar"] = {attackname = "Fire Punch", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 5, type = COMBAT_PHYSICALDAMAGE}, ["Pinsir"] = {attackname = "Slash", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 159, type = COMBAT_PHYSICALDAMAGE}, ["Tauros"] = {attackname = "Quick Attack", level = 45, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Gyarados"] = {attackname = "Bite", level = 85, storage = 2000, cd = 2, atkmin = 275, atkmax = 325, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Lapras"] = {attackname = "Ice Beam", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "area", arr = arr1, effecta = 147, type = COMBAT_PHYSICALDAMAGE}, ["Eevee"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = " intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}, ["Vaporeon"] = {attackname = "Bite", level = 55, storage = 2000, cd = 2, atkmin = 170, atkmax = 210, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Jolteon"] = {attackname = "Bite", level = 55, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Flareon"] = {attackname = "Bite", level = 55, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Porygon"] = {attackname = "Psybeam", level = 40, storage = 2000, cd = 2, atkmin = 150, atkmax = 170, range = 1, typeattack = "area", arr = arr1, effecta = 136, type = COMBAT_PHYSICALDAMAGE}, ["Omanyte"] = {attackname = " Rock Throw", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = " area", arr = arr1, effecta = 34, type = COMBAT_PHYSICALDAMAGE}, ["Omastar"] = {attackname = " Rock Throw", level = 80, storage = 2000, cd = 2, atkmin = 230, atkmax = 270, range = 1, typeattack = "area", arr = arr1, effecta = 34, type = COMBAT_PHYSICALDAMAGE}, ["Kabuto"] = {attackname = "Bubbles", level = 20, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Kabutops"] = {attackname = "Bubbles", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 68, type = COMBAT_PHYSICALDAMAGE}, ["Snorlax"] = {attackname = "Bite", level = 80, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 138, type = COMBAT_PHYSICALDAMAGE}, ["Dratini"] = {attackname = "Thunder Wave", level = 20, storage = 2000, cd = 2, atkmin = 100, atkmax = 130, range = 1, typeattack = " area", arr = arr1, effecta = 48, type = COMBAT_PHYSICALDAMAGE}, ["Dragonair"] = {attackname = "Aqua Tail", level = 60, storage = 2000, cd = 2, atkmin = 210, atkmax = 230, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Dragonite"] = {attackname = "Aqua Tail", level = 100, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 1, type = COMBAT_PHYSICALDAMAGE}, ["Rhydon"] = {attackname = "Horn Attack", level = 30, storage = 2000, cd = 2, atkmin = 130, atkmax = 150, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, ["Rhydon"] = {attackname = "Horn Attack", level = 75, storage = 2000, cd = 2, atkmin = 270, atkmax = 310, range = 1, typeattack = "intarget", effecta = 9, type = COMBAT_PHYSICALDAMAGE}, } function onSay(cid, words, param, target) if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "You do not have any pokemon.") end if getPlayerStorageValue(cid, 102032) == 1 then doPlayerSendCancel(cid, "Your pokemon is exhausted.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end for j,x in pairs(pokes) do local storage = x.storage local cd = math.ceil(x.cd/2) if getCreatureSummons(cid) ~= 0 then if not getTilePzInfo(getPlayerPosition(cid)) then if getCreatureName(getCreatureSummons(cid)[1]) == j then if getCreatureTarget(cid) ~= 0 then if not isSummon(getCreatureTarget(cid)) or not isPlayer(getCreatureTarget(cid)) then if getPlayerLevel(cid) >= x.level then if os.time()-getPlayerStorageValue(cid, storage) <= cd then minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage))) return doPlayerSendTextMessage(cid, 26, "You need to wait ".. seconds .. " seconds to use " ..x.attackname..".") end if x.typeattack == "distance" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then doSendDistanceShoot(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid)), x.effectd) doSendMagicEffect(getCreaturePosition(getCreatureTarget(cid)), x.effecta) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) doCreatureSay(cid, ""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) if x.poison == true then Poison(cid) end else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end if x.typeattack == "area" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then doSendMagicEffectInArea(getCreaturePosition(getCreatureSummons(cid)[1]),x.effecta,x.arr) if x.poison == "yes" then Poison(cid) end doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) doCreatureSay(cid,""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end if x.typeattack == "direcion" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then if x.poison == true then Poison(cid) end if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 0, 1),x.effectdir0) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 1, 1),x.effectdir1) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 2, 1),x.effectdir2) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 3, 1),x.effectdir3) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) setPlayerStorageValue(cid, storage, os.time()+cd) doCreatureSay(cid,""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) end else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end if x.typeattack == "intarget" then if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then if x.poison == true then Poison(cid) end doSendMagicEffect(getCreaturePosition(getCreatureTarget(cid)), x.effecta) doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)), x.effecta) doCreatureSay(cid, ""..j..", "..x.attackname..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, 102032, 1) addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1) else doPlayerSendCancel(cid, "Target is far away.") doSendMagicEffect(getCreaturePosition(cid), 2) end return true end else doPlayerSendTextMessage(cid, 27, "You need level "..x.level.." to use " ..x.attackname..".") doSendMagicEffect(getCreaturePosition(cid), 2) return true end else doPlayerSendCancel(cid, "Invalid Target.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end else doPlayerSendCancel(cid, "Target not is avalied.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end end else doPlayerSendCancel(cid, "Do not Attack in Protection Zone.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end else doPlayerSendCancel(cid, "You need pokemon to use attacks.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end end return true end Ainda nao consegui editar as magias em area pois o script é um pouco complicado mas to tentando, quando conseguir eu posto aqui. O tutorial de edição esta nesse topico:[Talkaction]System M1 Pronto pessoal, é uma ajudinha pra vocês ai, devidos creditos a:XotservX por ter liberado o script, Mock , pela função doSendMagicEffectInArea MatheusMkalo pela função getTime(s).Dá um REP + AI PESSoAL!! MEU PRIMEIRO TOPICO Até mais.
    1 ponto
  25. Marrxelo

    [8.54]Pokeserver Tfs 0.3.6 [V3.0]

    thalia aqui nao tem mapa fica em um lugar preso e os slot tao todos bugado pq ?... Ajuda ai ja te dei REP+
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...