Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/09/11 em todas áreas
-
[Talkaction]Sistema M1 até M6 + Tutorial de Edições. Créditos: Apocarai PeeWee Olá, antes eu já havia postado o sistema até m3, agora venho traze-lo até m6. Do m4 até m6 decidir fazer diferente, dessa vez quem irá colocar as magias , combat e level necessário será vocês. Estou fazendo isso para que vocês entendam melhor o comando, e caso precisarem editar que não precisem e ajuda. No final do Tópico estará os tutoriais. M1 M2 M3 ----//----//----//----//----//----//----//----//----//----//----//----//----//---- M4 M5 M6 Tags Obs. QUANDO SALVAR OS COMANDOS COLOQUE O NOME DE SistemaM... [Nos pontos bote numero da magia. Tutorial Como Adicionar Magia , Combat e Level. Como adicionar novos M. Na parte após os pokemon adicionados com suas magias procure essas partes das linhas. Tempo das Magias Logo abaixo após as linhas que citei acima , se tem o tempo usado das magias. Bom é isso, caso falei alguma besteira me falem que irei arrumar, qualquer duvida me adicione no msn ou poste no tópico. Não esqueça do REP +2 pontos
-
Nome: Advanced Auction House v1.0 Autor: josejunior23 Server testado: Real Server 8.60 Como funciona? A ideia é do WoW(World of Warcraft), o Auction-House, que você poe lá items, e espera que outro jogador o compre caso ninguém compre, ele será removido apos X dias. Comandos: Informações: - Os items são guardado em um ficheiro .txt e não em uma database. - os items ficam guardados assim: 01/01/11 3031 2000 10 2 data, item, preço, quantidade, guid do player 1º - cria um ficheiro XML na pasta mods chamado ADVANCED-AUCTION-HOUSE, e poe isso dentro: 2º - crie um ficheiro .LUA na pasta mods/scripts chamado AAH e poe isso dentro: 3º - cria um ficheiro .txt na pasta do seu server(onde fica o .exe), chamado houseItems, que ficara -> houseItems.txt Algumas imagens do sistema: Anexos Download: Anexos.zip Anexos.zip1 ponto
-
(Oficial) The Forgotten Server V0.2.10 - M. Spirit!
OForasteiro reagiu a luan12 por um tópico no fórum
(Oficial - SQL) The Forgotten Server v0.2.10 - M. Spirit! Esta é uma versão do The Forgotten Server atualizada para o cliente do Tibia 8.70 e Tibia 8.71, com os novos sistemas (sistema de montaria, magias, entre outros), lembrando que ainda não está totalmente completo, em breve terá mais atualizações. ( Informações ) Atualização Versão 0.2.10: Esta versão é para fixar os bugs mais críticos relatados em 0.2.9, e um número de outras questões que foram encontradas. Ele também vem com otimizações para o código de eventos globais, principalmente na prevenção de eventos globais terem impactos no desempenho do seu servidor. Este é, portanto, essencialmente uma versão para correção de bugs. Desejamos apresentar mais recursos e novos trabalhos a versão 0.3! ChangeLog: Screenshot: DLLs: (Necessário para rodar o servidor). -> http://download294.mediafire.com/72p6126345jg/2ao9klbmehkb3f8/TFS+DLLs+-+XTibia.com.7z Código Source: Subversion client: svn://svn.otland.net/public/forgottenserver/tags/0.2.10/ Browse: http://otland.net/subversion.php?svn=public&file=listing.php&repname=forgottenserver&path=/tags/0.2.10/ Download dos Distros: Download Completo (Distros + DLLs): Créditos: Desenvolvedores do TFS - (Talaturen - OTland) - - - - - - - - - - - - - - - - - - - - - - - - - É isso, té. (+REP)1 ponto -
The Brazilian Server Este servidor é 100% baseado no OpenTibia SVN, ou sejá, este server não possui uma versão SQLite, este server não possui Accout Manager, ou seja... este server é apenas pra quem sabe mexer com xampp e website. Eu disponibilizarei aqui um Nicaw Website compativel com este servidor. Imagens http://img23.imageshack.us/gal.php?g=86807852.jpg [ CHANGELOG Project Name The Brazilian Server Version 0.1.4 License GNU GPLv2 ] [ Legenda A = Adicionado M = Modificado D = Deletado C = Corrigido ] [ v0.1.4 [ Updates M = Brazilian.exe M = data/global.lua M = data/talkactions/scrupts/reload.lua M = Arquivo de configuração (config.lua) M = data/npc/scripts/promotion.lua M = pasta game_classes M = data/npc/scripts/promotion.lua ] [ Charges A = Compatibilidade com script da quest Demon Oak (Tryller) A = Novas funções lua - doPlayerSetStorageValue(cid, key[, value]) e doCreateMonster(name, pos[, displayError = true]) (Tryller, TFS) M = alguns scripts (Tryller) M = Pasta "game_classes" foi renomeada para "classes" (Tryller) C = Erro em Global Save (Tryller) C = AutoSave de emergência (Tryller) C = Bug do NPC de promotion (Tryller) C = Npc da promotion (Tryller) ] ] [ v0.1.3 [ Updates Brazilian.exe data/global.lua data/XML/mounts.xml config.lua data/XML/motd.xml data/actions/scripts/liquids data/actions/actions/scripts/others/furniture_beds.lua data/npc/seller.xml, data/npc/perac.xml e data/npc/obi.xml data/talkactions/lib/talkactions.lua data/talkactions/scripts/createitembyname.lua ] [ Charges Adicionados mais NPC's Adicionado novas funções lua - getCreatureCondition(cid, conditionType, <optional: default: 0> subId, <optional: default: CONDITIONID_DEFAULT> conditionId) e getCreatureConditionInfo(cid, conditionType, <optional: default: 0> subId, <optional: default: CONDITIONID_DEFAULT> conditionId) (OpenTibia SVN) Adicionado attackSpeed para mounts (Tryller) Adicionado novo sistema de MOTD (Tryller, TFS) Corrigido monsterSpawnBack (OpenTibia SVN, Tryller) Corrigido reloads para outfits e mounts (OpenTibia SVN, Tryller) Corrigido exhausted bug (OpenTibia SVN, Tryller) Corrigido feetDamate e allowChangeOutfit (Tryller) Atualizações OpenTibia (OpenTibia SVN, Tryller) ] ] [ v0.1.2 Adicionado sistema de clean (Tryller) Adicionado spells.xml configurado com cooldown (Erimyth) Adicionado novos reloads, stages, vocations, quest, all (Tryller) Adicionado items 8.70 (OTB) (OpenTibia SVN) Adicionado comando /B (Tryller) Adicionado AOL (Tryller) Adicionado comando /skill (Tryller) Adicionado showMonstersHealing no config.lua (Tryller) Adicionado comando /newtype (Tryller) Adicionada novas funções lua doPlayerSetExtraAttackSpeed(cid, speed) - doPlayerFollowCreature(cid, target) - doPlayerSetAttackedCreature(cid, target) (Tryller) Adicionado novas configs para BLACK_SKULL, blackSkulledDeathHealth e blackSkulledDeathMana (Tryller, The Forgotten Server) Console mostrando quem entra e sai do server (Tryller) Corrigido problema de debug quando player morria (Tryller) Corrigido comando !serverinfo (Tryller) Corrigido erro em quests (Tryller) Removido Rule violation Window (Tryller, Erimyth) Atualizações OpenTibia (OpenTibia SVN, Tryller) ] [ v0.1.1 Protocolo 8.70 (OpenTibia SVN, Tryller) Adicionado comando para banir players (OpenTibia SVN) Cooldown 100% , porém não disponibilizei o spells.xml configurado (OpenTibia SVN, Tryller) Adicionada database do website (Tryller) Novo configuração para wands e rods no config.lua - wandsAndRodsInterruptSwing (OpenTibia SVN) Sistema de montaria (mount system) (OpenTibia SVN, Tryller) Spawns igual Tibia RL, configuravel no config.lua - monsterSpawnWalkBack (OpenTibia SVN, Tryller) Atualizado para a ultima revisão da OpenTibia SVN (Tryller) Soulfire spell suporte (OpenTibia SVN) Players não precisam mais ter item requerido nas mãos para conjurar (OpenTibia SVN, Tryller) Corrigidos alguns erros (Tryller) Corrigido erros no website (LucasBrahma, Tryller) ] [ v0.1.0 AutoSave nas sources configuravel no config.lua (Tryller) Configuravel sistema de cap no config.lua (Tryller) Optional pvp feature (OpenTibia SVN) Comando /invisible (OpenTibia SVN) Suporte para 8.62 (OpenTibia SVN) Suporte para items 8.62 Estabilidade perfeita (OpenTibia SVN) Muitos monstros adicionados (OpenTibia SVN) Exemplos de NPC's (OpenTibia SVN, Tryller) Sistema de compra e venda de casas (OpenTibia SVN) Suporte para waypoints (OpenTibia SVN) Sistema de Party (OpenTibia SVN) Sistema de camas (OpenTibia SVN) config.lua aceitando booleans "yes"/"no", true/false and 1/0 (OpenTibia SVN) Skull system configuravel no config.lua (OpenTibia SVN) XML files em data/XML (Tryller) Organizada pasta actions (Tryller) Server com suporte apenas para mapas OTBM (Tryller) Corrigido pequenos bugs (Tryller) Adicionado novos comandos - /pvp and /mc (Tryller) Adicionado sistema de stages (Tryller) Adicionado script para quests baseadas em uniquId (Tryller) Adicionado mapa Evolutions (Tryller) Adicionado basespeed em vocations.xml (Tryller) Numero maximos de summons configuravel no config,lua (Tryller) Server save igual Tibia global (Tryller, TFS) Adicionado 2 novos tipos de creatureevents - onThink(cid, interval), onAttack(cid, target) (Tryller) ] Download do Server http://www.speedyshare.com/files/26465402/thebrazilianserver_0.1.4.rar <-- 8.70 v0.1.4 http://www.4shared.com/file/9jCsEcRG/Brazilian_Installer_013.html <-- 8.70 v0.1.3 http://www.speedyshare.com/files/26049510/BrazilianInstaller.exe <-- 8.70 v0.1.2 http://www.speedyshare.com/files/25894175/BrazilianInstaller.exe <-- 870 v0.1.1 http://www.speedyshare.com/files/25853769/BrazilianInstaller.exe <--862 v0.1.0 Source Code - Rev 115 http://thebrazilianser.svn.sourceforge.net/viewvc/thebrazilianser/otserv/tags/ Download do Website http://thebrazilianser.svn.sourceforge.net/viewvc/thebrazilianser/website/ link alternativo: http://www.speedyshare.com/files/26587084/site.rar1 ponto
-
[Talkaction]System Moves [15/151]
SamueLGuedes reagiu a meubk por um tópico no fórum
Moves System Pokemon O meu script de moves, foi atualizado, por enquanto está com esses pokemons, eu estárei adicionando os 151, aos pouco não tenha pressa e acompanhe todos dias avera atualização. Novidades : Crie um arquivo com nome de moves.lua e cole o new script : function getTime(s) local n = math.floor(s / 600) s = s - (600 * n) return n, s end function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) local creaturesList = {} for x = -radiusx, radiusx do for y = -radiusy, radiusy do if not (x == 0 and y == 0) then creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) if (creature.type == 1 and showPlayers == 1) or (creature.type == 2 and showMonsters == 1) then table.insert(creaturesList, creature.uid) end end end end return creaturesList end -- CONDITIONS function Confused(inconfuse, rounds) if rounds == 0 then return false end if not inconfuse then return false end local c = {[1] = {x = 1, y = 0}, [2] = {x = 0, y = 1}, [3] = {x = -1, y = 0}, [4] = {x = 0, y = -1}} local p = getCreaturePosition(inconfuse) doSendMagicEffect(p, 31) local s = math.random(4) doTeleportThing(inconfuse, {x = p.x + c[s].x, y = p.y + c[s].y, z = p.z}) return addEvent(Confused, 400, inconfuse, rounds-1) end local paralize = createConditionObject(CONDITION_PARALYZE) setConditionParam(paralize, CONDITION_PARAM_TICKS, 5*1000) setConditionFormula(paralize, -0.7, 0, -0.8, 0) function Paralize(inparalize) doSendAnimatedText(getCreaturePosition(inparalize), "PAZ", 210) doAddCondition(inparalize , paralize) return true end local sleep = createConditionObject(CONDITION_PARALYZE) setConditionParam(sleep, CONDITION_PARAM_TICKS, 5*1000) setConditionFormula(sleep, -1.7, 0, -1.8, 0) function Sleep(insleep) doAddCondition(insleep , sleep) p = getCreaturePosition(insleep) doSendAnimatedText(p, "SLEEP", 154) for i = 1, 5 do if i == 1 then doSendMagicEffect(p, 32) else addEvent(doSendMagicEffect, i * 1000, p, 32) end end return true end function Poison(inpoison, ef, rounds) if rounds == 0 then return false end if not inpoison then return false end local p = getCreaturePosition(inpoison) doAreaCombatHealth(pet, COMBAT_EARTHDAMAGE, p, 0, -5, -10, ef) return addEvent(Poison, 800, inpoison, ef, rounds-1) end -- END CONDITIONS function getPosToStorm(posdecay) b = {x = posdecay.x-20, y = posdecay.y-20, z = posdecay.z} return b end local area1 = createCombatArea{ {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } local area2 = createCombatArea{ {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 2, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } local area3 = createCombatArea{ {0, 0, 1, 0, 0}, {0, 1, 1, 1, 0}, {1, 1, 2, 1, 1}, {0, 1, 1, 1, 0}, {0, 0, 1, 0, 0} } local areadirecion1 = { [2] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 2, 0, 0} }, [3] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {2, 1, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, [0] = createCombatArea{ {0, 0, 2, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, [1] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 1, 2}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} } } local areadirecion2 = { [2] = createCombatArea{ {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 2, 0, 0} }, [3] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {2, 1, 1, 1, 1}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, [0] = createCombatArea{ {0, 0, 2, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0} }, [1] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {1, 1, 1, 1, 2}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} } } local areadirecion3 = { [2] = createCombatArea{ {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 2, 0, 0} }, [3] = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {2, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0} }, [0] = createCombatArea{ {0, 0, 2, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0} }, [1] = createCombatArea{ {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 2}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0} } } local areadirecion4 = { [2] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 2, 0, 0} }, [3] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {2, 1, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0} }, [0] = createCombatArea{ {0, 0, 2, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0} }, [1] = createCombatArea{ {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 1, 2}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0} } } local d = { ["Bulbasaur"] = { ["m1"] = {atk = "Quick Attack", minlvl = 20, st = 2000, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Razor Leaf", minlvl = 20, st = 2001, cd = 3, min = 100, max = 200, damage = COMBAT_EARTHDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Vine Whip", minlvl = 20, st = 2002, cd = 3, min = 100, max = 200, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Headbutt", minlvl = 20, st = 2003, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Leech Seed", minlvl = 20, st = 2004, cd = 3, min = 100, max = 200, damage = COMBAT_EARTHDAMAGE, target = true, pz = false}, ["m6"] = {atk = "Solar Beam", minlvl = 20, st = 2005, cd = 3, min = 200, max = 400, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Stun Spore", minlvl = 20, st = 2006, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m8"] = {atk = "Poison Powder", minlvl = 20, st = 2007, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m9"] = {atk = "Sleep Powder", minlvl = 20, st = 2008, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, }, ["Ivysaur"] = { ["m1"] = {atk = "Quick Attack", minlvl = 40, st = 2009, cd = 3, min = 300, max = 400, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Razor Leaf", minlvl = 40, st = 2010, cd = 3, min = 300, max = 400, damage = COMBAT_EARTHDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Vine Whip", minlvl = 40, st = 2011, cd = 3, min = 300, max = 440, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Headbutt", minlvl = 40, st = 2012, cd = 3, min = 300, max = 400, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Leech Seed", minlvl = 40, st = 2013, cd = 3, min =300, max = 400, damage = COMBAT_EARTHDAMAGE, target = true, pz = false}, ["m6"] = {atk = "Solar Beam", minlvl = 40, st = 2014, cd = 3, min = 300, max = 400, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Stun Spore", minlvl = 40, st = 2015, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m8"] = {atk = "Poison Powder", minlvl = 40, st = 2016, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m9"] = {atk = "Sleep Powder", minlvl = 20, st = 2017, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, }, ["Venusaur"] = { ["m1"] = {atk = "Quick Attack", minlvl = 80, st = 2018, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Razor Leaf", minlvl = 80, st = 2019, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Vine Whip", minlvl = 80, st = 2020, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Headbutt", minlvl = 80, st = 2021, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Leech Seed", minlvl = 80, st = 2022, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = true, pz = false}, ["m6"] = {atk = "Solar Beam", minlvl = 80, st = 2023, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Stun Spore", minlvl = 80, st = 2024, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m8"] = {atk = "Poison Powder", minlvl = 80, st = 2025, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m9"] = {atk = "Sleep Powder", minlvl = 20, st = 2026, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m10"] = {atk = "Leaf Storm", minlvl = 80, st = 2027, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, }, ["Charmander"] = { ["m1"] = {atk = "Scratch", minlvl = 20, st = 2028, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Ember", minlvl = 20, st = 2029, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m3"] = {atk = "Flamethrower", minlvl = 20, st = 2030, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Fire Ball", minlvl = 20, st = 2031, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Fire Blast", minlvl = 20, st = 2032, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Rage", minlvl = 20, st = 2033, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m7"] = {atk = "Fire Fang", minlvl = 20, st = 2034, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = true, pz = false}, }, ["Charmeleon"] = { ["m1"] = {atk = "Scratch", minlvl = 40, st = 2035, cd = 3, min = 300, max = 400, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Ember", minlvl = 40, st = 2036, cd = 3, min = 300, max = 400, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m3"] = {atk = "Flamethrower", minlvl = 40, st = 2037, cd = 3, min = 400, max = 500, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Fire Ball", minlvl = 40, st = 2038, cd = 3, min = 300, max =400, damage = COMBAT_FIREDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Fire Blast", minlvl = 40, st = 2039, cd = 3, min = 300, max = 400, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Rage", minlvl = 40, st = 2040, cd = 3, min = 100, max = 300, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m7"] = {atk = "Fire Fang", minlvl = 40, st = 2041, cd = 3, min = 400, max = 800, damage = COMBAT_FIREDAMAGE, target = true, pz = false}, }, ["Charizard"] = { ["m1"] = {atk = "Dragon Claw", minlvl = 80, st = 2042, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Ember", minlvl = 80, st = 2043, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m3"] = {atk = "Flamethrower", minlvl = 80, st = 2044, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Fire Ball", minlvl = 80, st = 2045, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Fire Blast", minlvl = 80, st = 2046, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Rage", minlvl = 80, st = 2047, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m7"] = {atk = "Magma Storm", minlvl = 80, st = 2048, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false}, ["m8"] = {atk = "Wing Attack", minlvl = 80, st = 2049, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false}, }, ["Squirtle"] = { ["m1"] = {atk = "Headbutt", minlvl = 20, st = 2050, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Bubbles", minlvl = 20, st = 2051, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Water Gun", minlvl = 20, st = 2052, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Waterball", minlvl = 20, st = 2053, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Aqua Tail", minlvl = 20, st = 2054, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Hydro Cannon", minlvl = 20, st = 2055, cd = 3, min = 200, max = 400, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Harden", minlvl = 20, st = 2056, cd = 60, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true}, ["m8"] = {atk = "Surf", minlvl = 20, st = 2057, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, }, ["Wartortle"] = { ["m1"] = {atk = "Headbutt", minlvl = 40, st = 2058, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Bubbles", minlvl = 40, st = 2059, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Water Gun", minlvl = 40, st = 2060, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Waterball", minlvl = 40, st = 2061, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Aqua Tail", minlvl = 40, st = 2062, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Hydro Cannon", minlvl = 40, st = 2063, cd = 3, min = 200, max = 400, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Harden", minlvl = 40, st = 2064, cd = 60, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true}, ["m8"] = {atk = "Surf", minlvl = 40, st = 2065, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, }, ["Blastoise"] = { ["m1"] = {atk = "Headbutt", minlvl = 40, st = 2066, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Bubbles", minlvl = 40, st = 2067, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Water Gun", minlvl = 40, st = 2068, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m4"] = {atk = "Waterball", minlvl = 40, st = 2069, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Aqua Tail", minlvl = 40, st = 2070, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Hydro Cannon", minlvl = 40, st = 2071, cd = 3, min = 200, max = 400, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Harden", minlvl = 40, st = 2072, cd = 60, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true}, ["m8"] = {atk = "Surf", minlvl = 40, st = 2073, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, ["m9"] = {atk = "Hydropump", minlvl = 40, st = 2074, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false}, }, ["Caterpie"] = { ["m1"] = {atk = "Headbutt", minlvl = 1, st = 2075, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "String Shot", minlvl = 1, st = 2076, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Bug Bite", minlvl = 1, st = 2077, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, }, ["Metapod"] = { ["m1"] = {atk = "Headbutt", minlvl = 10, st = 2078, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "String Shot", minlvl = 10, st = 2079, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Bug Bite", minlvl = 10, st = 2080, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m4"] = {atk = "Harden", minlvl = 10, st = 2081, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true}, }, ["Butterfree"] = { ["m1"] = {atk = "Headbutt", minlvl = 30, st = 2082, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "Whirlwind", minlvl = 30, st = 2083, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false}, ["m3"] = {atk = "Super Sonic", minlvl = 30, st = 2084, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m4"] = {atk = "Stun Spore", minlvl = 30, st = 2085, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m5"] = {atk = "Poison Powder", minlvl = 30, st = 2086, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m6"] = {atk = "Sleep Powder", minlvl = 30, st = 2087, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false}, ["m7"] = {atk = "Psybeam", minlvl = 30, st = 2088, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false}, ["m8"] = {atk = "Confusion", minlvl = 30, st = 2089, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false}, }, ["Weedle"] = { ["m1"] = {atk = "Horn Attack", minlvl = 1, st = 2090, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "String Shot", minlvl = 1, st = 2091, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Poison Sting", minlvl = 1, st = 2092, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, }, ["Kakuna"] = { ["m1"] = {atk = "Bug Bite", minlvl = 10, st = 2093, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "String Shot", minlvl = 10, st = 2094, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Poison Sting", minlvl = 10, st = 2095, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m4"] = {atk = "Harden", minlvl = 10, st = 2096, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = true}, }, ["Beedrill"] = { ["m1"] = {atk = "Fury Cutter", minlvl = 10, st = 2097, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m2"] = {atk = "String Shot", minlvl = 10, st = 2098, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m3"] = {atk = "Poison Sting", minlvl = 10, st = 2099, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m4"] = {atk = "Pin Missile", minlvl = 10, st = 2100, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m5"] = {atk = "Rage", minlvl = 10, st = 2101, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, ["m6"] = {atk = "Strafe", minlvl = 10, st = 2102, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false}, }, } function onSay(cid, words, param) if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "You do not have any pokemon.") end local poke = d[getCreatureName(getCreatureSummons(cid)[1])][words] if not poke then return true end local storage = poke.st local exst = 16265 local cdexst = 0.5 local cd = math.ceil(poke.cd/2) local pet = getCreatureSummons(cid)[1] local target = getCreatureTarget(cid) local look = getCreatureLookDir(pet) local position = getThingPos(pet) if getTilePzInfo(getCreaturePosition(pet)) and poke.pz == false then return doPlayerSendCancel(cid, "Not Attack in protection zone.") end if getPlayerLevel(cid) < poke.minlvl then return doPlayerSendTextMessage(cid, 19, "Your need level "..poke.minlvl.." to use " ..poke.atk..".") end if os.time()-getPlayerStorageValue(cid, storage) <= cd then minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage))) return doPlayerSendTextMessage(cid, 27, "Wait "..seconds.." seconds to use "..poke.atk..".") end if target == 0 and poke.target then return doPlayerSendTextMessage(cid, 19, "This Pokemon Attack need any target.") end if os.time()-getPlayerStorageValue(cid, exst) <= cdexst then minutes,seconds = getTime(cdexst-(os.time()-getPlayerStorageValue(cid, exst))) return doPlayerSendCancel(cid, "Poke exhausted") end local critico = math.random(100) < 10 and 2 or 1 --ATTACKS if poke.atk == "Quick Attack" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 148) elseif poke.atk == "Razor Leaf" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 4) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 79) elseif poke.atk == "Vine Whip" then local effects = { [0] = 80, [1] = 83, [2] = 81, [3] = 82 } doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion1[look], -poke.min, -poke.max * critico, effects[look]) elseif poke.atk == "Headbutt" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 111) elseif poke.atk == "Leech Seed" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 6) doSendAnimatedText(getCreaturePosition(target), "POISON", 66) addEvent(Poison, 500, target, 45, 5) elseif poke.atk == "Solar Beam" then local a = { [0] = {x = 0, y = -1, effect={[1]=94,[2]=93,[3]=93,[4]=95}}, [1] = {x = 1, y = 0, effect={[1]=86,[2]=88,[3]=88,[4]=87}}, [2] = {x = 0, y = 1, effect={[1]=91,[2]=93,[3]=93,[4]=92}}, [3] = {x = -1, y = 0, effect={[1]=89,[2]=88,[3]=88,[4]=90}} } for i = 1,4 do doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i]) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion2[look], -poke.min, -poke.max * critico, 59) elseif poke.atk == "Stun Spore" then local d = getCreaturesInRange(getThingPos(pet), 1, 1, 1, 0) for _,pid in pairs(d) do Paralize(pid) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 85) elseif poke.atk == "Poison Powder" then local d = getCreaturesInRange(getThingPos(pet), 1, 1, 1, 0) for _,pid in pairs(d) do doSendAnimatedText(getCreaturePosition(pid), "POISON", 66) Poison(pid, 8, 5) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 84) elseif poke.atk == "Sleep Powder" then local d = getCreaturesInRange(getThingPos(pet), 1, 1, 1, 0) for _,pid in pairs(d) do Sleep(pid) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 27) elseif poke.atk == "Leaf Storm" then local d = getCreaturesInRange(getThingPos(pet), 3, 3, 1, 0) for _,pid in pairs(d) do for i = 1, 4 do if i == 1 then addEvent(doAreaCombatHealth, 400, pet, poke.damage, getThingPos(pid), 0, -poke.min, -poke.max * critico, 79) doSendDistanceShoot(getPosToStorm(getCreaturePosition(pid)), getCreaturePosition(pid), 4) else addEvent(doAreaCombatHealth, i*800 ,pet, poke.damage, getThingPos(pid), 0, -poke.min, -poke.max * critico, 79) addEvent(doSendDistanceShoot, i*600, getPosToStorm(getCreaturePosition(pid)), getCreaturePosition(pid), 4) end end end elseif poke.atk == "Scratch" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 142) elseif poke.atk == "Ember" then doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 15) elseif poke.atk == "Flamethrower" then local effects = { [0] = 55, [1] = 58, [2] = 56, [3] = 57 } doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion1[look], -poke.min, -poke.max * critico, effects[look]) elseif poke.atk == "Fire Ball" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 3) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 5) elseif poke.atk == "Fire Blast" then local a = { [0] = {x = 0, y = -1, effect= 60}, [1] = {x = 1, y = 0, effect= 61}, [2] = {x = 0, y = 1, effect= 62}, [3] = {x = -1, y = 0, effect= 63} } for i = 1,8 do if i == 1 then doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect) doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 15) else addEvent(doSendMagicEffect, i*300, {x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect) addEvent(doAreaCombatHealth, i*300, pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 15) end end elseif poke.atk == "Rage" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end for i = 1,4 do if i == 1 then doSendMagicEffect(position, 168) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 142) else addEvent(doAreaCombatHealth, i*500, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 142) end end elseif poke.atk == "Fire Fang" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 146) addEvent(doAreaCombatHealth, 200, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 15) addEvent(doAreaCombatHealth, 400, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 15) elseif poke.atk == "Dragon Claw" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 141) elseif poke.atk == "Magma Storm" then doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 36) addEvent(doAreaCombatHealth, 800, pet, poke.damage, getThingPos(pet), area1, -poke.min, -poke.max * critico, 6) elseif poke.atk == "Wing Attack" then doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 115) addEvent(doAreaCombatHealth, 500, pet, poke.damage, getThingPos(pet), area1, -poke.min, -poke.max * critico, 42) elseif poke.atk == "Bubbles" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 2) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 68) elseif poke.atk == "Water Gun" then local a = { [0] = {x = 0, y = -1, effect={[1]=74,[2]=75,[3]=75,[4]=76}}, [1] = {x = 1, y = 0, effect={[1]=69,[2]=70,[3]=70,[4]=71}}, [2] = {x = 0, y = 1, effect={[1]=77,[2]=75,[3]=75,[4]=78}}, [3] = {x = -1, y = 0, effect={[1]=72,[2]=70,[3]=70,[4]=73}} } for i = 1,4 do doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i]) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion2[look], -poke.min, -poke.max * critico, 59) elseif poke.atk == "Waterball" then for i = 1,5 do if i == 1 then addEvent(doAreaCombatHealth, 200 ,pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 68) doSendDistanceShoot(getPosToStorm(getCreaturePosition(target)), getCreaturePosition(target), 2) else addEvent(doAreaCombatHealth, i*700 ,pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 68) addEvent(doSendDistanceShoot, i*500, getPosToStorm(getCreaturePosition(target)), getCreaturePosition(target), 2) end end elseif poke.atk == "Aqua Tail" then doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 160) elseif poke.atk == "Hydro Cannon" then local a = { [0] = {x = 0, y = -1, effect={[1]=74,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[8]=76}}, [1] = {x = 1, y = 0, effect={[1]=69,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=71}}, [2] = {x = 0, y = 1, effect={[1]=77,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[4]=78}}, [3] = {x = -1, y = 0, effect={[1]=72,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=73}} } for i = 1,8 do doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i]) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 59) elseif poke.atk == "Harden" then function Harden(cid, rounds) if rounds == 0 then return false end if #getCreatureSummons(cid) == 0 then return false end doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 144) return addEvent(Harden, 1000, cid, rounds-1) end addEvent(Harden, 500, cid, 40) elseif poke.atk == "Surf" then local a = { [0] = {x = 0, y = -1, effect= 66}, [1] = {x = 1, y = 0, effect= 67}, [2] = {x = 0, y = 1, effect= 64}, [3] = {x = -1, y = 0, effect= 65} } for i = 1,8 do if i == 1 then doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect) doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 68) else addEvent(doSendMagicEffect, i*300, {x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect) addEvent(doAreaCombatHealth, i*300, pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 68) end end elseif poke.atk == "Hydropump" then local a = { [0] = {x = 0, y = -1, effect={[1]=74,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[8]=76}}, [1] = {x = 1, y = 0, effect={[1]=69,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=71}}, [2] = {x = 0, y = 1, effect={[1]=77,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[4]=78}}, [3] = {x = -1, y = 0, effect={[1]=72,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=73}} } for i = 1,8 do doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i]) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 68) addEvent(doAreaCombatHealth, 400, pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 33) elseif poke.atk == "String Shot" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 23) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 137) Paralize(target) elseif poke.atk == "Bug Bite" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 146) elseif poke.atk == "Whirlwind" then doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion4[look], -poke.min, -poke.max * critico, 42) elseif poke.atk == "Super Sonic" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end for i = 1, 3 do if i == 1 then doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 24) else addEvent(doSendDistanceShoot, i * 200, getCreaturePosition(pet), getCreaturePosition(target), 24) end end addEvent(doSendAnimatedText, 500, getCreaturePosition(target), "CONF", 210) addEvent(Confused, 500, target, 15) elseif poke.atk == "Psybeam" then local a = { [0] = {x = 0, y = -1, effect={[1]=108,[2]=109,[3]=109,[4]=108}}, [1] = {x = 1, y = 0, effect={[1]=106,[2]=107,[3]=107,[4]=106}}, [2] = {x = 0, y = 1, effect={[1]=109,[2]=108,[3]=108,[4]=109}}, [3] = {x = -1, y = 0, effect={[1]=107,[2]=106,[3]=106,[4]=107}} } for i = 1,4 do doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i]) end doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion2[look], -poke.min, -poke.max * critico, 59) elseif poke.atk == "Confusion" then doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area3, -poke.min, -poke.max * critico, 136) elseif poke.atk == "Horn Attack" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 111) elseif poke.atk == "Poison Sting" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 15) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 9) elseif poke.atk == "Fury Cutter" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 110) addEvent(doAreaCombatHealth, 500, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 110) elseif poke.atk == "Pin Missile" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then return doPlayerSendCancel(cid, "Target is far away.") end for i = 1, 3 do if i == 1 then doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 13) doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 137) else addEvent(doSendDistanceShoot, i * 200, getCreaturePosition(pet), getCreaturePosition(target), 13) addEvent(doAreaCombatHealth, i * 200, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 137) end end elseif poke.atk == "Strafe" then if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then return doPlayerSendCancel(cid, "Target is far away.") end local dd = {142, 111, 110, 148} for i = 1,6 do af = math.random(4) if i == 1 then doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, dd[af]) else addEvent(doAreaCombatHealth, i*500, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, dd[af]) end end end -- END ATTACKS doPlayerSay(cid, getCreatureName(pet)..", use "..poke.atk..".", 1) setPlayerStorageValue(cid, storage, os.time()+cd) setPlayerStorageValue(cid, exst, os.time()+cdexst) local atknotcritic = {"Harden", "Poison Powder", "Sleep Powder", "Super Sonic", "Stun Spore"} if critico == 2 and not isInArray(atknotcritic, poke.atk) then doSendAnimatedText(getCreaturePosition(cid), "CRITICAL", 144) end return true end New Tag : <talkaction words="m1;m2;m3;m4;m5;m6;m7;m8;m9;m10;m11;m12" hide="yes" event="script" value="moves.lua"/> Pokemons Configurados [15/151] :1 ponto -
Se ouver algum erro no topico Por Favor me avise é meu primeiro topico. Olá hoje postarei o movement Portrait System! Muito util para servidores de poketibia. Descrição Do Movement: É um movement que ele quando usa pokeball do pokemon exato ele aparece a foto dele... Nome:Portrait System Versão:8.54 Testado em: [8.54]Pokeserver Tfs 0.3.6 [V4.1] Versão 4.0, Bugs Corrigidos Movement: Crie um arquivo lua chamado Portrait na pasta movements/scripts e ponha isso: Na parte : local idballs = { [2532] = "Pokeball", [2653] = "Superball", [2652] = "Greatball", [2654] = "Ultraball", [2195] = "Masterball", [2531] = "Pokeball", [2557] = "Superball", [2524] = "Greatball", [2525] = "Ultraball", [2523] = "Masterball", } Significa: [2532] = "Pokeball", = Ball Acesa [2531] = "Pokeball", = Ball Apagada E Vai... Em movements.xml ponha isso: Você tambêm prescisara da items.otb que o link esta abaixo dessa frase.Muito importante usar ela POIS se não ira bugar o portrait... Portrait System Creditos: 60% Para quem fez o script : YahooABC. 40% para min por organizar o topico configurar o script e configurar a items.otb.1 ponto
-
Gesior Traduzido(50%) Compatível 0.2+
Redemption reagiu a rod_doidim por um tópico no fórum
Boa Tarde XTibianos, agora são 17:22, do dia 08/01/11. Vim deixar um download útil para alguns. É o Gesior compatível com TFS 2.0+ ( Traduzido por partes por mim e fixado alguns bugs. ) Abaixo a Screen com o menu traduzido: Clique no link abaixo para DOWNLOAD. :down: Caso o link expirar, mande PM. Estarei aqui para ajudar! PS: Eu sei que não fiz nada muito grande, porém como não vi nenhuma versão que presta-se! Este site é compatível com TFS 0.2.9 (8.7) Quem baixar, me digam se ajudou hehehe! Fiquei curioso que quem baixou este Gesior, gostou. Obrigado1 ponto -
Pasta Enciclopedia com todos os links de outros tutoriais ! http://www.xtibia.com/forum/Pasta-Data-Enc...r-E-t99746.html Parte II – Funções Lua Nessa segunda parte irei mostrar como usar e quase todas as funções em lua existentes no otserver, lembrando que esse tutorial foi baseado no The Forgotten Server 0.3.0 Alpha 3. Portanto poderá haver funções aqui que não terá em outros otservers ou será diferente o nome. Lembrando que todas as funções existentes aqui poderão ser usadas tanto em actions,npcs,movements,talk actions e spells. Dividi as funções em três grandes grupos e subgrupos, os três grandes são funções get(receba), set (insira) e do (faça). Use Forgotten Server 3.0 pelo amor de deus, se você não saber usar sql aprende a usar SqlLite nesse link... Se você Aries você não tem honra para mexer aqui Funções Get São as funções que retornam valores, ou seja, elas fazem checagens. São muitos usadas e uteis. Ela é usada em condicionais (If, while, for) ou inseridas em variaveis. O modo de usa-la depende do tipo de script ou do jeito que você preferir. Dividi elas em dois grupos, a get simples e a get com parametros. Funções get simples São funções simples mesmo basta coloca-las e elas retornarão um valor, pode coloca-las em condicionais ou em variaveis. E todas elas buscam valores em players. Os que há creature pode ser usados em monstros (a maioria). São elas : getPlayerFood(cid) – Verifica quanto de tempo de comida o player possui. getCreatureHealth(cid) – Verifica a health atual do player. getCreatureMaxHealth(cid) – Verifica a health maxima do player. getCreatureMana(cid) – Verifica a mana atual do player. getCreatureMaxMana(cid) – Verifica a mana maxima do player. getPlayerLevel(cid) – Verifica o level do player. getPlayerExperience(cid) – Verifica a experiencia. getPlayerMagLevel(cid) – Verifica o magic level. getPlayerAccess(cid) – Verifica o nivel de acesso (player,gm,tutor...) getPlayerTown(cid) - Verifica o id da cidade natal do player. getPlayerVocation(cid) – Verifica a vocação dele. getPlayerSoul(cid) – Verifica o soul points. getPlayerFreeCap(cid) – Verifica quanto de capacidade atual existe. getPlayerLight(cid) - Verifica o tamanho da luz do player. getPlayerGuildId(cid) – Verifica o id atual da guild do player. getPlayerGuildName(cid) – Verifica o nome da guild. getPlayerGuildRank(cid) - Verifica o posto dele na guild. getPlayerGuildNick(cid) – Verifica o nick dele na guild. (aquilo escrito no final entre parenteeses). getPlayerGuildLevel(cid) – Verifica o nivel da guild. getPlayerSex(cid) – Verifica o sexo do player(0-mulher, 1 – homem). getPlayerLookDir(cid) – Verifica a direção na qual ele está olhando. (0-norte, 1-leste, 2-sul, 3 -oeste). getPlayerGUID(cid) – Verifica o id dele na database. getPlayerPromotionLevel(cid) – Verifica o nivel da promoção do player. getPlayerGroupId(cid) – Verifica o nivel dele. (igual acesso). getPlayerInstantSpellCount(cid) - Verifica quantas spells o player sabe. getMonsterTargetList(cid) – Verifica os montros na qual você está atacando. getMonsterFriendList(cid) – Verifica os monstros amigo (provavelmente summons). getCreatureOutfit(cid) – Verifica o id da roupa do player. getCreaturePosition(cid) – Verifica a posição x,y,z do player. getCreatureSpeed(cid) – Verifica a velocidade atual do player. getCreatureBaseSpeed(cid) – Verifica a velocidade base do player. getCreatureName(cid) – Verifica o nome do player. getCreatureTarget(cid) – Verifica quem o player está atacando. getPlayerPremiumDays(cid) – Verifica quantos dias de premmium account o player possui. getPlayerSkullType(cid) – Verifica qual skull o player possui. getPlayerBalance(cid) – Verifica o saldo bancario do player. getPlayerStamina(cid) – Verifica o tempo de stamina. getPlayerNoMove(cid) – Verifica se ele pode se mover. getPlayerExtraExpRate(cid) – Verifica a taxa de experiencia extra (a confirmar). getPlayerPartner(cid) – Se o player está em parte ou não. getPlayerParty(cid) – Verifica informações da party do player. getPartyMembers(lid) – Verifica os membros da party segundo o id da função acima. getCreatureMaster(cid) – Verifica a criatura mestre (a que sumona). getCreatureSummons(cid) – Verifica os summons da criatura. A sintaxe dessas funções é essa : Exemplo : if getCreatureMana(cid) == 20 then Ou mana = getCreatureMana(cid) if mana == 20 then Funções get com parametros. Essas funções fazem o mesmo papel da outra get simples, porém elas tem certos parametros pois normalmente elas checam coisas a mais, e algumas checam objetos e não só valores do player. Lembrando que se for comparar itens que são com nomes (exemplo : getItemNameById(2195) == 'boots of haste' then) deve se colocar entre aspas pois é uma função string. Numeros não prescisam estar dentro de aspas. São elas : getPlayerSkill(cid, skillid) - checa o skill especificado do player (0- fist,1-club, 2-sword, 3-axe, 4-distance, 5 -shield, 6 – fishing). getPlayerItemCount(cid,itemid) - checa a quantidade de item agrupaveis. getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha). getPlayerWeapon(cid, <optional> ignoreAmmo) - Checa que arma o player esta usando. (o outro paramentro ainda n usei). getPlayerItemById(cid, deepSearch, itemId, <optional> subType) - Procura o item especifica no item, pode colocar o subtipo (viais por exemplo). getPlayerDepotItems(cid, depotid) - Ve quantos itens tem no depot da cidade (Por id de cidade). getPlayerFlagValue(cid, flag) - Ve as flag dos players (Apenas em TFS e nunca usei). getPlayerCustomFlagValue(cid, flag) - Verifica o valor da flag. getPlayerLearnedInstantSpell(cid, name) - Verifica se o player sabe a magia. getPlayerInstantSpellInfo(cid, index) - Desconheço getInstantSpellInfoByName(cid, name) - Verifica valores da magia getInstantSpellWords(name) - Retorna a palavra magica da magia. getPlayerStorageValue(uid, valueid) - Verifica o valor do storage do player getCreatureByName(name) - Retorna o nome da criatura. getPlayerGUIDByName(name) - Verifica o numero da tabela sql do player. getPlayerNameByGUID(guid) - Verifica o nome do jogador pelo numero da tabela sql getContainerSize(uid) - Verifica quantos slots tem o container. getContainerCap(uid) - Verifica quanto pesa o container. getContainerItem(uid, slot) - Verifica se há um container no slot especificado. getDepotId(uid) - - Verifica o id da cidade do depot. getItemDescriptionsById(itemid) - Pega a descrição do item pelo id. getItemNameById(itemid) - - Pega o nome do item pelo id. getItemPluralNameById(itemid) - Pega o nome em plural do item pelo id.(apenas itens agrupaveis). getItemIdArticleById(itemid) - Retorna um valor pelo id. Desconheço essa função getItemWeightById(itemid, count, <optional: default: 1> precise) - -Pega o peso do item por id. getItemDescriptions(uid) - - Pega a descrição do item por uid. (por exemplo se ele é item ou item2 em actions). getItemName(uid) - - Pega a descrição do item por uid. getItemAttack(uid) - Pega o ataque do item por uid. getItemPluralName(uid) - Pega o nome em plural por uid. getItemExtraAttack(uid) - Modifica o ataque extra da arma (Acho que deve ser ataque elemental ou defesa de armor). getItemIdArticle(uid) - - Desconheço. getItemDefense(uid) - - Pega a defesa do item por uid. getItemExtraDefense(uid) - - Pega a defesa extra (armor) por uid. getItemArmor(uid) - - Pega o valor de armour por uid. getItemAttackSpeed(uid) - - Pega a velocidade de ataque por uid. getItemHitChance(uid) - - Pega a chanche de dano do item por uid. getItemIdByName(name) - - Retorna o id do item pelo nome. getPromotedVocation(vocation) - - Verifica qual o nome da vocação promocional da vocação(Sorcerer = Master Sorcerer). getPlayerBlessing(cid, blessing) - - Verifica qual nivel de benção o player tem (1 = 1, 2 =2...). getTemplePositionByName(townName) - - Verifica as coordenadas do templo pelo nome da cidade. getTemplePositionById(townId) - - Verifica as coordenadas do templo pelo id da cidade. Funções Set São poucas funções. Elas inserem valores ou seja inserem novos valores, inutilizando os antigos. Deve se usa-las dentro de condicionais. Exemplo : No caso se o item se chamar boots of haste, o script coloca arm 5 nela. São elas : setItemAttack(uid, attack) - Modifica o ataque da arma setPlayerStamina(cid, minutes) - Adicione tempo em stamina. setPlayerExtraExpRate(cid, value) - Modifica mais taxa de experiencia setPlayerPartner(cid, guid) - Desconheço setItemPluralName(uid) - Modifica ou adiciona o nome do item no plural. setItemName(uid) - Muda o nome do item. setItemIdArticle(uid) - Modifica o article no item (sei la q merda é essa) setItemExtraAttack(uid, extraattack) - Adiciona ataque extra na arma. setItemDefense(uid, defense) - Modifica defesa no item setItemExtraDefense(uid, extradefense) - Modifica aquela defesa extra na arma setItemArmor(uid, armor) - Modifica a armor do item setItemAttackSpeed(uid, attackspeed) - Muda a velocidade de ataque do item setItemHitChance(uid, hitChance) - Modifica a taxa de dano do item setGlobalStorageValue(valueid, newvalue) - Adiciona um valor global (Muito util para scripts avançados) setHouseOwner(houseid, ownerGUID) - Muda o dono da casa setWorldType(type) - Muda o estilo do mundo para PvP, Non Pvp e Pvp Enforced Funções do Funções que fazer algo, normalmente modificam , porem ao contrario do set algumas apenas adiciona valores. São usadas dentro de condicionais. A sintaxe dela é : if item.itemid == 2195 then doCreatureAddHealth(cid, -1000) end No caso se o item usado no script for 2195, ele remove 1000 de hp. São elas : doPlayerLearnInstantSpell(cid, name) - Faz o player aprende a magia pelo nome dela. doRemoveItem(uid, quantidade) - Remove o item do player. doPlayerFeed(cid, food) - Adiciona "comida" ao player. doPlayerSendCancel(cid, text) - Manda aquela mensagem branca no rodape da tela. doPlayerSendDefaultCancel(cid, ReturnValue) - Inutil pelo que saiba , pq nunca vi um script com isso e por isso n sei pra q serve. doTeleportThing(cid, newpos, <optional> pushmove) - Teleporta o player para uma nova posição. doTransformItem(uid, toitemid, <optional> count/subtype) - Transforma o item em outro. doCreatureSay(cid, text, type) - - Faz o player falar algo. doSendMagicEffect(pos, type[, player]) - Faz algum efeito magico doSendDistanceShoot(frompos, topos, type) - Faz algum efeito de distancia doChangeTypeItem(uid, newtype) - Muda o tipo dele ou a quantidade de itens agrupaveis. doSetItemActionId(uid, actionid) - Adiciona uma nova actionid por uid. doSetItemText(uid, text) - - Adiciona um texto ao item. doSetItemSpecialDescription(uid, desc) - Coloca a descrição especial no item. (Esse item foi feito especialmente para sei la kem). doSendAnimatedText(pos, text, color) - Manda um texto animado (Se vc joga servidor Pvp Enforced sabe qual é). doPlayerAddSkillTry(cid, skillid, n) - Adiciona uma tentativa em um skill (Se vc colocar 9999999 ele aumenta apenas 1 skill). doCreatureAddHealth(cid, health) - Adiciona life ao player. doCreatureAddMana(cid, mana) - Adiciona mana ao player. doPlayerSetTown(cid, townid) - Muda a cidade do player. doPlayerSetVocation(cid,voc) - Muda a vocação do player ( Não coloque vocação promocional em TFS pq dará erros). doPlayerRemoveItem(cid, itemid, count, <optional> subtype) - Remove um item do player. doPlayerAddExp(cid, exp) - Adiciona experiencia ao player. doPlayerAddOutfit(cid,looktype,addons) - Adiciona addons do outfit ao player. doPlayerRemoveOutfit(cid,looktype,addons) - Remove addons do outfit do player. doAddContainerItem(uid, itemid, <optional> count/subtype) - Adiciona um container por uid. doBroadcastMessage(message, type) - Manda uma mensagem global ao servidor. doPlayerBroadcastMessage(cid, message, <optional> type) - doPlayerSetSex(cid, newSex) - - Muda o sexo do Player (0- mulher, 1 homem) doCreatureChangeOutfit(cid, outfit) - Muda a roupa do player. doSetMonsterOutfit(cid, name, time) - Muda a roupa para de um monstro. doSetItemOutfit(cid, item, time) - Muda a roupa do player para de um item. doSetCreatureOutfit(cid, outfit, time) - Adiciona uma roupa por tempo. doPlayerAddMapMark(cid, pos, type, <optional> description) - Adiciona aquelas marcações no mapa do jogador. doPlayerAddPremiumDays(cid, days) - Adiciona dias de premmium no jogador doPlayerAddManaSpent(cid, mana) - Adiciona % de magic level (Se vc colcoar 99999999 ele aumentará muitos mls...) doPlayerAddSoul(cid, soul) - Adiciona soul points ao jogador doPlayerAddItem(uid, itemid, <optional> count/subtype, <optional: default: 1> canDropOnMap) - Adiciona itens no player. doPlayerAddItemEx(cid, uid, <optional: default: 0> canDropOnMap) - Adiciona um item2 no player (Estranho). doPlayerSendTextMessage(cid, MessageClasses, message) - Manda um texto pro player. doPlayerAddMoney(cid, money) - Adiciona dinheiro ao player doPlayerRemoveMoney(cid, money) - Remove dinheiro do player. doPlayerWithdrawMoney(cid, money) - Remove dinheiro do banco doPlayerDepositMoney(cid, money) - Adiciona dinheiro ao banco. doPlayerTransferMoneyTo(cid, target, money) - Transfere dinheiro do banco. doShowTextDialog(cid, itemid, text) - Mostra o texto do item doDecayItem(uid) - Decai o item (aprodecer) doCreateItem(itemid, type/count, pos) - doCreateItemEx(itemid, <optional> count/subtype) - Cria um item2. doTileAddItemEx(pos, uid) - Cria um item2 em um tile doAddContainerItemEx(uid, virtuid) - Adiciona um item2 no container doCreateTeleport(itemid, topos, createpos) - Cria um teleport doSummonCreature(name, pos) - Sumona um monstro Existem mais comandos porém são rarissimos de ser usados. Por que os cara do TFS criam comandos em Luas para o Gesior e Jiddo se lascarem criando tranqueiras em Lua. Stackpos Sem duvidas, umas das partes mais chatas de explicar, porém ao aprender é dificil esquecer. O stackpos é usado para se mexer em itens empilhados, infelizmente ele se modifica muito então essa tabela mostra os stackpos que não mudam. Agora tirando isso os de 2 a 252 sempre mudam (Eu acho que não esqueci os outros que mudam), então vou tentar explicar do jeito que entendi antigamente... Se você tem empilhado o chão, uma mesa, e um bag. Os stackpos ficam assim Agora se você tem os mesmo itens e em cima da bag uma backpack e um scarab coin. Confundiu ? Sim é normal, se houver três ou mais itens acima do chão, o chão e o objeto acima dele continuam com o mesmo stackpos. Porém depois é contado de cima para baixo. Veja esse exemplo : stackpos: Nesse caso a ordem dos itens de baixo para cima é : Areia, mesa, dead human, machete, shovel, rope, gold coin.bag e backpack. Entenderam agora ? Se não tente fazer uns testes que com certeza entenderá. E depois pelo seu bem, tente não esquecer isso. Pois em movements é importantissimo. Bem esse tutorial foi leve e servirá de base para os proximos, pois esses comandos podem ser usados em tudo que há lua. Peço desculpas se ele fico confuso Pois não estou vagal quanto antes e tenho pouco tempo... Esperem que virão mais tutoriais. Comentarios é o combustivel. Então deem sugestões, reclamações ou me ofendam sei la.1 ponto
-
então pessoal eu até a pouco tempo(ontem) nao sabia desse bug fiquei sabendo pq um cara com a msm duvida veio me pedir ajuda eu tenho uma ideia de como arrumar mais nao sei se é possivel pois n sei mto de script é tipo que assim você sobe no pokemon (ride ou fly) ae beleza voce troca a pokebola do poke que ta no fly/ride pra uma que tenha um pokemon morto ae voce sai do fly/ride ele vai criar o pokemon que esta no seu slot feet, que seria o morto então ele cria o pokemon ae ele morre e aparece o corpo, ae é so vc captura ae gostaria de saber, se n tem como arrumar pra sair do fly/ride somente se o pokemon certo estiver no local que seria o slot feet caso precise vou postar o scrip de ride e fly: Fly: Ride:1 ponto
-
[Action] Pokémon Move
yspaik15 reagiu a Diego Skate por um tópico no fórum
Nome: Pokémon MOVE (Order System) Autor: PoRaI ou PoPoRaI Server: Polska 8.42 - Acho que pode funcionar em versões novas. Como functiona? No Pokémon Online funciona da seguinte maneira: Clicando no botão order e em algum local que possa andar, o pokémon vai até o local, então esse sistema funciona igualzinho ao sistema do Pokémon Online. 1º - Adiciona na LIB (Data → lib → functions.lua), você ira adicionar uma função criada pelo DOKMOS, doPushCreature. ------------------ Function doPushCreature(uid,direction,distance,time) by Dokmos ------------------ function doPushCreature(uid,direction,distance,time) if isCreature(uid) == TRUE then local rand = (2*math.random(0,1))-1 local rand2 = math.random(-1,0) if direction == 0 then signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0} elseif direction == 1 then signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 2 then signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0} elseif direction == 3 then signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 4 then signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0} elseif direction == 5 then signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0} elseif direction == 6 then signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0} else signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0} end local pos = getThingPos(uid) nsig = #signal nvar = 0 repeat nvar = nvar+1 newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z} newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0} until getTileThingByPos(newtile).uid ~= 0 and hasProperty(getTileThingByPos(newtile).uid,3) == FALSE and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2) if distance == nil or distance == 1 then doTeleportThing(uid,newpos,TRUE) else distance = distance-1 doTeleportThing(uid,newpos,TRUE) if time ~= nil then addEvent(doPushCreature,time,uid,direction,distance,time) else addEvent(doPushCreature,500,uid,direction,distance,500) end end end end 2º - Em actions.xml coloque: <action itemid="idaqui" script="move.lua" allowfaruse="1"/> 3º - Cria um arquivo em: Data → Actions → Scripts um novo arquivo chamado move.lua function onUse(cid, item, frompos, item2, toPosition) function doOrderMove(cid) -- By PoRaI. local creature = getCreatureSummons(cid)[1] local pokepos = getCreaturePosition(creature) local ir = toPosition if pokepos.x == ir.x and pokepos.y == ir.y then return TRUE end if pokepos.x ~= ir.x or pokepos.y ~= ir.y then if(pokepos.y - ir.y) >= 1 then addEvent(doPushCreature, 300, creature, NORTH, pokepos.y - ir.y) end if(ir.y - pokepos.y) >= 1 then addEvent(doPushCreature, 300, creature, SOUTH, ir.y - pokepos.y) end if(pokepos.x - ir.x) >= 1 then doPushCreature(creature, WEST, pokepos.x - ir.x) end if(ir.x - pokepos.x) >= 1 then addEvent(doPushCreature, 300, creature, EAST, ir.x - pokepos.x) end return FALSE end end if #getCreatureSummons(cid) == 1 then doOrderMove(cid) end end Créditos ao PoRaI & DOKMOS Só estou divulgando!1 ponto -
eu achei a solução a um tempo já mas esqueci de postar no ride e no fly porcure por isto logo abaixo adicione isto: e salve pronto Te ajudei? +REP1 ponto
-
1 ponto
-
Esse erro da quando a criatura morre antes de executar toda magia. Você ainda pode diminuir o script já que todos os combats são iguais. Pra resolver o erro: local function onCastSpell1(parameters) if isCreature(parameters.cid) then doCombat(parameters.cid, parameters.combat1, parameters.var) end end local function onCastSpell2(parameters) if isCreature(parameters.cid) then doCombat(parameters.cid, parameters.combat2, parameters.var) end end local function onCastSpell3(parameters) if isCreature(parameters.cid) then doCombat(parameters.cid, parameters.combat3, parameters.var) end end local function onCastSpell4(parameters) if isCreature(parameters.cid) then doCombat(parameters.cid, parameters.combat4, parameters.var) end end1 ponto
-
Site Account Maker (gesior) Para Tfs +layout's Adicional.
metall2012 reagiu a lucas051191 por um tópico no fórum
AlissonLinneker sua skin fico loca^^ por enquanto pra min o site do Gesior é o melhor. arthurfirmino coloca uma imagem, talvez eu consiga te ajudar1 ponto -
0 pontos
-
1° minha database ta em 150mb, mas o xammp nao quer aceitar ela, da erro porque o tamanho maximo dele é 128mb. como posso importar minha database pro xammp? 2°como arrumar os debug de um servidor sem saber o problema? porque no meu server umas 15 pessoas deram debug no msm lugar ou ate eu fui com o god e deu debug nao entra no char +, e sem saber o que é pra resolver fica dificil aki o debug ----- 03/01/2011 23:28:09 - ADM Aion ----- Debug Assertion 8.50 Objects.cpp 277 Mon Jan 03 17:28:16 2011 Graphic Engine: DirectX5 (0) Operating System: Windows Vista Ultimate Edition 32 Bit in BRA Processor: Dual Core Intel Pentium E5200 @ 2 Video Card: Intel (R) G33/G Last Packet Types: 100 108 180 030 180 180 180 180 180 180 Last Packet: 180 018 019 000 047 103 111 116 111 032 050 050 054 048 044 032 Player Position: [340,1456,5] Player Name: ADM Aion (Offline) Player Action: 049 057 057 046 049 053 046 050 053 052 046 054 055 058 055 049 055 050 Player.cpp 361: exception occurred, reason: Network.cpp 992: exception occurred (ErrorCode = 0), reason: Control.cpp 1326: exception occurred (Type = 100) (MainWindow = 37112256), reason: Communication.cpp 1634: exception occurred (PlayerX = 2260) (PlayerY = 3081), reason: Communication.cpp 1612: exception occurred (xmin = 0) (ymin = 0), reason: Communication.cpp 1591: exception occurred (Type = 9757) (OldType = 4353), reason: Objects.cpp 280: exception occurred (Type = 9757) (Flag = 11), reason: Objects.cpp 277: assertion failed (Type = 9757) (ObjectProperties->high() = 9627), reason: In(Type,ObjectProperties->low(),ObjectProperties->high()) alguem sabe como resolver?-1 pontos