Drakopoulos 219 Postado Novembro 14, 2016 Share Postado Novembro 14, 2016 20 horas atrás, Josegvb disse: acho q nao consegueu ne? @Drakopoulos como eu ja disse, é um bug bem critico, provavelmente seja na sources o erro... esse sistema de dano tem q ser refeito, para comprovar se for as sources poderia postar seu executavel pra eu testar Realmente esse sistema tem q ser refeito, testei o que voce falou e se tiver + de 1 poke buga Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Novembro 15, 2016 Autor Share Postado Novembro 15, 2016 59 minutos atrás, Drakopoulos disse: Realmente esse sistema tem q ser refeito, testei o que voce falou e se tiver + de 1 poke buga é bem dificil eu sei q vc esta em outros projeitos e tals mas teria como fazer isso? eu adoro a dxp mas só por esse bug fico com bontade de parar de usar ele tipo nao adianta balançar pokes pq com esse bug sempre quebra inmunidades e bate danos estranhos do msm jeito qndo coloca + de 2 no offense dos bixos Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 7, 2016 Autor Share Postado Dezembro 7, 2016 ainda sem soluçao Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 7, 2016 Autor Share Postado Dezembro 7, 2016 unica coisa q ta fazendo eu querer parar com o DxP é esse bug chato ate agr nemhum programador soube como arrumar, ja perguntei pra mts e tds falam q nas sources paresce normal... minha ultima esperança seria o @zipter98 me ajudo mt ja, se teria alguma ideia de como arrumar esse bug? Link para o comentário Compartilhar em outros sites More sharing options...
Drakopoulos 219 Postado Dezembro 7, 2016 Share Postado Dezembro 7, 2016 2 minutos atrás, Josegvb disse: unica coisa q ta fazendo eu querer parar com o DxP é esse bug chato ate agr nemhum programador soube como arrumar, ja perguntei pra mts e tds falam q nas sources paresce normal... minha ultima esperança seria o @zipter98 me ajudo mt ja, se teria alguma ideia de como arrumar esse bug? Pelo que testei aqui e até consegui arrumar foi tudo na source mesmo, maaaas.. teria q refazer o statsChange todo. Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 7, 2016 Autor Share Postado Dezembro 7, 2016 (editado) Agora, Drakopoulos disse: Pelo que testei aqui e até consegui arrumar foi tudo na source mesmo, maaaas.. teria q refazer o statsChange todo. boa mano parabens ^^ e você planeja me ajudar aqui com isso? eu disse pra tds q era pra refazer o sistema nas sources mas tds dizeram q nao q era no lua apenas e esse melee bugando pela verificaçao dos spells e tals sem sentido ter a dxp com esse bug q nao permite balançar os pokes, esse e aquele q nao pode ter mais de 2 no offense pq bate pacas u.u Editado Dezembro 7, 2016 por Josegvb Link para o comentário Compartilhar em outros sites More sharing options...
Drakopoulos 219 Postado Dezembro 7, 2016 Share Postado Dezembro 7, 2016 Agora, Josegvb disse: boa mano parabens ^^ e você planeja me ajudar aqui com isso? eu disse pra tds q era pra refazer o sistema nas sources mas tds dizeram q nao q era no lua apenas sem sentido ter a dxp com esse bug q nao permite balançar os pokes, esse e aquele q nao pode ter mais de 2 no offense pq bate pacas u.u Vou ver se nesse final de semana arrumo um tempo para refazer o script mas n é certeza n pois estou finalizando um projeto meu. Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 10, 2016 Autor Share Postado Dezembro 10, 2016 Em 12/7/2016 at 16:05, Drakopoulos disse: Vou ver se nesse final de semana arrumo um tempo para refazer o script mas n é certeza n pois estou finalizando um projeto meu. Obrigado, irei esperar anciosamente Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 10, 2016 Share Postado Dezembro 10, 2016 (editado) Pelo que li, o seu servidor apresenta um problema com o combat, certo? Sem o uso deste argumento no código, o máximo que se pode conseguir num sistema de efetividade são gambiarras mal feitas. A única spell que está causando problemas é o Earthquake (ou seja, uma spell de dano por tempo)? Seu servidor tem mais spells do tipo? No caso da passiva do Electabuzz, após o fim do "giro" dela em volta do pokémon-origem, o ataque melee volta a dar dano ou continua sendo considerado um movimento do tipo elétrico? Lendo o código, percebi que a cada execução do stats change o "elemento" do dano é o mesmo da última spell usada. Então, naturalmente, uma spell do elemento normal como Harden atrapalharia no dano de uma ground por tempo, como o Earthquake. Baseie-se nesta lógica para pensar se existe alguma outra combinação de spells que causaria problemas no cálculo de efetividade. Finalmente, poderia postar o código da spell Earthquake e também onde a storage 21102 é setada? Podemos combater gambiarra com gambiarra. Me basearei nos códigos originais que você postou, e não nas edições feitas ao longo dos comentários. Editado Dezembro 11, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 10, 2016 Autor Share Postado Dezembro 10, 2016 (editado) 1 hora atrás, zipter98 disse: Pelo que li, o seu servidor apresenta um problema com o combat, certo? Sem o uso deste argumento no código, o máximo que se pode conseguir num sistema de efetividade são gambiarras mal feitas. A única spell que está causando problemas é o Earthquake (ou seja, uma spell de dano por tempo)? Seu servidor tem mais spells do tipo? No caso da passiva do Electabuzz, após o fim do "giro" dela em volta do pokémon-origem, o ataque melee volta a dar dano ou continua sendo considerado um movimento do tipo elétrico? Lendo o código, percebi que a cada execução do stats change o "elemento" do dano é o mesmo da última spell usada. Então, naturalmente, uma spell do elemento normal como Harden atrapalharia no dano de uma ground por tempo, como o Earthquake. Baseie-se nesta lógica para pensar se existe alguma outra combinação de spells que causaria problemas no cálculo de efetividade. Finalmente, poderia postar o código da spell Earthquake e também onde a storage 11022 é setada? Podemos combater gambiarra com gambiarra. Me basearei nos códigos originais que você postou, e não nas edições feitas ao longo dos comentários. Apos a volta do buzz o melee continua sendo um movimento considerado electrico esta assim o melee, tb acontece q tipo voce spamma electric storm, sabe que ela demora uns 2 segundos em bater o dano, se no segundo 1 voce usa quick attack, a storm no segundo 2 ira fazer dano no pokemon. por alguma raçao qualquer ataque GROUND, bate em zard sendo q ele é fire/fly enquanto a storage nao achei ela em nemhum local do server nem das sources, poderia estar no xammp? na criaçao de char earthquake Spoiler elseif spell == "Earthquake" then local eff = getSubName(cid, target) == "Shiny Onix" and 175 or 118 --alterado v1.6.1 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, cid) end Editado Dezembro 10, 2016 por Josegvb Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) Primeiramente, consideremos que o problema está em todas as spells que não sejam executadas "de uma vez" - o que inclui spells de dano por tempo, storms que demoram para cair, passivas como do Electabuzz (que suponho normalizar o auto ataque apenas após o uso de outro movimento, de outro elemento), etc. Foquemo-nos, por enquanto, em corrigir o Earthquake. Você tem certeza que postou o código correto? Pois parece que o XTibia está cortando alguns caracteres de comentários. Se você puder postar este código por meio da ferramente de code (<>, logo acima), seria melhor para nossas conclusões. Quanto à storage, parece que alucinei aquele número. lol Mas enfim, a correta não está no script do Earthquake. Porém, imagino que tenha alguma relação com esta linha: setPlayerStorageValue(cid, 3644587, 1) O Notepad++ tem uma ferramenta de busca que analisa todos os arquivos dentro de uma pasta (CTRL + F -> Localizar em arquivos). Recomendo que a use para procurar por alguma menção ao número 21102 dentro da pasta data. Editado Dezembro 11, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Drakopoulos 219 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 7 minutos atrás, zipter98 disse: Primeiramente, consideremos que o problema está em todas as spells que não sejam executadas "de uma vez" - o que inclui spells de dano por tempo, storms que demoram para cair, passivas como do Electabuzz (que suponho normalizar o auto ataque apenas após o uso de outro movimento, de outro elemento), etc. Foquemo-nos, por enquanto, em corrigir o Earthquake. Você tem certeza que postou o código correto? Parece que o XTibia está cortando alguns caracteres de comentários. Se você puder postar este código por meio da ferramente de code (<>, logo acima), seria melhor para nossas conclusões. Quanto à storage, parece que alucinei aquele número. lol Mas enfim, a correta não está no script do Earthquake. Imagino que ela tenha algo a ver com esta linha: setPlayerStorageValue(cid, 3644587, 1) O Notepad++ tem uma ferramenta de busca que analisa todos os arquivos dentro de uma pasta (CTRL + F -> Localizar em arquivos). Recomendo que a use para procurar por alguma menção ao número 21102 dentro da pasta data. O problema zipter é que ele registra o nome da spell na storage sempre quando utiliza e como o Earthquake é em addEvent ele acaba n funcionando. Ela é setada em pokemon moves setPlayerStorageValue(cid, 21102, spell) Spoiler const_distance_delay = 56function doForceDanoSpeel(cid, moveName)local name = doCorrectString(getCreatureName(cid))local masterLevel = (isSummon(cid) and getPlayerLevel(getCreatureMaster(cid)) or getPokemonLevelByName(name)) min = (getMoveForce(name, moveName) / 2) + (masterLevel * 1.5) --alterado v1.6 max = getMoveForce(name, moveName) + (masterLevel * 1.5) --min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)) return math.random(min, max)endfunction doForceDano(cid)local name = doCorrectString(getCreatureName(cid))local masterLevel = (isSummon(cid) and getPlayerLevel(getCreatureMaster(cid)) or getPokemonLevelByName(name)) min = (getMoveForce(name, moveName) / 2) + (masterLevel * 1.5) --alterado v1.6 max = getMoveForce(name, moveName) + (masterLevel * 1.5) --min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)) return math.random(min, max)endfunction isShredTEAM(cid) if getPlayerStorageValue(cid, 637505) == "eh" then return true end return falseend--//////////////////////////////////////////////////////////////////////////////////////////////////////////--local function getSubName(cid, target)if not isCreature(cid) then return "" endif getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then return getPlayerStorageValue(cid, 1010)elseif pokeHaveReflect(cid) and isCreature(target) then return getCreatureName(target)else --alterado v1.6.1 return getCreatureName(cid)endendlocal function getThingName(cid)if not isCreature(cid) then return "" end --alterado v1.6return getCreatureName(cid)endfunction getMasterTarget(cid)if isCreature(cid) and getPlayerStorageValue(cid, 21101) ~= -1 then return getPlayerStorageValue(cid, 21101) --alterado v1.6end if isSummon(cid) then return getCreatureTarget(getCreatureMaster(cid)) else return getCreatureTarget(cid) endend--////////////////////////////////////////////////////////////////////////////////////////////////////////--function docastspell(cid, spell, reflectName)if isWildTrainerNPC(cid) then return true endlocal target = 0local getDistDelay = 0if not isCreature(cid) or getCreatureHealth(cid) <= 0 then return false end --alterado v1.6if isSleeping(cid) and getPlayerStorageValue(cid, 21100) <= -1 then return true end --alterado v1.6if isCreature(getMasterTarget(cid)) then target = getMasterTarget(cid) getDistDelay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delayendif isMonster(cid) and not isSummon(cid) then if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end doCreatureAddCondition(cid, wildexhaust)endlocal mydir = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local name = getCreatureName(cid) if reflectName and reflectName ~= "" then name = reflectName end name = doCorrectString((name)) if isMega(cid) then name = getPlayerStorageValue(cid, storages.isMega) elseif name:find("Smeargle") then name = getSmeargleAttackNameFromSkactch(cid, spell) -- retorna o nome do poke q tem essa magia endif spell == "ataqueBasico1" then -- ataque basico --doSendMagicEffect(getThingPos(cid), 3) doDanoWithProtectWithDelay(cid, target, psyDmg, -100, -200, 0) return trueelseif spell == "ataqueBasico2" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoInTargetWithDelay(cid, target, psyDmg, -100, -200, 0) --alterado v1.7 return trueendlocal pokesMetro = {"Smeargle", "Clefable", "Clefairy", "Mew", "Cleffa", "Togetic", "Togepi"}local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Meteor Mash", "Leaf Storm", "Hydropump", "Falling Rocks"}if isInArray(spells, spell) and isInArray(pokesMetro, doCorrectString(getCreatureName(cid))) then name = getMetronomeName(spell) end local table = getTableMove(name, spell) --alterado v1.6 if table == nil then return true endlocal min = 0local max = 0--- FEAR / ROAR / SILENCE ---if (isWithFear(cid) or isSilence(cid)) and getPlayerStorageValue(cid, 21100) <= -1 thenreturn true --alterado v1.6!!end----------------------------min= 1000 + if table ~= "" and table ~= nil then --alterado v1.6 local masterLevel = (isSummon(cid) and getPlayerLevel(getCreatureMaster(cid)) or getPokemonLevelByName(doCorrectString(getCreatureName(cid)))) local mutiplay = 0.1 if masterLevel > 20 and masterLevel < 30 then -- 21 ao 29 mutiplay = 1.2 elseif masterLevel > 29 and masterLevel < 61 then -- 30 ao 60 mutiplay = 1.3 elseif masterLevel > 60 and masterLevel < 86 then -- 61 ao 85 mutiplay = 1.4 elseif masterLevel > 85 and masterLevel < 121 then -- 86 ao 120 mutiplay = 1.5 elseif masterLevel > 120 and masterLevel < 181 then -- 121 ao 180 mutiplay = 1.6 elseif masterLevel > 180 and masterLevel < 221 then -- 181 ao 220 mutiplay = 1.7 elseif masterLevel > 220 and masterLevel < 351 then -- 221 ao 350 mutiplay = 1.8 elseif masterLevel > 351 then -- 350++ mutiplay = 1.9 end if string.find(getCreatureName(cid):lower(), "shiny") then mutiplay = 2 end min = getSpecialAttack(cid) * table.f * mutiplay --alterado v1.6 max = min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)) if spell == "Selfdestruct" then min = getCreatureHealth(cid) --alterado v1.6 max = getCreatureHealth(cid) end if not isSummon(cid) and not isInArray({"Demon Puncher", "Demon Kicker"}, spell) then --alterado v1.7 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 local namePoke = doCorrectString(getCreatureName(cid)) local remover = removeSpellInXML(namePoke, spell) if remover then print("Magia: " .. spell .. " removida do XML: " .. namePoke .. ".xml") end end--- FOCUS ---------------------------------- if getPlayerStorageValue(cid, 253) >= 0 and table ~= "" and table.f ~= 0 then --alterado v1.6 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 end------------------Miss System--------------------------local cd = getPlayerStorageValue(cid, conds["Miss"])local cd2 = getPlayerStorageValue(cid, conds["Confusion"]) --alterado v1.5local cd3 = getPlayerStorageValue(cid, conds["Stun"]) if cd >= 0 or cd2 >= 0 or cd3 >= 0 then --alterado v1.7 if not isInArray({"Shock-Counter", "Lava-Counter", "Counter Helix", "Demon Puncher", "Demon Kicker", "Stunning Confusion", "Electric Charge", "Melody", "Mirror Coat", "Mega Drain", "Aromateraphy", "Heal Bell", "Emergency Call", "Magical Leaf", "Sunny Day", "Taunt", "Skull Bash", "Safeguard", "Rain Dance", "Spores Reaction", "Giroball", "Counter Claw", "Counter Spin", "Dragon Fury", "Amnesia", "Zen Mind", "Bone Spin"}, spell) and getPlayerStorageValue(cid, 21100) <= -1 then if not string.find(spell, "Mega") then if math.random(1, 100) > 30 then --alterado v1.6 doSendAnimatedText(getThingPosWithDebug(cid), "MISS", 215) return false end end endend---------------GHOST DAMAGE-----------------------ghostDmg = GHOSTDAMAGEpsyDmg = PSYCHICDAMAGE--------------------REFLECT----------------------setPlayerStorageValue(cid, 21100, -1) --alterado v1.6if not isInArray({"Psybeam", "Sand Attack", "Flamethrower", "Heal Bell"}, spell) then --alterado v1.8 setPlayerStorageValue(cid, 21101, -1)endsetPlayerStorageValue(cid, 21102, spell)---------------------------------------------------if isWildTrainerPokemon(cid) then local master = getPlayerStorageValue(cid, storages.isWildTrainerID) if isCreature(master) then doCreatureSay(master, ""..getPokeName(cid)..", use " .. spell .. "!", TALKTYPE_ORANGE_1) endendif spell == "Reflect" or spell == "Mimic" or spell == "Magic Coat" then if spell == "Magic Coat" then eff = 11 else eff = 135 end doSendMagicEffect(getThingPosWithDebug(cid), eff) setPlayerStorageValue(cid, storages.reflect, 1) elseif spell == "Quick Attack" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 111)elseif spell == "Razor Leaf" or spell == "Magical Leaf" then local eff = spell == "Razor Leaf" and 8 or 21local function throw(cid, target)if not isCreature(cid) or not isCreature(target) then return false end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), eff) doDanoInTargetWithDelay(cid, target, GRASSDAMAGE, min, max, 245) --alterado v1.7endaddEvent(throw, 0, cid, target)addEvent(throw, 100, cid, target) --alterado v1.7elseif spell == "Fire Fist" then local function throw(cid, target)if not isCreature(cid) or not isCreature(target) then return false end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 92) doDanoInTargetWithDelay(cid, target, GRASSDAMAGE, min, max, 355) --alterado v1.7 pos = getThingPos(target) pos.x = pos.x +1 doSendMagicEffect(pos, 357)endlocal function voltar(cid, target)if not isCreature(cid) then return true end doRemoveCondition(cid, CONDITION_OUTFIT) doRegainSpeed(cid) doRegainSpeed(target) doPantinOutfit(cid, 0, getPlayerStorageValue(cid, storages.isMega))enddoSetCreatureOutfit(cid, {lookType = 1875}, -1) doChangeSpeed(cid, -getCreatureSpeed(cid))doChangeSpeed(target, -getCreatureSpeed(target))addEvent(throw, 200, cid, target)addEvent(throw, 800, cid, target) --alterado v1.7addEvent(throw, 1200, cid, target) --alterado v1.7addEvent(voltar, 1501, cid, target) elseif spell == "Vine Whip" thenlocal 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 getPokemonLevelD(doCorrectString(getCreatureName(cid))) ret.cond = "Leech" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 1) addEvent(doMoveDano2, 1000, cid, target, GRASSDAMAGE, 0, 0, ret, spell) elseif spell == "Protection" then local pos = getPosfromArea(cid, heal) local n = 0 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) local pospid = getThingPosWithDebug(pid) local poscid = getThingPosWithDebug(cid) doSendMagicEffect(pos[n], 12) for i = 0, 9 do if isCreature(pid) then if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then if canAttackOther(cid, pid) == "Cant" then doCreatureSetNoMove(pid, true) doCreatureSetNoMove(cid, true) setPlayerStorageValue(pid, 9658783, 1) setPlayerStorageValue(cid, 9658783, 1) addEvent(doSendMagicEffect, i*800, pospid, 117) addEvent(doSendMagicEffect, i*800, poscid, 117) addEvent(setPlayerStorageValue, 8000, pid, 9658783, -1) addEvent(setPlayerStorageValue, 8000, cid, 9658783, -1) addEvent(doCreatureSetNoMove, 8000, pid, false) addEvent(doCreatureSetNoMove, 8000, cid, false) end elseif ehMonstro(cid) and ehMonstro(pid) then doCreatureSetNoMove(pid, true) doCreatureSetNoMove(cid, true) setPlayerStorageValue(pid, 9658783, 1) setPlayerStorageValue(cid, 9658783, 1) addEvent(doSendMagicEffect, i*800, pospid, 117) addEvent(doSendMagicEffect, i*800, poscid, 117) addEvent(setPlayerStorageValue, 8000, pid, 9658783, -1) addEvent(setPlayerStorageValue, 8000, cid, 9658783, -1) addEvent(doCreatureSetNoMove, 8000, pid, false) addEvent(doCreatureSetNoMove, 8000, cid, false) end end end endelseif 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 = 0 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) enddoChangeSpeed(cid, -getCreatureSpeed(cid))setPlayerStorageValue(cid, 3644587, 1) --alterado v1.6 n sei pq mas tava dando debug o.OdoSendMagicEffect(getThingPosWithDebug(cid), 132) addEvent(useSolarBeam, 650, cid)elseif spell == "Sleep Powder" thenlocal ret = {}ret.id = 0ret.cd = math.random(6, 9)ret.check = 0ret.first = true --alterado v1.6ret.cond = "Sleep" doMoveInArea2(cid, 27, confusion, NORMALDAMAGE, 0, 0, spell, ret)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 local name = doCorrectString(getCreatureName(cid))local ret = {}ret.id = 0ret.cd = math.random(6, 15) --alterado v1.6ret.check = 0local lvl = isSummon(cid) and getMasterLevel(cid) or getPokemonLevelD(name)local heldPercent = 1 if isSummon(cid) then local heldx = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "xHeldItem") if heldx then local heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] if heldName == "X-Poison" then -- dar mais experiencia heldPercent = heldPoisonBurn[tonumber(heldTier)] end end endlocal dano = math.floor((getPokemonLevelD(name)+lvl * 3)/2)ret.damage = dano + (heldPercent * dano / 100)ret.cond = "Poison" ret.im = targetret.attacker = cid doMoveInArea2(cid, 84, confusion, NORMALDAMAGE, 0, 0, spell, ret) elseif spell == "Bullet Seed" then --cid, effDist, effDano, areaEff, areaDano, element, min, maxdoMoveInAreaMulti(cid, 1, 45, bullet, bulletDano, GRASSDAMAGE, min, max)elseif spell == "Body Slam" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 118) 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, getThingPos(target), 0, -min, -max, 142) elseif spell == "Iron Head" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 77) elseif spell == "Ember" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), (isMega(cid) and getMegaID(cid) == "X") and 57 or 3) doDanoInTargetWithDelay(cid, target, FIREDAMAGE, min, max, (isMega(cid) and getMegaID(cid) == "X") and 302 or 15) --alterado v1.7 doBurnPoke(cid, target)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 = (isMega(cid) and getMegaID(cid) == "X") and 292 or 106 elseif a == 1 then flamepos.x = flamepos.x+3 flamepos.y = flamepos.y+1 effect = (isMega(cid) and getMegaID(cid) == "X") and 295 or 109 elseif a == 2 then flamepos.x = flamepos.x+1 flamepos.y = flamepos.y+3 effect = (isMega(cid) and getMegaID(cid) == "X") and 293 or 107 elseif a == 3 then flamepos.x = flamepos.x-1 flamepos.y = flamepos.y+1 effect = (isMega(cid) and getMegaID(cid) == "X") and 294 or 108 end doMoveInArea2(cid, 0, flamek, FIREDAMAGE, min, max, spell) doSendMagicEffect(flamepos, effect) elseif spell == "Fireball" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), (isMega(cid) and getMegaID(cid) == "X") and 57 or 3) addEvent(doDanoWithProtect, 200, cid, FIREDAMAGE, getThingPosWithDebug(target), waba, min, max, (isMega(cid) and getMegaID(cid) == "X") and 302 or 5) elseif spell == "Fire Fang" then doSendMagicEffect(getThingPosWithDebug(target), 138) doDanoInTargetWithDelay(cid, target, FIREDAMAGE, min, max, (isMega(cid) and getMegaID(cid) == "X") and 302 or 15) --alterado v1.7 elseif spell == "Fire Blast" thenlocal 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, (isMega(cid) and getMegaID(cid) == "X") and 301 or 35)endendfor a = 0, 4 dolocal 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}}} if (isMega(cid) and getMegaID(cid) == "X") thent = {[0] = {303, {x=p.x, y=p.y-(a+1), z=p.z}}, --alterado v1.4[1] = {304, {x=p.x+(a+1), y=p.y, z=p.z}},[2] = {305, {x=p.x, y=p.y+(a+1), z=p.z}},[3] = {306, {x=p.x-(a+1), y=p.y, z=p.z}}} end 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, (isMega(cid) and getMegaID(cid) == "X") and 57 or 3, (isMega(cid) and getMegaID(cid) == "X") and 302 or 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" thenlocal effectpos = getThingPosWithDebug(cid)local effect = 255local 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" thenlocal eff = (isMega(cid) and getMegaID(cid) == "X") and {302, 301, 302, 301} or {6, 35, 6, 35}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)endelseif spell == "Bubbles" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoInTargetWithDelay(cid, target, WATERDAMAGE, min, max, 68) --alterado v1.7 elseif spell == "Clamp" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoInTargetWithDelay(cid, target, WATERDAMAGE, min, max, 53) --alterado v1.7elseif spell == "Water Gun" thenlocal a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {69, {x=p.x, y=p.y-1, z=p.z}},[1] = {70, {x=p.x+6, y=p.y, z=p.z}}, --alterado v1.8[2] = {71, {x=p.x, y=p.y+6, z=p.z}},[3] = {72, {x=p.x-1, y=p.y, z=p.z}},}local area = reto4if (isMega(cid)) then t = { [0] = {299, {x=p.x+1, y=p.y-2, z=p.z}}, [1] = {296, {x=p.x+5, y=p.y+1, z=p.z}}, --alterado v1.8 [2] = {298, {x=p.x+1, y=p.y+5, z=p.z}}, [3] = {297, {x=p.x-1, y=p.y, z=p.z}}, [3] = {297, {x=p.x-1, y=p.y+1, z=p.z}}, } area = triplo6end doMoveInArea2(cid, 0, area, WATERDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1]) 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 == "Dragon 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) doChangeSpeed(cid, -x) addEvent(rebackSpd, 400, cid, x) setPlayerStorageValue(cid, 446, 1) pos = getThingPos(target) pos.x = pos.x +1 doSendMagicEffect(pos, 365) doAreaCombatHealth(cid, DRAGONDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 0) elseif spell == "Hydro Cannon" thenlocal 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)endendfor a = 0, 4 dolocal 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" thenlocal ret = {}ret.id = 0ret.cd = 9 --alterado v1.6ret.eff = 118ret.check = 0ret.first = trueret.cond = "Paralyze" doMoveInArea2(cid, 118, reto5, NORMALDAMAGE, min, max, spell, ret) elseif spell == "Hydropump" thenlocal 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 == "Giga Impact" thenlocal tempo = 3 --Tempo, em segundos.local a = {}local ret1 = {} ret1.id = 0 ret1.cd = 5 ret1.eff = 0 ret1.check = 0 ret1.first = true ret1.cond = "Slow"local ret2 = {} ret2.id = 0 ret2.cd = 5 ret2.eff = 0 ret2.check = 0 ret2.first = true ret2.cond = "Miss" a.speed = getCreatureSpeed(cid) doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, a.speed*2) addEvent(function() if not isCreature(cid) then return true end doRegainSpeed(cid) doMoveInArea2(cid, 118, quake, NORMALDAMAGE, min, max, spell, ret1) doMoveInArea2(cid, 118, quake, NORMALDAMAGE, 0, 0, spell, ret2) end, tempo*1000)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(doMoveDano2, 100, cid, target, BUGDAMAGE, 0, 0, ret, spell)elseif spell == "Bug Bite" then doSendMagicEffect(getThingPosWithDebug(target), 244) doDanoInTargetWithDelay(cid, target, BUGDAMAGE, min, max, 8) --alterado v1.7elseif 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(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)elseif spell == "Whirlwind" thenarea = {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 == "Razor Wind" thenarea = {SL1, SL2, SL3, SL4}for i = 0, 3 do addEvent(doMoveInArea2, i*300, cid, 131, area[i+1], NORMALDAMAGE, min, max, spell)end elseif spell == "Psybeam" thenlocal a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local t = {[0] = 58, --alterado v1.6[1] = 234,[2] = 58,[3] = 209,}doMoveInArea2(cid, t[a], reto4, psyDmg, min, max, spell) --alterado v1.4elseif spell == "Sand Attack" thenlocal a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local t = {[0] = 120,[1] = 121,[2] = 122,[3] = 119,}local ret = {}ret.id = 0ret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.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) doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterado v1.7elseif spell == "Poison Sting" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 15) doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 8) --alterado v1.7 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 getSubName(cid, target) == "Scizor" then --alterado v1.6.1 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 getSubName(cid, target) == "Scizor" then --alterado v1.6.1 effect = 232 else effect = 129 end elseif a == 2 then effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y + 2 if getSubName(cid, target) == "Scizor" then --alterado v1.6.1 effect = 233 else effect = 131 end elseif a == 3 then effectpos.x = effectpos.x - 1 effectpos.y = effectpos.y + 1 if getSubName(cid, target) == "Scizor" then --alterado v1.6.1 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) doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 114) --alterado v1.7 elseif spell == "Sting Gun" then local function doGun(cid, target) if not isCreature(cid) or not isCreature(target) then return true end --alterado v1.7 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 13) doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 8) --alterado v1.7 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) doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 20) --alterado v1.7 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) doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --alterado v1.7elseif spell == "Thunder Bolt" then --alterado v1.7 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(doDanoInTarget, ry * 11, cid, target, ELECTRICDAMAGE, min, max, 48) --alterado v1.7 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" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 48ret.spell = spellret.cond = "Stun"doMoveInArea2(cid, 48, db1, ELECTRICDAMAGE, min, max, spell, ret) --alterado v1.8elseif spell == "Thunder" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 48ret.spell = spellret.cond = "Stun"doMoveInArea2(cid, 48, thunderr, ELECTRICDAMAGE, min, max, spell, ret)elseif spell == "Web Shot" then local ret = {}ret.id = targetret.cd = 9ret.eff = 26ret.check = 0ret.spell = spellret.cond = "Paralyze" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 23) addEvent(doMoveDano2, 100, cid, target, BUGDAMAGE, -min, -max, ret, spell)elseif spell == "Mega Kick" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, min, max, 113) --alterado v1.7 elseif spell == "Thunder Punch" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doSendMagicEffect(getThingPosWithDebug(target), 112) doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --alterado v1.7elseif spell == "Comet Punch" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doSendMagicEffect(getThingPosWithDebug(target), 112) doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 118) --alterado v1.7 elseif spell == "Electric Storm" then local master = isSummon(cid) and getCreatureMaster(cid) or cidlocal function doFall(cid)for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, ELECTRICDAMAGE, 41, 48)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, 41)endaddEvent(doFall, 450, cid)local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 48ret.spell = spellret.cond = "Stun"addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ELECTRICDAMAGE, min, max, spell, ret)elseif spell == "Frenzy Plant" then local master = isSummon(cid) and getCreatureMaster(cid) or cidlocal function doFall(cid)for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, ELECTRICDAMAGE, 255, 259)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, 255)endaddEvent(doFall, 450, cid)local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 220ret.spell = spellret.cond = "Stun"addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ELECTRICDAMAGE, min, max, spell, ret)elseif spell == "Web Rain" then local master = isSummon(cid) and getCreatureMaster(cid) or cidlocal function doFall(cid)for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, BUGDAMAGE, 23)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, 23)endaddEvent(doFall, 450, cid)local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 26ret.spell = spellret.cond = "Silence"addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, BUGDAMAGE, min, max, spell, ret)elseif spell == "Spider Web" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 26ret.cond = "Silence"doMoveInAreaMulti(cid, 23, 26, multi, multiDano, BUGDAMAGE, min, max)doMoveInArea2(cid, 0, multiDano, BUGDAMAGE, 0, 0, spell, ret) elseif spell == "Mud Shot" or spell == "Mud Slap" thenif isCreature(target) then --alterado v1.8local contudion = spell == "Mud Shot" and "Miss" or "Stun" local ret = {}ret.id = targetret.cd = 9ret.eff = 34ret.check = getPlayerStorageValue(target, conds[contudion])ret.spell = spellret.cond = contudion doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 6) addEvent(doMoveDano2, 100, cid, target, GROUNDDAMAGE, -min, -max, ret, spell)endelseif spell == "Metal Burst" thenif isCreature(target) then --alterado v1.8local contudion = "Stun" local ret = {}ret.id = targetret.cd = 2ret.eff = 349ret.check = getPlayerStorageValue(target, conds[contudion])ret.spell = spellret.cond = contudion doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 9) addEvent(doMoveDano2, 255, cid, target, GROUNDDAMAGE, -min, -max, ret, spell)end elseif spell == "Rollout" thenlocal RollOuts = {["Voltorb"] = {lookType = 638},["Electrode"] = {lookType = 637},["Sandshrew"] = {lookType = 635},["Sandslash"] = {lookType = 636},["Phanpy"] = {lookType = 1005},["Donphan"] = {lookType = 1007},["Miltank"] = {lookType = 1006}, ["Golem"] = {lookType = 639},["Omastar"] = {lookType = 1579},["Shiny Electrode"] = {lookType = 1387},["Shiny Golem"] = {lookType = 1403},["Shiny Voltorb"] = {lookType = 1388},["Shiny Sandslash"] = {lookType = 1506}} 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) if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then if isSummon(cid) then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doSetCreatureOutfit(cid, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) --alterado v1.8 end end end end end local name = doCorrectString(getCreatureName(cid)) if RollOuts[name] then doSetCreatureOutfit(cid, RollOuts[name], -1) --alterado v1.6.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 RollOuts[name] then doSetCreatureOutfit(cid, RollOuts[name], -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" thenlocal 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) endendfor a = 0, 5 dolocal 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" thenlocal eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1.6.1 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" thenlocal eff = getSubName(cid, target) == "Shiny Onix" and 175 or 118 --alterado v1.6.1 doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell) times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 6900, 7400, 7900, 8400, 9200, 10000}local time = getPlayerStorageValue(cid, 3644587)if time == 17 then setPlayerStorageValue(cid, 3644587, -1) return trueendsetPlayerStorageValue(cid, 3644587, time + 1)addEvent(docastspell, 500, cid, "Earthquake")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 --alterado v1.7 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 15) doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 114) --alterado v1.7 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 --alterado v1.7 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 25) doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterado v1.7 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" addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell) elseif spell == "Sing" thenlocal ret = {}ret.id = 0ret.cd = math.random(6, 10)ret.check = 0ret.first = trueret.cond = "Sleep" --alterado v1.6 doMoveInArea2(cid, 33, selfArea1, NORMALDAMAGE, 0, 0, spell, ret) elseif spell == "Multislap" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 3) elseif spell == "Metronome" thenlocal spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Meteor Mash", "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 == "Sketch 1" thenlocal spells = {"Psy Pulse", "Shadow Ball", "Thunder Bolt", "Ember", "Rock Throw", "Razor Leaf", "Bubbles", "Ice Shards", "Egg Bomb", "Poison Bomb"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 2" thenlocal spells = {"Mud Bomb", "Cyber Pulse", "Dark Pulse", "Rock Slide", "Magical Leaf", "Fireball", "Waterball", "Feather Dance"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 3" thenlocal spells = {"Poison Gas", "Earthquake", "Petal Tornado", "Electro Field", "Flame Wheel"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 4" thenlocal spells = {"Thunder", "Night Slash", "Confusion", "Air Slash", "Confusion", "Night Shade"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 5" thenlocal spells = {"Solar Beam", "Bullet Seed", "Raging Blast", "Fire Blast", "Bubble Blast", "Hydro Cannon", "Pin Missile"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 6" thenlocal spells = {"Shockwave", "Petal Dance", "Hyper Beam", "Zap Cannon", "Aurora Beam", "Ice Beam", "Ground Chop"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 7" thenlocal spells = {"Fear", "Sunny Day", "Scary Face", "Skull Bash", "Cotton Spore", "Sleep Powder"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 8" thenlocal spells = {"Reflect", "Charm", "Agility", "Safeguard", "Synthesis", "Emergency Call", "Healarea", "Sing"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 9" thenlocal spells = {"Psychic", "Epicenter", "Mortal Gas", "Hydropump", "Muddy Water"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) local function doMetronome(cid, skill) if not isCreature(cid) then return true end docastspell(cid, skill) end addEvent(doMetronome, 200, cid, randommove) elseif spell == "Sketch 10" thenlocal spells = {"Focus Blast", "Blizzard", "Shadow Storm", "Falling Rocks", "Meteor Mash", "Electric Storm", "Hydro Dance", "Magma Storm", "Draco Meteor", "Psy Impact"} local random = math.random(1, #spells) local randommove = spells[random] local pos = getThingPosWithDebug(cid) pos.y = pos.y - 1 doSendMagicEffect(pos, 0) 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) elseif spell == "Bulk Up" then doSendMagicEffect(getThingPosWithDebug(cid), 91) else doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144) doSendMagicEffect(getThingPosWithDebug(cid), 132) end setPlayerStorageValue(cid, 253, 1) elseif spell == "Growth" then --alterado v1.4 if spell == "Growth" then doSendAnimatedText(getThingPosWithDebug(cid), "Growth", 168) doSendMagicEffect(getThingPosWithDebug(cid), 177) end setPlayerStorageValue(cid, 253, 1) --[[elseif spell == "Flame Wheel" then --alterado v1.8 o atk ta la pra baixo agora... 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 == "Aqua Ring" 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 == "Milk Drink" 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" thenlocal function getCreatureHealthSecurity(cid) if not isCreature(cid) then return 0 end return getCreatureHealth(cid) or 0end local life = getCreatureHealthSecurity(target) doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 14) local newlife = life - getCreatureHealthSecurity(target) doSendMagicEffect(getThingPosWithDebug(cid), 14) if newlife >= 1 then if isCreature(cid) then doCreatureAddHealth(cid, newlife) end 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 == "Dynamic Punch" thenlocal 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, 112, areas[i+1], FIGHTINGDAMAGE, min, max, spell) addEvent(doMoveInArea2, i*410, cid, 112, areas[i+1], FIGHTINGDAMAGE, 0, 0, spell)endelseif spell == "Revenge" thenlocal function doRevenge(cid)if not isCreature(cid) then return false endif isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false endif isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true endlocal rev = getThingPosWithDebug(cid)rev.x = rev.x+1rev.y = rev.y+1doSendMagicEffect(rev, 99) doAreaCombatHealth(cid, FIGHTINGDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 255)endtimes = {0, 500, 1000, 1500, 2300}setPlayerStorageValue(cid, 3644587, 1)addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1)for i = 1, #times do --alterado v1.4addEvent(doRevenge, times[i], cid)end elseif spell == "Close Combat" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 26) doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, -min, -max, 237) --alterado v1.7 doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144) setPlayerStorageValue(cid, 253, 1)elseif spell == "Sand Storm" thenlocal master = isSummon(cid) and getCreatureMaster(cid) or cid------------local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 34ret.cond = "Silence"---local function doFall(cid)for rocks = 1, 42 do --62 addEvent(fall, rocks*35, cid, master, GROUNDDAMAGE, 22, 158)endend---local function doRain(cid)if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")end --cura statusdoCureStatus(cid, "all")---setPlayerStorageValue(cid, 253, 1) --focusdoSendMagicEffect(getThingPosWithDebug(cid), 132)---doMoveInArea2(cid, 0, confusion, GROUNDDAMAGE, 0, 0, spell, ret)end---addEvent(doFall, 200, cid)addEvent(doRain, 1000, cid)elseif spell == "Powder Snow" then snowP = getThingPosWithDebug(cid) local ret = {} ret.id = 0 ret.cd = 10 ret.check = 0 ret.eff = 43 ret.spell = spell ret.cond = "Slow" doMoveInArea2(cid, 0, check, ICEDAMAGE, min, max, spell, ret) doSendMagicEffect({x = snowP.x + 1, y = snowP.y, z = snowP.z}, 206)elseif spell == "Slash" then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 159) elseif spell == "X-Scissor" thenlocal 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 --alterado v1.7 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(doDanoInTarget, ry * 11, cid, target, NORMALDAMAGE, min, max, 28) --alterado v1.7 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" thendoMoveInArea2(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) doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, -min, -max, 113) --alterado v1.7 elseif spell == "Ground Chop" thenlocal p = getThingPosWithDebug(cid)local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)function sendAtk(cid, area, area2, eff) --alterado v1.6if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, FIGHTINGDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, FIGHTINGDAMAGE, area2, whirl3, -min, -max, 255) --alterado v1.6 endendfor a = 0, 4 dolocal t = {[0] = {99, {x=p.x+1, y=p.y-(a+1), z=p.z}, {x=p.x, y=p.y-(a+1), z=p.z}}, --alterado v1.6[1] = {99, {x=p.x+(a+2), y=p.y+1, z=p.z}, {x=p.x+(a+1), y=p.y, z=p.z}},[2] = {99, {x=p.x+1, y=p.y+(a+2), z=p.z}, {x=p.x, y=p.y+(a+1), z=p.z}},[3] = {99, {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, 270*a, cid, t[d][2], t[d][3], t[d][1]) --alterado v1.6end elseif spell == "Mega Punch" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, -min, -max, 112) --alterado v1.7 elseif spell == "Tri Flames" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 39ret.cond = "Silence" doMoveInArea2(cid, 6, triflames, FIREDAMAGE, min, max, spell, ret) 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 == "Bulk Up" or spell == "Outrage" then local ret = {} ret.id = cid ret.cd = 10 ret.eff = spell == "Outrage" and 358 or 356 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) elseif spell == "Hypnosis" thenlocal ret = {}ret.id = targetret.cd = math.random(6, 9)ret.check = getPlayerStorageValue(target, conds["Sleep"])ret.first = true --alterado v1.6ret.cond = "Sleep" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 24) addEvent(doMoveDano2, 150, cid, target, PSYCHICDAMAGE, 0, 0, ret, spell)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) addEvent(doMoveDano2, 50, cid, target, NORMALDAMAGE, 0, 0, ret, spell)elseif spell == "Ice Punch" then local ret = {}ret.id = targetret.cd = 9ret.eff = 43ret.check = getPlayerStorageValue(target, conds["Slow"])ret.first = trueret.cond = "Slow" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 28) doSendMagicEffect(getThingPosWithDebug(target), 112) doDanoWithProtectWithDelay(cid, target, ICEDAMAGE, min, max, 43) addEvent(doMoveDano2, 50, cid, target, ICEDAMAGE, 0, 0, ret, spell) elseif spell == "Ice Beam" thenlocal 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 = 0ret.cd = 9ret.eff = 43ret.check = 0ret.first = trueret.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" thendamage = skill == "Dark Pulse" and DARKDAMAGE or psyDmglocal function doPulse(cid, eff)if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoInTargetWithDelay(cid, target, damage, min, max, eff) --alterado v1.7end 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" or spell == "Bullet Punch" 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 = spell == "Bullet Punch" and 373 or 218 yvar = 2 elseif b == NORTH then effect = spell == "Bullet Punch" and 372 or 217 elseif b == WEST then effect = spell == "Bullet Punch" and 371 or 216 elseif b == EAST then effect = spell == "Bullet Punch" and 370 or 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" thenlocal effD = getSubName(cid, target) == "Shiny Onix" and 0 or 11local eff = getSubName(cid, target) == "Shiny Onix" and 176 or 44 --alterado v1.6.1 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), effD) doDanoInTargetWithDelay(cid, target, ROCKDAMAGE, min, max, eff) --alterado v1.7 elseif spell == "Rock Slide" or spell == "Stone Edge" thenatk = {["Rock Slide"] = {11, 44, 0, 176},["Stone Edge"] = {11, 239}} local effD = getSubName(cid, target) == "Shiny Onix" and atk[spell][3] or atk[spell][1]local eff = getSubName(cid, target) == "Shiny Onix" and atk[spell][4] or atk[spell][2] --alterado v1.6.1 --alterado v1.7 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(doDanoInTarget, ry * 11, cid, target, ROCKDAMAGE, min, max, eff) --alterado v1.7 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" thenlocal effD = getSubName(cid, target) == "Shiny Onix" and 0 or 11local eff = getSubName(cid, target) == "Shiny Onix" and 176 or 44 --alterado v1.6.1local 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)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, effD)endaddEvent(doFall, 450, cid)addEvent(doDanoWithProtect, 1400, cid, ROCKDAMAGE, getThingPosWithDebug(cid), waterarea, -min, -max, 0)elseif spell == "Selfdestruct" then doDanoWithProtect(cid, ROCKDAMAGE, getThingPosWithDebug(cid), selfArea2, -min, -max, 5) if isSummon(cid) then local master = getCreatureMaster(cid) checkGiveUp(master) if isInDuel(master) then doRemoveCountPokemon(master) end end doKillWildPoke(cid, cid) elseif spell == "Crusher Stomp" then local pL = getThingPosWithDebug(cid)pL.x = pL.x+5pL.y = pL.y+1 -----------------local pO = getThingPosWithDebug(cid)pO.x = pO.x-3pO.y = pO.y+1 ------------------local pN = getThingPosWithDebug(cid)pN.x = pN.x+1pN.y = pN.y+5 -----------------local pS = getThingPosWithDebug(cid)pS.x = pS.x+1pS.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 = 0ret.cd = 9ret.check = 0ret.eff = 34ret.spell = spellret.cond = "Stun"for i = 1, 4 do doSendMagicEffect(po[i], 127) doAreaCombatHealth(cid, GROUNDDAMAGE, po2[i], crusher, -min, -max, 255)enddoMoveInArea2(cid, 118, stomp, GROUNDDAMAGE, min, max, spell, ret) elseif spell == "Water Pulse" then doDanoWithProtect(cid, WATERDAMAGE, getThingPosWithDebug(cid), selfArea2, min, max, 155) elseif spell == "Sonicboom" thenlocal function doBoom(cid)if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 33) doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterado v1.7end addEvent(doBoom, 0, cid) addEvent(doBoom, 250, cid) elseif spell == "Stickmerang" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 34) doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, min, max, 212) --alterado v1.7elseif 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 == "Cannon Ball" thenlocal area = {Throw01, Throw02, Throw03, Throw04, Throw03, Throw02, Throw01}for i = 0, 6 do addEvent(doMoveInArea2, i*400, cid, 100, area[i+1], GROUNDDAMAGE, min, max, spell)end elseif spell == "Pluck" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, min, max, 111) --alterado v1.7elseif spell == "Tri-Attack" then --alterado v1.7 setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 600, cid, 3644587, -1) doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 42) --alterado v1.6 for i = 0, 2 do addEvent(doDanoInTargetWithDelay, i*300, cid, target, NORMALDAMAGE, min, max, 238) --alterado v1.7 end elseif spell == "Fury Attack" then --alterado v1.7 setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 600, cid, 3644587, -1) for i = 0, 2 do addEvent(doDanoInTargetWithDelay, i*300, cid, target, NORMALDAMAGE, min, max, 110) --alterado v1.7 end elseif spell == "Ice Shards" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 28) doDanoInTargetWithDelay(cid, target, ICEDAMAGE, min, max, 43) --alterado v1.7 elseif spell == "Icy Wind" then local ret = {}ret.id = 0ret.cd = 9ret.eff = 43ret.check = 0ret.first = trueret.cond = "Slow" doMoveInArea2(cid, 17, db1, ICEDAMAGE, min, max, spell, ret) elseif spell == "Aurora Beam" thenlocal 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] = {57, {x=p.x+6, y=p.y+1, z=p.z}}, --alterado v1.6[2] = {186, {x=p.x+1, y=p.y+6, z=p.z}},[3] = {57, {x=p.x-1, y=p.y+1, z=p.z}}, --alterado v1.6}local ret = {}ret.id = 0ret.cd = 9ret.eff = 43ret.check = 0ret.first = trueret.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 --alterado v1.7 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(doDanoInTargetWithDelay, ry * 11, cid, target, POISONDAMAGE, min, max, 116) --alterado v1.7 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.5elseif spell == "Mud Bomb" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 6) --alterado v1.8 doDanoWithProtectWithDelay(cid, target, MUDBOMBDAMAGE, min, max, 116, bombWee2)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" thenlocal damage = spell == "Megahorn" and BUGDAMAGE or ROCKDAMAGElocal eff = spell == "Megahorn" and 8 or 44 local effD = spell == "Rock Blast" and 11 or 25 --cid, effDist, effDano, areaEff, areaDano, element, min, maxdoMoveInAreaMulti(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 stopNow(cid, 200) --alterado v1.6 doCreatureSetLookDir(cid, 2) local effect = 0 local pos = getThingPosWithDebug(cid) pos.x = pos.x + 1 pos.y = pos.y + 1 local effect = getSubName(cid, target) == "Tangela" and 213 or 229 --alterado v1.6.1 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" thenlocal function sendBubbles(cid)if not isCreature(cid) or not isCreature(target) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 2) doDanoInTargetWithDelay(cid, target, WATERDAMAGE, min, max, 68) --alterado v1.7endsendBubbles(cid)addEvent(sendBubbles, 250, cid) elseif spell == "Swift" thenlocal function sendSwift(cid, target)if not isCreature(cid) or not isCreature(target) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 32) doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterado v1.7endaddEvent(sendSwift, 100, cid, target)addEvent(sendSwift, 200, cid, target) elseif spell == "Spark" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 32) doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --alterado v1.7 elseif spell == "Mimic Wall" thenlocal p = getThingPosWithDebug(cid)local dirr = getCreatureLookDir(cid)if dirr == 0 or dirr == 2 then item = 11439else item = 11440endlocal 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}},}for i = 1, 3 do if wall[dirr] then local t = wall[dirr] if hasTile(t[i]) and canWalkOnPos2(t[i], true, true, true, true, false) then --alterado v1.6 local walls = doCreateItem(item, 1, t[i]) doDecayItem(walls) end endend elseif spell == "Bullet Punch" then elseif spell == "Compass Slash" then pos = getThingPos(cid) pos.x = pos.x +2 pos.y = pos.y +2 doSendMagicEffect(pos, 374) doDanoWithProtect(cid, ROCKDAMAGE, getThingPosWithDebug(cid), splash, -min, -max, 0) elseif spell == "Shredder Team" or spell == "Double Team" then --alterado v1.8 \/local team = {["Scyther"] = 3,["Shiny Scyther"] = 3,["Scizor"] = 4,["Xatu"] = 2,["Shiny Xatu"] = 3,["Yanma"] = 2,}local function RemoveTeam(cid) if isCreature(cid) then doSendMagicEffect(getThingPosWithDebug(cid), 211) doRemoveCreature(cid) endendlocal function sendEff(cid, master, t)if isCreature(cid) and isCreature(master) and t > 0 and #getCreatureSummons(master) >= 2 then doSendMagicEffect(getThingPosWithDebug(cid), 86, master) addEvent(sendEff, 1000, cid, master, t-1) --alterado v1.9endendif getPlayerStorageValue(cid, 637500) >= 1 thenreturn trueendlocal master = getCreatureMaster(cid)local item = getPlayerSlotItem(master, 8)local life, maxLife = getCreatureHealth(cid), getCreatureMaxHealth(cid)local name = doCorrectString(getCreatureName(cid))local pos = getThingPosWithDebug(cid)local time = 21doItemSetAttribute(item.uid, "hp", (life/maxLife))local num = team[name]local pk = {}local function doCreatureAddHealthWithSecurity(cid, heal)if not isCreature(cid) then return true enddoCreatureAddHealth(cid, heal)endlocal function setStorage(cid)if not isCreature(cid) then return true endsetPlayerStorageValue(cid, 63012, 1)addEvent(setStorage, 1000, cid)end--doTeleportThing(cid, {x=4, y=3, z=10}, false) local nick = retireShinyName(getItemAttribute(item.uid, "poke"))if team[name] then pk[1] = cid for b = 2, num do local pokeSourceCode = doCreateMonsterNick(master, name, nick, getThingPos(master), true) if pokeSourceCode == "Nao" then doSendMsg(master, "Não há espaço para seu pokemon.") return true end pk[b] = getCreatureSummons(master)[b] setPlayerStorageValue(pk[b], 510, name) setStorage(pk[b]) adjustStatus(pk[b], getPlayerSlotItem(master, 8).uid, true, true, true, true) doCreatureAddHealthWithSecurity(pk[b], -(maxLife-life)) setPlayerStorageValue(pk[b], 637505, "eh") end for a = 1, num do addEvent(doTeleportThing, math.random(0, 5), pk[a], getClosestFreeTile(pk[a], pos), false) --addEvent(doAdjustWithDelay, 5, master, pk[a], true, true, true) doSendMagicEffect(getThingPosWithDebug(pk[a]), 211) setPlayerStorageValue(pk[a], 637500, 1) doCreatureSetSkullType(pk[a], getCreatureSkullType(pk[1])) if a ~= 1 then addEvent(RemoveTeam, time * 1000, pk[a]) end end sendEff(cid, master, time) --alterado v1.9 setPlayerStorageValue(master, 637501, 1) setPlayerStorageValue(pk[1], 637500, -1) addEvent(setPlayerStorageValue, time * 1000, master, 637501, -2) endelseif spell == "Team Slice" or spell == "Team Claw" thenlocal master = getCreatureMaster(cid)if #getCreatureSummons(master) < 2 or not isCreature(target) then return true endlocal summons = getCreatureSummons(master)local posis = {[1] = pos1, [2] = pos2, [3] = pos3, [4] = pos4}if getSubName(cid, target) == "Scyther" then --alterado v1.6.1 eff = 39elseif getSubName(cid, target) == "Shiny Scyther" then --alterado v1.6.1 eff = 39else eff = 42 --alterado v1.5end if #getCreatureSummons(master) >= 2 and isCreature(target) then if isCreature(cid) then addEvent(doDanoInTarget, 500, cid, target, BUGDAMAGE, -min, -max, 0) --alterado v1.7 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" thenlocal master = isSummon(cid) and getCreatureMaster(cid) or cidlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 43ret.check = 0ret.first = trueret.cond = "Slow"local function doFall(cid)for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, ICEDAMAGE, 28, 52)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, 28)end --alterado v1.4addEvent(doFall, 450, cid)addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ICEDAMAGE, min, max, spell, ret)elseif spell == "Meteor Mash" then local pos = getThingPos(cid) pos.x = pos.x + 1 pos.y = pos.y + 1doSendMagicEffect(pos, 351)doDanoWithProtect(cid, STEELDAMAGE, getThingPosWithDebug(cid), meteorMash1, -min, -max, 350)doDanoWithProtect(cid, STEELDAMAGE, getThingPosWithDebug(cid), meteorMash2, -min, -max, 352)elseif spell == "Great Love" thenlocal master = getCreatureMaster(cid) or 0local ret = {}ret.id = 0ret.cd = 9ret.eff = 147ret.check = 0ret.spell = spellret.cond = "Stun" for rocks = 1, 62 do addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 147)endaddEvent(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) doDanoInTargetWithDelay(cid, target, FIREDAMAGE, min, max, 35) --alterado v1.7 elseif spell == "Guillotine" thendoDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 146)elseif spell == "Hyper Beam" then --alterado v1.7 \/local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {149, {x=p.x+1, y=p.y-1, z=p.z}},[1] = {150, {x=p.x+6, y=p.y+1, z=p.z}}, [2] = {149, {x=p.x+1, y=p.y+6, z=p.z}},[3] = {150, {x=p.x-1, y=p.y+1, z=p.z}}, }doMoveInArea2(cid, 0, triplo6, NORMALDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1])elseif spell == "Flash Cannon" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {354, {x=p.x+1, y=p.y-1, z=p.z}},[1] = {353, {x=p.x+6, y=p.y+1, z=p.z}}, [2] = {354, {x=p.x+1, y=p.y+6, z=p.z}},[3] = {353, {x=p.x-1, y=p.y+1, z=p.z}}, }doMoveInArea2(cid, 0, triplo6, STEELDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1])elseif spell == "Dragon mist" or spell == "Mega Wing" then local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {364, {x=p.x+1, y=p.y-1, z=p.z}, 0, -5},[1] = {361, {x=p.x+5, y=p.y+1, z=p.z}, 5, 0}, [2] = {363, {x=p.x+1, y=p.y+5, z=p.z}, 0, 5},[3] = {362, {x=p.x-1, y=p.y+1, z=p.z}, -5, 0}, }if spell == "Mega Wing" thent = {[0] = {369, {x=p.x+1, y=p.y-1, z=p.z}, 0, -5},[1] = {367, {x=p.x+5, y=p.y+1, z=p.z}, 5, 0}, [2] = {366, {x=p.x+1, y=p.y+5, z=p.z}, 0, 5},[3] = {368, {x=p.x-1, y=p.y+1, z=p.z}, -5, 0}, }endlocal function doTeleportMe(cid, pos) if not isCreature(cid) then return true end if canWalkOnPos(pos, false, true, true, true, true) then doTeleportThing(cid, pos) end doAppear(cid) if getPlayerStorageValue(cid, storages.isMega) == "Mega Ampharos" then doPantinOutfit(cid, 0, getPlayerStorageValue(cid, storages.isMega)) else doSetCreatureOutfit(cid, {lookType = megasConf[getPlayerStorageValue(cid, storages.isMega)].out}, -1) checkOutfitMega(cid, getPlayerStorageValue(cid, storages.isMega)) endenddoMoveInArea2(cid, 0, triplo6, STEELDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1])local pos = getThingPos(cid) doSendMagicEffect(pos, 307) doDisapear(cid) local x, y = t[a][3], t[a][4] pos.x = pos.x + x pos.y = pos.y + y addEvent(doTeleportMe, 300, cid, pos) elseif spell == "Signal Beam" then --alterado v1.7 \/local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {262, {x=p.x+1, y=p.y-1, z=p.z}},[1] = {263, {x=p.x+6, y=p.y+1, z=p.z}}, [2] = {264, {x=p.x+1, y=p.y+6, z=p.z}},[3] = {265, {x=p.x-1, y=p.y+1, z=p.z}}, }doMoveInArea2(cid, 0, triplo6, BUGDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1]) elseif spell == "Flash Cannon" then --alterado v1.7 \/local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {260, {x=p.x+1, y=p.y-1, z=p.z}},[1] = {259, {x=p.x+6, y=p.y+1, z=p.z}}, [2] = {260, {x=p.x+1, y=p.y+6, z=p.z}},[3] = {259, {x=p.x-1, y=p.y+1, z=p.z}}, }doMoveInArea2(cid, 0, triplo6, STEELDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1]) elseif spell == "Thrash" then --cid, effDist, effDano, areaEff, areaDano, element, min, maxdoMoveInAreaMulti(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" thenlocal pos = getThingPosWithDebug(cid)doMoveInArea2(cid, 55, doSurf1, GROUNDDAMAGE, 0, 0, spell)addEvent(doDanoWithProtect, math.random(100, 400), cid, GROUNDDAMAGE, pos, doSurf2, -min, -max, 0)elseif spell == "Venom Motion" thenlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.cond = "Miss" doMoveInArea2(cid, 114, muddy, POISONDAMAGE, min, max, spell, ret) elseif spell == "Thunder Fang" then doSendMagicEffect(getThingPosWithDebug(target), 146) doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --alterado v1.7 elseif spell == "Zap Cannon" thenlocal a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {73, {x=p.x, y=p.y-1, z=p.z}},[1] = {74, {x=p.x+6, y=p.y, z=p.z}}, --alterado v1.8[2] = {75, {x=p.x, y=p.y+6, z=p.z}},[3] = {76, {x=p.x-1, y=p.y, z=p.z}},}doMoveInArea2(cid, 0, triplo6, ELECTRICDAMAGE, min, max, spell)doMoveInArea2(cid, 177, reto6, ELECTRICDAMAGE, 0, 0, "Zap Cannon Eff")doSendMagicEffect(t[a][2], t[a][1]) elseif spell == "Charge Beam" thenlocal a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {73, {x=p.x, y=p.y-1, z=p.z}},[1] = {74, {x=p.x+6, y=p.y, z=p.z}}, --alterado v1.8[2] = {75, {x=p.x, y=p.y+6, z=p.z}},[3] = {76, {x=p.x-1, y=p.y, z=p.z}},}doMoveInArea2(cid, 0, triplo6, ELECTRICDAMAGE, min, max, spell)doSendMagicEffect(t[a][2], t[a][1]) elseif spell == "Sacred Fire" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoWithProtectWithDelay(cid, target, SACREDDAMAGE, min, max, 143, sacred) --alterado v1.6 elseif spell == "Blaze Kick" thendoMoveInArea2(cid, 6, blaze, FIREDAMAGE, min, max, spell) addEvent(doMoveInArea2, 200, cid, 6, kick, FIREDAMAGE, min, max, spell) elseif spell == "Cross Chop" thendoMoveInArea2(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" thenlocal 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)endendfor a = 0, 4 dolocal 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" thendoMoveInAreaMulti(cid, 28, 42, bullet, bulletDano, DRAGONDAMAGE, min, max)elseif spell == "Multi-Kick" thendoMoveInAreaMulti(cid, 39, 113, multi, multiDano, FIGHTINGDAMAGE, min, max)elseif spell == "Sky Uppercut" thenlocal function sendEffect(cid)if not isCreature(cid) or not isCreature(target) then return true endlocal pos = getThingPos(target)local lado = getCreatureLookDir(cid)local effes = { [0] = {effe1 = 261, effe2 = 265}, [1] = {effe1 = 263, effe2 = 266}, [2] = {effe1 = 262, effe2 = 264}, [3] = {effe1 = 260, effe2 = 267} } if lado == 0 then local pos2 = pos pos2.y = pos2.y +1 doSendMagicEffect(pos2, effes[lado].effe1) pos.y = pos.y -2 pos.x = pos.x +1 elseif lado == 1 then doSendMagicEffect(pos, effes[lado].effe1) pos.y = pos.y +2 pos.x = pos.x +2 elseif lado == 2 then local pos2 = pos pos2.x = pos2.x +1 doSendMagicEffect(pos2, effes[lado].effe1) pos.y = pos.y +2 pos.x = pos.x +1 elseif lado == 3 then local pos2 = pos pos2.x = pos2.x +1 doSendMagicEffect(pos2, effes[lado].effe1) pos.y = pos.y +2 pos.x = pos.x -2 end addEvent(doSendMagicEffect, 100, pos, effes[lado].effe2)addEvent(doDanoWithProtectWithDelay, 50, cid, target, SACREDDAMAGE, min, max, 255, sacred) --alterado v1.6endsendEffect(cid)elseif spell == "Hi Jump Kick" thendoMoveInAreaMulti(cid, 39, 113, multi, multiDano, FIGHTINGDAMAGE, min, max)elseif spell == "Multi-Punch" thendoMoveInAreaMulti(cid, 39, 112, multi, multiDano, FIGHTINGDAMAGE, min, max) elseif spell == "Squisky Licking" then local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 0ret.spell = spellret.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)endelseif spell == "Lick" thenlocal ret = {}ret.id = targetret.cd = 9ret.check = getPlayerStorageValue(target, conds["Stun"])ret.eff = 0ret.spell = spellret.cond = "Stun" doSendMagicEffect(getThingPosWithDebug(target), 145) --alterado v1.4! addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)elseif spell == "Bonemerang" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 7) doDanoInTargetWithDelay(cid, target, GROUNDDAMAGE, min, max, 227) --alterado v1.7 addEvent(doSendDistanceShoot, 250, getThingPosWithDebug(target), getThingPosWithDebug(cid), 7)elseif spell == "Bone Club" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 7) doDanoInTargetWithDelay(cid, target, GROUNDDAMAGE, min, max, 118) --alterado v1.7 elseif spell == "Bone Slash" thenlocal 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.4elseif 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 Wave" then local p = getThingPosWithDebug(cid)local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local master = isSummon(cid) and getCreatureMaster(cid) or cidlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.cond = "Miss" function sendAtk(cid, area, eff)if isCreature(cid) then if not isSightClear(p, area, false) then return true end doAreaCombatHealth(cid, POISONDAMAGE, area, 0, 0, 0, eff) doAreaCombatHealth(cid, POISONDAMAGE, area, whirl3, -min, -max, 114)endendfor a = 0, 4 dolocal t = {[0] = {114, {x=p.x, y=p.y-(a+1), z=p.z}}, --alterado v1.4[1] = {114, {x=p.x+(a+1), y=p.y, z=p.z}},[2] = {114, {x=p.x, y=p.y+(a+1), z=p.z}},[3] = {114, {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 == "Sludge Rain" thenlocal master = isSummon(cid) and getCreatureMaster(cid) or cidlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.cond = "Miss"local function doFall(cid)for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, POISONDAMAGE, 6, 116)endendfor 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 == "Brick Beak" thenlocal ret = {}ret.id = 0ret.cd = 9 ret.eff = 88ret.check = 0ret.first = trueret.cond = "Paralyze"ret.id = 0ret.cd = 9 ret.eff = 88ret.check = 0ret.first = trueret.cond = "Silence"local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {90, {x=p.x+1, y=p.y-1, z=p.z}},[1] = {90, {x=p.x+2, y=p.y+1, z=p.z}}, [2] = {90, {x=p.x+1, y=p.y+2, z=p.z}},[3] = {90, {x=p.x-1, y=p.y+1, z=p.z}}, }doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, min, max, spell, ret)doSendMagicEffect(t[a][2], t[a][1])elseif spell == "Shadow Storm" thenlocal master = isSummon(cid) and getCreatureMaster(cid) or cidlocal function doFall(cid)for rocks = 1, 42 do --62 addEvent(fall, rocks*35, cid, master, ghostDmg, 18, 140)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, 18)endaddEvent(doFall, 450, cid)addEvent(doMoveInArea2, 1400, cid, 2, BigArea2, ghostDmg, min, max, spell)elseif spell == "Invisible" thendoDisapear(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)endaddEvent(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 --alterado v1.6 setPlayerStorageValue(cid, 95487, 1) doSendMagicEffect(getThingPosWithDebug(cid), 132) doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoWithProtectWithDelay(cid, target, psyDmg, -min, -max, 138) elseif spell == "Dark Eye" or spell == "Miracle Eye" thenlocal function removeSpell(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 999457, -1) enddoSendMagicEffect(getThingPosWithDebug(cid), 47)setPlayerStorageValue(cid, 999457, 1) addEvent(removeSpell, 1500, cid)elseif spell == "Elemental Hands" thenif getCreatureOutfit(cid).lookType == 1301 thenprint("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 trueend --prote\E7ao 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 not hands then doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hands", 1) end if isInArray({"Ditto", "Shiny Ditto"}, name) then name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "copyName") end 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" thendoDanoWithProtect(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" thenlocal roardirections = { [NORTH] = {SOUTH},[sOUTH] = {NORTH},[WEST] = {EAST},[EAST] = {WEST}}local function divineBack(cid)if not isCreature(cid) then return true endlocal 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 endlocal function doDivine(cid, min, max, spell, rounds, area)if not isCreature(cid) then return true endlocal ret = {}ret.id = 0ret.check = 0ret.cd = roundsret.cond = "Confusion" for i = 1, 9 do addEvent(doMoveInArea2, i*500, cid, 137, area[i], psyDmg, min, max, spell, ret)endend 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({"Psychic Sight", "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" thendoMoveInArea2(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) addEvent(doMoveDano2, 100, cid, target, GHOSTDAMAGE, -min, -max, ret, spell)elseif spell == "Leaf Blade" thenlocal 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 local ret = {} ret.id = cid ret.cd = 15 ret.eff = 14 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) 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" thendoSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 20)doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, -min, -max, 242) --alterado v1.7elseif spell == "Draco Meteor" thenlocal effD = 5local eff = 248local master = isSummon(cid) and getCreatureMaster(cid) or cidlocal function doFall(cid)for rocks = 5, 42 do addEvent(fall, rocks*35, cid, master, DRAGONDAMAGE, effD, eff)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, effD)endaddEvent(doFall, 450, cid)addEvent(doDanoWithProtect, 1400, cid, DRAGONDAMAGE, getThingPosWithDebug(cid), waterarea, -min, -max, 0)elseif spell == "Dragon Pulse" thenlocal 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)endendfor a = 0, 3 dolocal 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])endelseif spell == "Psy Ball" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 3) doDanoInTargetWithDelay(cid, target, psyDmg, min, max, 250) --alterado v1.7elseif spell == "SmokeScreen" thenlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.cond = "Miss"local function smoke(cid)if not isCreature(cid) then return true endif isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false endif isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doMoveInArea2(cid, 34, confusion, NORMALDAMAGE, 0, 0, spell, ret)endsetPlayerStorageValue(cid, 3644587, 1)addEvent(setPlayerStorageValue, 1000, cid, 3644587, -1) for i = 0, 2 do addEvent(smoke, i*500, cid) endelseif spell == "Faint Attack" or spell == "Sucker Punch" then --alterado v1.5 doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doDanoInTargetWithDelay(cid, target, DARKDAMAGE, min, max, 237) --alterado v1.7elseif spell == "Assurance" thenlocal 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)endendfor a = 0, 3 dolocal 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])endelseif spell == "Scary Face" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 0ret.spell = spellret.cond = "Stun"local p = getThingPosWithDebug(cid)doSendMagicEffect({x=p.x+1, y=p.y+1, z=p.z}, 228)doMoveInArea2(cid, 0, electro, NORMALDAMAGE, 0, 0, spell, ret)elseif spell == "Surf" thenlocal 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" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 39ret.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")enddoCureStatus(cid, "all")setPlayerStorageValue(cid, 253, 1) --focusdoMoveInArea2(cid, 0, electro, NORMALDAMAGE, 0, 0, spell, ret)elseif spell == "Taunt" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 136ret.cond = "Silence"----local p = getThingPosWithDebug(cid)doSendMagicEffect({x=p.x+1, y=p.y, z=p.z}, 140)---if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")enddoCureStatus(cid, "all")setPlayerStorageValue(cid, 253, 1) --focusdoMoveInArea2(cid, 0, electro, NORMALDAMAGE, 0, 0, spell, ret)elseif isInArray({"Pursuit", "ExtremeSpeed", "U-Turn", "Shell Attack"}, spell) thenlocal 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 = getSubName(cid, target) == "Shiny Arcanine" and atk[spell][3] or atk[spell][1] --alterado v1.6.1local 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(doDanoInTarget, 400, cid, target, damage, -min, -max, 0) --alterado v1.7addEvent(doSendDistanceShoot, 800, p, pos, eff)addEvent(doSendMagicEffect, 850, pos, 211)addEvent(doRegainSpeed, 1000, cid)addEvent(doAppear, 1000, cid)elseif spell == "Egg Rain" thenlocal effD = 12local eff = 5local 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)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, effD)endaddEvent(doFall, 450, cid)addEvent(doDanoWithProtect, 1400, cid, NORMALDAMAGE, getThingPosWithDebug(cid), waterarea, -min, -max, 0)elseif spell == "Stampade" thenlocal master = getCreatureMaster(cid) or 0local ret = {}ret.id = 0ret.cd = 9ret.eff = 0ret.check = 0ret.spell = spellret.cond = "Stun" for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 187)endaddEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, ret) elseif spell == "Stampage" thenlocal master = getCreatureMaster(cid) or 0local ret = {}ret.id = 0ret.cd = 9ret.eff = 0ret.check = 0ret.spell = spellret.cond = "Stun" for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 194)endaddEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, ret)elseif spell == "Barrier" thenif not isCreature(getCreatureTarget(cid)) thenlocal function sendAtk(cid)if not isCreature(cid) then return true endsetPlayerStorageValue(cid, 9658783, -1) setPlayerStorageValue(cid, 734276, -1) endsetPlayerStorageValue(cid, 734276, 1) setPlayerStorageValue(cid, 9658783, 1)pos = getThingPosWithDebug(cid)local function doSendEff(cid)if not isCreature(cid) then return true enddoSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 172)endfor i = 0, 7 do addEvent(doSendEff, i*1000, cid)endaddEvent(sendAtk, 8000, cid) stopNow(cid, 8 * 800) elselocal ret = {}ret.id = targetret.cd = 10ret.check = getPlayerStorageValue(target, conds["Sleep"])ret.eff = 0ret.cond = "Sleep"doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 24)pos = getThingPosWithDebug(target)addEvent(doMoveDano2, 150, cid, target, PSYCHICDAMAGE, 0, 0, ret, spell)local function doSendEff(cid)if not isCreature(cid) then return true enddoSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 172)endfor i = 0, 7 do addEvent(doSendEff, i*1000, cid)endstopNow(target, 8 * 800)endelseif spell == "Air Cutter" thenlocal 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)endendfor a = 0, 5 dolocal 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])endelseif spell == "Venom Gale" thenlocal 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" thendoMoveInArea2(cid, 146, Crunch1, DARKDAMAGE, min, max, spell)addEvent(doMoveInArea2, 300, cid, 146, Crunch2, DARKDAMAGE, min, max, spell)elseif spell == "Ice Fang" thendoTargetCombatHealth(cid, target, ICEDAMAGE, 0, 0, 146)addEvent(doDanoWithProtect, 250, cid, ICEDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 17)elseif spell == "Psyshock" thenlocal 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.4endendfor a = 0, 4 dolocal 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])endelseif spell == "Hurricane" thenlocal 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) enddoSetCreatureOutfit(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.4endelseif spell == "Aromateraphy" or spell == "Emergency Call" theneff = spell == "Aromateraphy" and 14 or 13doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(cid), bombWee3, 0, 0, eff)if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")enddoCureStatus(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 endendelseif 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" thensendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, min, max, 3) --alterado v1.7elseif spell == "Night Daze" thenlocal pos = getThingPosWithDebug(cid)local eff = spell == "Night Daze" and 222 or 113local dmg = spell == "Night Daze" and DARKDAMAGE or FIGHTINGDAMAGElocal out = getSubName(cid, target) == "Hitmontop" and 1193 or 1451 --alterado v1.6.1 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"}, getSubName(cid, target)) then --alterado v1.6.1 doSetCreatureOutfit(cid, {lookType = out}, 400) end addEvent(doDanoWithProtect, 150, cid, dmg, pos, waterarea, -min, -max, 0) elseif spell == "Rolling Kick" thenlocal pos = getThingPosWithDebug(cid)local eff = spell == "Night Daze" and 222 or 113local dmg = spell == "Night Daze" and DARKDAMAGE or FIGHTINGDAMAGElocal out = getSubName(cid, target) == "Hitmontop" and 1193 or 1451 --alterado v1.6.1 local function doSendBubble(cid, pos) if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 27) 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"}, getSubName(cid, target)) then --alterado v1.6.1 doSetCreatureOutfit(cid, {lookType = out}, 400) end addEvent(doDanoWithProtect, 150, cid, dmg, pos, waterarea, -min, -max, 0) elseif spell == "Safeguard" thendoSendMagicEffect(getThingPosWithDebug(cid), 1)if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")enddoCureStatus(cid, "all") elseif spell == "Air Slash" thenlocal 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])enddoDanoWithProtect(cid, FLYINGDAMAGE, getThingPosWithDebug(cid), airSlash, -min, -max, 0) for i = 1, 4 do addEvent(doSendMagicEffect, 400, t[i][1][2], t[i][1][1])endaddEvent(doDanoWithProtect, 400, cid, FLYINGDAMAGE, getThingPosWithDebug(cid), bombWee2, -min, -max, 0)elseif spell == "Feather Dance" thenlocal function doPulse(cid, eff)if not isCreature(cid) or not isCreature(target) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 9) doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, -min, -max, eff) --alterado v1.7end addEvent(doPulse, 0, cid, 137) addEvent(doPulse, 100, 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 == "Tackle" then doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 111)elseif spell == "Giga Drain" thenlocal life = getCreatureHealth(target) or 0 doDanoWithProtect(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 258) local newlife = life - (getCreatureHealth(target) or 0) doSendMagicEffect(getThingPosWithDebug(cid), 14) if newlife >= 1 then doCreatureAddHealth(cid, newlife) doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32) end elseif spell == "Leech Life" thenlocal life = getCreatureHealth(target) doDanoWithProtect(cid, BUGDAMAGE, 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" thenlocal 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)endendfor a = 0, 3 dolocal 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" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 34ret.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" thenlocal ret = {}ret.id = targetret.cd = math.random(6, 9)ret.check = getPlayerStorageValue(target, conds["Sleep"])ret.first = trueret.cond = "Sleep" doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 11) addEvent(doMoveDano2, 1500, cid, target, NORMALDAMAGE, 0, 0, ret, spell)elseif spell == "Tongue Hook" thensendDistanceShootWithProtect(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" thenlocal function distEff(cid, target)if not isCreature(cid) or not isCreature(target) or not isSilence(target) then return true end --alterado v1.6 sendDistanceShootWithProtect(cid, getThingPosWithDebug(target), getThingPosWithDebug(cid), 38)endlocal ret = {}ret.id = targetret.cd = 10ret.check = getPlayerStorageValue(target, conds["Silence"])ret.eff = 185ret.cond = "Silence"sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebug(target), 38)addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell) 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) doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, min, max, 113) --alterado v1.7elseif spell == "Present" thenlocal function sendHeal(cid)if isCreature(cid) and isCreature(target) then doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), crusher, min, max, 5) doSendAnimatedText(getThingPosWithDebug(target), "HEALTH!", 65)endend 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" thenlocal ret = {}ret.id = targetret.cd = 10ret.check = getPlayerStorageValue(target, conds["Silence"])ret.eff = 104ret.cond = "Silence"doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)elseif spell == "Rock n'Roll" thenlocal pos = getThingPosWithDebug(cid)local areas = {rock1, rock2, rock3, rock4, rock5, rock4, rock3, rock2, rock1}local ret = {}ret.id = 0ret.cd = 9ret.eff = 1ret.check = 0ret.spell = spellret.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)endelseif spell == "Power Wave" then local pos = getThingPosWithDebug(cid)local areas = {rock1, rock2, rock3, rock4, rock5}local ret = {}ret.id = 0ret.cd = 9ret.eff = 103ret.check = 0ret.first = trueret.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)endendenddoSetCreatureOutfit(cid, {lookType = 1001}, -1)setPlayerStorageValue(cid, 9658783, 1)addEvent(sendAtk, 2000, cid) elseif spell == "Heal Bell" thenif isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")enddoCureStatus(cid, "all") local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, rock5} local ret = {} ret.id = cid ret.cd = 10 ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) for i = 0, 22 do addEvent(doMoveInArea2, i*400, cid, 33, areas[i+1], NORMALDAMAGE, 0, 0, spell) endelseif spell == "Ground Crusher" thenlocal 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) endenddoSetCreatureOutfit(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)endfor 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)endfor 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)endfor 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)endfor 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)endelseif spell == "Last Resort" thenlocal 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)endelseif spell == "Psy Impact" thenlocal master = getCreatureMaster(cid) or 0local ret = {}ret.id = 0ret.cd = 9ret.eff = 0ret.check = 0ret.spell = spellret.cond = "Miss" for rocks = 1, 42 do addEvent(fall, rocks*35, cid, master, psyDmg, -1, 98)endaddEvent(doMoveInArea2, 500, cid, 0, BigArea2, psyDmg, min, max, spell, ret) elseif spell == "Two Face Shock" thenlocal 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" thenlocal eff = {16, 221, 223, 243}for rocks = 1, 32 do addEvent(fall, rocks*22, cid, master, FLYINGDAMAGE, -1, eff[math.random(1, 4)])endaddEvent(doMoveInArea2, 500, cid, 0, BigArea2, FLYINGDAMAGE, min, max, spell) elseif spell == "Echoed Voice" thenlocal 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)endendfor a = 0, 5 dolocal 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" or spell == "Waterfall" or spell == "Flame Wheel" or spell == "Flare Blitz" then --alterado v1.8local 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 = {--[atk] = {distance, eff, damage}["Electro Field"] = {41, 207, ELECTRICDAMAGE},["Petal Tornado"] = {14, 54, GRASSDAMAGE}, ["Flame Wheel"] = {-1, 6, FIREDAMAGE}, --alterado v1.9["Flare Blitz"] = {3, 257, FIREDAMAGE}, --alterado v1.9["Waterfall"] = {-1, 155, WATERDAMAGE},}local function sendDist(cid, posi1, posi2, eff, delay)if posi1 and posi2 and isCreature(cid) then addEvent(sendDistanceShootWithProtect, delay, cid, posi1, posi2, eff) --alterado v1.6endend local function sendDano(cid, pos, eff, delay, min, max)if pos and isCreature(cid) then addEvent(doDanoWithProtect, delay, cid, atk[spell][3], pos, 0, -min, -max, eff) --alterado v1.6endendlocal function doTornado(cid)if isCreature(cid) thenfor 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) endendendendif spell == "Electro Field" then addEvent(doMoveInArea2, 1000, cid, 0, electro, ELECTRICDAMAGE, 0, 0, spell, ret)endif spell == "Waterfall" then addEvent(doMoveInArea2, 1000, cid, 0, electro, WATERDAMAGE, 0, 0, spell, ret)endif spell == "Flame Wheel" then --alterado v1.8 doTornado(cid)else for b = 0, 2 do addEvent(doTornado, b*1500, cid) endendelseif spell == "Seed Bomb" then --alterado v1.6local master = isSummon(cid) and getCreatureMaster(cid) or cidlocal function doFall(cid)for rocks = 1, 42 do --62 addEvent(fall, rocks*35, cid, master, SEED_BOMBDAMAGE, 1, 54)endendfor up = 1, 10 do addEvent(upEffect, up*75, cid, 1)endaddEvent(doFall, 450, cid)addEvent(doMoveInArea2, 1400, cid, 2, BigArea2, SEED_BOMBDAMAGE, min, max, spell)elseif spell == "Reverse Earthshock" thenlocal p = getThingPosWithDebug(cid)p.x = p.x+1p.y = p.y+1sendEffWithProtect(cid, p, 151) --send efflocal function doDano(cid)local pos = getThingPosWithDebug(cid) local function doSendBubble(cid, pos) if not isCreature(cid) then return true end doSendDistanceShoot(getThingPosWithDebug(cid), pos, 39) doSendMagicEffect(pos, 239) 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 addEvent(doDanoWithProtect, 150, cid, ROCKDAMAGE, pos, waterarea, -min, -max, 0)endaddEvent(doDano, 1250, cid)elseif spell == "Fury Swipes" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 23) doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 152) elseif spell == "Poison Jab" then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 15) doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 153) elseif spell == "Cross Poison" thendoMoveInArea2(cid, 153, cross, POISONDAMAGE, -min, -max, spell)elseif spell == "Hydro Dance" then local eff = {155, 154, 53, 155, 53} local area = {psy1, psy2, psy3, psy4, psy5} 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], WATERDAMAGE, min, max, spell) end elseif spell == "Stick Throw" thenlocal area = {Throw01, Throw02, Throw03, Throw04, Throw03, Throw02, Throw01}local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 0ret.spell = spellret.cond = "Stun"stopNow(cid, 2000)doMoveInArea2(cid, 212, reto5, STEELDAMAGE, min, max, spell, ret) elseif spell == "Gyro Ball" thenlocal ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 0ret.spell = spellret.cond = "Stun"stopNow(cid, 2000)doMoveInArea2(cid, 156, reto5, STEELDAMAGE, min, max, spell, ret) elseif spell == "Rock Tomb" thenlocal ret = {}ret.id = targetret.cd = 9ret.eff = 0ret.check = getPlayerStorageValue(target, conds["Slow"])ret.first = trueret.cond = "Slow" 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, pos, 39) addEvent(doMoveDano2, ry * 11, cid, target, ROCKDAMAGE, min, max, ret, spell) addEvent(sendEffWithProtect, ry*11, cid, pos, 157) 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, 39) addEvent(doRockFall, rd * 49, cid, topos, target) end addEvent(doRockUp, 155, cid, target) elseif spell == "Sand Tomb" thenlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.cond = "Miss"doMoveInAreaMulti(cid, 22, 158, bullet, bulletDano, GROUNDDAMAGE, min, max, ret)elseif spell == "Magnet Bomb" thenlocal ret = {}ret.id = 0ret.cd = 9ret.eff = 48ret.check = 0ret.spell = spellret.cond = "Miss"doMoveInAreaMulti(cid, 22, 171, bullet, bulletDano, ELECTRICDAMAGE, min, max, ret)elseif spell == "Rain Dance" thenlocal master = isSummon(cid) and getCreatureMaster(cid) or cid------------local ret = {}ret.id = 0ret.cd = 9ret.check = 0ret.eff = 1ret.cond = "Silence"---local function doFall(cid)for rocks = 1, 42 do --62 addEvent(fall, rocks*35, cid, master, WATERDAMAGE, 52, 1)endend---local function doRain(cid)if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")end --cura statusdoCureStatus(cid, "all")---setPlayerStorageValue(cid, 253, 1) --focusdoSendMagicEffect(getThingPosWithDebug(cid), 132)---doMoveInArea2(cid, 0, confusion, WATERDAMAGE, 0, 0, spell, ret)end---addEvent(doFall, 200, cid)addEvent(doRain, 1000, cid)elseif spell == "Night Slash" thenlocal p = getThingPosWithDebug(cid)local t = {{251, {x = p.x+1, y = p.y-1, z = p.z}},{253, {x = p.x+2, y = p.y+1, z = p.z}},{252, {x = p.x+1, y = p.y+2, z = p.z}},{254, {x = p.x-1, y = p.y+1, z = p.z}},}doAreaCombatHealth(cid, DARKDAMAGE, p, scyther5, -min, -max, 165)for a = 0, 1 do for i = 1, 4 do addEvent(doSendMagicEffect, a*400, t[i][2], t[i][1]) --alterado v1.8 endendaddEvent(doAreaCombatHealth, 400, cid, DARKDAMAGE, p, scyther5, -min, -max, 165)elseif spell == "Heavy Slam" thenlocal p = getThingPosWithDebug(cid)local t = {{251, {x = p.x+1, y = p.y-1, z = p.z}},{253, {x = p.x+2, y = p.y+1, z = p.z}},{252, {x = p.x+1, y = p.y+2, z = p.z}},{254, {x = p.x-1, y = p.y+1, z = p.z}},}doAreaCombatHealth(cid, STEELDAMAGE, p, confusion, -min, -max, 77)for a = 0, 1 do for i = 1, 4 do addEvent(doSendMagicEffect, a*400, t[i][2], t[i][1]) --alterado v1.8 endendaddEvent(doAreaCombatHealth, 400, cid, STEELDAMAGE, p, confusion, -min, -max, 165)elseif spell == "Wild Charge" thenlocal ret = {} ret.id = 0ret.cd = 9ret.eff = 48ret.check = 0ret.spell = spellret.cond = "Stun"local pos = getThingPosWithDebug(cid)local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1}for i = 0, 14 do addEvent(doMoveInArea2, i*320, cid, 48, areas[i+1], ELECTRICDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*330, cid, 48, areas[i+1], ELECTRICDAMAGE, 0, 0, spell)endelseif spell == "Focus Blast" thenlocal ret = {} ret.id = 0ret.cd = 9ret.eff = 136ret.check = 0ret.spell = spellret.cond = "Confusion"local pos = getThingPosWithDebug(cid)local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1}for i = 0, 14 do addEvent(doMoveInArea2, i*320, cid, 112, areas[i+1], FIGHTINGDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*330, cid, 112, areas[i+1], FIGHTINGDAMAGE, 0, 0, spell)endelseif spell == "Jump Kick" then --ver essadoMoveInAreaMulti(cid, 42, 113, bullet, bulletDano, FIGHTINGDAMAGE, min, max)elseif spell == "Lava Plume" then --alterado v1.8 \/\/\/doMoveInArea2(cid, 5, cross, FIREDAMAGE, -min, -max, spell)doMoveInArea2(cid, 87, cross, FIREDAMAGE, 0, 0, spell)elseif spell == "Silver Wind" thendoSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)doDanoWithProtectWithDelay(cid, target, BUGDAMAGE, min, max, 78, SilverWing)elseif spell == "Bug Buzz" then local ret = {}ret.id = targetret.cd = 9ret.eff = 34ret.check = 0ret.spell = spellret.cond = "Stun" doMoveInArea2(cid, 86, db1, BUGDAMAGE, min, max, spell, ret)addEvent(doMoveInArea2, 250, cid, 86, db1, BUGDAMAGE, 0, 0, spell)elseif spell == "Whirlpool" thenlocal function setSto(cid)if isCreature(cid) then setPlayerStorageValue(cid, 3644587, -1)endendlocal function doDano(cid)if isSleeping(cid) then return true end doDanoWithProtect(cid, WATERDAMAGE, getThingPosWithDebug(cid), splash, min, max, 89)endsetPlayerStorageValue(cid, 3644587, 1)for r = 0, 10 do addEvent(doDano, 600 * r, cid)endaddEvent(setSto, 600*10, cid)elseif spell == "Groundshock" thenlocal function setSto(cid) if isCreature(cid) then setPlayerStorageValue(cid, 3644587, -1) endendlocal function doDano(cid)if isSleeping(cid) then return true end doDanoWithProtect(cid, WATERDAMAGE, getThingPosWithDebug(cid), splash, min, max, 118)endsetPlayerStorageValue(cid, 3644587, 1)for r = 0, 1 do addEvent(doDano, 600 * r, cid)endaddEvent(setSto, 600*10, cid)elseif spell == "Iron Head" thendoSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)doDanoInTargetWithDelay(cid, target, STEELDAMAGE, -min, -max, 77) elseif spell == "Brick Break" thenlocal ret = {}ret.id = 0ret.cd = 9 ret.eff = 88ret.check = 0ret.first = trueret.cond = "Paralyze"local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {90, {x=p.x+1, y=p.y-1, z=p.z}},[1] = {90, {x=p.x+2, y=p.y+1, z=p.z}}, [2] = {90, {x=p.x+1, y=p.y+2, z=p.z}},[3] = {90, {x=p.x-1, y=p.y+1, z=p.z}}, }doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, min, max, spell, ret)doSendMagicEffect(t[a][2], t[a][1])elseif spell == "Volcano Burst" thenlocal pos = getThingPosWithDebug(cid)doMoveInArea2(cid, 91, inferno1, FIREDAMAGE, 0, 0, spell)addEvent(doDanoWithProtect, math.random(100, 400), cid, FIREDAMAGE, pos, inferno2, -min, -max, 0)elseif spell == "Bone Rush" thenlocal area = {gale1, gale2, gale3, gale4, gale3, gale2, gale1}for i = 0, 6 do addEvent(doMoveInArea2, i*400, cid, 227, area[i+1], ROCKDAMAGE, min, max, spell)end elseif spell == "Hammer Arm" thenlocal ret = {}ret.id = 0ret.cd = 9 ret.eff = 88ret.check = 0ret.first = trueret.cond = "Paralyze"local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or getCreatureLookDir(cid)local p = getThingPosWithDebug(cid)local t = {[0] = {92, {x=p.x, y=p.y-1, z=p.z}},[1] = {94, {x=p.x+2, y=p.y, z=p.z}}, [2] = {95, {x=p.x+1, y=p.y+2, z=p.z}},[3] = {93, {x=p.x-1, y=p.y, z=p.z}}, }doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, min, max, spell, ret)doSendMagicEffect(t[a][2], t[a][1])--/////////////////////// PASSIVAS /////////////////////////--elseif spell == "Counter Helix" then-- [nome] = {out = outfit girando, efeitos}local OutFit = {["Scyther"] = {out = 496, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --scyther["Scizor"] = {out = 918, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Scizor["Shiny Scyther"] = {out = 849, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Shiny Scyther["Hitmontop"] = {out = 1193, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Hitmontop["Shiny Hitmontop"] = {out = 1451, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Shiny Hitmontop ["Pineco"] = {out = 1194, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --pineco["Forretress"] = {out = 1192, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Forretress["Wobbuffet"] = {out = 924, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --wobb["Alakazam"] = {out = 569, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --alaka["Kadabra"] = {out = 570, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --kadabra["Shiny Abra"] = {out = 1257, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --s abra["Kangaskhan"] = {out = 549, cima = 251, direita = 253, esquerda = 254, baixo = 252}, --test} if isMega(cid) then return true end if getPlayerStorageValue(cid, 32623) == 1 then --prote\E7ao pra n usar a passiva 2x seguidas... setPlayerStorageValue(cid, 32623, 0) return true end local nome1 = doCorrectString(getCreatureName(cid)) --alterado v1.6.1 if not OutFit[nome1] then return true end local outfitt = OutFit[nome1] --alterado v1.6.1 local function doDamage(cid, min, max) if isCreature(cid) then if isInArray({"Scyther", "Shiny Scyther", "Pineco"}, nome1) then --alterado v1.6 damage = BUGDAMAGE elseif isInArray({"Hitmontop", "Shiny Hitmontop", "Kangaskhan"}, nome1) then damage = FIGHTINGDAMAGE --alterado v1.6.1 else damage = STEELDAMAGE end doAreaCombatHealth(cid, damage, getThingPosWithDebug(cid), scyther5, -min, -max, CONST_ME_NONE) --alterado v1.6.1 --- doAreaCombatHealth(cid, null, getThingPos(cid), scythe1, 0, 0, outfitt.cima) --cima doAreaCombatHealth(cid, null, getThingPos(cid), scythe2, 0, 0, outfitt.baixo) --baixo doAreaCombatHealth(cid, null, getThingPos(cid), scythe3, 0, 0, outfitt.direita) --direita doAreaCombatHealth(cid, null, getThingPos(cid), scythe4, 0, 0, outfitt.esquerda) --esquerda end end local function sendEff(cid) if isCreature(cid) then doAreaCombatHealth(cid, null, getThingPos(cid), scythe1, 0, 0, outfitt.cima) --cima doAreaCombatHealth(cid, null, getThingPos(cid), scythe2, 0, 0, outfitt.baixo) --baixo doAreaCombatHealth(cid, null, getThingPos(cid), scythe3, 0, 0, outfitt.direita) --direita --alterado v1.6 doAreaCombatHealth(cid, null, getThingPos(cid), scythe4, 0, 0, outfitt.esquerda) --esquerda end end local function doChangeO(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 32623, 0) if isSleeping(cid) and getMonsterInfo(getCreatureName(cid)).lookCorpse ~= 0 then doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(getCreatureName(cid)).lookCorpse}, -1) else doRemoveCondition(cid, CONDITION_OUTFIT) end end local delay = 200 -- n\E3o mexe local master = isSummon(cid) and getCreatureMaster(cid) or cid --alterado v1.6 local summons = getCreatureSummons(master) if (isPlayer(master) and #summons >= 2) or (ehMonstro(master) and #summons >= 1) then for j = 1, #summons do setPlayerStorageValue(summons[j], 32623, 1) doSetCreatureOutfit(summons[j], {lookType = outfitt.out}, -1) for i = 1, 2 do --alterado v1.6 addEvent(sendEff, delay*i, summons[j]) end addEvent(doChangeO, 2 * 300 + 10, summons[j]) for i = 1, 2 do addEvent(doDamage, delay*i, summons[j], min, max) end end else setPlayerStorageValue(cid, 32623, 1) setPlayerStorageValue(cid, 98654, 1) doSetCreatureOutfit(cid, {lookType = outfitt.out}, -1) for i = 1, 2 do --alterado v1.6 addEvent(doDamage, delay*i, cid, min, max) end addEvent(doChangeO, 2 * 300 + 10, cid) end elseif spell == "Lava-Counter" thenlocal function sendStickEff(cid, dir) if not isCreature(cid) then return true end doAreaCombatHealth(cid, FIREDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 5) 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) setPlayerStorageValue(cid, 98654, 1) elseif spell == "Mega Drain" thenlocal function getCreatureHealthSecurity(cid) if not isCreature(cid) then return 0 end return getCreatureHealth(cid) or 0end local uid = checkAreaUid(getThingPos(cid), check, 1, 1) for _,pid in pairs(uid) do if isCreature(cid) and isCreature(pid) and pid ~= cid then if isPlayer(pid) and #getCreatureSummons(pid) >= 1 then return false end local life = getCreatureHealthSecurity(pid) doAreaCombatHealth(cid, GRASSDAMAGE, getThingPos(pid), 0, -min, -max, 14) local newlife = life - getCreatureHealthSecurity(pid) doSendMagicEffect(getThingPos(cid), 14) setPlayerStorageValue(cid, 98654, 1) if newlife >= 1 then doCreatureAddHealth(cid, newlife) doSendAnimatedText(getThingPos(cid), "+"..newlife.."", 32) end end end elseif spell == "Spores Reaction" thenlocal random = math.random(1, 3) if random == 1 then local ret = {} ret.id = 0 ret.cd = math.random(2, 3) ret.check = 0 --alterado v1.6 ret.first = true ret.cond = "Sleep" doMoveInArea2(cid, 27, confusion, GRASSDAMAGE, 0, 0, "Spores Reaction", ret) setPlayerStorageValue(cid, 98654, 1) elseif random == 2 then local ret = {} ret.id = 0 ret.cd = 6 ret.eff = 0 ret.check = 0 ret.spell = spell ret.cond = "Stun" doMoveInArea2(cid, 85, confusion, GRASSDAMAGE, 0, 0, "Spores Reaction", ret) setPlayerStorageValue(cid, 98654, 1) else local ret = {} ret.id = 0 ret.cd = math.random(6, 10) ret.check = 0 local lvl = isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid) --alterado v1.6 ret.damage = math.floor((getPokemonLevel(cid)+lvl * 3)/2) ret.cond = "Poison" doMoveInArea2(cid, 84, confusion, POISONDAMAGE, 0, 0, "Spores Reaction", ret) setPlayerStorageValue(cid, 98654, 1) endelseif spell == "Stunning Confusion" then if getPlayerStorageValue(cid, 32623) == 1 then --prote\E7ao pra n usar a spell 2x seguidas... return true end local function damage(cid) if isCreature(cid) then doAreaCombatHealth(cid, PSYCHICDAMAGE, getThingPosWithDebug(cid), bombWee3, -min, -max, 133) end end setPlayerStorageValue(cid, 32623, 1) --prote\E7ao for i = 1, 7 do addEvent(damage, i*500, cid) end addEvent(setPlayerStorageValue, 3500, cid, 32623, 0) --prote\E7ao setPlayerStorageValue(cid, 98654, 1) elseif spell == "Bone-Spin" thenlocal 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) setPlayerStorageValue(cid, 98654, 1) --alterado v1.4elseif spell == "Amnesia" then if getPlayerStorageValue(cid, 253) >= 1 then return true end doCreatureSay(cid, "????", 20) doSendMagicEffect(getThingPosWithDebug(cid), 132) setPlayerStorageValue(cid, 253, 1) setPlayerStorageValue(cid, 98654, 1) elseif spell == "Dragon Fury" then if getPlayerStorageValue(cid, 32623) == 1 then return true end setPlayerStorageValue(cid, 32623, 1) setPlayerStorageValue(cid, 98654, 1) if isInArray({"Persian", "Raticate", "Shiny Raticate"}, getSubName(cid, target)) then --alterado v1.6.1 doRaiseStatus(cid, 1.5, 0, 0, 10) else --alterado v1.5 doRaiseStatus(cid, 1.5, 1.5, 0, 10) --ver isso end for t = 1, 7 do --alterado v1.5 addEvent(sendMoveEffect, t*1500, cid, 12) end addEvent(setPlayerStorageValue, 10500, cid, 32623, 0) --alterado v1.8 elseif spell == "Electric Charge" then if getPlayerStorageValue(cid, 253) >= 1 then return true end setPlayerStorageValue(cid, 253, 1) setPlayerStorageValue(cid, 98654, 1) doSendMagicEffect(getThingPosWithDebug(cid), 207) doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144) elseif spell == "Shock-Counter" thenlocal function sendStickEff(cid, dir) if not isCreature(cid) then return true end doAreaCombatHealth(cid, ELECTRICDAMAGE, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, 207) 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) setPlayerStorageValue(cid, 98654, 1) elseif spell == "Mirror Coat" then if spell == "Magic Coat" then eff = 11 else eff = 135 end doSendMagicEffect(getThingPosWithDebug(cid), eff) setPlayerStorageValue(cid, storages.reflect, 5) setPlayerStorageValue(cid, 98654, 1) elseif spell == "Zen Mind" then function doCure(cid) if not isCreature(cid) then return true end if isSummon(cid) then doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all") end doCureStatus(cid, "all") end addEvent(doCure, 1000, cid) doSetCreatureOutfit(cid, {lookType = 1001}, 2000) setPlayerStorageValue(cid, 98654, 1)elseif spell == "Detect" thenlocal function retireStatus(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 9658783, -1)endlocal function doRemoveEffect(cid) if not isCreature(cid) then return true end doRegainSpeed(cid) setPlayerStorageValue(cid, 9658783, 1) -- nao velar dano addEvent(retireStatus, 5000, cid)end doChangeSpeed(cid, -getCreatureSpeed(cid)) addEvent(doRemoveEffect, 1000, cid) pos = getThingPos(cid) pos.x = pos.x + 2 pos.y = pos.y +2 doSendMagicEffect(pos, 375) elseif spell == "Sturdy" then elseif spell == "Demon Kicker" then--[outfit] = outfit chutando,local hitmonlees = {["Hitmonlee"] = 652, --hitmonlee["Shiny Hitmonlee"] = 878, --shiny hitmonlee} local nome = getCreatureName(cid) --alterado v1.6 --alterado v1.7if (not hitmonlees[nome] and isCreature(target)) or (isCreature(target) and math.random(1, 100) <= passivesChances["Demon Kicker"][nome]) then if getDistanceBetween(getThingPos(cid), getThingPos(target)) > 1 then return true end if getPlayerStorageValue(cid, 32623) == 1 then --prote\E7ao pra n usar a passiva 2x seguidas... return true end if not isSummon(cid) then --alterado v1.7 doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER) end local function doChangeHitmon(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 32623, 0) --prote\E7ao if isSleeping(cid) and getMonsterInfo(getCreatureName(cid)).lookCorpse ~= 0 then doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(getCreatureName(cid)).lookCorpse}, -1) else doRemoveCondition(cid, CONDITION_OUTFIT) end end setPlayerStorageValue(cid, 32623, 1) --prote\E7ao setPlayerStorageValue(cid, 98654, 1) local look = hitmonlees[nome] or getPlayerStorageValue(cid, 21104) --alterado v1.6 doCreatureSetLookDir(cid, getCreatureDirectionToTarget(cid, target)) doSetCreatureOutfit(cid, {lookType = look}, -1) --alterado v1.6 doTargetCombatHealth(cid, target, FIGHTINGDAMAGE, -min, -max, 255) addEvent(doChangeHitmon, 700, cid) endelseif spell == "Illusion" thenlocal team = {["Misdreavus"] = "MisdreavusTeam",["Shiny Stantler"] = "Shiny StantlerTeam",["Stantler"] = "StantlerTeam",}local function RemoveTeam(cid)if isCreature(cid) then doSendMagicEffect(getThingPosWithDebug(cid), 211) doRemoveCreature(cid)endendlocal function sendEff(cid, master, t)if isCreature(cid) and isCreature(master) and t > 0 and #getCreatureSummons(master) >= 2 then doSendMagicEffect(getThingPosWithDebug(cid), 86, master) addEvent(sendEff, 1000, cid, master, t-1) --alterado v1.9endendif getPlayerStorageValue(cid, 637500) >= 1 thenreturn trueendlocal 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 = 5doItemSetAttribute(item.uid, "hp", (life/maxLife))local num = getSubName(cid, target) == "Misdreavus" and 3 or 2local pk = {}doTeleportThing(cid, {x=4, y=3, z=10}, true) if team[name] then pk[1] = cid for b = 2, num do pk[b] = doSummonCreature(team[name], pos) doConvinceCreature(master, pk[b]) end for a = 1, num do addEvent(doTeleportThing, math.random(0, 5), pk[a], getClosestFreeTile(pk[a], pos), true) addEvent(doAdjustWithDelay, 5, master, pk[a], true, true, true) doSendMagicEffect(getThingPosWithDebug(pk[a]), 211) end sendEff(cid, master, time) --alterado v1.9 setPlayerStorageValue(master, 637501, 1) addEvent(setPlayerStorageValue, time * 1000, master, 637501, -2) ----- setPlayerStorageValue(pk[2], 637500, 1) addEvent(RemoveTeam, time * 1000, pk[2]) ----- setPlayerStorageValue(pk[3], 637500, 1) addEvent(RemoveTeam, time * 1000, pk[3]) ---- if getSubName(cid, target) == "Scizor" then setPlayerStorageValue(pk[4], 637500, 1) addEvent(RemoveTeam, time * 1000, pk[4]) endendelseif spell == "Demon Puncher" then local name = getCreatureName(cid) --alterado v1.7if (not hitmonchans[name] and isCreature(target)) or (isCreature(target) and math.random(1, 100) <= passivesChances["Demon Puncher"][name]) then if getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) > 1 then return true end if not isSummon(cid) then --alterado v1.7 doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER) end if ehMonstro(cid) or not hitmonchans[name] then hands = 0 else hands = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "hands") end if not hitmonchans[name] then tabela = hitmonchans[getCreatureName(target)][hands] else tabela = hitmonchans[name][hands] end doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39) doTargetCombatHealth(cid, target, tabela.type, -min, -max, 255) local alvo = getThingPosWithDebug(target) alvo.x = alvo.x + 1 ---alterado v1.7 if hands == 4 then doSendMagicEffect(alvo, tabela.eff) else doSendMagicEffect(getThingPosWithDebug(target), tabela.eff) end if hands == 3 then local ret = {} ret.id = target ret.cd = 9 --alterado v1.6 ret.eff = 43 ret.check = getPlayerStorageValue(target, conds["Slow"]) ret.first = true ret.cond = "Slow" doMoveDano2(cid, target, FIGHTINGDAMAGE, 0, 0, ret, spell) setPlayerStorageValue(cid, 98654, 1) end endelseif string.find(spell:lower(), "mega -") then doTransformMega(cid) endreturn true endfunction doBurnPoke(cid, target)local name = doCorrectString(getCreatureName(cid))local ret = {} ret.id = target ret.cd = isMega(cid) and math.random(12, 20) or math.random(6, 15) ret.eff = (isMega(cid) and getMegaID(cid) == "X") and 302 or 15 ret.color = (isMega(cid) and getMegaID(cid) == "X") and 28 or COLOR_BURN ret.check = 0 local lvl = isSummon(cid) and getMasterLevel(cid) or getPokemonLevelD(name) local heldPercent = 1 if isSummon(cid) then local heldx = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "xHeldItem") if heldx then local heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] if heldName == "X-Hellfire" then -- dar mais experiencia heldPercent = heldPoisonBurn[tonumber(heldTier)] end end end local dano = math.floor((getPokemonLevelD(name)+lvl * 3)/2) ret.damage = dano + (heldPercent * dano / 100) ret.cond = "Burn" ret.im = target ret.attacker = cid doCondition2(ret)endfunction isMega(cid) if getPlayerStorageValue(cid, storages.isMega) ~= -1 then return true end return falseendfunction doTransformMega(cid) local name = doCorrectString(getCreatureName(cid)) local wildMult = 1.5 local megaID = "" if isSummon(cid) then local master = getCreatureMaster(cid) if getItemAttribute(getPlayerSlotItem(master, 8).uid, "megaID") and getItemAttribute(getPlayerSlotItem(master, 8).uid, "megaID") ~= "" then megaID = getItemAttribute(getPlayerSlotItem(master, 8).uid, "megaID") end else megaID = getPlayerStorageValue(cid, storages.isMegaID) end local megaName = "Mega " .. name .. (megaID ~= "" and " " .. megaID or "") if megasConf[megaName] then setPlayerStorageValue(cid, storages.isMega, megaName) doRegainSpeed(cid) --alterado! local pos = getThingPos(cid) pos.x = pos.x + 1 pos.y = pos.y +1 doSendMagicEffect(pos, 287) if isSummon(cid) then local master = getCreatureMaster(cid) doUpdateMoves(master) wildMult = 2 setPlayerStorageValue(cid, storages.isMegaID, megaID) end local mOffense = getPlayerStorageValue (cid, 1001) local mDefense = getPlayerStorageValue (cid, 1002) local mAgility = getPlayerStorageValue (cid, 1003) local mSAttack = getPlayerStorageValue (cid, 1005) setPlayerStorageValue(cid, 1001, mOffense * wildMult) setPlayerStorageValue(cid, 1002, mDefense * wildMult) setPlayerStorageValue(cid, 1003, mAgility) setPlayerStorageValue(cid, 1005, mSAttack * wildMult) if wildMult == 1.5 then local life = megasConf[megaName].wildVity * math.random(10000, 13500) local lifeNow = getCreatureMaxHealth(cid) - getCreatureHealth(cid) setCreatureMaxHealth(cid, life) -- perfeita formula, os pokemons "ruins" s\F3 precisam de ajustes no pokemonStatus, tabela vitality. doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddHealth(cid, -lifeNow) elseif wildMult == 2 then --Life ao tranformar Summon Mega local life = megasConf[megaName].wildVity * math.random(10000, 13500) local lifeNow = getCreatureMaxHealth(cid) - getCreatureHealth(cid) setCreatureMaxHealth(cid, life) -- perfeita formula, os pokemons "ruins" só precisam de ajustes no pokemonStatus, tabela vitality. doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddHealth(cid, -lifeNow) --doSendLifePokeToOTC(cid) end if isInArray({"Charizard", "Blaziken", "Ampharos"}, name) then doPantinOutfit(cid, 0, megaName) else doSetCreatureOutfit(cid, {lookType = megasConf[megaName].out}, -1) checkOutfitMega(cid, megaName) end endendfunction checkChenceToMega(cid) local name, chance = doCorrectString(getCreatureName(cid)), math.random(0.1, 100.9) local megaID = "" if name == "Charizard" then megaID = math.random(1, 100) < 51 and "Y" or "X" end local megaName = "Mega " .. name .. (megaID ~= "" and " " .. megaID or "") if megasConf[megaName] and not isMega(cid) then if megasConf[megaName].wildChance >= chance then setPlayerStorageValue(cid, storages.isMegaID, megaID) doTransformMega(cid) end endendfunction getMegaID(cid) return getPlayerStorageValue(cid, storages.isMegaID) ~= -1 and getPlayerStorageValue(cid, storages.isMegaID) or ""endfunction checkOutfitMega(cid, megaName) if not isCreature(cid) or not isMega(cid) then return true end local name = doCorrectString(getCreatureName(cid)) if not megasConf[megaName] then return true end if getCreatureOutfit(cid).lookType ~= megasConf[megaName].out then doSetCreatureOutfit(cid, {lookType = megasConf[megaName].out}, -1) end addEvent(checkOutfitMega, 50, cid)endfunction doPantinOutfit(cid, times, megaName) if not isCreature(cid) or not isMega(cid) then return true end if getCreatureOutfit(cid).lookType == 1875 or getCreatureOutfit(cid).lookType == 2 then return true end local name = doCorrectString(getCreatureName(cid)) if not megasConf[megaName] then return true end local outfitIndex = 1 if times <= 500 then outfitIndex = 1 elseif times > 500 and times <= 1000 then outfitIndex = 2 elseif times > 1000 and times <= 1500 then outfitIndex = 3 end if type(out) == "number" then return true end doSetCreatureOutfit(cid, {lookType = megasConf[megaName].out[outfitIndex]}, -1) times = times + 50 if times > 1500 then times = 0 end addEvent(doPantinOutfit, 50, cid, times, megaName)endfunction doRolloutReflected(cid, name)local RollOuts = {["Voltorb"] = {lookType = 638},["Electrode"] = {lookType = 637},["Sandshrew"] = {lookType = 635},["Sandslash"] = {lookType = 636},["Phanpy"] = {lookType = 1005},["Donphan"] = {lookType = 1007},["Miltank"] = {lookType = 1006}, ["Golem"] = {lookType = 639},["Omastar"] = {lookType = 1579},["Shiny Electrode"] = {lookType = 1387},["Shiny Golem"] = {lookType = 1403},["Shiny Voltorb"] = {lookType = 1388},["Shiny Sandslash"] = {lookType = 1506}} 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) if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then if isSummon(cid) then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doSetCreatureOutfit(cid, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) --alterado v1.8 end end end end end if RollOuts[name] then doSetCreatureOutfit(cid, RollOuts[name], -1) --alterado v1.6.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 RollOuts[name] then doSetCreatureOutfit(cid, RollOuts[name], -1) end 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)end Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) pokemon moves.lua --------------------REFLECT---------------------- setPlayerStorageValue(cid, 21100, -1) --alterado v1.6 if not isInArray({"Psybeam", "Sand Attack", "Flamethrower", "Heal Bell"}, spell) then --alterado v1.8 setPlayerStorageValue(cid, 21101, -1) end setPlayerStorageValue(cid, 21102, spell) statsChange.lua setPlayerStorageValue(attacker, 21102, -1) -- reseta a spellName do pokemon atacante esta na pasta creaturescript em statsChange.lua os seus problemas estão tudo ali ate porque ela analisa se getEffectvineCombat retornar 0, ela cai no if que retorna false e encerra o script, toda vez que seu eartquake for ta um dano(17 vezes me parece) vai entrar na getEffectvineCombat e se ela retornar 0 vai encerrar o script aonde no momento do dano qualquer outro não ira funcionar,testa ai se no intervalo de dano pra dano vc acertar outro ataque ira pegar kkkkk e uma logica foda essa que fizeram. if(combat == 128 or combat == 1) and getPlayerStorageValue(attacker, 21102) == -1 then -- ataque basico doSendMagicEffect(getThingPos(cid), 3) value = getEffectvineCombat(cid, attacker, value) if value == 0 then return false else value = value * getOffense(attacker) -- buff ataque system local name = doCorrectString(getCreatureName(attacker)) if pokes[name] and pokes[name].level <= 5 and value ~= 0 then value = -math.random(pokes[name].offense, pokes[name].offense+5) end end else -- magia value = getEffectvineSpell(attacker, spellNameFromAttacker, value, cid) -- checagem de efetividades de magia if value == 0 then return false else value = value * (1 + getSpecialAttack(attacker) / 100) end Editado Dezembro 11, 2016 por nociam Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) O dano, como sabemos, é influenciado diretamente pelo valor dessa storage. É praticamente impossível, até onde sei, que "dois danos" ocorram exatamente ao mesmo tempo. Por mais semelhante que seja o momento de execução, um stats change vai acontecer antes do outro. A storage é setada apenas no momento da conjuração, o que, como já dito, acaba desconsiderando spells cujo efeito se relacione com o tempo futuro, pois seu valor pode acabar sendo substituído por de outras spells durante sua execução. Gostaria de testar o seguinte: a cada "tick" do Earthquake (ou seja, a cada iteração do looping), a storage tem seu valor setado para Earthquake novamente. Um tick, pelo que notei, equivale a uma execução da função local doQuake. Então, abaixo de: if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end colocaria-se: if tostring(getPlayerStorageValue(cid, 21102)) ~= spell then setPlayerStorageValue(cid, 21102, spell)end Editado Dezembro 11, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) e por fim se não estou enganado essa storage 3644587 serve apenas como auxilia para o fear e sleep? if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return false end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end Editado Dezembro 11, 2016 por nociam Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados