zlegend 0 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @galhem vê se vc não esta tentando duelar em alguma área com protect zone Link para o comentário Compartilhar em outros sites More sharing options...
natanaelrox 7 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @Slicer exite algum jeito de quando o pokemon estiver dormindo "sobre efeito sleep" ele não ficar tipo corpose? tipo tava querendo deixar igual ao PxG. Link para o comentário Compartilhar em outros sites More sharing options...
galhem 0 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @galhem vê se vc não esta tentando duelar em alguma área com protect zone mano tipo eu estou fora do cp o problema eu acho que n é protect zone Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @Slicer [21/09/2012 17:22:50] [Error - Action Interface] [21/09/2012 17:22:50] data/actions/scripts/evolution.lua:onUse [21/09/2012 17:22:50] Description: [21/09/2012 17:22:50] data/actions/scripts/evolution.lua:522: attempt to index field '?' (a nil value) [21/09/2012 17:22:50] stack traceback: [21/09/2012 17:22:50] data/actions/scripts/evolution.lua:522: in function <data/actions/scripts/evolution.lua:40> Esse erro ai que nao evolui o totodile com nem uma stone quando usa a water stone no totodile ele dar esse erro Tente esse: local special = specialevo local types = { [leaf] = {"Bulbasaur", "Ivysaur", "Oddish", "Gloom", "Bellsprout", "Weepinbell", "Exeggcute", "Chikorita", "Bayleef", "Hoppip", "Skiploom", "Sunkern"}, [water] = {"Squirtle", "Wartortle", "Horsea", "Goldeen", "Magikarp", "Psyduck", "Poliwag", "Poliwhirl", "Tentacool", "Krabby", "Staryu", "Omanyte", "Eevee", "Totodile", "Croconow", "Chinchou", "Marill", "Wooper", "Slowpoke", "Remoraid", "Seadra"}, [venom] = {"Zubat", "Ekans", "Nidoran male", "Nidoran female", "Nidorino", "Nidorina", "Gloom", "Venonat", "Tentacool", "Grimer", "Koffing", "Spinarak", "Golbat"}, [thunder] = {"Magnemite", "Pikachu", "Voltorb", "Eevee", "Chinchou", "Pichu", "Mareep", "Flaaffy", "Elekid"}, [rock] = {"Geodude", "Graveler", "Rhyhorn", "Kabuto", "Slugma", "Pupitar"}, [punch] = {"Machop", "Machoke", "Mankey", "Poliwhirl", "Tyrogue"}, [fire] = {"Charmander", "Charmeleon", "Vulpix", "Growlithe", "Ponyta", "Eevee", "Cyndaquil", "Quilava", "Slugma", "Houndour", "Magby"}, [coccon] = {"Caterpie", "Metapod", "Weedle", "Kakuna", "Paras", "Venonat", "Scyther", "Ledyba", "Spinarak", "Pineco"}, [crystal] = {"Dratini", "Dragonair", "Magikarp", "Omanyte", "Kabuto", "Seadra"}, [dark] = {"Gastly", "Haunter", "Eevee", "Houndour", "Pupitar"}, [earth] = {"Cubone", "Sandshrew", "Nidorino", "Nidorina", "Diglett", "Onix", "Rhyhorn", "Wooper", "Swinub", "Phanpy", "Larvitar"}, [enigma] = {"Abra", "Kadabra", "Psyduck", "Slowpoke", "Drowzee", "Eevee", "Natu", "Smoochum"}, [heart] = {"Rattata", "Pidgey", "Pidgeotto", "Spearow", "Clefairy", "Jigglypuff", "Meowth", "Doduo", "Porygon", "Chansey", "Sentret", "Hoothoot", "Cleffa", "Igglybuff", "Togepi", "Snubull", "Teddiursa"}, [ice] = {"Seel", "Shellder", "Smoochum", "Swinub"}, [king] = {"Slowpoke", "Poliwhirl"}, [metal] = {"Onix", "Scyther"}, [dragon] = {"Seadra"}, [upgrade] = {"Porygon"}, [sun] = {"Sunkern", "Gloom"}, --[sfire] = {"Shiny Charmander", "Shiny Charmeleon", "Shiny Vulpix", "Shiny Growlithe", "Shiny Ponyta", "Shiny Eevee"}, [swater] = {"Shiny Squirtle", "Shiny Wartortle", "Shiny Horsea", "Shiny Goldeen", "Shiny Magikarp", "Shiny Psyduck", "Shiny Poliwag", "Shiny Poliwhirl", "Shiny Tentacool", "Shiny Krabby", "Shiny Staryu", "Shiny Omanyte", "Shiny Eevee"}, [sleaf] = {"Shiny Bulbasaur", "Shiny Ivysaur", "Shiny Oddish", "Shiny Gloom", "Shiny Bellsprout", "Shiny Weepinbell", "Shiny Exeggcute"}, [sheart] = {"Shiny Rattata", "Shiny Pidgey", "Shiny Pidgeotto", "Shiny Spearow", "Shiny Clefairy", "Shiny Jigglypuff", "Shiny Meowth", "Shiny Doduo", "Shiny Porygon", "Shiny Chansey"}, [senigma] = {"Shiny Abra", "Shiny Kadabra", "Shiny Psyduck", "Shiny Slowpoke", "Shiny Drowzee", "Shiny Eevee"}, [srock] = {"Shiny Geodude", "Shiny Graveler", "Shiny Rhyhorn", "Shiny Kabuto"}, [svenom] = {"Shiny Zubat", "Shiny Ekans", "Shiny Nidoran male", "Shiny Nidoran female", "Shiny Nidorino", "Shiny Nidorina", "Shiny Gloom", "Shiny Venonat", "Shiny Tentacool", "Shiny Grimer", "Shiny Koffing"}, [sice] = {"Shiny Seel", "Shiny Shellder"}, [sthunder] = {"Shiny Magnemite", "Shiny Pikachu", "Shiny Voltorb", "Shiny Eevee"}, [scrystal] = {"Shiny Dratini", "Shiny Dragonair", "Shiny Magikarp", "Shiny Omanyte", "Shiny Kabuto"}, [scoccon] = {"Shiny Caterpie", "Shiny Metapod", "Shiny Weedle", "Shiny Kakuna", "Shiny Paras", "Shiny Venonat", "Shiny Scyther"}, [sdarkness] = {"Shiny Gastly", "Shiny Haunter", "Shiny Eevee"}, [spunch] = {"Shiny Machop", "Shiny Machoke", "Shiny Mankey", "Shiny Poliwhirl"}, [searth] = {"Shiny Cubone", "Shiny Sandshrew", "Shiny Nidorino", "Shiny Nidorina", "Shiny Diglett", "Shiny Onix", "Shiny Rhyhorn"} } function onUse(cid, item, frompos, item2, topos) local pokeball = getPlayerSlotItem(cid, 8) if not isMonster(item2.uid) or not isSummon(item2.uid) then return true end if getCreatureCondition(item2.uid, CONDITION_INVISIBLE) then return true end local pevo = poevo[getCreatureName(item2.uid)] if not isInArray(specialevo, getCreatureName(item2.uid)) then if not pevo then doPlayerSendCancel(cid, "This pokemon can't evolve.") return true end if not isPlayer(getCreatureMaster(item2.uid)) or getCreatureMaster(item2.uid) ~= cid then doPlayerSendCancel(cid, "You can only use stones on pokemons you own.") return true end if pevo.stoneid ~= item.itemid and pevo.stoneid2 ~= item.itemid then doPlayerSendCancel(cid, "This isn't the needed stone to evolve this pokemon.") return true end end local minlevel = 0 if getPokemonName(item2.uid) == "Eevee" then local eevee = "" if item.itemid == thunder then eevee = "Jolteon" elseif item.itemid == water then eevee = "Vaporeon" elseif item.itemid == fire then eevee = "Flareon" elseif item.itemid == enigma and allEvolutionsCanBeInduzedByStone then eevee = "Espeon" elseif item.itemid == dark and allEvolutionsCanBeInduzedByStone then eevee = "Umbreon" else doPlayerSendCancel(cid, "This isn't the required stone to evolve this pokemon.") return true end minlevel = pokes[eevee].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doRemoveItem(item.uid, 1) doEvolvePokemon(cid, item2, eevee, 0, 0) return true end if getPokemonName(item2.uid) == "Shiny Eevee" then local eevee = "" if item.itemid == sthunder then eevee = "Shiny Jolteon" elseif item.itemid == swater then eevee = "Shiny Vaporeon" elseif item.itemid == sfire then eevee = "Shiny Flareon" else doPlayerSendCancel(cid, "This isn't the required stone to evolve this pokemon.") return true end minlevel = pokes[eevee].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doRemoveItem(item.uid, 1) doEvolvePokemon(cid, item2, eevee, 0, 0) return true end if isInArray(specialevo, getPokemonName(item2.uid)) then if getPokemonName(item2.uid) == "Poliwhirl" then local evolution = 0 local theevo = "" local nlevel = 45 if item.itemid == water then if getPokemonLevel(item2.uid) >= 36 and getPlayerItemCount(cid, king) >= 1 then evolution = king theevo = "Politoed" elseif getPokemonLevel(item2.uid) >= 36 and getPlayerItemCount(cid, punch) >= 1 and allEvolutionsCanBeInduzedByStone then evolution = punch theevo = "Poliwrath" else if allEvolutionsCanBeInduzedByStone then if getPlayerItemCount(cid, king) <= 0 and getPlayerItemCount(cid, punch) <= 0 then doPlayerSendCancel(cid, "You need a water stone and a punch stone (Poliwrath) or a King's Rock (Politoed) to evolve this pokemon.") return true end else if getPlayerItemCount(cid, king) <= 0 then doPlayerSendCancel(cid, "You need a Water Stone and a King's Rock to evolve this pokemon to a Politoed.") return true end end end minlevel = pokes[theevo].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, punch) >= 1 and getPlayerItemCount(cid, king) >= 1 and allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "Please, use your Punch Stone to evolve this pokemon to a Poliwrath, or a King's Rock to a Politoed.") return true end if evolution == 0 then if allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "You need at least one Water Stone, and a Punch Stone (Poliwrath) or a King's Rock (Politoed) to evolve this pokemon.") else doPlayerSendCancel(cid, "You need at least one Water Stone and a King's Rock to evolve this pokemon.") end return true end if evolution ~= 0 then doEvolvePokemon(cid, item2, theevo, evolution, water) return true end elseif item.itemid == punch then minlevel = pokes["Poliwrath"].level if not allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "This is not the required stone to evolve this pokemon.") return true end if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, water) <= 0 then doPlayerSendCancel(cid, "You need at least one Punch Stone and one Water Stone to evolve this pokemon.") return true end local theevo = "Poliwrath" doEvolvePokemon(cid, item2, theevo, water, punch) elseif item.itemid == king then minlevel = pokes["Politoed"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, water) <= 0 then doPlayerSendCancel(cid, "You need at least one Punch Stone and one King's Rock to evolve this pokemon.") return true end local theevo = "Politoed" doEvolvePokemon(cid, item2, theevo, water, king) end elseif getPokemonName(item2.uid) == "Shiny Poliwhirl" then local evolution = 0 local theevo = "" local nlevel = 45 if item.itemid == swater then if getPokemonLevel(item2.uid) >= 36 and getPlayerItemCount(cid, punch) >= 1 and allEvolutionsCanBeInduzedByStone then evolution = spunch theevo = "Shiny Poliwrath" else if allEvolutionsCanBeInduzedByStone then if getPlayerItemCount(cid, punch) <= 0 then doPlayerSendCancel(cid, "You need a shining water stone and a shining punch stone to evolve this pokemon.") return true end else end end minlevel = pokes[theevo].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, spunch) >= 1 and allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "Please, use your shining Punch Stone to evolve this pokemon to a Poliwrath.") return true end if evolution == 0 then if allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "You need at least one shining Water Stone and a shining Punch Stone to evolve this pokemon.") else doPlayerSendCancel(cid, "You need at least one shining Water Stone evolve this pokemon.") end return true end if evolution ~= 0 then doEvolvePokemon(cid, item2, theevo, evolution, swater) return true end elseif item.itemid == spunch then minlevel = pokes["Shiny Poliwrath"].level if not allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "This is not the required shining stone to evolve this pokemon.") return true end if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, swater) <= 0 then doPlayerSendCancel(cid, "You need at least one shining Punch Stone and one shining Water Stone to evolve this pokemon.") return true end local theevo = "Shiny Poliwrath" doEvolvePokemon(cid, item2, theevo, swater, spunch) end elseif getPokemonName(item2.uid) == "Gloom" then if item.itemid == leaf then local theevo = "" local evolution = 0 if getPlayerItemCount(cid, venom) >= 1 and getPlayerItemCount(cid, sun) >= 1 then doPlayerSendCancel(cid, "Please, use your Venom Stone to evolve this pokemon to a Vileplume, or a Sun Stone to a Bellossom.") return true end if getPlayerItemCount(cid, venom) <= 0 and getPlayerItemCount(cid, sun) <= 0 then doPlayerSendCancel(cid, "You need at least one Leaf Stone, and a Sun Stone (Bellossom) or a Venom Stone (Vileplume) to evolve this pokemon.") return true end if getPlayerItemCount(cid, venom) >= 1 then theevo = "Vileplume" evolution = venom elseif getPlayerItemCount(cid, sun) >= 1 then theevo = "Bellossom" evolution = sun end minlevel = pokes[theevo].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, theevo, evolution, leaf) elseif item.itemid == venom then minlevel = pokes["Vileplume"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, leaf) <= 0 then doPlayerSendCancel(cid, "You need at least one Leaf Stone and one Venom Stone to evolve this pokemon.") return true end doEvolvePokemon(cid, item2, "Vileplume", venom, leaf) elseif item.itemid == sun then minlevel = pokes["Bellossom"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, leaf) <= 0 then doPlayerSendCancel(cid, "You need at least one Leaf Stone and one Sun Stone to evolve this pokemon.") return true end doEvolvePokemon(cid, item2, "Bellossom", sun, leaf) end elseif getPokemonName(item2.uid) == "Shiny Gloom" then if item.itemid == sleaf then local theevo = "" local evolution = 0 if getPlayerItemCount(cid, svenom) >= 1 then doPlayerSendCancel(cid, "Please, use your shining Venom Stone to evolve this pokemon to a Shiny Vileplume.") return true end if getPlayerItemCount(cid, svenom) <= 0 then doPlayerSendCancel(cid, "You need at least one shining Leaf Stone or a shining Venom Stone to evolve this pokemon.") return true end if getPlayerItemCount(cid, svenom) >= 1 then theevo = "Shiny Vileplume" evolution = svenom end minlevel = pokes[theevo].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, theevo, evolution, sleaf) elseif item.itemid == svenom then minlevel = pokes["Shiny Vileplume"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, sleaf) <= 0 then doPlayerSendCancel(cid, "You need at least one Leaf Stone and one shining Venom Stone to evolve this pokemon.") return true end doEvolvePokemon(cid, item2, "Shiny Vileplume", svenom, sleaf) end elseif getPokemonName(item2.uid) == "Slowpoke" then if item.itemid == enigma then if not allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "This is not the required stone to evolve this pokemon.") return true end minlevel = pokes["Slowbro"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, "Slowbro", enigma, 0) elseif item.itemid == king then minlevel = pokes["Slowking"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, "Slowking", king, 0) end elseif getPokemonName(item2.uid) == "Shiny Slowpoke" then if item.itemid == senigma then if not allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "This is not the required stone to evolve this pokemon.") return true end minlevel = pokes["Shiny Slowbro"].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, "Shiny Slowbro", senigma, 0) end elseif getPokemonName(item2.uid) == "Tyrogue" then if not allEvolutionsCanBeInduzedByStone then doPlayerSendCancel(cid, "This pokemon doesn't evolve using stones.") return true end local evolution = "" if getOffense(item2.uid) == getDefense(item2.uid) then evolution = "Hitmontop" elseif getOffense(item2.uid) > getDefense(item2.uid) then evolution = "Hitmonlee" else evolution = "Hitmonchan" end minlevel = pokes[evolution].level if getPlayerLevel(cid) < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, evolution, punch, 0) end return true end local count = poevo[getPokemonName(item2.uid)].count local stnid = poevo[getPokemonName(item2.uid)].stoneid local stnid2 = poevo[getPokemonName(item2.uid)].stoneid2 local evo = poevo[getPokemonName(item2.uid)].evolution local nlevel = poevo[getPokemonName(item2.uid)].level local count = poevo[getPokemonName(item2.uid)].count local stnid = poevo[getPokemonName(item2.uid)].stoneid local stnid2 = poevo[getPokemonName(item2.uid)].stoneid2 local evo = poevo[getPokemonName(item2.uid)].evolution local nlevel = poevo[getPokemonName(item2.uid)].level if stnid2 > 1 and (getPlayerItemCount(cid, stnid2) < count or getPlayerItemCount(cid, stnid) < count) then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(stnid).." and one "..getItemNameById(stnid2).." to evolve this pokemon!") return true end if getPlayerItemCount(cid, stnid) < count then local str = "" if count >= 2 then str = "s" end return doPlayerSendCancel(cid, "You need at least "..count.." "..getItemNameById(stnid)..""..str.." to evolve this pokemon!") end minlevel = pokes[evo].level if getPlayerLevel(cid) < minlevel and evolutionByStoneRequireLevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if count >= 2 then stnid2 = stnid end doEvolvePokemon(cid, item2, evo, stnid, stnid2) return TRUE end Agora evite ficar postando em 3000000x topicos esses erros. crie 1 TOPICO e envie aos membros que possivelmente possão te ajudar. pois se continuar a postar sequencialmente a mesma coisa em outros topicos podera ser alertado por FLOOD. Atenciosamente, Stigal. Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @webmasterxd o problema esta em lib/configuration.lua... ["Totodile"] = {level = 18, evolution = "Croconaw", count = 1, stoneid = 11442, stoneid2 = 0}, --alterado v1.7 ["Croconaw"] = {level = 30, evolution = "Feraligatr", count = 2, stoneid = 11442, stoneid2 = 0}, --alterado v1.7 no teu vai tar.. "Croconow"... eh soh trocar e deixar assim.. vlw pelo report! @galhem se tas usando a versao 1.6/2.6+ party agora eh soh pra upar em conjunto... o duel agora eh por Order! de order na pessoa q tu quer duelar e entao escolha qnts pokes vao ser usados e entao a outra pessoa tem q usar Order em ti tb para aceitar o duel! @Zandor ter tem... mas eh complicado... ;/ Link para o comentário Compartilhar em outros sites More sharing options...
Daniel Bighouse 31 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 Problema 60% é de tibia mais lembrando que parte disto é itens como chão, parede, telhado, grama, nature, etc... Então não é bem certo 60%. E mesmo assim 62.100 sprites para mim é muito pouco onde eu quero colocar todos os 646pokes + 646 shiny = +- 64.500 sprites!!!! O @Maguito me falou que se tiver sources dá para aumentar o espaço. Que se puder peço que faça um tutorial. Pois eu tenho todos os pokémons só me falta espaço! Vc Esta Tentando Add As Sprites Recortadas Ou Ja Esta Em IDC? ABRASS Aprites prontas só precisa adicionar elas! Link para o comentário Compartilhar em outros sites More sharing options...
Dudu08267 7 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 (editado) Slicer to com esse erro aki: [23/09/2012 16:19:10] [Error - TalkAction Interface] [23/09/2012 16:19:11] data/talkactions/scripts/move1.lua:onSay [23/09/2012 16:19:11] Description: [23/09/2012 16:19:11] data/lib/pokemon moves.lua:120: attempt to perform arithmetic on field 'f' (a nil value) [23/09/2012 16:19:11] stack traceback: [23/09/2012 16:19:11] data/lib/pokemon moves.lua:120: in function 'docastspell' [23/09/2012 16:19:11] data/talkactions/scripts/move1.lua:172: in function <data/talkactions/scripts/move1.lua:20> E dentro do jogo: Dudu: Shiny Gyarados, use Dragon Breath! Dudu: m6 E os pokémons n estão soltando as magias. Editado Setembro 23, 2012 por Dudu08267 Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @Dudu08267 pegase a nova tabela de move do lib/configuration.lua? --' Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 Slicer to com esse erro aki: [23/09/2012 16:19:10] [Error - TalkAction Interface] [23/09/2012 16:19:11] data/talkactions/scripts/move1.lua:onSay [23/09/2012 16:19:11] Description: [23/09/2012 16:19:11] data/lib/pokemon moves.lua:120: attempt to perform arithmetic on field 'f' (a nil value) [23/09/2012 16:19:11] stack traceback: [23/09/2012 16:19:11] data/lib/pokemon moves.lua:120: in function 'docastspell' [23/09/2012 16:19:11] data/talkactions/scripts/move1.lua:172: in function <data/talkactions/scripts/move1.lua:20> E dentro do jogo: Dudu: Shiny Gyarados, use Dragon Breath! Dudu: m6 E os pokémons n estão soltando as magias. Move1.lua troque por: local msgs = {"use ", ""} function doAlertReady(cid, id, movename, n, cd) if not isCreature(cid) then return true end local myball = getPlayerSlotItem(cid, 8) if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!") return true end local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) if not p or #p <= 0 then return true end for a = 1, #p do if getItemAttribute(p[a], cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!") return true end end end function onSay(cid, words, param, channel) if param ~= "" then return true end if string.len(words) > 3 then return true end if #getCreatureSummons(cid) == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.") return 0 end --alterado v1.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then name = getPlayerStorageValue(mypoke, 1010) --edited else name = getCreatureName(mypoke) end --local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke) local it = string.sub(words, 2, 3) local move = movestable[name].move1 if getPlayerStorageValue(mypoke, 212123) >= 1 then cdzin = "cm_move"..it.."" else cdzin = "move"..it.."" --alterado v1.5 end if it == "2" then move = movestable[name].move2 elseif it == "3" then move = movestable[name].move3 elseif it == "4" then move = movestable[name].move4 elseif it == "5" then move = movestable[name].move5 elseif it == "6" then move = movestable[name].move6 elseif it == "7" then move = movestable[name].move7 elseif it == "8" then move = movestable[name].move8 elseif it == "9" then move = movestable[name].move9 elseif it == "10" then move = movestable[name].move10 elseif it == "11" then move = movestable[name].move11 elseif it == "12" then move = movestable[name].move12 elseif it == "13" then move = movestable[name].move13 end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end if getPlayerLevel(cid) < move.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.") return true end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.") return 0 end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.") return 0 end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end if move.name == "Team Slice" or move.name == "Team Claw" and #getCreatureSummons(cid) < 2 then --alterado v1.5 doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return 0 end if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["too bad"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then local target = getCreatureTarget(cid) --alterado v1.5 doSendMagicEffect(getThingPos(target), 211) doSendAnimatedText(getThingPos(target), "TOO BAD", 215) doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false) doSendMagicEffect(getThingPos(target), 211) doFaceCreature(target, getThingPos(mypoke)) return 0 end if move.target == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.") return 0 end if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then return 0 end if getCreatureHealth(getCreatureTarget(cid)) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.") return 0 end if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then return 0 end end local newid = 0 if isSleeping(mypoke) or isSilence(mypoke) then --alterado v1.5 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.") return 0 else newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) local mypoke22 = getCreatureSummons(cid)[2] or 0 --edited team local mypoke33 = getCreatureSummons(cid)[3] or 0 addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin) if mypoke33 ~= 0 and getPlayerStorageValue(cid, 637501) >= 1 then if move.name ~= "Team Slice" and move.name ~= "Team Claw" then --alterado v1.5 docastspell(mypoke33, move.name) docastspell(mypoke22, move.name) end elseif mypoke22 ~= 0 and getPlayerStorageValue(cid, 637501) >= 1 then --edited team if move.name ~= "Team Slice" and move.name ~= "Team Claw" then --alterado v1.5 docastspell(mypoke22, move.name) end end docastspell(mypoke, move.name) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Pokemon moves.lua troke por: --[[ *** functions *** •doMoveInAreaWithMiss(cid, area, effect, cd, atkName, paralize, element, min, max) •Da uma atk com efeito que deixa os alvos com efeito de 'MISS'... •doMoveInArea(cid, rounds, effect, area, min, max, element, atkName) •Da um atk 'nomal' e tb atks que deixam os alvos com efeito de 'Confuso'... •doMoveInAreaMulti(cid, effDistance, effMagic, areaEff, areaDano, element, min, max) •Da um atk estilo 'Multi-Kick, Bullet Seed' e afins... --]] const_distance_delay = 56 function getMasterTarget(cid) if isSummon(cid) then return getCreatureTarget(getCreatureMaster(cid)) else return getCreatureTarget(cid) end end function docastspell(cid, spell, mina, maxa) local target = 0 local getDistDelay = 0 if isCreature(getMasterTarget(cid)) then target = getMasterTarget(cid) getDistDelay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay end if not isCreature(cid) or getCreatureHealth(cid) <= 0 then return false end if isSleeping(cid) then return true end if isMonster(cid) and not isSummon(cid) then if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end doCreatureAddCondition(cid, wildexhaust) end local mydir = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local min = 0 local max = 0 if ehMonstro(cid) and isCreature(getMasterTarget(cid)) and isInArray(specialabilities["too bad"], getCreatureName(getMasterTarget(cid))) and math.random(1, 100) <= 10 then local target = getMasterTarget(cid) --alterado v1.5 doSendMagicEffect(getThingPosWithDebug(target), 211) doSendAnimatedText(getThingPosWithDebug(target), "TOO BAD", 215) doTeleportThing(target, getClosestFreeTile(target, getThingPosWithDebug(cid)), false) doSendMagicEffect(getThingPosWithDebug(target), 211) doFaceCreature(target, getThingPosWithDebug(cid)) return false end --- FEAR / ROAR / SILENCE --- if getPlayerStorageValue(cid, conds["Fear"]) >= 1 or getPlayerStorageValue(cid, conds["Silence"]) >= 1 then return true --alterado v1.5!! end ---------------------------- if mina and maxa then min = math.abs(mina) max = math.abs(maxa) elseif not isPlayer(cid) then if movesinfo[spell] then min = getSpecialAttack(cid) * movesinfo[spell].f * 0.1 max = min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)) if not isSummon(cid) then doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER) end if isNpcSummon(cid) then local mnn = {" use ", " "} local use = mnn[math.random(#mnn)] doCreatureSay(getCreatureMaster(cid), getPlayerStorageValue(cid, 1007)..","..use..""..doCorrectString(spell).."!", 1) end else print("Error trying to use move "..spell..", move not specified in moves table.") end end --- FOCUS ---------------------------------- if getPlayerStorageValue(cid, 253) >= 0 and movesinfo[spell] and movesinfo[spell].f ~= 0 then min = min * 2 max = max * 2 setPlayerStorageValue(cid, 253, -1) end --- Shredder Team ------------------------------- if getPlayerStorageValue(cid, 637501) >= 1 then if #getCreatureSummons(cid) == 1 then docastspell(getCreatureSummons(cid)[1], spell) elseif #getCreatureSummons(cid) == 2 then docastspell(getCreatureSummons(cid)[1], spell) docastspell(getCreatureSummons(cid)[2], spell) end elseif getPlayerStorageValue(cid, 637500) >= 1 then min = 0 max = 0 end ------------------Miss System-------------------------- local cd = getPlayerStorageValue(cid, conds["Miss"]) local cd2 = getPlayerStorageValue(cid, conds["Confusion"]) --alterado v1.5 local cd3 = getPlayerStorageValue(cid, conds["Stun"]) if cd >= 0 or cd2 >= 0 or cd3 >= 0 then if not isInArray({"Aromateraphy", "Emergency Call", "Magical Leaf", "Sunny Day", "Safeguard"}, spell) then if math.random(1, 100) > 30 then doSendAnimatedText(getThingPosWithDebug(cid), "MISS", 215) return false end end end ---------------GHOST DAMAGE----------------------- ghostDmg = GHOSTDAMAGE psyDmg = PSYCHICDAMAGE if getPlayerStorageValue(cid, 999457) >= 1 then --alterado v1.5 addEvent(setPlayerStorageValue, 50, cid, 999457, -1) end ---------------SelfDestruction----------------- canDoSelf = true ----------------REFLECT------------------------- local uid = checkAreaUid(getCreaturePosition(cid), BigArea2, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then if getPlayerStorageValue(cid, 21099) >= 1 then if getPlayerStorageValue(pid, 21101) >= 1 then target = pid setPlayerStorageValue(cid, 21099, 0) setPlayerStorageValue(pid, 21101, 0) if getCreatureName(cid) == "Wobbuffet" then doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v1.4 end end elseif getPlayerStorageValue(pid, 21099) >= 1 and pid ~= cid then --alterado v1.5 if not isInArray({"Reflect", "Team Slice", "Magic Coat", "Shredder Team", "Double Team", "Team Claw"}, spell) then addEvent(docastspell, 100, pid, spell) doSendMagicEffect(getThingPosWithDebug(pid), 135) doSendAnimatedText(getThingPosWithDebug(pid), "REFLECT", COLOR_GRASS) setPlayerStorageValue(cid, 21101, 1) canDoSelf = false min = 0 max = 0 end end end end -------------------------------------------------- if spell == "Reflect" or spell == "Magic Coat" then if spell == "Magic Coat" then eff = 11 else eff = 135 end doSendMagicEffect(getThingPosWithDebug(cid), eff) setPlayerStorageValue(cid, 21099, 1) elseif spell == "Quick Attack" then doSendMagicEffect(getThingPosWithDebug(cid), 211) local x = getClosestFreeTile(cid, getThingPosWithDebug(target)) doTeleportThing(cid, x, false) doFaceCreature(cid, getThingPosWithDebug(target)) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 3) elseif spell == "Razor Leaf" or spell == "Magical Leaf" then local eff = spell == "Razor Leaf" and 8 or 21 local function throw(cid, target) if not isCreature(cid) or not isCreature(target) then return false end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), eff) doDanoWithProtectWithDelay(cid, target, GRASSDAMAGE, min, max, 245) end addEvent(throw, 0, cid, target) addEvent(throw, 350, cid, target) elseif spell == "Vine Whip" then local area = getThingPosWithDebug(cid) local dano = {} local effect = 255 if mydir == 0 then area.x = area.x + 1 area.y = area.y - 1 dano = whipn effect = 80 elseif mydir == 1 then area.x = area.x + 2 area.y = area.y + 1 dano = whipe effect = 83 elseif mydir == 2 then area.x = area.x + 1 area.y = area.y + 2 dano = whips effect = 81 elseif mydir == 3 then area.x = area.x - 1 area.y = area.y + 1 dano = whipw effect = 82 end doSendMagicEffect(area, effect) doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(cid), dano, -min, -max, 255) elseif spell == "Headbutt" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 118) elseif spell == "Leech Seed" then local ret = {} ret.id = target ret.attacker = cid ret.cd = 5 ret.check = getPlayerStorageValue(target, conds["Leech"]) ret.damage = isSummon(cid) and getMasterLevel(cid)+getPokemonBoost(cid) or getPokemonLevel(cid) ret.cond = "Leech" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 1) addEvent(doCondition2, 1000, ret) elseif spell == "Solar Beam" then local function useSolarBeam(cid) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end local effect1 = 255 local effect2 = 255 local effect3 = 255 local effect4 = 255 local effect5 = 255 local area = {} local pos1 = getThingPosWithDebug(cid) local pos2 = getThingPosWithDebug(cid) local pos3 = getThingPosWithDebug(cid) local pos4 = getThingPosWithDebug(cid) local pos5 = getThingPosWithDebug(cid) if getCreatureLookDir(cid) == 1 then effect1 = 4 effect2 = 10 effect3 = 10 effect4 = 10 effect5 = 26 pos1.x = pos1.x + 2 pos1.y = pos1.y + 1 pos2.x = pos2.x + 3 pos2.y = pos2.y + 1 pos3.x = pos3.x + 4 pos3.y = pos3.y + 1 pos4.x = pos4.x + 5 pos4.y = pos4.y + 1 pos5.x = pos5.x + 6 pos5.y = pos5.y + 1 area = solare elseif getCreatureLookDir(cid) == 0 then effect1 = 36 effect2 = 37 effect3 = 37 effect4 = 38 pos1.x = pos1.x + 1 pos1.y = pos1.y - 1 pos2.x = pos2.x + 1 pos2.y = pos2.y - 3 pos3.x = pos3.x + 1 pos3.y = pos3.y - 4 pos4.x = pos4.x + 1 pos4.y = pos4.y - 5 area = solarn elseif getCreatureLookDir(cid) == 2 then effect1 = 46 effect2 = 50 effect3 = 50 effect4 = 59 pos1.x = pos1.x + 1 pos1.y = pos1.y + 2 pos2.x = pos2.x + 1 pos2.y = pos2.y + 3 pos3.x = pos3.x + 1 pos3.y = pos3.y + 4 pos4.x = pos4.x + 1 pos4.y = pos4.y + 5 area = solars elseif getCreatureLookDir(cid) == 3 then effect1 = 115 effect2 = 162 effect3 = 162 effect4 = 162 effect5 = 163 pos1.x = pos1.x - 1 pos1.y = pos1.y + 1 pos2.x = pos2.x - 3 pos2.y = pos2.y + 1 pos3.x = pos3.x - 4 pos3.y = pos3.y + 1 pos4.x = pos4.x - 5 pos4.y = pos4.y + 1 pos5.x = pos5.x - 6 pos5.y = pos5.y + 1 area = solarw end if effect1 ~= 255 then doSendMagicEffect(pos1, effect1) end if effect2 ~= 255 then doSendMagicEffect(pos2, effect2) end if effect3 ~= 255 then doSendMagicEffect(pos3, effect3) end if effect4 ~= 255 then doSendMagicEffect(pos4, effect4) end if effect5 ~= 255 then doSendMagicEffect(pos5, effect5) end doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(cid), area, -min, -max, 255) doRegainSpeed(cid) setPlayerStorageValue(cid, 3644587, -1) end local function ChargingBeam(cid) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end local tab = {} for x = -2, 2 do for y = -2, 2 do local pos = getThingPosWithDebug(cid) pos.x = pos.x + x pos.y = pos.y + y if pos.x ~= getThingPosWithDebug(cid).x and pos.y ~= getThingPosWithDebug(cid).y then table.insert(tab, pos) end end end doSendDistanceShoot(tab[math.random(#tab)], getThingPosWithDebug(cid), 37) end doChangeSpeed(cid, -getCreatureSpeed(cid)) setPlayerStorageValue(cid, 3644587, 1) for r = 1, 100 do addEvent(ChargingBeam, r*9, cid) end addEvent(useSolarBeam, 1000, cid) elseif spell == "Sleep Powder" then local calc = math.floor(getPokemonLevel(cid) / 20) local v1 = 6 local v2 = v1 + calc doAreaCombatHealth(cid, SLEEP_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -v1, -v2, 27) elseif spell == "Stun Spore" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 0 ret.check = 0 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 85, confusion, GRASSDAMAGE, 0, 0, spell, ret) elseif spell == "Poison Powder" then doAreaCombatHealth(cid, POISON_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -6, -15, 84) elseif spell == "Bullet Seed" then --cid, effDist, effDano, areaEff, areaDano, element, min, max doMoveInAreaMulti(cid, 1, 45, bullet, bulletDano, GRASSDAMAGE, min, max) elseif spell == "Body Slam" then doBodyPush(cid, target, true) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 3) elseif spell == "Leaf Storm" or tonumber(spell) == 73 then addEvent(doDanoWithProtect, 150, cid, GRASSDAMAGE, getThingPosWithDebug(cid), grassarea, -min, -max, 0) local pos = getThingPosWithDebug(cid) local function doSendLeafStorm(cid, pos) --alterado!! if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 8) end for a = 1, 100 do local lugar = {x = pos.x + math.random(-6, 6), y = pos.y + math.random(-5, 5), z = pos.z} addEvent(doSendLeafStorm, a * 2, cid, lugar) end elseif spell == "Scratch" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 142) elseif spell == "Ember" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoWithProtectWithDelay(cid, target, FIREDAMAGE, min, max, 15) elseif spell == "Flamethrower" then local flamepos = getThingPosWithDebug(cid) local effect = 255 local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) if a == 0 then flamepos.x = flamepos.x+1 flamepos.y = flamepos.y-1 effect = 106 elseif a == 1 then flamepos.x = flamepos.x+3 flamepos.y = flamepos.y+1 effect = 109 elseif a == 2 then flamepos.x = flamepos.x+1 flamepos.y = flamepos.y+3 effect = 107 elseif a == 3 then flamepos.x = flamepos.x-1 flamepos.y = flamepos.y+1 effect = 108 end doMoveInArea2(cid, 0, flamek, FIREDAMAGE, min, max, spell) doSendMagicEffect(flamepos, effect) elseif spell == "Fireball" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) addEvent(doDanoWithProtect, 200, cid, FIREDAMAGE, getThingPosWithDebug(target), waba, min, max, 5) elseif spell == "Fire Fang" then doSendMagicEffect(getThingPosWithDebug(target), 138) doDanoWithProtectWithDelay(cid, target, FIREDAMAGE, min, max, 15) elseif spell == "Fire Blast" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, FIREDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, FIREDAMAGE, area, whirl3, -min, -max, 35) end end for a = 0, 4 do local t = { [0] = {60, {x=p.x, y=p.y-(a+1), z=p.z}}, --alterado v1.4 [1] = {61, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {62, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {63, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1]) end elseif spell == "Rage" then local ret = {} ret.id = cid ret.cd = 15 ret.eff = 13 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Raging Blast" then --cid, effDist, effDano, areaEff, areaDano, element, min, max doMoveInAreaMulti(cid, 3, 6, bullet, bulletDano, FIREDAMAGE, min, max) elseif spell == "Dragon Claw" then doDanoWithProtect(cid, DRAGONDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 141) elseif spell == "Wing Attack" or spell == "Steel Wing" then local effectpos = getThingPosWithDebug(cid) local effect = 255 local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) if a == 0 then effect = spell == "Steel Wing" and 251 or 128 effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y - 1 --alterado v1.4 elseif a == 1 then effectpos.x = effectpos.x + 2 effectpos.y = effectpos.y + 1 effect = spell == "Steel Wing" and 253 or 129 elseif a == 2 then effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y + 2 effect = spell == "Steel Wing" and 252 or 131 elseif a == 3 then effectpos.x = effectpos.x - 1 effectpos.y = effectpos.y + 1 effect = spell == "Steel Wing" and 254 or 130 end doSendMagicEffect(effectpos, effect) doMoveInArea2(cid, 0, wingatk, FLYINGDAMAGE, min, max, spell) elseif spell == "Magma Storm" then local eff = {6, 35, 35, 6} local area = {flames1, flames2, flames3, flames4} addEvent(doMoveInArea2, 2*450, cid, 2, flames0, FIREDAMAGE, min, max, spell) for i = 0, 3 do addEvent(doMoveInArea2, i*450, cid, eff[i+1], area[i+1], FIREDAMAGE, min, max, spell) end elseif spell == "Bubbles" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoWithProtectWithDelay(cid, target, WATERDAMAGE, min, max, 25) elseif spell == "Clamp" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoWithProtectWithDelay(cid, target, WATERDAMAGE, min, max, 53) elseif spell == "Water Gun" then if mydir == 0 then doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg1n, -min, -max, 74) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg2n, -min, -max, 75) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg3n, -min, -max, 76) elseif mydir == 2 then doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg1s, -min, -max, 77) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg2s, -min, -max, 75) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg3s, -min, -max, 78) elseif mydir == 1 then doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg1e, -min, -max, 69) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg2e, -min, -max, 70) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg3e, -min, -max, 71) elseif mydir == 3 then doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg1w, -min, -max, 72) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg2w, -min, -max, 70) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), wg3w, -min, -max, 73) end elseif spell == "Waterball" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoWithProtectWithDelay(cid, target, WATERDAMAGE, min, max, 68, waba) elseif spell == "Aqua Tail" then local function rebackSpd(cid, sss) if not isCreature(cid) then return true end doChangeSpeed(cid, sss) setPlayerStorageValue(cid, 446, -1) end local x = getCreatureSpeed(cid) doFaceOpposite(cid) doChangeSpeed(cid, -x) addEvent(rebackSpd, 400, cid, x) setPlayerStorageValue(cid, 446, 1) doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 68) elseif spell == "Hydro Cannon" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, WATERDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, WATERDAMAGE, area, whirl3, -min, -max, 68) end end for a = 0, 4 do local t = { --alterado v1.4 [0] = {64, {x=p.x, y=p.y-(a+1), z=p.z}}, [1] = {65, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {66, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {67, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1]) end elseif spell == "Harden" or spell == "Calm Mind" or spell == "Defense Curl" or spell == "Charm" then --alterado v1.4 if spell == "Calm Mind" then eff = 133 elseif spell == "Charm" then eff = 147 --efeito n eh esse.. e n sei se eh soh bonus de def, ou sp.def tb.. ;x else eff = 144 end local ret = {} ret.id = cid ret.cd = 8 ret.eff = eff ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Bubble Blast" then --cid, effDist, effDano, areaEff, areaDano, element, min, max doMoveInAreaMulti(cid, 2, 68, bullet, bulletDano, WATERDAMAGE, min, max) elseif spell == "Skull Bash" then doMoveInArea2(cid, 118, reto5, NORMALDAMAGE, min, max, spell) elseif spell == "Hydropump" then local pos = getThingPosWithDebug(cid) local function doSendBubble(cid, pos) if not isCreature(cid) then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 2) doSendMagicEffect(pos, 53) end --alterado!! for a = 1, 20 do local lugar = {x = pos.x + math.random(-4, 4), y = pos.y + math.random(-3, 3), z = pos.z} addEvent(doSendBubble, a * 25, cid, lugar) end addEvent(doDanoWithProtect, 150, cid, WATERDAMAGE, pos, waterarea, -min, -max, 0) elseif spell == "String Shot" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 23) local ret = {} ret.id = target ret.cd = 6 ret.eff = 137 ret.check = getPlayerStorageValue(target, conds["Stun"]) ret.spell = spell ret.cond = "Stun" addEvent(doCondition2, 100, ret) elseif spell == "Bug Bite" then doSendMagicEffect(getThingPosWithDebug(target), 244) doDanoWithProtectWithDelay(cid, target, BUGDAMAGE, min, max, 8) elseif spell == "Super Sonic" then local rounds = math.random(4, 7) rounds = rounds + math.floor(getPokemonLevel(cid) / 35) doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 32) local ret = {} ret.id = target ret.cd = rounds ret.check = getPlayerStorageValue(target, conds["Confusion"]) ret.cond = "Confusion" addEvent(doCondition2, 100, ret) elseif spell == "Whirlwind" then area = {SL1, SL2, SL3, SL4} for i = 0, 3 do addEvent(doMoveInArea2, i*300, cid, 42, area[i+1], FLYINGDAMAGE, min, max, spell) end elseif spell == "Psybeam" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local t = { [0] = 57, [1] = 234, [2] = 58, [3] = 209, } doMoveInArea2(cid, t[a], reto4, psyDmg, min, max, spell) --alterado v1.4 elseif spell == "Sand Attack" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local t = { [0] = 120, [1] = 121, [2] = 122, [3] = 119, } local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 34 ret.check = 0 ret.spell = spell ret.cond = "Miss" doCreatureSetLookDir(cid, a) --sera? '-' stopNow(cid, 1000) doMoveInArea2(cid, t[a], reto5, GROUNDDAMAGE, 0, 0, spell, ret) elseif spell == "Confusion" or spell == "Night Shade" then local rounds = math.random(4, 7) --rever area... rounds = rounds + math.floor(getPokemonLevel(cid) / 35) if spell == "Confusion" then dano = psyDmg --alterado v1.4 else dano = ghostDmg end local ret = {} ret.id = 0 ret.check = 0 ret.cd = rounds ret.cond = "Confusion" doMoveInArea2(cid, 136, selfArea1, dano, min, max, spell, ret) elseif spell == "Horn Attack" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 15) doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 3) elseif spell == "Poison Sting" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 15) doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 8) elseif spell == "Fury Cutter" or spell == "Red Fury" then local effectpos = getThingPosWithDebug(cid) local effect = 255 local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) if a == 0 then if getCreatureName(cid) == "Scizor" then effect = 236 else effect = 128 end effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y - 1 elseif a == 1 then effectpos.x = effectpos.x + 2 effectpos.y = effectpos.y + 1 if getCreatureName(cid) == "Scizor" then effect = 232 else effect = 129 end elseif a == 2 then effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y + 2 if getCreatureName(cid) == "Scizor" then effect = 233 else effect = 131 end elseif a == 3 then effectpos.x = effectpos.x - 1 effectpos.y = effectpos.y + 1 if getCreatureName(cid) == "Scizor" then effect = 224 else effect = 130 end end local function doFury(cid, effect) if not isCreature(cid) then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendMagicEffect(effectpos, effect) doMoveInArea2(cid, 2, wingatk, BUGDAMAGE, min, max, spell) end addEvent(doFury, 0, cid, effect) addEvent(doFury, 350, cid, effect) elseif spell == "Pin Missile" then doMoveInAreaMulti(cid, 13, 7, bullet, bulletDano, BUGDAMAGE, min, max) elseif spell == "Strafe" or spell == "Agility" then local ret = {} ret.id = cid ret.cd = 15 ret.eff = 14 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Gust" then doMoveInArea2(cid, 42, reto5, FLYINGDAMAGE, min, max, spell) elseif spell == "Drill Peck" then doDanoWithProtect(cid, FLYINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 148) elseif spell == "Tornado" then local pos = getThingPosWithDebug(cid) local function doSendTornado(cid, pos) if not isCreature(cid) then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 22) doSendMagicEffect(pos, 42) end for b = 1, 3 do for a = 1, 20 do local lugar = {x = pos.x + math.random(-4, 4), y = pos.y + math.random(-3, 3), z = pos.z} addEvent(doSendTornado, a * 75, cid, lugar) end end doDanoWithProtect(cid, FLYINGDAMAGE, pos, waterarea, -min, -max, 0) elseif spell == "Bite" or tonumber(spell) == 5 then doDanoWithProtect(cid, DARKDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 146) elseif spell == "Super Fang" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 244) elseif spell == "Poison Fang" then doSendMagicEffect(getThingPosWithDebug(target), 244) doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 114) elseif spell == "Sting Gun" then local function doGun(cid, target) if not isCreature(cid) or not isCreature(target) then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 13) doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 8) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 200, cid, 3644587, 1) for i = 0, 2 do addEvent(doGun, i*100, cid, target) end elseif spell == "Acid" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 14) doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 20) elseif spell == "Fear" or spell == "Roar" then local ret = {} ret.id = 0 ret.cd = 5 ret.check = 0 ret.skill = spell ret.cond = "Fear" doMoveInArea2(cid, 0, confusion, DARKDAMAGE, 0, 0, spell, ret) elseif spell == "Iron Tail" then local function rebackSpd(cid, sss) if not isCreature(cid) then return true end doChangeSpeed(cid, sss) setPlayerStorageValue(cid, 446, -1) end local x = getCreatureSpeed(cid) doFaceOpposite(cid) doChangeSpeed(cid, -x) addEvent(rebackSpd, 400, cid, x) setPlayerStorageValue(cid, 446, 1) doDanoWithProtect(cid, STEELDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 160) elseif spell == "Thunder Shock" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 40) doDanoWithProtectWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) elseif spell == "Thunder Bolt" then local function doThunderHit(cid, target) if not isCreature(target) or not isCreature(cid) then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 48) end local function doThunderFall(cid, frompos, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local ry = math.abs(frompos.y - pos.y) doSendDistanceShoot(frompos, getThingPosWithDebug(target), 41) addEvent(doThunderHit, ry * 11, cid, target) end local function doThunderUp(cid, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local mps = getThingPosWithDebug(cid) local xrg = math.floor((pos.x - mps.x) / 2) local topos = mps topos.x = topos.x + xrg local rd = 7 topos.y = topos.y - rd doSendDistanceShoot(getThingPosWithDebug(cid), topos, 41) addEvent(doThunderFall, rd * 49, cid, topos, target) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 350, cid, 3644587, -1) for thnds = 1, 2 do addEvent(doThunderUp, thnds * 155, cid, target) end elseif spell == "Thunder Wave" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 48 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 48, tw1, ELECTRICDAMAGE, min, max, spell, ret) elseif spell == "Thunder" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 48 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 48, thunderr, ELECTRICDAMAGE, min, max, spell, ret) elseif spell == "Mega Kick" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtectWithDelay(cid, target, FIGHTINGDAMAGE, min, max, 113) elseif spell == "Thunder Punch" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doSendMagicEffect(getThingPosWithDebug(target), 112) doDanoWithProtectWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) elseif spell == "Electric Storm" then local master = isSummon(cid) and getCreatureMaster(cid) or cid local function doFall(cid) for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, ELECTRICDAMAGE, 41, 48) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, 41) end addEvent(doFall, 450, cid) local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 48 ret.spell = spell ret.cond = "Stun" addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ELECTRICDAMAGE, min, max, spell, ret) elseif spell == "Mud Shot" or spell == "Mud Slap" then local contudion = spell == "Mud Shot" and "Miss" or "Stun" local ret = {} ret.id = target ret.cd = 9 ret.eff = 34 ret.check = getPlayerStorageValue(target, conds[contudion]) ret.spell = spell ret.cond = contudion doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 6) addEvent(doDanoWithProtect, 100, cid, GROUNDDAMAGE, getThingPosWithDebug(target), 0, min, max, 34) addEvent(doCondition2, 100, ret) elseif spell == "Rollout" then local outfits = { ["Voltorb"] = {lookType = 638}, ["Electrode"] = {lookType = 637}, ["Sandshrew"] = {lookType = 635}, ["Sandslash"] = {lookType = 636}, ["Phanpy"] = {lookType = 1005}, ["Donphan"] = {lookType = 1456}, ["Miltank"] = {lookType = 1006}, ["Golem"] = {lookType = 639}, ["Shiny Electrode"] = {lookType = 1387}, ["Shiny Golem"] = {lookType = 1403}, ["Shiny Voltorb"] = {lookType = 1388} } local function setOutfit(cid, outfit) if isCreature(cid) and getCreatureCondition(cid, CONDITION_OUTFIT) == true then if getCreatureOutfit(cid).lookType == outfit then doRemoveCondition(cid, CONDITION_OUTFIT) end end end if outfits[getCreatureName(cid)] then doSetCreatureOutfit(cid, outfits[getCreatureName(cid)], -1) end local outfit = getCreatureOutfit(cid).lookType local function roll(cid, outfit) if not isCreature(cid) then return true end if isSleeping(cid) then return true end if outfits[getCreatureName(cid)] then doSetCreatureOutfit(cid, outfits[getCreatureName(cid)], -1) end doDanoWithProtect(cid, ROCKDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 0) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 9000, cid, 3644587, -1) for r = 1, 11 do --8 addEvent(roll, 750 * r, cid, outfit) end addEvent(setOutfit, 9050, cid, outfit) elseif spell == "Shockwave" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area, areaEff, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end --testar o atk!! doAreaCombatHealth(cid, GROUNDDAMAGE, areaEff, 0, 0, 0, eff) doAreaCombatHealth(cid, GROUNDDAMAGE, area, whirl3, -min, -max, 255) end end for a = 0, 5 do local t = { [0] = {126, {x=p.x, y=p.y-(a+1), z=p.z}, {x=p.x+1, y=p.y-(a+1), z=p.z}}, [1] = {124, {x=p.x+(a+1), y=p.y, z=p.z}, {x=p.x+(a+1), y=p.y+1, z=p.z}}, [2] = {125, {x=p.x, y=p.y+(a+1), z=p.z}, {x=p.x+1, y=p.y+(a+1), z=p.z}}, [3] = {123, {x=p.x-(a+1), y=p.y, z=p.z}, {x=p.x-(a+1), y=p.y+1, z=p.z}} } addEvent(sendAtk, 325*a, cid, t[d][2], t[d][3], t[d][1]) end elseif spell == "Earthshock" then local eff = getCreatureName(cid) == "Shiny Onix" and 179 or 127 doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255) local sps = getThingPosWithDebug(cid) sps.x = sps.x+1 sps.y = sps.y+1 doSendMagicEffect(sps, eff) elseif spell == "Earthquake" then local eff = getCreatureName(cid) == "Shiny Onix" and 175 or 118 local function doQuake(cid) if not isCreature(cid) then return false end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell) end times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000} setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1) for i = 1, #times do --alterado v1.4 addEvent(doQuake, times[i], cid) end elseif spell == "Stomp" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 34 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 118, stomp, GROUNDDAMAGE, min, max, spell, ret) elseif spell == "Toxic Spikes" then local function doToxic(cid, target) if not isCreature(cid) or not isCreature(target) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 15) doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 114) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 300, cid, 3644587, -1) addEvent(doToxic, 0, cid, target) addEvent(doToxic, 300, cid, target) elseif spell == "Horn Drill" then local function doHorn(cid, target) if not isCreature(cid) or not isCreature(target) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 25) doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 3) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 300, cid, 3644587, -1) addEvent(doHorn, 0, cid, target) addEvent(doHorn, 300, cid, target) elseif spell == "Doubleslap" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 148) elseif spell == "Lovely Kiss" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 16) local ret = {} ret.id = target ret.cd = 9 ret.check = getPlayerStorageValue(target, conds["Stun"]) ret.eff = 147 ret.spell = spell ret.cond = "Stun" doCondition2(ret) elseif spell == "Sing" then doAreaCombatHealth(cid, SLEEP_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -6, -10, 33) elseif spell == "Multislap" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 3) elseif spell == "Metronome" then local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Leaf Storm", "Hydropump", "Falling Rocks"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 161) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Focus" or spell == "Charge" or spell == "Swords Dance" then --alterado v1.4 if spell == "Charge" then doSendAnimatedText(getThingPosWithDebug(cid), "CHARGE", 168) doSendMagicEffect(getThingPosWithDebug(cid), 177) elseif spell == "Swords Dance" then doSendMagicEffect(getThingPosWithDebug(cid), 132) else doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144) doSendMagicEffect(getThingPosWithDebug(cid), 132) end setPlayerStorageValue(cid, 253, 1) elseif spell == "Flame Wheel" then local function sendFireEff(cid, dir) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doDanoWithProtect(cid, FIREDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 15) end local function doWheel(cid) if not isCreature(cid) then return true end local t = { [1] = SOUTH, [2] = SOUTHEAST, [3] = EAST, [4] = NORTHEAST, [5] = NORTH, --alterado! [6] = NORTHWEST, [7] = WEST, [8] = SOUTHWEST, } for a = 1, 8 do addEvent(sendFireEff, a * 140, cid, t[a]) end end doWheel(cid, false, cid) elseif spell == "Hyper Voice" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 22 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 22, tw1, NORMALDAMAGE, min, max, spell, ret) elseif spell == "Restore" or spell == "Selfheal" then local min = (getCreatureMaxHealth(cid) * 75) / 100 local max = (getCreatureMaxHealth(cid) * 85) / 100 local function doHealArea(cid, min, max) local amount = math.random(min, max) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) end end doSendMagicEffect(getThingPosWithDebug(cid), 132) doHealArea(cid, min, max) elseif spell == "Healarea" then local min = (getCreatureMaxHealth(cid) * 50) / 100 local max = (getCreatureMaxHealth(cid) * 60) / 100 local function doHealArea(cid, min, max) local amount = math.random(min, max) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) end end local pos = getPosfromArea(cid, heal) local n = 0 doHealArea(cid, min, max) while n < #pos do n = n+1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253} local pid = getThingFromPosWithProtect(thing) doSendMagicEffect(pos[n], 12) if isCreature(pid) then if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then if canAttackOther(cid, pid) == "Cant" then doHealArea(pid, min, max) end elseif ehMonstro(cid) and ehMonstro(pid) then doHealArea(pid, min, max) end end end elseif spell == "Toxic" then doMoveInArea2(cid, 114, reto5, POISONDAMAGE, min, max, spell) elseif spell == "Absorb" then local life = getCreatureHealth(target) doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 14) local newlife = life - getCreatureHealth(target) doSendMagicEffect(getThingPosWithDebug(cid), 14) if newlife >= 1 then doCreatureAddHealth(cid, newlife) doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32) end elseif spell == "Poison Bomb" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 14) doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 20, bombWee2) elseif spell == "Poison Gas" then local dmg = isSummon(cid) and getMasterLevel(cid)+getPokemonBoost(cid) or getPokemonLevel(cid) local ret = {id = 0, cd = 13, eff = 34, check = 0, spell = spell, cond = "Miss"} local ret2 = {id = 0, cd = 13, check = 0, damage = dmg, cond = "Poison"} --rever isso ainda!! local function gas(cid) doMoveInArea2(cid, 114, confusion, POISONDAMAGE, 0, 0, spell, ret) doMoveInArea2(cid, 0, confusion, POISONDAMAGE, min, max, spell) end times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000} for i = 1, #times do addEvent(gas, times[i], cid) end elseif spell == "Petal Dance" then doMoveInAreaMulti(cid, 21, 245, bullet, bulletDano, GRASSDAMAGE, min, max) elseif spell == "Slash" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 159) elseif spell == "X-Scissor" then local a = getThingPosWithDebug(cid) local X = { {{x = a.x+1, y = a.y, z = a.z}, 16}, --norte {{x = a.x+2, y = a.y+1, z = a.z}, 221}, --leste {{x = a.x+1, y = a.y+2, z = a.z}, 223}, --sul {{x = a.x, y = a.y+1, z = a.z}, 243}, --oeste } local pos = X[mydir+1] for b = 1, 3 do addEvent(doSendMagicEffect, b * 70, pos[1], pos[2]) end doMoveInArea2(cid, 2, xScissor, BUGDAMAGE, min, max, spell) elseif spell == "Psychic" then doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfArea2, min, max, 133) elseif spell == "Pay Day" then local function doThunderHit(cid, target) if not isCreature(target) or not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 28) end local function doThunderFall(cid, frompos, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local ry = math.abs(frompos.y - pos.y) doSendDistanceShoot(frompos, getThingPosWithDebug(target), 39) addEvent(doThunderHit, ry * 11, cid, target) end local function doThunderUp(cid, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local mps = getThingPosWithDebug(cid) local xrg = math.floor((pos.x - mps.x) / 2) local topos = mps topos.x = topos.x + xrg local rd = 7 topos.y = topos.y - rd doSendDistanceShoot(getThingPosWithDebug(cid), topos, 39) addEvent(doThunderFall, rd * 49, cid, topos, target) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 350, cid, 3644587, -1) for thnds = 1, 2 do addEvent(doThunderUp, thnds * 155, cid, target) end elseif spell == "Psywave" then doMoveInArea2(cid, 133, db1, psyDmg, min, max, spell) elseif spell == "Triple Kick" or spell == "Triple Kick Lee" then doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 110) elseif spell == "Karate Chop" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 113) elseif spell == "Ground Chop" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, FIGHTINGDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, FIGHTINGDAMAGE, area, whirl3, -min, -max, 255) end end for a = 0, 4 do local t = { [0] = {99, {x=p.x+1, y=p.y-(a+1), z=p.z}}, --alterado v1.5 [1] = {99, {x=p.x+(a+2), y=p.y+1, z=p.z}}, [2] = {99, {x=p.x+1, y=p.y+(a+2), z=p.z}}, [3] = {99, {x=p.x-(a+1), y=p.y+1, z=p.z}} } addEvent(sendAtk, 270*a, cid, t[d][2], t[d][1]) end elseif spell == "Mega Punch" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 112) elseif spell == "Tri Flames" then doMoveInArea2(cid, 6, triflames, FIREDAMAGE, min, max, spell) elseif spell == "War Dog" then local ret = {} ret.id = cid ret.cd = 15 ret.eff = 28 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Hypnosis" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 24) doDanoWithProtectWithDelay(cid, target, SLEEP_POWDERDAMAGE, -5, -9, 0) elseif spell == "Dizzy Punch" then local rounds = getPokemonLevel(cid) / 12 rounds = rounds + 2 local ret = {} ret.id = target ret.check = getPlayerStorageValue(target, conds["Confusion"]) ret.cd = rounds ret.cond = "Confusion" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 26) doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 112) doCondition2(ret) elseif spell == "Ice Punch" then local ret = {} ret.id = target ret.cd = 9 ret.eff = 43 ret.check = getPlayerStorageValue(target, conds["Slow"]) ret.first = true ret.cond = "Slow" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 28) doSendMagicEffect(getThingPosWithDebug(target), 112) doDanoWithProtectWithDelay(cid, target, ICEDAMAGE, min, max, 43) doCondition2(ret) elseif spell == "Ice Beam" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local p = getThingPosWithDebug(cid) local t = { [0] = {97, {x=p.x+1, y=p.y-1, z=p.z}}, [1] = {96, {x=p.x+6, y=p.y+1, z=p.z}}, [2] = {97, {x=p.x+1, y=p.y+6, z=p.z}}, [3] = {96, {x=p.x-1, y=p.y+1, z=p.z}}, } local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 43 ret.check = 0 ret.first = true ret.cond = "Slow" doMoveInArea2(cid, 0, triplo6, ICEDAMAGE, min, max, spell, ret) doSendMagicEffect(t[a][2], t[a][1]) elseif spell == "Psy Pulse" or spell == "Cyber Pulse" or spell == "Dark Pulse" then damage = skill == "Dark Pulse" and DARKDAMAGE or psyDmg local function doPulse(cid, eff) if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoWithProtectWithDelay(cid, target, damage, -min, -max, eff) --alterado v1.4 end if spell == "Cyber Pulse" then eff = 11 elseif spell == "Dark Pulse" then eff = 47 --efeito n eh esse mas... ;p else eff = 133 end addEvent(doPulse, 0, cid, eff) addEvent(doPulse, 250, cid, eff) elseif spell == "Psyusion" then local rounds = math.random(4, 7) rounds = rounds + math.floor(getPokemonLevel(cid) / 35) local eff = {136, 133, 136, 133, 137} local area = {psy1, psy2, psy3, psy4, psy5} local ret = {} ret.id = 0 ret.check = 0 ret.cd = rounds ret.cond = "Confusion" setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 4*400, cid, 3644587, -1) for i = 0, 4 do addEvent(doMoveInArea2, i*400, cid, eff[i+1], area[i+1], psyDmg, min, max, spell, ret) end elseif spell == "Triple Punch" then doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 110) elseif spell == "Fist Machine" then local mpos = getThingPosWithDebug(cid) local b = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local effect = 0 local xvar = 0 local yvar = 0 if b == SOUTH then effect = 218 yvar = 2 elseif b == NORTH then effect = 217 elseif b == WEST then effect = 216 elseif b == EAST then effect = 215 xvar = 2 end mpos.x = mpos.x + xvar mpos.y = mpos.y + yvar doSendMagicEffect(mpos, effect) doMoveInArea2(cid, 0, machine, FIGHTINGDAMAGE, min, max, spell) elseif spell == "Destroyer Hand" then doMoveInAreaMulti(cid, 26, 111, bullet, bulletDano, FIGHTINGDAMAGE, min, max) elseif spell == "Rock Throw" then local effD = getCreatureName(cid) == "Shiny Onix" and 0 or 11 local eff = getCreatureName(cid) == "Shiny Onix" and 176 or 44 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), effD) doDanoWithProtectWithDelay(cid, target, ROCKDAMAGE, min, max, eff) elseif spell == "Rock Slide" or spell == "Stone Edge" then atk = { ["Rock Slide"] = {11, 44, 0, 176}, ["Stone Edge"] = {11, 239} } local effD = getCreatureName(cid) == "Shiny Onix" and atk[spell][3] or atk[spell][1] local eff = getCreatureName(cid) == "Shiny Onix" and atk[spell][4] or atk[spell][2] local function doRockHit(cid, target) if not isCreature(target) or not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doAreaCombatHealth(cid, ROCKDAMAGE, getThingPosWithDebug(target), 0, -min, -max, eff) end local function doRockFall(cid, frompos, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local ry = math.abs(frompos.y - pos.y) doSendDistanceShoot(frompos, getThingPosWithDebug(target), effD) addEvent(doRockHit, ry * 11, cid, target) end local function doRockUp(cid, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local mps = getThingPosWithDebug(cid) local xrg = math.floor((pos.x - mps.x) / 2) local topos = mps topos.x = topos.x + xrg local rd = 7 topos.y = topos.y - rd doSendDistanceShoot(getThingPosWithDebug(cid), topos, effD) addEvent(doRockFall, rd * 49, cid, topos, target) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 350, cid, 3644587, -1) for thnds = 1, 2 do addEvent(doRockUp, thnds * 155, cid, target) end elseif spell == "Falling Rocks" then local effD = getCreatureName(cid) == "Shiny Onix" and 0 or 11 local eff = getCreatureName(cid) == "Shiny Onix" and 176 or 44 local master = isSummon(cid) and getCreatureMaster(cid) or cid ------------ local function doFall(cid) for rocks = 1, 62 do addEvent(fall, rocks*35, cid, master, ROCKDAMAGE, effD, eff) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, effD) end addEvent(doFall, 450, cid) addEvent(doDanoWithProtect, 1400, cid, ROCKDAMAGE, getThingPosWithDebug(cid), waterarea, -min, -max, 0) elseif spell == "Selfdestruct" then local function death(cid) if isCreature(cid) then if pokes[getCreatureName(cid)].type == "psychic" or pokes[getCreatureName(cid)].type2 == "psychic" then return true end doCreatureAddHealth(cid, -getCreatureMaxHealth(cid)) end end doMoveInArea2(cid, 5, selfArea1, NORMALDAMAGE, 0, 0, spell) local life = getCreatureHealth(cid) local uid = checkAreaUid(getThingPosWithDebug(cid), selfArea1, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then --alterado! if (getCreatureHealth(pid)-life) <= 0 then dano = getCreatureHealth(pid) else dano = life end if isSummon(cid) and canDoSelf and pid ~= cid then if isSummon(pid) then if canAttackOther(cid, pid) == "Cant" then else doSendAnimatedText(getThingPosWithDebug(pid), "-"..dano.."", COLOR_NORMAL) doCreatureAddHealth(pid, -dano) end elseif ehMonstro(pid) then doSendAnimatedText(getThingPosWithDebug(pid), "-"..dano.."", COLOR_NORMAL) doCreatureAddHealth(pid, -dano) elseif isPlayer(pid) and #getCreatureSummons(pid) <= 0 and canAttackOther(cid, pid) == "Can" then doSendAnimatedText(getThingPosWithDebug(pid), "-"..dano.."", COLOR_NORMAL) doCreatureAddHealth(pid, -dano) end elseif ehMonstro(cid) and canDoSelf and pid ~= cid then if isSummon(pid) then doSendAnimatedText(getThingPosWithDebug(pid), "-"..dano.."", COLOR_NORMAL) --144 doCreatureAddHealth(pid, -dano) elseif isPlayer(pid) and #getCreatureSummons(pid) <= 0 then doSendAnimatedText(getThingPosWithDebug(pid), "-"..dano.."", COLOR_NORMAL) --144 doCreatureAddHealth(pid, -dano) end end end end addEvent(death, 300, cid) elseif spell == "Crusher Stomp" then local pL = getThingPosWithDebug(cid) pL.x = pL.x+5 pL.y = pL.y+1 ----------------- local pO = getThingPosWithDebug(cid) pO.x = pO.x-3 pO.y = pO.y+1 ------------------ local pN = getThingPosWithDebug(cid) pN.x = pN.x+1 pN.y = pN.y+5 ----------------- local pS = getThingPosWithDebug(cid) pS.x = pS.x+1 pS.y = pS.y-3 local po = {pL, pO, pN, pS} local po2 = { {x = pL.x, y = pL.y-1, z = pL.z}, {x = pO.x, y = pO.y-1, z = pO.z}, {x = pN.x-1, y = pN.y, z = pN.z}, {x = pS.x-1, y = pS.y, z = pS.z}, } local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 34 ret.spell = spell ret.cond = "Stun" for i = 1, 4 do doSendMagicEffect(po[i], 127) doAreaCombatHealth(cid, GROUNDDAMAGE, po2[i], crusher, -min, -max, 255) end doMoveInArea2(cid, 118, stomp, GROUNDDAMAGE, min, max, spell, ret) elseif spell == "Water Pulse" then doMoveInArea2(cid, 68, reto5, WATERDAMAGE, min, max, spell) elseif spell == "Sonicboom" then local function doBoom(cid) if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 33) doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 3) end addEvent(doBoom, 0, cid) addEvent(doBoom, 250, cid) elseif spell == "Stickmerang" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 34) doDanoWithProtectWithDelay(cid, target, FLYINGDAMAGE, min, max, 212) elseif spell == "Stickslash" then local function sendStickEff(cid, dir) if not isCreature(cid) then return true end doAreaCombatHealth(cid, FLYINGDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 212) end local function doStick(cid) if not isCreature(cid) then return true end local t = { [1] = SOUTHWEST, [2] = SOUTH, [3] = SOUTHEAST, [4] = EAST, [5] = NORTHEAST, [6] = NORTH, [7] = NORTHWEST, [8] = WEST, [9] = SOUTHWEST, } for a = 1, 9 do addEvent(sendStickEff, a * 140, cid, t[a]) end end doStick(cid, false, cid) elseif spell == "Stick Throw" then stopNow(cid, 2000) doMoveInArea2(cid, 212, reto4, FLYINGDAMAGE, min, max, spell) elseif spell == "Pluck" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtectWithDelay(cid, target, FLYINGDAMAGE, min, max, 111) elseif spell == "Tri-Attack" then local function doTriAtk(cid, target) if not isCreature(cid) or not isCreature(target) then return true end --alterado v1.3 if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end --alterado!! doTargetCombatHealth(cid, target, NORMALDAMAGE, -min, -max, 238) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 600, cid, 3644587, -1) doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) for i = 0, 2 do addEvent(doTriAtk, i*300, cid, target) --alterado v1.3 end elseif spell == "Fury Attack" then local function doFuryAtk(cid, target) if not isCreature(cid) or not isCreature(target) then return true end --alterado v1.3 if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end --alterado!! doTargetCombatHealth(cid, target, NORMALDAMAGE, -min, -max, 110) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 600, cid, 3644587, -1) for i = 0, 2 do addEvent(doFuryAtk, i*300, cid, target) end elseif spell == "Ice Shards" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 28) doDanoWithProtectWithDelay(cid, target, ICEDAMAGE, min, max, 43) elseif spell == "Icy Wind" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 43 ret.check = 0 ret.first = true ret.cond = "Slow" doMoveInArea2(cid, 17, tw1, ICEDAMAGE, min, max, spell, ret) elseif spell == "Aurora Beam" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) local p = getThingPosWithDebug(cid) local t = { [0] = {186, {x=p.x+1, y=p.y-1, z=p.z}}, [1] = {187, {x=p.x+6, y=p.y+1, z=p.z}}, [2] = {186, {x=p.x+1, y=p.y+6, z=p.z}}, [3] = {187, {x=p.x-1, y=p.y+1, z=p.z}}, } local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 43 ret.check = 0 ret.first = true ret.cond = "Slow" doMoveInArea2(cid, 0, triplo6, ICEDAMAGE, min, max, spell, ret) doSendMagicEffect(t[a][2], t[a][1]) elseif spell == "Rest" then local ret = {} ret.id = cid ret.cd = 6 ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Sludge" then local function doSludgeHit(cid, target) if not isCreature(target) or not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doAreaCombatHealth(cid, POISONDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 116) end local function doSludgeFall(cid, frompos, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local ry = math.abs(frompos.y - pos.y) doSendDistanceShoot(frompos, getThingPosWithDebug(target), 6) addEvent(doSludgeHit, ry * 11, cid, target) end local function doSludgeUp(cid, target) if not isCreature(target) or not isCreature(cid) then return true end local pos = getThingPosWithDebug(target) local mps = getThingPosWithDebug(cid) local xrg = math.floor((pos.x - mps.x) / 2) local topos = mps topos.x = topos.x + xrg local rd = 7 topos.y = topos.y - rd doSendDistanceShoot(getThingPosWithDebug(cid), topos, 6) addEvent(doSludgeFall, rd * 49, cid, topos, target) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 350, cid, 3644587, -1) for thnds = 1, 2 do addEvent(doSludgeUp, thnds * 155, cid, target) end --alterado v1.5 elseif spell == "Mud Bomb" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 34 ret.check = 0 ret.spell = spell ret.cond = "Miss" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 6) doDanoWithProtectWithDelay(cid, target, GROUNDDAMAGE, min, max, 116, bombWee2) doMoveInArea2(cid, 0, bombWee1, GROUNDDAMAGE, 0, 0, spell, ret) ret.id = target ret.check = getPlayerStorageValue(target, conds["Miss"]) --ver isso aki.. doCondition2(ret) elseif spell == "Mortal Gas" then local pos = getThingPosWithDebug(cid) local function doSendAcid(cid, pos) if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 14) doSendMagicEffect(pos, 114) end for b = 1, 3 do for a = 1, 20 do local lugar = {x = pos.x + math.random(-4, 4), y = pos.y + math.random(-3, 3), z = pos.z} addEvent(doSendAcid, a * 75, cid, lugar) end end doDanoWithProtect(cid, POISONDAMAGE, pos, waterarea, -min, -max, 0) elseif spell == "Rock Drill" or spell == "Megahorn" or spell == "Rock Blast" then damage = spell == "Megahorn" and BUGDAMAGE or ROCKDAMAGE eff = spell == "Megahorn" and 8 or 44 effD = spell == "Rock Blast" and 11 or 25 --cid, effDist, effDano, areaEff, areaDano, element, min, max doMoveInAreaMulti(cid, effD, eff, bullet, bulletDano, damage, min, max) elseif spell == "Egg Bomb" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 12) doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 5, crusher) elseif spell == "Super Vines" then doCreatureSetLookDir(cid, 2) stopNow(cid, 200) local effect = 0 local pos = getThingPosWithDebug(cid) pos.x = pos.x + 1 pos.y = pos.y + 1 if getCreatureOutfit(cid).lookType == 369 then effect = 213 else effect = 229 end doSendMagicEffect(pos, effect) doDanoWithProtect(cid, GRASSDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 0) elseif spell == "Epicenter" then doMoveInArea2(cid, 127, epicenter, GROUNDDAMAGE, min, max, spell) elseif spell == "Bubblebeam" then local function sendBubbles(cid) if not isCreature(cid) or not isCreature(target) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoWithProtectWithDelay(cid, target, WATERDAMAGE, min, max, 25) end sendBubbles(cid) addEvent(sendBubbles, 250, cid) elseif spell == "Swift" then local function sendSwift(cid, target) if not isCreature(cid) or not isCreature(target) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 32) doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 3) end addEvent(sendSwift, 100, cid, target) addEvent(sendSwift, 200, cid, target) elseif spell == "Spark" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 32) doDanoWithProtectWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) elseif spell == "Mimic Wall" then local p = getThingPosWithDebug(cid) local dirr = getCreatureLookDir(cid) if dirr == 0 or dirr == 2 then item = 11439 else item = 11440 end local wall = { [0] = {{x = p.x, y = p.y-1, z = p.z}, {x = p.x+1, y = p.y-1, z = p.z}, {x = p.x-1, y = p.y-1, z = p.z}}, [2] = {{x = p.x, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z}, {x = p.x-1, y = p.y+1, z = p.z}}, [1] = {{x = p.x+1, y = p.y, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y-1, z = p.z}}, [3] = {{x = p.x-1, y = p.y, z = p.z}, {x = p.x-1, y = p.y+1, z = p.z}, {x = p.x-1, y = p.y-1, z = p.z}}, } function removeAllActionIDs(pos, onlyOne) if onlyOne then local thing1 = {x=pos.x,y=pos.y,z=pos.z,stackpos=0} local tile1 = getTileThingWithProtect(thing1).uid doSetItemActionId(tile1, 0) end n = 0 for i = 1, #pos do n = n + 1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=0} local tile = getTileThingWithProtect(thing).uid doSetItemActionId(tile, 0) end end for i = 1, 3 do if wall[dirr] then local t = wall[dirr] if hasTile(t[i]) and canWalkOnPos(t[i], true, true, true, true, false) then doCreateItem(item, 1, t[i]) -- local Tile = getTileThingWithProtect({x=t[i].x,y=t[i].y,z=t[i].z,stackpos=0}) doSetItemActionId(Tile.uid, 88072) addEvent(removeAllActionIDs, 15000, t[i], true) -- addEvent(doRemoveItemFromPos, 15000, t[i], item, 1) end end end local pos = getPosfromArea(cid, wall_1) local pos2 = getPosfromArea(cid, wall_2) if hasTile({x=p.x,y=p.y,z=p.z,stackpos=0}) then tile0 = getTileThingWithProtect({x=p.x,y=p.y,z=p.z,stackpos=0}).uid end doSetItemActionId(tile0, 88070) addEvent(removeAllActionIDs, 15000, p, true) n = 0 while n < #pos do if not isCreature(cid) then return true end n = n+1 local tile1 = getTileThingWithProtect({x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=0}).uid --- local tile2 = getTileThingWithProtect({x=pos2[n].x,y=pos2[n].y,z=pos2[n].z,stackpos=0}).uid doSetItemActionId(tile1, 88071) doSetItemActionId(tile2, 88070) end addEvent(removeAllActionIDs, 15000, pos) addEvent(removeAllActionIDs, 15000, pos2) elseif spell == "Shredder Team" then local team = { ["Scyther"] = "ScytherTeam", ["Shiny Scyther"] = "Shiny ScytherTeam", ["Scizor"] = "ScizorTeam", } local function setStorage(cid, storage) if isCreature(cid) then if getPlayerStorageValue(cid, storage) >= 1 then setPlayerStorageValue(cid, storage, 0) end end end local function RemoveTeam(cid) if isCreature(cid) then doSendMagicEffect(getThingPosWithDebug(cid), 211) doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 637500) >= 1 then return true end local master = getCreatureMaster(cid) local item = getPlayerSlotItem(master, 8) local life, maxLife = getCreatureHealth(cid), getCreatureMaxHealth(cid) local name = getItemAttribute(item.uid, "poke") local pos = getThingPosWithDebug(cid) local time = 21 local pokelife = (getCreatureHealth(cid) / getCreatureMaxHealth(cid)) doItemSetAttribute(item.uid, "hp", pokelife) local random = math.random(5, 10) doDisapear(cid) doTeleportThing(cid, {x=4, y=3, z=10}, false) addEvent(doTeleportThing, random, cid, pos, false) addEvent(doAppear, random, cid) if team[name] then local num = getCreatureName(cid) == "Scizor" and 4 or 3 for b = 2, num do doSummonMonster(master, team[name]) end pk1 = getCreatureSummons(master)[1] pk2 = getCreatureSummons(master)[2] pk3 = getCreatureSummons(master)[3] if getCreatureName(cid) == "Scizor" then pk4 = getCreatureSummons(master)[4] end for a = 1, num do local pk = {[1] = pk1, [2] = pk2, [3] = pk3, [4] = pk4} doTeleportThing(pk[a], getClosestFreeTile(pk[a], pos), false) adjustStatus(pk[a], item.uid, true, true, true) doSendMagicEffect(getThingPosWithDebug(pk[a]), 211) end setPlayerStorageValue(pk2, 637500, 1) setPlayerStorageValue(pk3, 637500, 1) if getCreatureName(cid) == "Scizor" then setPlayerStorageValue(pk4, 637500, 1) end setPlayerStorageValue(master, 637501, 1) addEvent(setStorage, time * 1000, master, 637501) addEvent(RemoveTeam, time * 1000, pk2) addEvent(RemoveTeam, time * 1000, pk3) if getCreatureName(cid) == "Scizor" then addEvent(RemoveTeam, time * 1000, pk4) end end elseif spell == "Team Slice" or spell == "Team Claw" then local master = getCreatureMaster(cid) if #getCreatureSummons(master) < 2 or not isCreature(target) then return true end local summons = getCreatureSummons(master) local posis = {[1] = pos1, [2] = pos2, [3] = pos3, [4] = pos4} if getCreatureName(cid) == "Scyther" then eff = 27 elseif getCreatureName(cid) == "Shiny Scyther" then eff = 29 else eff = 42 --alterado v1.5 end if #getCreatureSummons(master) >= 2 and isCreature(target) then if isCreature(cid) then addEvent(doTargetCombatHealth, 500, cid, target, BUGDAMAGE, -min, -max, 255) for i = 1, #summons do posis[i] = getThingPosWithDebug(summons[i]) doDisapear(summons[i]) stopNow(summons[i], 670) addEvent(doSendMagicEffect, 300, posis[i], 211) addEvent(doSendDistanceShoot, 350, posis[i], getThingPosWithDebug(target), eff) addEvent(doSendDistanceShoot, 450, getThingPosWithDebug(target), posis[i], eff) addEvent(doSendDistanceShoot, 600, posis[i], getThingPosWithDebug(target), eff) addEvent(doSendDistanceShoot, 650, getThingPosWithDebug(target), posis[i], eff) addEvent(doAppear, 670, summons[i]) end end end elseif spell == "Blizzard" then local master = isSummon(cid) and getCreatureMaster(cid) or cid local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 43 ret.check = 0 ret.first = true ret.cond = "Slow" local function doFall(cid) for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, ICEDAMAGE, 28, 52) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, 28) end --alterado v1.4 addEvent(doFall, 450, cid) addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ICEDAMAGE, min, max, spell, ret) elseif spell == "Great Love" then local master = getCreatureMaster(cid) or 0 local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 147 ret.check = 0 ret.spell = spell ret.cond = "Stun" for rocks = 1, 62 do addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 147) end addEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, ret) elseif spell == "Fire Punch" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doSendMagicEffect(getThingPosWithDebug(target), 112) doDanoWithProtectWithDelay(cid, target, FIREDAMAGE, min, max, 35) elseif spell == "Guillotine" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 146) elseif spell == "Hyper Beam" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) if a == 0 then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg1n, -min, -max, 152) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg2n, -min, -max, 158) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg3n, -min, -max, 156) elseif a == 2 then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg1s, -min, -max, 151) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg2s, -min, -max, 158) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg3s, -min, -max, 155) elseif a == 1 then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg1e, -min, -max, 149) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg2e, -min, -max, 157) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg3e, -min, -max, 153) elseif a == 3 then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg1w, -min, -max, 150) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg2w, -min, -max, 157) doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), wg3w, -min, -max, 154) end elseif spell == "Thrash" then --cid, effDist, effDano, areaEff, areaDano, element, min, max doMoveInAreaMulti(cid, 10, 111, bullet, bulletDano, NORMALDAMAGE, min, max) elseif spell == "Splash" or tonumber(spell) == 7 then doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255) doSendMagicEffect(getThingPosWithDebug(cid), 53) elseif spell == "Dragon Breath" then doMoveInArea2(cid, 143, db1, DRAGONDAMAGE, min, max, spell) elseif spell == "Muddy Water" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 34 ret.check = 0 ret.spell = spell ret.cond = "Miss" doMoveInArea2(cid, 116, muddy, WATERDAMAGE, min, max, spell, ret) elseif spell == "Venom Motion" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 34 ret.check = 0 ret.spell = spell ret.cond = "Miss" doMoveInArea2(cid, 114, muddy, POISONDAMAGE, min, max, spell, ret) elseif spell == "Thunder Fang" then doSendMagicEffect(getThingPosWithDebug(target), 146) doDanoWithProtectWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) elseif spell == "Zap Cannon" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) if a == 0 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1n, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2n, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3n, 0, 0, 177) -------- doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1n, -min, -max, 94) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2n, -min, -max, 93) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3n, -min, -max, 95) elseif a == 2 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1s, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2s, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3s, 0, 0, 177) -------- doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1s, -min, -max, 91) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2s, -min, -max, 93) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3s, -min, -max, 92) elseif a == 1 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1e, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2e, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3e, 0, 0, 177) --------- doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1e, -min, -max, 86) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2e, -min, -max, 88) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3e, -min, -max, 87) elseif a == 3 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1w, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2w, 0, 0, 177) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3w, 0, 0, 177) -------- doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1w, -min, -max, 89) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2w, -min, -max, 88) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3w, -min, -max, 90) end elseif spell == "Charge Beam" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) if a == 0 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1n, -min, -max, 94) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2n, -min, -max, 93) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3n, -min, -max, 95) elseif a == 2 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1s, -min, -max, 91) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2s, -min, -max, 93) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3s, -min, -max, 92) elseif a == 1 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1e, -min, -max, 86) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2e, -min, -max, 88) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3e, -min, -max, 87) elseif a == 3 then doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg1w, -min, -max, 89) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg2w, -min, -max, 88) doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), wg3w, -min, -max, 90) end elseif spell == "Sacred Fire" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoWithProtectWithDelay(cid, target, FIREDAMAGE, min, max, 143, sacred) elseif spell == "Blaze Kick" then doMoveInArea2(cid, 6, blaze, FIREDAMAGE, min, max, spell) addEvent(doMoveInArea2, 200, cid, 6, kick, FIREDAMAGE, min, max, spell) elseif spell == "Cross Chop" then doMoveInArea2(cid, 118, blaze, FIGHTINGDAMAGE, min, max, spell) addEvent(doMoveInArea2, 200, cid, 118, kick, FIGHTINGDAMAGE, min, max, spell) elseif spell == "Overheat" then doMoveInArea2(cid, 5, reto5, FIREDAMAGE, min, max, spell) elseif spell == "Ancient Power" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, ROCKDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, ROCKDAMAGE, area, whirl3, -min, -max, 137) end end for a = 0, 4 do local t = { [0] = {18, {x=p.x, y=p.y-(a+1), z=p.z}}, --alterado v1.4 [1] = {18, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {18, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {18, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1]) end elseif spell == "Twister" then doMoveInAreaMulti(cid, 28, 41, bullet, bulletDano, DRAGONDAMAGE, min, max) elseif spell == "Multi-Kick" then doMoveInAreaMulti(cid, 39, 113, multi, multiDano, FIGHTINGDAMAGE, min, max) elseif spell == "Multi-Punch" then doMoveInAreaMulti(cid, 39, 112, multi, multiDano, FIGHTINGDAMAGE, min, max) elseif spell == "Squisky Licking" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 0 ret.spell = spell ret.cond = "Stun" local areas = {SL1, SL2, SL3, SL4} for i = 0, 3 do addEvent(doMoveInArea2, i*200, cid, 145, areas[i+1], NORMALDAMAGE, min, max, spell, ret) end elseif spell == "Lick" then local ret = {} ret.id = target ret.cd = 9 ret.check = getPlayerStorageValue(target, conds["Stun"]) ret.eff = 0 ret.spell = spell ret.cond = "Stun" doSendMagicEffect(getThingPosWithDebug(target), 145) --alterado v1.4! addEvent(doCondition2, 100, ret) elseif spell == "Bonemerang" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 7) doDanoWithProtectWithDelay(cid, target, GROUNDDAMAGE, min, max, 227) addEvent(doSendDistanceShoot, 200, getThingPosWithDebug(target), getThingPosWithDebug(cid), 7) elseif spell == "Bone Club" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 7) doDanoWithProtectWithDelay(cid, target, GROUNDDAMAGE, min, max, 118) elseif spell == "Bone Slash" then local function sendStickEff(cid, dir) if not isCreature(cid) then return true end doAreaCombatHealth(cid, GROUNDDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 227) end local function doStick(cid) if not isCreature(cid) then return true end local t = { [1] = SOUTHWEST, [2] = SOUTH, [3] = SOUTHEAST, [4] = EAST, [5] = NORTHEAST, [6] = NORTH, [7] = NORTHWEST, [8] = WEST, [9] = SOUTHWEST, } for a = 1, 9 do addEvent(sendStickEff, a * 140, cid, t[a]) end end doStick(cid, false, cid) --alterado v1.4 elseif spell == "Furious Legs" or spell == "Ultimate Champion" or spell == "Fighter Spirit" then local ret = {} ret.id = cid ret.cd = 15 ret.eff = 13 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Sludge Rain" then local master = isSummon(cid) and getCreatureMaster(cid) or cid local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 34 ret.check = 0 ret.spell = spell ret.cond = "Miss" local function doFall(cid) for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, POISONDAMAGE, 6, 116) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, 6) end addEvent(doFall, 450, cid) addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, POISONDAMAGE, min, max, spell, ret) elseif spell == "Shadow Ball" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 18) local function doDamageWithDelay(cid, target) if not isCreature(cid) or not isCreature(target) then return true end if isSleeping(cid) then return false end if getPlayerStorageValue(cid, conds["Fear"]) >= 1 then return true end doAreaCombatHealth(cid, ghostDmg, getThingPosWithDebug(target), 0, -min, -max, 255) local pos = getThingPosWithDebug(target) pos.x = pos.x + 1 doSendMagicEffect(pos, 140) end addEvent(doDamageWithDelay, 100, cid, target) elseif spell == "Shadow Punch" then local pos = getThingPosWithDebug(target) doSendMagicEffect(pos, 112) local function doPunch(cid, target) if not isCreature(cid) or not isCreature(target) then return true end doAreaCombatHealth(cid, ghostDmg, getThingPosWithDebug(target), 0, -min, -max, 255) pos.x = pos.x + 1 doSendMagicEffect(pos, 140) end addEvent(doPunch, 200, cid, target) elseif spell == "Shadow Storm" then local master = isSummon(cid) and getCreatureMaster(cid) or cid local function doFall(cid) for rocks = 1, 42 do --62 addEvent(fall, rocks*35, cid, master, ghostDmg, 18, 140) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, 18) end addEvent(doFall, 450, cid) addEvent(doMoveInArea2, 1400, cid, 2, BigArea2, ghostDmg, min, max, spell) elseif spell == "Invisible" then doDisapear(cid) doSendMagicEffect(getThingPosWithDebug(cid), 134) if isMonster(cid) then local pos = getThingPosWithDebug(cid) --alterei! doTeleportThing(cid, {x=4, y=3, z=10}, false) doTeleportThing(cid, pos, false) end addEvent(doAppear, 4000, cid) elseif spell == "Nightmare" then if not isSleeping(target) then doSendMagicEffect(getThingPosWithDebug(target), 3) doSendAnimatedText(getThingPosWithDebug(target), "FAIL", 155) return true end doDanoWithProtectWithDelay(cid, target, ghostDmg, -min, -max, 138) elseif spell == "Dream Eater" then if not isSleeping(target) then doSendMagicEffect(getThingPosWithDebug(target), 3) doSendAnimatedText(getThingPosWithDebug(target), "FAIL", 155) return true end local a = getCreatureHealth(target) doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(target), 0, -min, -max, 138) --alterado v1.4 local b = getCreatureHealth(target) local c = a - b local amount1 = c local function doHealArea(cid, min, max) local amount = math.random(min, max) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 155) end end doSendMagicEffect(getThingPosWithDebug(cid), 132) doHealArea(cid, amount1, amount1) elseif spell == "Dark Eye" or spell == "Miracle Eye" then doSendMagicEffect(getThingPosWithDebug(cid), 47) setPlayerStorageValue(cid, 999457, 1) elseif spell == "Elemental Hands" then if getCreatureOutfit(cid).lookType == 1301 then print("Error occurred with move 'Elemental Hands', outfit of hitmonchan is wrong") doPlayerSendTextMessage(getCreatureMaster(cid), MESSAGE_STATUS_CONSOLE_BLUE, "A error are ocurred... A msg is sent to gamemasters!") return true end --proteçao pra n usar o move com o shiny hitmonchan com outfit diferente da do elite monchan do PO... local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") local hands = getItemAttribute(getPlayerSlotItem(e, 8).uid, "hands") if hands == 4 then doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hands", 0) doSendMagicEffect(getThingPosWithDebug(cid), hitmonchans[name][0].eff) doSetCreatureOutfit(cid, {lookType = hitmonchans[name][0].out}, -1) else doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hands", hands+1) doSendMagicEffect(getThingPosWithDebug(cid), hitmonchans[name][hands+1].eff) doSetCreatureOutfit(cid, {lookType = hitmonchans[name][hands+1].out}, -1) end elseif spell == "Crabhammer" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 225) elseif spell == "Ancient Fury" then local ret = {} ret.id = cid ret.cd = 15 ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Divine Punishment" then local roardirections = { [NORTH] = {SOUTH}, [sOUTH] = {NORTH}, [WEST] = {EAST}, [EAST] = {WEST}} local function divineBack(cid) if not isCreature(cid) then return true end local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1) for _,pid in pairs(uid) do dirrr = getCreatureDirectionToTarget(pid, cid) delay = getNextStepDelay(pid, 0) if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can")) and pid ~= cid then setPlayerStorageValue(pid, 654878, 1) doChangeSpeed(pid, -getCreatureSpeed(pid)) doChangeSpeed(pid, 100) doPushCreature(pid, roardirections[dirrr][1], 1, 0) doChangeSpeed(pid, -getCreatureSpeed(pid)) addEvent(setPlayerStorageValue, 6450, pid, 654878, -1) addEvent(doRegainSpeed, 6450, pid) elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then setPlayerStorageValue(pid, 654878, 1) doChangeSpeed(pid, -getCreatureSpeed(pid)) doChangeSpeed(pid, 100) doPushCreature(pid, roardirections[dirrr][1], 1, 0) doChangeSpeed(pid, -getCreatureSpeed(pid)) addEvent(doRegainSpeed, 6450, pid) addEvent(setPlayerStorageValue, 6450, pid, 654878, -1) end end end local function doDivine(cid, min, max, spell, rounds, area) if not isCreature(cid) then return true end local ret = {} ret.id = 0 ret.check = 0 ret.cd = rounds ret.cond = "Confusion" for i = 1, 9 do addEvent(doMoveInArea2, i*500, cid, 137, area[i], psyDmg, min, max, spell, ret) end end local rounds = math.random(9, 12) local area = {punish1, punish2, punish3, punish1, punish2, punish3, punish1, punish2, punish3} local posi = getThingPosWithDebug(cid) posi.x = posi.x+1 posi.y = posi.y+1 setPlayerStorageValue(cid, 2365487, 1) addEvent(setPlayerStorageValue, 6450, cid, 2365487, -1) --alterado v1.4 doDisapear(cid) doChangeSpeed(cid, -getCreatureSpeed(cid)) doSendMagicEffect(posi, 247) addEvent(doAppear, 6450, cid) addEvent(doRegainSpeed, 6450, cid) local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1) for _,pid in pairs(uid) do if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can")) and pid ~= cid then doChangeSpeed(pid, -getCreatureSpeed(pid)) elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then doChangeSpeed(pid, -getCreatureSpeed(pid)) end end addEvent(divineBack, 2100, cid) addEvent(doDivine, 2200, cid, min, max, spell, rounds, area) elseif isInArray({"Future Sight", "Camouflage", "Acid Armor", "Iron Defense", "Minimize"}, spell) then local ret = {} ret.id = cid ret.cd = 10 ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Shadowave" then doMoveInArea2(cid, 222, db1, DARKDAMAGE, min, max, spell) elseif spell == "Confuse Ray" then local rounds = math.random(4, 7) rounds = rounds + math.floor(getPokemonLevel(cid) / 35) local ret = {} ret.id = target ret.cd = rounds ret.check = getPlayerStorageValue(target, conds["Confusion"]) ret.cond = "Confusion" posi = getThingPosWithDebug(target) posi.y = posi.y+1 --- doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) addEvent(doSendMagicEffect, 100, posi, 222) doDanoWithProtectWithDelay(cid, target, GHOSTDAMAGE, -min, -max, 0) addEvent(doCondition2, 100, ret) elseif spell == "Leaf Blade" then local a = getThingPosWithDebug(target) posi = {x = a.x+1, y = a.y+1, z = a.z} doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) addEvent(doSendMagicEffect, 200, posi, 240) doDanoWithProtectWithDelay(cid, target, GRASSDAMAGE, -min, -max, 0, LeafBlade) elseif spell == "Eruption" or spell == "Elecball" then pos = getThingPosWithDebug(cid) pos.x = pos.x+1 pos.y = pos.y+1 atk = { ["Eruption"] = {241, FIREDAMAGE}, ["Elecball"] = {171, ELECTRICDAMAGE} } stopNow(cid, 1000) doSendMagicEffect(pos, atk[spell][1]) doMoveInArea2(cid, 0, bombWee1, atk[spell][2], min, max, spell) elseif spell == "Meteor Smash" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 20) doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, -min, -max, 242) elseif spell == "Draco Meteor" then local effD = 5 local eff = 248 local master = isSummon(cid) and getCreatureMaster(cid) or cid local function doFall(cid) for rocks = 5, 42 do addEvent(fall, rocks*35, cid, master, DRAGONDAMAGE, effD, eff) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, effD) end addEvent(doFall, 450, cid) addEvent(doDanoWithProtect, 1400, cid, DRAGONDAMAGE, getThingPosWithDebug(cid), waterarea, -min, -max, 0) elseif spell == "Dragon Pulse" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, DRAGONDAMAGE, area, pulse2, -min, -max, 255) end end for a = 0, 3 do local t = { [0] = {249, {x=p.x, y=p.y-(a+1), z=p.z}}, [1] = {249, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {249, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {249, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 300*a, cid, t[d][2]) addEvent(doDanoWithProtect, 400*a, cid, DRAGONDAMAGE, t[d][2], pulse2, 0, 0, 177) addEvent(doDanoWithProtect, 400*a, cid, DRAGONDAMAGE, t[d][2], pulse1, 0, 0, t[d][1]) end elseif spell == "Psy Ball" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoWithProtectWithDelay(cid, target, psyDmg, min, max, 250) elseif spell == "SmokeScreen" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 34 ret.check = 0 ret.spell = spell ret.cond = "Miss" local function smoke(cid) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doMoveInArea2(cid, 34, confusion, NORMALDAMAGE, 0, 0, spell, ret) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 1000, cid, 3644587, -1) for i = 0, 2 do addEvent(smoke, i*500, cid) end elseif spell == "Faint Attack" or spell == "Sucker Punch" then --alterado v1.5 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtectWithDelay(cid, target, DARKDAMAGE, min, max, 237) elseif spell == "Assurance" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area1, area2, eff) if isCreature(cid) then if not isSightClear(p, area1, false) then return true end if not isSightClear(p, area2, false) then return true end doAreaCombatHealth(cid, DARKDAMAGE, area1, 0, 0, 0, eff) doAreaCombatHealth(cid, DARKDAMAGE, area2, whirl3, -min, -max, 0) end end for a = 0, 3 do local t = { [0] = {230, {x=p.x+1, y=p.y-(a+1), z=p.z}, {x=p.x, y=p.y-(a+1), z=p.z}}, [1] = {226, {x=p.x+(a+2), y=p.y+1, z=p.z}, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {235, {x=p.x+1, y=p.y+(a+1), z=p.z}, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {231, {x=p.x-(a+1), y=p.y+1, z=p.z}, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 300*a, cid, t[d][2], t[d][3], t[d][1]) end elseif spell == "Scary Face" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 0 ret.spell = spell ret.cond = "Stun" local p = getThingPosWithDebug(cid) doSendMagicEffect({x=p.x+1, y=p.y+1, z=p.z}, 228) doMoveInArea2(cid, 0, confusion, NORMALDAMAGE, 0, 0, spell, ret) elseif spell == "Surf" then local pos = getThingPosWithDebug(cid) doMoveInArea2(cid, 246, doSurf1, WATERDAMAGE, 0, 0, spell) addEvent(doDanoWithProtect, math.random(100, 400), cid, WATERDAMAGE, pos, doSurf2, -min, -max, 0) elseif spell == "Sunny Day" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 39 ret.cond = "Silence" ---- local p = getThingPosWithDebug(cid) doSendMagicEffect({x=p.x+1, y=p.y, z=p.z}, 181) --- if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all") end doCureStatus(cid, "all") setPlayerStorageValue(cid, 253, 1) --focus doMoveInArea2(cid, 0, confusion, NORMALDAMAGE, 0, 0, spell, ret) elseif isInArray({"Pursuit", "ExtremeSpeed", "U-Turn", "Shell Attack"}, spell) then local atk = { ["Pursuit"] = {17, DARKDAMAGE}, ["ExtremeSpeed"] = {50, NORMALDAMAGE, 51}, ["U-Turn"] = {19, BUGDAMAGE}, ["Shell Attack"] = {45, BUGDAMAGE} --alterado v1.5 } local pos = getThingPosWithDebug(cid) local p = getThingPosWithDebug(target) local newPos = getClosestFreeTile(target, p) local eff = getCreatureName(cid) == "Shiny Arcanine" and atk[spell][3] or atk[spell][1] local damage = atk[spell][2] ----------- doDisapear(cid) doChangeSpeed(cid, -getCreatureSpeed(cid)) ----------- addEvent(doSendMagicEffect, 300, pos, 211) addEvent(doSendDistanceShoot, 400, pos, p, eff) addEvent(doSendDistanceShoot, 400, newPos, p, eff) addEvent(doDanoWithProtect, 400, cid, damage, p, 0, -min, -max, 0) addEvent(doSendDistanceShoot, 800, p, pos, eff) addEvent(doSendMagicEffect, 850, pos, 211) addEvent(doRegainSpeed, 1000, cid) addEvent(doAppear, 1000, cid) elseif spell == "Egg Rain" then local effD = 12 local eff = 5 local master = isSummon(cid) and getCreatureMaster(cid) or cid ------------ local function doFall(cid) for rocks = 1, 62 do addEvent(fall, rocks*35, cid, master, ROCKDAMAGE, effD, eff) end end for up = 1, 10 do addEvent(upEffect, up*75, cid, effD) end addEvent(doFall, 450, cid) addEvent(doDanoWithProtect, 1400, cid, NORMALDAMAGE, getThingPosWithDebug(cid), waterarea, -min, -max, 0) elseif spell == "Air Cutter" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, FLYINGDAMAGE, area, whirl3, -min, -max, 255) end end for a = 0, 5 do local t = { [0] = {128, {x=p.x, y=p.y-(a+1), z=p.z}, {x=p.x+1, y=p.y-(a+1), z=p.z}}, [1] = {129, {x=p.x+(a+1), y=p.y, z=p.z}, {x=p.x+(a+2), y=p.y+1, z=p.z}}, [2] = {131, {x=p.x, y=p.y+(a+1), z=p.z}, {x=p.x+1, y=p.y+(a+2), z=p.z}}, [3] = {130, {x=p.x-(a+1), y=p.y, z=p.z}, {x=p.x-(a+1), y=p.y+1, z=p.z}} } addEvent(doSendMagicEffect, 300*a, t[d][3], t[d][1]) addEvent(sendAtk, 300*a, cid, t[d][2]) end elseif spell == "Venom Gale" then local area = {gale1, gale2, gale3, gale4, gale3, gale2, gale1} for i = 0, 6 do addEvent(doMoveInArea2, i*400, cid, 138, area[i+1], POISONDAMAGE, min, max, spell) end elseif spell == "Crunch" then doMoveInArea2(cid, 146, Crunch1, DARKDAMAGE, min, max, spell) addEvent(doMoveInArea2, 300, cid, 146, Crunch2, DARKDAMAGE, min, max, spell) elseif spell == "Ice Fang" then doTargetCombatHealth(cid, target, ICEDAMAGE, 0, 0, 146) addEvent(doDanoWithProtect, 250, cid, ICEDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 17) elseif spell == "Psyshock" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area, eff) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, psyDmg, area, 0, 0, 0, eff) --alterado v1.4 doAreaCombatHealth(cid, psyDmg, area, whirl3, -min, -max, 255) --alterado v1.4 end end for a = 0, 4 do local t = { [0] = {250, {x=p.x, y=p.y-(a+1), z=p.z}}, --alterado v1.4 [1] = {250, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {250, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {250, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 370*a, cid, t[d][2], t[d][1]) end elseif spell == "Hurricane" then local function hurricane(cid) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doMoveInArea2(cid, 42, bombWee1, FLYINGDAMAGE, min, max, spell) end doSetCreatureOutfit(cid, {lookType = 1398}, 10000) setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 17*600, cid, 3644587, -1) for i = 1, 17 do addEvent(hurricane, i*600, cid) --alterado v1.4 end elseif spell == "Aromateraphy" or spell == "Emergency Call" then eff = spell == "Aromateraphy" and 14 or 13 doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(cid), bombWee3, 0, 0, eff) if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all") end doCureStatus(cid, "all") local uid = checkAreaUid(getThingPosWithDebug(cid), confusion, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then if ehMonstro(cid) and ehMonstro(pid) and pid ~= cid then doCureStatus(pid, "all") elseif isSummon(cid) and ((isSummon(pid) and canAttackOther(cid, pid) == "Cant") or (isPlayer(pid) and canAttackOther(cid, pid) == "Cant")) and pid ~= cid then if isSummon(pid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(pid), 8).uid, "all") end doCureStatus(pid, "all") end end end elseif spell == "Synthesis" or spell == "Roost" then local min = (getCreatureMaxHealth(cid) * 45) / 100 local max = (getCreatureMaxHealth(cid) * 60) / 100 local function doHealArea(cid, min, max) local amount = math.random(min, max) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) end end doSendMagicEffect(getThingPosWithDebug(cid), 39) doHealArea(cid, min, max) elseif spell == "Cotton Spore" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 0 ret.check = 0 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 85, confusion, GRASSDAMAGE, 0, 0, spell, ret) elseif spell == "Peck" then sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtectWithDelay(cid, target, FLYINGDAMAGE, min, max, 3) elseif spell == "Rolling Kick" or spell == "Night Daze" then local pos = getThingPosWithDebug(cid) local eff = spell == "Night Daze" and 222 or 113 local dmg = spell == "Night Daze" and DARKDAMAGE or FIGHTINGDAMAGE local out = getCreatureName(cid) == "Hitmontop" and 1193 or 1451 local function doSendBubble(cid, pos) if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 39) doSendMagicEffect(pos, eff) end --alterado!! for a = 1, 20 do local r1 = math.random(-4, 4) local r2 = r1 == 0 and choose(-3, -2, -1, 2, 3) or math.random(-3, 3) -- local lugar = {x = pos.x + r1, y = pos.y + r2, z = pos.z} addEvent(doSendBubble, a * 25, cid, lugar) end if isInArray({"Hitmontop", "Shiny Hitmontop"}, getCreatureName(cid)) then doSetCreatureOutfit(cid, {lookType = out}, 400) end addEvent(doDanoWithProtect, 150, cid, dmg, pos, waterarea, -min, -max, 0) elseif spell == "Safeguard" then doSendMagicEffect(getThingPosWithDebug(cid), 133) if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all") end doCureStatus(cid, "all") elseif spell == "Air Slash" then local p = getThingPosWithDebug(cid) local t = { {{128, {x = p.x+1, y = p.y-1, z = p.z}}, {16, {x = p.x+1, y = p.y-1, z = p.z}}}, {{129, {x = p.x+2, y = p.y+1, z = p.z}}, {221, {x = p.x+3, y = p.y+1, z = p.z}}}, {{131, {x = p.x+1, y = p.y+2, z = p.z}}, {223, {x = p.x+1, y = p.y+3, z = p.z}}}, {{130, {x = p.x-1, y = p.y+1, z = p.z}}, {243, {x = p.x-1, y = p.y+1, z = p.z}}}, } for i = 1, 4 do doSendMagicEffect(t[i][2][2], t[i][2][1]) end doDanoWithProtect(cid, FLYINGDAMAGE, getThingPosWithDebug(cid), airSlash, -min, -max, 0) for i = 1, 4 do addEvent(doSendMagicEffect, 400, t[i][1][2], t[i][1][1]) end addEvent(doDanoWithProtect, 400, cid, FLYINGDAMAGE, getThingPosWithDebug(cid), bombWee2, -min, -max, 0) elseif spell == "Feather Dance" then local function doPulse(cid, eff) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 9) doDanoWithProtectWithDelay(cid, target, FLYINGDAMAGE, -min, -max, eff) end setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 350, cid, 3644587, -1) addEvent(doPulse, 0, cid, 137) addEvent(doPulse, 350, cid, 137) elseif spell == "Tailwind" then local ret = {} ret.id = cid ret.cd = 10 ret.eff = 137 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Double Team" then local function RemoveTeam(cid, master) if isCreature(cid) then local p = getThingPosWithDebug(cid) doSendMagicEffect(p, 211) doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 637500) >= 1 then return true end local s = { ["Xatu"] = "XatuTeam", ["Yanma"] = "YanmaTeam", } local master = getCreatureMaster(cid) local item = getPlayerSlotItem(master, 8) local pos = getThingPosWithDebug(cid) local time = 20 local pokelife = (getCreatureHealth(cid) / getCreatureMaxHealth(cid)) local random = math.random(5, 10) local dir = getCreatureLookDir(cid) --------- doItemSetAttribute(item.uid, "hp", pokelife) --------- doDisapear(cid) doTeleportThing(cid, {x=4, y=3, z=10}, false) doAppear(cid) --------- doSummonMonster(master, s[getCreatureName(cid)]) local pk = getCreatureSummons(master)[2] adjustStatus(pk, item.uid, true, true, true) --------- doTeleportThing(pk, getClosestFreeTile(pk, pos), false) doTeleportThing(cid, getClosestFreeTile(cid, pos), false) doCreatureSetLookDir(pk, dir) doCreatureSetLookDir(cid, dir) doSendMagicEffect(getThingPosWithDebug(pk), 211) doSendMagicEffect(getThingPosWithDebug(cid), 211) if getPlayerStorageValue(cid, 9658783) >= 1 then --gambiarra doSetCreatureOutfit(cid, {lookType = 1446}, -1) end -------- setPlayerStorageValue(pk, 637500, 1) setPlayerStorageValue(master, 637501, 1) addEvent(RemoveTeam, time*1000, pk, master) addEvent(setPlayerStorageValue, time*1000, master, 637501, -1) elseif spell == "Tackle" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 111) elseif spell == "Giga Drain" then local life = getCreatureHealth(target) doDanoWithProtect(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 14) local newlife = life - getCreatureHealth(target) doSendMagicEffect(getThingPosWithDebug(cid), 14) if newlife >= 1 then doCreatureAddHealth(cid, newlife) doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32) end elseif spell == "Bug Fighter" then local ret = {} ret.id = cid ret.cd = 10 ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Metal Claw" then doDanoWithProtect(cid, STEELDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 160) elseif spell == "Power Gem" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, ROCKDAMAGE, area, pulse2, -min, -max, 255) end end for a = 0, 3 do local t = { [0] = {29, {x=p.x, y=p.y-(a+1), z=p.z}}, [1] = {29, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {29, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {29, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 400*a, cid, t[d][2]) addEvent(doAreaCombatHealth, 400*a, cid, ROCKDAMAGE, t[d][2], pulse1, 0, 0, t[d][1]) addEvent(doAreaCombatHealth, 400*a, cid, ROCKDAMAGE, t[d][2], pulse1, 0, 0, 103) end elseif spell == "Octazooka" then local ret = {} ret.id = 0 ret.cd = 9 ret.check = 0 ret.eff = 34 ret.cond = "Silence" doMoveInAreaMulti(cid, 6, 116, multi, multiDano, WATERDAMAGE, min, max) doMoveInArea2(cid, 0, multiDano, WATERDAMAGE, 0, 0, spell, ret) elseif spell == "Take Down" then doMoveInArea2(cid, 111, reto5, NORMALDAMAGE, min, max, spell) elseif spell == "Yawn" then local ret = {} ret.id = target ret.cd = math.random(6, 9) ret.check = getPlayerStorageValue(target, conds["Sleep"]) ret.first = true ret.cond = "Sleep" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 11) addEvent(doCondition2, 1500, ret) elseif spell == "Tongue Hook" then sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebug(target), 38) addEvent(doTeleportThing, 200, target, getClosestFreeTile(cid, getThingPosWithDebug(cid)), true) addEvent(sendDistanceShootWithProtect, 200, cid, getThingPosWithDebug(target), getThingPosWithDebug(cid), 38) elseif spell == "Tongue Grap" then local function distEff(cid, target) if not isCreature(cid) or not isCreature(target) then return true end sendDistanceShootWithProtect(cid, getThingPosWithDebug(target), getThingPosWithDebug(cid), 38) end local ret = {} ret.id = target ret.cd = 10 ret.check = getPlayerStorageValue(target, conds["Silence"]) ret.eff = 185 ret.cond = "Silence" sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebug(target), 38) addEvent(doCondition2, 100, ret) for i = 1, 10 do addEvent(distEff, i*930, cid, target) end elseif spell == "Struggle Bug" then local function sendFireEff(cid, dir) if not isCreature(cid) then return true end doDanoWithProtect(cid, BUGDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 105) end local function doWheel(cid) if not isCreature(cid) then return true end local t = { [1] = SOUTH, [2] = SOUTHEAST, [3] = EAST, [4] = NORTHEAST, [5] = NORTH, --alterado v1.5 [6] = NORTHWEST, [7] = WEST, [8] = SOUTHWEST, } for a = 1, 8 do addEvent(sendFireEff, a * 200, cid, t[a]) end end doWheel(cid, false, cid) elseif spell == "Low Kick" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtectWithDelay(cid, target, FIGHTINGDAMAGE, min, max, 113) elseif spell == "Present" then local function sendHeal(cid) if isCreature(cid) and isCreature(target) then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), crusher, min, max, 5) doSendAnimatedText(getThingPosWithDebug(target), "HEALTH!", 65) end end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 31) if math.random(1, 100) >= 10 then doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 5, crusher) else addEvent(sendHeal, 100, cid) end elseif spell == "Inferno" or spell == "Fissure" then local pos = getThingPosWithDebug(cid) atk = { ["Inferno"] = {101, FIREDAMAGE}, ["Fissure"] = {102, GROUNDDAMAGE} } doMoveInArea2(cid, atk[spell][1], inferno1, atk[spell][2], 0, 0, spell) addEvent(doDanoWithProtect, math.random(100, 400), cid, atk[spell][2], pos, inferno2, -min, -max, 0) elseif spell == "Wrap" then local ret = {} ret.id = target ret.cd = 10 ret.check = getPlayerStorageValue(target, conds["Silence"]) ret.eff = 104 ret.cond = "Silence" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) addEvent(doCondition2, 100, ret) elseif spell == "Rock n'Roll" then local pos = getThingPosWithDebug(cid) local areas = {rock1, rock2, rock3, rock4, rock5, rock4, rock3, rock2, rock1} local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 1 ret.check = 0 ret.spell = spell ret.cond = "Miss" for i = 0, 8 do addEvent(doMoveInArea2, i*400, cid, 1, areas[i+1], NORMALDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*410, cid, 1, areas[i+1], NORMALDAMAGE, 0, 0, spell) end elseif spell == "Power Wave" then local pos = getThingPosWithDebug(cid) local areas = {rock1, rock2, rock3, rock4, rock5} local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 103 ret.check = 0 ret.first = true ret.cond = "Paralyze" local function sendAtk(cid) if isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 9658783, -1) for i = 0, 4 do addEvent(doMoveInArea2, i*400, cid, 103, areas[i+1], psyDmg, min, max, spell, ret) addEvent(doMoveInArea2, i*410, cid, 103, areas[i+1], psyDmg, 0, 0, spell) end end end doSetCreatureOutfit(cid, {lookType = 1001}, -1) setPlayerStorageValue(cid, 9658783, 1) addEvent(sendAtk, 2000, cid) elseif spell == "Ground Crusher" then local pos = getThingPosWithDebug(cid) local areas = {rock1, rock2, rock3, rock4, rock5} local ret = {} ret.id = 0 ret.cd = 12 ret.eff = 0 ret.check = 0 ret.spell = spell ret.cond = "Stun" local function endMove(cid) if isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) end end doSetCreatureOutfit(cid, {lookType = 1449}, -1) stopNow(cid, 16*360) addEvent(endMove, 16*360, cid) ---- for i = 0, 4 do addEvent(doMoveInArea2, i*350, cid, 100, areas[i+1], GROUNDDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*360, cid, 100, areas[i+1], GROUNDDAMAGE, 0, 0, spell, ret) end for i = 4, 8 do local a = i-3 addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell, ret) end for i = 8, 12 do local a = i-7 addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell, ret) end for i = 12, 16 do local a = i-11 addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell, ret) end for i = 16, 20 do local a = i-15 addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell, ret) end elseif spell == "Last Resort" then local pos = getThingPosWithDebug(cid) local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1} for i = 0, 9 do addEvent(doMoveInArea2, i*400, cid, 3, areas[i+1], NORMALDAMAGE, min, max, spell) addEvent(doMoveInArea2, i*410, cid, 3, areas[i+1], NORMALDAMAGE, 0, 0, spell) end elseif spell == "Psy Impact" then local master = getCreatureMaster(cid) or 0 local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 0 ret.check = 0 ret.spell = spell ret.cond = "Miss" for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, psyDmg, -1, 98) end addEvent(doMoveInArea2, 500, cid, 0, BigArea2, psyDmg, min, max, spell, ret) elseif spell == "Two Face Shock" then local atk = { [1] = {179, ICEDAMAGE}, [2] = {127, GROUNDDAMAGE} } local rand = math.random(1, 2) doAreaCombatHealth(cid, atk[rand][2], getThingPosWithDebug(cid), splash, -min, -max, 255) local sps = getThingPosWithDebug(cid) sps.x = sps.x+1 sps.y = sps.y+1 doSendMagicEffect(sps, atk[rand][1]) elseif spell == "Aerial Ace" then local eff = {16, 221, 223, 243} for rocks = 1, 32 do addEvent(fall, rocks*22, cid, master, FLYINGDAMAGE, -1, eff[math.random(1, 4)]) end addEvent(doMoveInArea2, 500, cid, 0, BigArea2, FLYINGDAMAGE, min, max, spell) elseif spell == "Echoed Voice" then local p = getThingPosWithDebug(cid) local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid) function sendAtk(cid, area) if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, NORMALDAMAGE, area, pulse2, -min, -max, 255) end end for a = 0, 5 do local t = { [0] = {39, {x=p.x, y=p.y-(a+1), z=p.z}}, [1] = {39, {x=p.x+(a+1), y=p.y, z=p.z}}, [2] = {39, {x=p.x, y=p.y+(a+1), z=p.z}}, [3] = {39, {x=p.x-(a+1), y=p.y, z=p.z}} } addEvent(sendAtk, 400*a, cid, t[d][2]) addEvent(doAreaCombatHealth, 400*a, cid, ROCKDAMAGE, t[d][2], pulse1, 0, 0, t[d][1]) end elseif spell == "Electro Field" or spell == "Petal Tornado" then local p = getThingPos(cid) local pos1 = { [1] = {{x = p.x, y = p.y+4, z = p.z}, {x = p.x+1, y = p.y+4, z = p.z}, {x = p.x+2, y = p.y+3, z = p.z}, {x = p.x+3, y = p.y+2, z = p.z}, {x = p.x+4, y = p.y+1, z = p.z}, {x = p.x+4, y = p.y, z = p.z}}, [2] = {{x = p.x, y = p.y+3, z = p.z}, {x = p.x+1, y = p.y+3, z = p.z}, {x = p.x+2, y = p.y+2, z = p.z}, {x = p.x+3, y = p.y+1, z = p.z}, {x = p.x+3, y = p.y, z = p.z}}, [3] = {{x = p.x, y = p.y+2, z = p.z}, {x = p.x+1, y = p.y+2, z = p.z}, {x = p.x+2, y = p.y+1, z = p.z}, {x = p.x+2, y = p.y, z = p.z}}, [4] = {{x = p.x, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y, z = p.z}}, } local pos2 = { [1] = {{x = p.x, y = p.y-4, z = p.z}, {x = p.x-1, y = p.y-4, z = p.z}, {x = p.x-2, y = p.y-3, z = p.z}, {x = p.x-3, y = p.y-2, z = p.z}, {x = p.x-4, y = p.y-1, z = p.z}, {x = p.x-4, y = p.y, z = p.z}}, [2] = {{x = p.x, y = p.y-3, z = p.z}, {x = p.x-1, y = p.y-3, z = p.z}, {x = p.x-2, y = p.y-2, z = p.z}, {x = p.x-3, y = p.y-1, z = p.z}, {x = p.x-3, y = p.y, z = p.z}}, [3] = {{x = p.x, y = p.y-2, z = p.z}, {x = p.x-1, y = p.y-2, z = p.z}, {x = p.x-2, y = p.y-1, z = p.z}, {x = p.x-2, y = p.y, z = p.z}}, [4] = {{x = p.x, y = p.y-1, z = p.z}, {x = p.x-1, y = p.y-1, z = p.z}, {x = p.x-1, y = p.y, z = p.z}}, } local pos3 = { [1] = {{x = p.x+4, y = p.y, z = p.z}, {x = p.x+4, y = p.y-1, z = p.z}, {x = p.x+3, y = p.y-2, z = p.z}, {x = p.x+2, y = p.y-3, z = p.z}, {x = p.x+1, y = p.y-4, z = p.z}, {x = p.x, y = p.y-4, z = p.z}}, [2] = {{x = p.x+3, y = p.y, z = p.z}, {x = p.x+3, y = p.y-1, z = p.z}, {x = p.x+2, y = p.y-2, z = p.z}, {x = p.x+1, y = p.y-3, z = p.z}, {x = p.x, y = p.y-3, z = p.z}}, [3] = {{x = p.x+2, y = p.y, z = p.z}, {x = p.x+2, y = p.y-1, z = p.z}, {x = p.x+1, y = p.y-2, z = p.z}, {x = p.x, y = p.y-2, z = p.z}}, [4] = {{x = p.x+1, y = p.y, z = p.z}, {x = p.x+1, y = p.y-1, z = p.z}, {x = p.x, y = p.y-1, z = p.z}}, } local pos4 = { [1] = {{x = p.x-4, y = p.y, z = p.z}, {x = p.x-4, y = p.y+1, z = p.z}, {x = p.x-3, y = p.y+2, z = p.z}, {x = p.x-2, y = p.y+3, z = p.z}, {x = p.x-1, y = p.y+4, z = p.z}, {x = p.x, y = p.y+4, z = p.z}}, [2] = {{x = p.x-3, y = p.y, z = p.z}, {x = p.x-3, y = p.y+1, z = p.z}, {x = p.x-2, y = p.y+2, z = p.z}, {x = p.x-1, y = p.y+3, z = p.z}, {x = p.x, y = p.y+3, z = p.z}}, [3] = {{x = p.x-2, y = p.y, z = p.z}, {x = p.x-2, y = p.y+1, z = p.z}, {x = p.x-1, y = p.y+2, z = p.z}, {x = p.x, y = p.y+2, z = p.z}}, [4] = {{x = p.x-1, y = p.y, z = p.z}, {x = p.x-1, y = p.y+1, z = p.z}, {x = p.x, y = p.y+1, z = p.z}}, } local atk = { ["Electro Field"] = {41, 207, ELECTRICDAMAGE}, ["Petal Tornado"] = {14, 54, GRASSDAMAGE}, } local ret = {} ret.id = 0 ret.cd = 12 ret.eff = 48 ret.check = 0 ret.spell = spell ret.cond = "Stun" local function sendDist(cid, posi1, posi2, eff, delay) if posi1 and posi2 and isCreature(cid) then addEvent(doSendDistanceShoot, delay, posi1, posi2, eff) end end local function sendDano(cid, pos, eff, delay, min, max) if pos and isCreature(cid) then addEvent(doAreaCombatHealth, delay, cid, atk[spell][3], pos, 0, -min, -max, eff) end end local function doTornado(cid) if isCreature(cid) then for j = 1, 4 do for i = 1, 6 do --41/207 -- 14/54 addEvent(sendDist, 350, cid, pos1[j][i], pos1[j][i+1], atk[spell][1], i*330) addEvent(sendDano, 350, cid, pos1[j][i], atk[spell][2], i*300, min, max) addEvent(sendDano, 350, cid, pos1[j][i], atk[spell][2], i*310, 0, 0) --- addEvent(sendDist, 350, cid, pos2[j][i], pos2[j][i+1], atk[spell][1], i*330) addEvent(sendDano, 350, cid, pos2[j][i], atk[spell][2], i*300, min, max) addEvent(sendDano, 350, cid, pos2[j][i], atk[spell][2], i*310, 0, 0) ---- addEvent(sendDist, 800, cid, pos3[j][i], pos3[j][i+1], atk[spell][1], i*330) addEvent(sendDano, 800, cid, pos3[j][i], atk[spell][2], i*300, min, max) addEvent(sendDano, 800, cid, pos3[j][i], atk[spell][2], i*310, 0, 0) --- addEvent(sendDist, 800, cid, pos4[j][i], pos4[j][i+1], atk[spell][1], i*330) addEvent(sendDano, 800, cid, pos4[j][i], atk[spell][2], i*300, min, max) addEvent(sendDano, 800, cid, pos4[j][i], atk[spell][2], i*310, 0, 0) end end end end if spell == "Electro Field" then addEvent(doMoveInArea2, 1000, cid, 0, electro, ELECTRICDAMAGE, 0, 0, spell, ret) end for b = 0, 2 do addEvent(doTornado, b*1500, cid) end end return true end Espero Que Ajude! Link para o comentário Compartilhar em outros sites More sharing options...
josegremista 2 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 ss eu ja baixei mais fui subistituir e nao apareçeu os loot =s @otal2012 alguem ja tem todos os shiny na pasta pra me passa? com portait tudo? ae cara eu tenho varios shinys + de 151 + tem alguns que aind não tem loot + voce quer assim msm ?? Link para o comentário Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @stigal vc gosta de aumentar a qntdade de post tua neh? ;/ sempre flando oq n sabe ^^ Link para o comentário Compartilhar em outros sites More sharing options...
Dudu08267 7 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 (editado) Slicer o problema tava no pokemon moves da atualização ... Stigal vlw ai agr volto a funcionar ;D rep + pena q ta desatualizado :C com problemas de possiveis erros. Editado Setembro 23, 2012 por Dudu08267 Link para o comentário Compartilhar em outros sites More sharing options...
galhem 0 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @galhem se tas usando a versao 1.6/2.6+ party agora eh soh pra upar em conjunto... o duel agora eh por Order! de order na pessoa q tu quer duelar e entao escolha qnts pokes vao ser usados e entao a outra pessoa tem q usar Order em ti tb para aceitar o duel! @Slicer VC PODERIA ME ENSINAR A TIRAR ESSE SISTEMA DE DUEL E A COLOCAR O ANTIGO QUE SO PRECISAR DAR PARTY E DUELA SEM TER QUE DAR ORDER É QUE AQUI ELE DA DEBUG TE AGRADEÇO Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 @stigal vc gosta de aumentar a qntdade de post tua neh? ;/ sempre flando oq n sabe ^^ Slicer o problema tava no pokemon moves da atualização ... Stigal vlw ai agr volto a funcionar ;D rep + pena q ta desatualizado :C com problemas de possiveis erros. Sorry é esse que uso (*base). Slicer não tou aqui para ficar discutindo com você, porque e uma total perca de tempo. estou aqui para ajudar. Atenciosamente, Stigal. Link para o comentário Compartilhar em outros sites More sharing options...
cacaiu 10 Postado Setembro 23, 2012 Share Postado Setembro 23, 2012 aew Slicer tou com um problema com seu npc de police a oficial e o giovanny da rocket 13:44 [ADM] [121]: hi 13:44 Oficial Janny: Hello, you want partipa team of police? 13:44 [ADM] [121]: join 13:44 Oficial Janny: Then you want to join to the police? 13:44 [ADM] [121]: yes ai ele n fala nada e n da a outifit =/ e aparece esse bug no distro: [23/09/2012 13:44:47] [Error - Npc interface] [23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:onCreatureSay [23/09/2012 13:44:51] Description: [23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:27: attempt to call global 'isRocket' (a nil value) [23/09/2012 13:44:51] stack traceback: [23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:27: in function 'callback' [23/09/2012 13:44:51] data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay' [23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:9: in function <data/npc/scripts/Oficial Janny.lua:9> [23/09/2012 13:45:21] > Broadcasted message: "Para saber mais sobre nossos sistema diga !sistemas. [23/09/2012 13:45:21] ". Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados