Josegvb 87 Postado Dezembro 11, 2016 Autor Share Postado Dezembro 11, 2016 9 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? 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. malz pela demora, tava em war no tibia irei fikar mais atento qndo vc postar, por alguma raçao nao esta mandando notificaçao qndo vc posta aki, ai o @Drakopoulos e @nociam explicaram um pouco melhor ^^ e sim, obg pelo aviso eu uso notepad++ Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) @nociam Ah, sim. Como você disse, essa storage serve apenas como um auxílio para cancelar os ticks em caso de sleep ou fear. Editado Dezembro 11, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 11, 2016 Autor Share Postado Dezembro 11, 2016 1 hora atrás, zipter98 disse: @nociam Ah, sim. Como você disse, essa storage serve apenas como um auxílio para cancelar os ticks em caso de sleep ou fear. tb a storage esta no newstatussyst Spoiler conds = { ["Slow"] = 3890, ["Confusion"] = 3891, ["Burn"] = 3892, ["Poison"] = 3893, ["Fear"] = 3894, ["Stun"] = 3895, ["Paralyze"] = 3896, --alterado v1.6 \/ peguem o script todo! ["Leech"] = 3897, ["Buff1"] = 3898, ["Buff2"] = 3899, ["Buff3"] = 3900, ["Miss"] = 32659, ["Silence"] = 32698, ["Sleep"] = 98271, } injuries2 = { [1] = {n = "slow", m = 3890}, [2] = {n = "confuse", m = 3891}, [3] = {n = "burn", m = 3892}, [4] = {n = "poison", m = 3893}, [5] = {n = "fear", m = 3894}, [6] = {n = "stun", m = 3895}, [7] = {n = "paralyze", m = 3896}, [8] = {n = "leech", m = 3897}, [9] = {n = "Buff1", m = 3898}, [10] = {n = "Buff2", m = 3899}, [11] = {n = "Buff3", m = 3900}, [12] = {n = "miss", m = 32659}, [13] = {n = "silence", m = 32698}, [14] = {n = "sleep", m = 98271}, } Buffs = { [1] = {"Buff1", 3898}, [2] = {"Buff2", 3899}, [3] = {"Buff3", 3900}, } paralizeArea2 = createConditionObject(CONDITION_PARALYZE) setConditionParam(paralizeArea2, CONDITION_PARAM_TICKS, 50000) setConditionFormula(paralizeArea2, -0.63, -0.63, -0.63, -0.63) local roardirections = { [NORTH] = {SOUTH}, [SOUTH] = {NORTH}, [WEST] = {EAST}, --edited sistema de roar [EAST] = {WEST}} function doSendSleepEffect(cid) if not isCreature(cid) or not isSleeping(cid) then return true end doSendMagicEffect(getThingPos(cid), 32) addEvent(doSendSleepEffect, 1500, cid) end local outFurys = { ["Shiny Charizard"] = {outFury = 1073}, ["Elder Charizard"] = {outFury = 1073}, ["Shiny Blastoise"] = {outFury = 1074}, ["Ancient Blastoise"] = {outFury = 1074}, ["Ditto"] = {outFury = null}, } local outImune = { ["Camouflage"] = {[643] = 1445,[43] = 2087,}, ["Acid Armor"] = {[398] = 1453,[1283] = 1453,}, ["Iron Defense"] = {[911] = 1401,[1763] = 1825,[1762] = 1828,[163] = 136,}, ["Minimize"] = {[397] = 1455,}, ["Future Sight"] = {[36] = 1446,[530] = 52,[110] = 111,}, ["Psychic Sight"] = {[365] = 1536,}, ["Heal Bell"] = {[365] = 946,}, } --XD local function transBack(cid) if isCreature(cid) then if getPlayerStorageValue(cid, 974848) >= 1 then setPlayerStorageValue(cid, 974848, 0) doRemoveCondition(cid, CONDITION_OUTFIT) end end end function doCondition2(ret) -- function doMiss2(cid, cd, eff, check, spell) local stg = conds["Miss"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, 21100) >= 1 and getPlayerStorageValue(cid, stg) <= -1 then return true end --alterado v1.6 reflect if not canDoMiss(cid, spell) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "miss", a) doItemSetAttribute(item.uid, "missEff", eff) doItemSetAttribute(item.uid, "missSpell", spell) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end doSendMagicEffect(getThingPos(cid), eff) addEvent(doMiss2, 1000, cid, -1, eff, a, spell) end function doSilence2(cid, cd, eff, check) local stg = conds["Silence"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "silence", a) doItemSetAttribute(item.uid, "silenceEff", eff) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end doSendMagicEffect(getThingPos(cid), eff) addEvent(doSilence2, 1000, cid, -1, eff, a) end function doSlow2(cid, cd, eff, check, first) local stg = conds["Slow"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "slow", a) doItemSetAttribute(item.uid, "slowEff", eff) end if a <= -1 then doRemoveCondition(cid, CONDITION_PARALYZE) if not isSleeping(cid) and not isParalyze(cid) then addEvent(doRegainSpeed, 50, cid) --alterado end setPlayerStorageValue(cid, stg, -1) return true end if first then doAddCondition(cid, paralizeArea2) end doSendMagicEffect(getThingPos(cid), eff) addEvent(doSlow2, 1000, cid, -1, eff, a) end function doConfusion2(cid, cd, check) local stg = conds["Confusion"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "confuse", a) end if a <= -1 then if getCreatureCondition(cid, CONDITION_PARALYZE) == true then end if not isSleeping(cid) and not isParalyze(cid) then end setPlayerStorageValue(cid, stg, -1) return true end if math.random(1, 6) >= 4 then doSendMagicEffect(getThingPos(cid), 31) end local isTarget = isSummon(cid) and getCreatureTarget(getCreatureMaster(cid)) or getCreatureTarget(cid) if isCreature(isTarget) and not isSleeping(cid) and not isParalyze(cid) and getPlayerStorageValue(cid, 654878) <= 0 then --alterado v1.6 doAddCondition(cid, confusioncondition) end local pos = getThingPos(cid) addEvent(doSendMagicEffect, math.random(0, 450), pos, 31) addEvent(doConfusion2, 1000, cid, -1, a) end function doBurn2(cid, cd, check, damage) local stg = conds["Burn"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "burn", a) doItemSetAttribute(item.uid, "burndmg", damage) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage if isSummon(ret.attacker) then -- morrer para veneno local player = getCreatureMaster(ret.attacker) addPlayerDano(ret.im, player, dano) end doCreatureAddHealth(cid, -dano, ret.eff, ret.color and ret.color or COLOR_BURN) addEvent(doBurn2, 1500, cid, -1, a, damage) end function doPoison2(cid, cd, check, damage) local stg = conds["Poison"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end ---------- if isSummon(cid) or ehMonstro(cid) and pokes[getCreatureName(cid)] then --alterado v1.6 local type = pokes[getCreatureName(cid)].type local type2 = pokes[getCreatureName(cid)].type2 if isInArray({"poison", "steel"}, type) or isInArray({"poison", "steel"}, type2) then return true end end --------- if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "poison", a) doItemSetAttribute(item.uid, "poisondmg", damage) end if a <= -1 or getCreatureHealth(cid) == 1 then setPlayerStorageValue(cid, stg, -1) return true end local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage if isSummon(ret.attacker) then -- morrer para veneno local player = getCreatureMaster(ret.attacker) addPlayerDano(ret.im, player, dano) end doCreatureAddHealth(cid, -dano, 8, COLOR_GRASS) addEvent(doPoison2, 1500, cid, -1, a, damage) end function doFear2(cid, cd, check, skill) local stg = conds["Fear"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "fear", a) doItemSetAttribute(item.uid, "fearSkill", skill) end if a <= -1 then if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if not isSleeping(cid) and not isParalyze(cid) then doRegainSpeed(cid) --alterado end setPlayerStorageValue(cid, stg, -1) setCreatureTargetDistance(cid, getCreatureDefaultTargetDistance(cid)) return true end if skill == "Roar" then eff = 244 else --edited Roar eff = 139 end if math.random(1, 6) >= 4 then doSendMagicEffect(getThingPos(cid), eff) end local isTarget = isSummon(cid) and getCreatureTarget(getCreatureMaster(cid)) or getCreatureTarget(cid) if isCreature(isTarget) and not isSleeping(cid) and not isParalyze(cid) and getPlayerStorageValue(cid, 654878) <= 0 then --alterado v1.6 local dir = getCreatureDirectionToTarget(cid, isTarget) setCreatureTargetDistance(cid, 6) end local pos = getThingPos(cid) addEvent(doSendMagicEffect, math.random(0, 450), pos, eff) addEvent(doFear2, 400, cid, -1, a, skill) end function doStun2(cid, cd, eff, check, spell) local stg = conds["Stun"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if not canDoMiss(cid, spell) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "stun", a) doItemSetAttribute(item.uid, "stunEff", eff) doItemSetAttribute(item.uid, "stunSpell", spell) end if a <= -1 then doRemoveCondition(cid, CONDITION_PARALYZE) if not isSleeping(cid) and not isParalyze(cid) then addEvent(doRegainSpeed, 50, cid) --alterado end setPlayerStorageValue(cid, stg, -1) return true end if getCreatureCondition(cid, CONDITION_PARALYZE) == false then doAddCondition(cid, paralizeArea2) end doSendMagicEffect(getThingPos(cid), eff) addEvent(doStun2, 1000, cid, -1, eff, a, spell) end function doParalyze2(cid, cd, eff, check, first) local stg = conds["Paralyze"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "paralyze", a) doItemSetAttribute(item.uid, "paralyzeEff", eff) end if a <= -1 then if isPlayer(cid) then if not isSleeping(cid) then --alterado mayNotMove(cid, false) end else if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if not isSleeping(cid) then doRegainSpeed(cid) --alterado end end setPlayerStorageValue(cid, stg, -1) return true end if isPlayer(cid) then mayNotMove(cid, true) else --alterado v1.6 doChangeSpeed(cid, -2000) end doSendMagicEffect(getThingPos(cid), eff) addEvent(doParalyze2, 1000, cid, -1, eff, a, false) end function doSleep2(cid, cd, check, first) local stg = conds["Sleep"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not isSleeping(cid) then addEvent(doSendSleepEffect, 500, cid) end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "sleep", a) end if a <= -1 then if isPlayer(cid) then if not isParalyze(cid) then mayNotMove(cid, false) --alterado end else if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if not isParalyze(cid) then doRegainSpeed(cid) --alterado end end setPlayerStorageValue(cid, stg, -1) return true end if first then if getCreatureName(cid) == "Ursaring" and getCreatureCondition(cid, CONDITION_OUTFIT) == true then elseif not isPlayer(cid) then if isInArray({604, 605, 1015, 1016, 1183, 1184}, getCreatureOutfit(cid).lookType) then Info = 0 --alterado v1.6 else Info = getMonsterInfo(getCreatureName(cid)).lookCorpse end local look = getCreatureOutfit(cid) --------- local dittoStg = getPlayerStorageValue(cid, 1010) if getCreatureName(cid) == "Ditto" and isSummon(cid) and tostring(dittoStg) and dittoStg ~= "Ditto" then local InfoDitto = getMonsterInfo(tostring(dittoStg)).lookCorpse if InfoDitto ~= 0 and look.lookType ~= 0 then --doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(tostring(dittoStg)).lookCorpse}, -1) end else if getCreatureName(cid) == "Shiny Golem" and getCreatureOutfit(cid).lookType == 1403 then doRemoveCondition(cid, CONDITION_OUTFIT) elseif Info ~= 0 and look.lookType ~= 0 then --doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(getCreatureName(cid)).lookCorpse}, -1) end end end end --alterado v1.6 if isPlayer(cid) then mayNotMove(cid, true) else doChangeSpeed(cid, -getCreatureSpeed(cid)) end addEvent(doSleep2, 1000, cid, -1, a, false) end function doLeech2(cid, attacker, cd, check, damage) local stg = conds["Leech"] if not isCreature(cid) then return true end --is creature? local nostuneable = {"Ho-Oh", "Lugia", "Mew", "Mewtwo", "Suicune", "Raikou", "Entei", "Moltres", "Zapdos", "Articuno", "Celebi"} if isInArray(nostuneable, getCreatureName(cid)) and not isSummon(cid) then return true end if attacker ~= 0 and not isCreature(attacker) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "leech", a) doItemSetAttribute(item.uid, "leechdmg", damage) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end local life = getCreatureHealth(cid) --damage = getCreatureHealth(cid) - damage <= 0 and getCreatureHealth(cid) - 1 or damage if damage >= life then if isSummon(cid) then if isInDuel(getCreatureMaster(cid)) then doRemoveCountPokemon(getCreatureMaster(cid)) end end doSendAnimatedText(getThingPos(cid), "-"..damage.."", 144) doSendAnimatedText(getThingPos(attacker), "+"..damage.."", 32) doKillWildPoke(attacker, cid) return false end ------ doCreatureAddHealth(cid, -damage) doSendAnimatedText(getThingPos(cid), "-"..damage.."", 144) doSendMagicEffect(getThingPos(cid), 45) ------ local newlife = life - getCreatureHealth(cid) if newlife >= 1 and attacker ~= 0 then doSendMagicEffect(getThingPos(attacker), 14) doCreatureAddHealth(attacker, newlife) doSendAnimatedText(getThingPos(attacker), "+"..newlife.."", 32) local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage if isSummon(attacker) then -- morrer para veneno local player = getCreatureMaster(attacker) addPlayerDano(cid, player, dano) end end addEvent(doLeech2, 2000, cid, attacker, -1, a, damage) end function doBuff2(cid, cd, eff, check, buff, first, attr) if not isCreature(cid) then return true end --is creature? --------------------- local atributo = attr and attr or "" if first and atributo == "" then for i = 1, 3 do if getPlayerStorageValue(cid, Buffs[i][2]) <= 0 then atributo = Buffs[i][1] break end end end if atributo == "" then return true end if ehMonstro(cid) then atributo = "Buff1" end ---------------------- local stg = conds[atributo] if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then return true end --n usar 2x if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, atributo, a) doItemSetAttribute(item.uid, atributo.."eff", eff) doItemSetAttribute(item.uid, atributo.."skill", buff) end if a <= -1 then --alterado v1.6 if isInArray({"Psychic Sight", "Heal Bell", "Future Sight", "Camouflage", "Acid Armor", "Iron Defense", "Minimize", "Bug Fighter", "Ancient Fury"}, buff) then if not isSleeping(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) end setPlayerStorageValue(cid, 9658783, -1) setPlayerStorageValue(cid, 625877, -1) --alterado v1.6 end if isInArray({"Eruption", "Elecball", "Strafe", "Agility", "Ancient Fury", "War Dog", "Fighter Spirit", "Furious Legs", "Ultimate Champion", "Bug Fighter"}, buff) then setPlayerStorageValue(cid, 374896, -1) --alterado v1.6 end setPlayerStorageValue(cid, stg, -1) return true end doSendMagicEffect(getThingPos(cid), eff) if first then if buff == "Strafe" or buff == "Agility" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 0, 0, 400, a) elseif buff == "Eruption" or buff == "Elecball" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 2, 0, 150, a) elseif buff == "Tailwind" then doRaiseStatus(cid, 0, 0, 200, a) elseif buff == "Rage" then doRaiseStatus(cid, 2, 0, 0, a) elseif buff == "Harden" then doRaiseStatus(cid, 0, 2, 0, a) elseif buff == "Calm Mind" then doRaiseStatus(cid, 0, 2, 0, a) elseif buff == "Ancient Fury" then doSetCreatureOutfit(cid, {lookType = outFurys[doCorrectString(getCreatureName(cid))].outFury}, a*1000) setPlayerStorageValue(cid, 374896, 1) --velo atk if getCreatureName(cid) == "Shiny Charizard" or getCreatureName(cid) == "Elder Charizard" then doRaiseStatus(cid, 2, 0, 0, a) --atk melee --alterado v1.6 else doRaiseStatus(cid, 0, 2, 0, a) --def end setPlayerStorageValue(cid, 625877, outFurys[doCorrectString(getCreatureName(cid))].outFury) --alterado v1.6 elseif buff == "War Dog" or buff == "Bulk Up" or buff == "Outrage" then doRaiseStatus(cid, 1.5, 1.5, 0, a) setPlayerStorageValue(cid, 374896, 1) --velo atk elseif buff == "Rest" then doSleep2(cid, cd, getPlayerStorageValue(cid, conds["Sleep"]), true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) elseif isInArray({"Fighter Spirit", "Furious Legs", "Ultimate Champion"}, buff) then doRaiseStatus(cid, 1.5, 0, 0, a) --atk melee --alterado v1.6 setPlayerStorageValue(cid, 374896, 1) --velo atk addEvent(setPlayerStorageValue, a*1000, cid, 465987, -1) elseif isInArray({"Psychic Sight", "Heal Bell", "Future Sight", "Camouflage", "Acid Armor", "Iron Defense", "Minimize"}, buff) then doSetCreatureOutfit(cid, {lookType = outImune[buff][getCreatureOutfit(cid).lookType]}, -1) setPlayerStorageValue(cid, 9658783, 1) setPlayerStorageValue(cid, 625877, outImune[buff]) --alterado v1.6 elseif buff == "Bug Fighter" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 1.5, 1.5, 100, a) doSetCreatureOutfit(cid, {lookType = 1448}, a*1000) setPlayerStorageValue(cid, 625877, 1448) --alterado v1.6 end end addEvent(doBuff2, 1000, cid, -1, eff, a, buff, false, atributo) end if ret.buff and ret.buff ~= "" then doBuff2(ret.id, ret.cd, ret.eff, ret.check, ret.buff, ret.first, (ret.attr and ret.attr or false)) end --if string.find(getCreatureName(ret.id):lower(), "shiny") and isWild(ret.id) or isMega(ret.id) or isWildTrainerPokemon(ret.id) then -- return true --end if isGod(ret.id) then return true end if isSummon(ret.id) and getPokemonBoost(ret.id) ~= 0 and math.random(1, 100) <= getPokemonBoost(ret.id) then --sistema "pegou no boost" if ret.cond and not isInArray({"Poison", "Leech", "Fear"}, ret.cond) then doSendMagicEffect(getThingPosWithDebug(ret.id), 114) doSendAnimatedText(getThingPosWithDebug(ret.id), "BOOST", 215) --alterado v1.8 return true end end if type(ret.cond) == "table" then for i = 1, #ret.cond do if ret.cond[i] and ret.cond[i] == "Miss" then doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell) elseif ret.cond[i] and ret.cond[i] == "Silence" then doSilence2(ret.id, ret.cd, ret.eff, ret.check) elseif ret.cond[i] and ret.cond[i] == "Slow" then doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first) elseif ret.cond[i] and ret.cond[i] == "Confusion" then doConfusion2(ret.id, ret.cd, ret.check) elseif ret.cond[i] and ret.cond[i] == "Burn" then doBurn2(ret.id, ret.cd, ret.check, ret.damage) elseif ret.cond[i] and ret.cond[i] == "Poison" then doPoison2(ret.id, ret.cd, ret.check, ret.damage) elseif ret.cond[i] and ret.cond[i] == "Fear" then doFear2(ret.id, ret.cd, ret.check, ret.skill) elseif ret.cond[i] and ret.cond[i] == "Stun" then doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell) elseif ret.cond[i] and ret.cond[i] == "Paralyze" then doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first) elseif ret.cond[i] and ret.cond[i] == "Sleep" then doSleep2(ret.id, ret.cd, ret.check, ret.first) elseif ret.cond[i] and ret.cond[i] == "Leech" then doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage) end end else if ret.cond and ret.cond == "Miss" then doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell) elseif ret.cond and ret.cond == "Silence" then doSilence2(ret.id, ret.cd, ret.eff, ret.check) elseif ret.cond and ret.cond == "Slow" then doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first) elseif ret.cond and ret.cond == "Confusion" then doConfusion2(ret.id, ret.cd, ret.check) elseif ret.cond and ret.cond == "Burn" then doBurn2(ret.id, ret.cd, ret.check, ret.damage) elseif ret.cond and ret.cond == "Poison" then doPoison2(ret.id, ret.cd, ret.check, ret.damage) elseif ret.cond and ret.cond == "Fear" then doFear2(ret.id, ret.cd, ret.check, ret.skill) elseif ret.cond and ret.cond == "Stun" then doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell) elseif ret.cond and ret.cond == "Paralyze" then doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first) elseif ret.cond and ret.cond == "Sleep" then doSleep2(ret.id, ret.cd, ret.check, ret.first) elseif ret.cond and ret.cond == "Leech" then doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage) end end end -------------------------------- function cleanBuffs2(item) if item ~= 0 then for i = 1, 3 do doItemEraseAttribute(item, Buffs[i][1]) doItemEraseAttribute(item, Buffs[i][1].."eff") doItemEraseAttribute(item, Buffs[i][1].."skill") end end end -------------------------------- function doCureStatus(cid, type, playerballs) if not isCreature(cid) then return true end if playerballs and isPlayer(cid) then local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK) local mb = getPlayerSlotItem(cid, 8) if isPokeball(mb.itemid) then if not type or type == "all" then for b = 1, #injuries2 do doItemSetAttribute(mb.uid, ""..injuries2[b].n.."", -1) end else doItemSetAttribute(mb.uid, ""..type.."", -1) end end for bname, balls in pairs (pokeballs) do for times = 1,3 do local items = getItemsInContainerById(bp.uid, balls.all[times]) for _, uid in pairs(items) do if not type or type == "all" then for b = 1, #injuries2 do doItemSetAttribute(uid, ""..injuries2[b].n.."", -1) end else doItemSetAttribute(uid, ""..type.."", -1) end end end end end if type == "all" then for a = 1, #injuries2 do setPlayerStorageValue(cid, injuries2[a].m, -1) end return true end for a, b in pairs (injuries2) do if b.n == type then setPlayerStorageValue(cid, b.m, -1) end end end --------------------------------- function isWithCondition(cid) for i = 1, #injuries2 do if getPlayerStorageValue(cid, injuries2[i].m) >= 1 then return true end end return false end --------------------------------- function doCureBallStatus(item, type) if not type or type == "all" then for b = 1, #injuries2 do doItemSetAttribute(item, ""..injuries2[b].n.."", -1) end else doItemSetAttribute(item, ""..type.."", -1) end end --------------------------------- function isBurning(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Burn"]) >= 0 then return true end return false end function isPoisoned(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Poison"]) >= 0 then return true end return false end function isSilence(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Silence"]) >= 0 then return true end return false end function isParalyze(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Paralyze"]) >= 0 then return true end return false end function isSleeping(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Sleep"]) >= 0 then return true end return false end function isWithFear(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Fear"]) >= 0 then return true end return false end ----------------------------------- function doMoveInArea2(cid, eff, area, element, min, max, spell, ret) if not isCreature(cid) then return true end local pos = getPosfromArea(cid, area) --alterado v1.8 setPlayerStorageValue(cid, 21101, -1) local skills = { "Skull Bash", "Gust", "Water Pulse", "Stick Throw", "Last Resort", "Ground Crusher", "Overheat", "Toxic", "Take Down", "Gyro Ball"} --alterado v1.7 local n = 0 local l = 0 while n < #pos do 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 n = n+1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253} local pid = getThingFromPosWithProtect(thing) ----15728 if spell == "Earthquake" and pid ~= cid and isCreature(pid) and not isPlayer(pid) then doJumpCreature(pid) end if pid ~= cid then if spell and isInArray(skills, spell) then if spell and spell == "Gyro Ball" then --alterado v1.7 pos[n].x = pos[n].x+1 addEvent(sendEffWithProtect, l*200, cid, pos[n], eff) addEvent(doMoveDano2, l*200, cid, pid, element, min, max, ret, spell) else addEvent(sendEffWithProtect, l*200, cid, pos[n], eff) addEvent(doMoveDano2, l*200, cid, pid, element, min, max, ret, spell) --alterado v1.6 end elseif spell and spell == "Epicenter" then local random = math.random(50, 500) addEvent(sendEffWithProtect, random, cid, pos[n], eff) addEvent(doDanoWithProtect, random, cid, GROUNDDAMAGE, pos[n], crusher, -min, -max, 255) elseif spell and spell == "Shadowave" then posi = {x=pos[n].x, y=pos[n].y+1, z=pos[n].z} sendEffWithProtect(cid, posi, eff) doMoveDano2(cid, pid, element, min, max, ret, spell) --alterado v1.6 elseif spell and spell == "Surf" then addEvent(sendEffWithProtect, math.random(50, 500), cid, pos[n], eff) addEvent(doMoveDano2, 400, cid, pid, element, min, max, ret, spell) --alterado v1.6 elseif spell and spell == "Sand Attack" then addEvent(sendEffWithProtect, n*200, cid, pos[n], eff) addEvent(doMoveDano2, n*200, cid, pid, element, min, max, ret, spell) --alterado v1.6 elseif spell and (spell == "Muddy Water" or spell == "Venom Motion") then local arr = { [1] = 0, [2] = 0, [3] = 0, [4] = 200, [5] = 200, [6] = 200, [7] = 400, [8] = 400, [9] = 400, [10] = 600, [11] = 600, [12] = 600, [13] = 800, [14] = 800, [15] = 800 } local time = {0, 200, 400, 600, 800} addEvent(sendEffWithProtect, arr[n], cid, pos[n], eff) addEvent(doMoveDano2, arr[n], cid, pid, element, min, max, ret, spell) elseif spell and (spell == "Inferno" or spell == "Fissure") then addEvent(sendEffWithProtect, math.random(0, 500), cid, pos[n], eff) addEvent(doMoveDano2, math.random(0, 500), cid, pid, element, min, max, ret, spell) elseif spell == "Last Resort" then local pos = getThingPosWithDebug(cid) local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1} for i = 0, 9 do addEvent(doMoveInArea2, i*400, cid, 3, areas[i+1], NORMALDAMAGE, min, max, spell) addEvent(doMoveInArea2, i*410, cid, 3, areas[i+1], NORMALDAMAGE, 0, 0, spell) end else sendEffWithProtect(cid, pos[n], eff) doMoveDano2(cid, pid, element, min, max, ret, spell) end end l = l+1 end end ------------------------------------------- function doMoveDano2(cid, pid, element, min, max, ret, spell) if isCreature(pid) and isCreature(cid) and cid ~= pid then if isNpcSummon(pid) and getCreatureTarget(pid) ~= cid then return true --alterado v1.6 end if ehNPC(pid) then return true end --- local canAtk = true --alterado v1.6 if getPlayerStorageValue(pid, 21099) >= 1 then doSendMagicEffect(getThingPosWithDebug(pid), 135) doSendAnimatedText(getThingPosWithDebug(pid), "REFLECT", COLOR_GRASS) addEvent(docastspell, 100, pid, spell) if getCreatureName(pid) == "Wobbuffet" or getCreatureName(pid) == "Reflector Wobbuffet" or getCreatureName(pid) == "Wowofet" then doRemoveCondition(pid, CONDITION_OUTFIT) end canAtk = false setPlayerStorageValue(pid, 21099, -1) setPlayerStorageValue(pid, 21100, 1) setPlayerStorageValue(pid, 21101, cid) setPlayerStorageValue(pid, 21103, getTableMove(cid, getPlayerStorageValue(cid, 21102)).f) 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 if isSummon(cid) and (ehMonstro(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can" and #getCreatureSummons(pid) <= 0)) and pid ~= cid then if canAtk then --alterado v1.6 if ret and ret.cond then if type(ret.cond) == "table" then for i = 1, #ret.cond do ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]]) doCondition2(ret) end else ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) doCondition2(ret) end end doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255) end elseif ehMonstro(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then if canAtk then --alterado v1.6 if ret and ret.cond then if type(ret.cond) == "table" then for i = 1, #ret.cond do ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]]) doCondition2(ret) end else ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) doCondition2(ret) end end doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255) end elseif isPlayer(cid) and ehMonstro(pid) and pid ~= cid then if canAtk then --alterado v1.6 if ret and ret.cond then if type(ret.cond) == "table" then for i = 1, #ret.cond do ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]]) doCondition2(ret) end else ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) doCondition2(ret) end end doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255) end end end end -------------------------------------------------------------------------------- function sendEffWithProtect(cid, pos, eff) --Manda algum magic effect com proteçoes 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 checkpos = pos checkpos.stackpos = 0 if not hasTile(checkpos) then return true end if not canWalkOnPos2(pos, false, true, false, true, false) then --alterado v1.6 return true end doSendMagicEffect(pos, eff) end --------------------------------------------------------------------------------- function getThingPosWithDebug(what) if not isCreature(what) or getCreatureHealth(what) <= 0 then return {x = 1, y = 1, z = 10} end return getThingPos(what) end --------------------------------------------------------------------------------- function doDanoWithProtect(cid, element, pos, area, min, max, eff) --Da dano com proteçoes 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 doAreaCombatHealth(cid, element, pos, area, -(math.abs(min)), -(math.abs(max)), eff) --print("Erro subistituir magia: " .. getPlayerStorageValue(cid, 21102)) end --------------------------------------------------------------------------------- function doDanoWithProtectWithDelay(cid, target, element, min, max, eff, area) const_distance_delay = 56 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 if target ~= 0 and isCreature(target) and not area then delay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay addEvent(doDanoWithProtect, delay, cid, element, getThingPosWithDebug(target), 0, min, max, eff) return true end addEvent(doDanoWithProtect, 200, cid, element, getThingPosWithDebug(target), area, min, max, eff) end -------------------------------------------------------------------------------- function sendDistanceShootWithProtect(cid, frompos, topos, eff) --Manda um efeito de distancia com proteçoes 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 doSendDistanceShoot(frompos, topos, eff) end --------------------------------------------------------------------------------- function sendMoveBack(cid, pos, eff, min, max) --Manda o Atk do farfetchd de volta... local m = #pos+1 for i = 1, #pos do if not isCreature(cid) then return true end --- m = m-1 thing = {x=pos[m].x,y=pos[m].y,z=pos[m].z,stackpos=253} local pid = getThingFromPosWithProtect(thing) addEvent(doMoveDano2, i*200, cid, pid, FLYINGDAMAGE, min/4, max/4) addEvent(sendEffWithProtect, i*200, cid, pos[m], eff) --alterado v1.3 -- end end --------------------------------------------------------------------------------- function upEffect(cid, effDis) 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 pos = getThingPos(cid) frompos = {x = pos.x+1, y = pos.y, z = pos.z} frompos.x = pos.x - math.random(4, 7) frompos.y = pos.y - math.random(5, 8) doSendDistanceShoot(getThingPos(cid), frompos, effDis) end --------------------------------------------------------------------------------- function fall(cid, master, element, effDis, effArea) --Function pra jogar efeitos pra cima e cair depois... tpw falling rocks e blizzard if isCreature(cid) then if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end pos = getThingPos(cid) pos.x = pos.x + math.random(-4,4) pos.y = pos.y + math.random(-4,4) if isMonster(cid) or isPlayer(cid) then frompos = {x = pos.x+1, y = pos.y, z = pos.z} elseif isSummon(cid) then frompos = getThingPos(master) end frompos.x = pos.x - 7 frompos.y = pos.y - 6 if effDis ~= -1 then --alterado! doSendDistanceShoot(frompos, pos, effDis) end doAreaCombatHealth(cid, element, pos, 0, 0, 0, effArea) end end --------------------------------------------------------------------------------- function canDoMiss(cid, nameAtk) --alterado v1.5 local atkTerra = {"Sand Attack", "Mud Shot", "Mud Bomb", "Stomp", "Crusher Stomp", "Mud Slap", "Sand Tomb"} --alterado v1.7 local atkElectric = {"Electric Storm", "Thunder Wave", "Thunder", "Electricity", "Wild Charge"} --alterado v1.7 if not isCreature(cid) then return false end if isPlayer(cid) then return true end if not pokes[getCreatureName(cid)] then return true end if isInArray(atkTerra, nameAtk) then if (pokes[getCreatureName(cid)].type == "flying") or (pokes[getCreatureName(cid)].type2 == "flying") or isInArray(specialabilities["levitate"], getCreatureName(cid)) then return false end elseif isInArray(atkElectric, nameAtk) then if (pokes[getCreatureName(cid)].type == "ground") or (pokes[getCreatureName(cid)].type2 == "ground") then return false end end return true end --------------------------------------------------------------------------------- function doMoveInAreaMulti(cid, effDis, effMagic, areaEff, areaDano, element, min, max, ret) --alterado v1.7 if not isCreature(cid) then return true end local pos = getPosfromArea(cid, areaEff) local pos2 = getPosfromArea(cid, areaDano) local n = 0 while n < #pos2 do 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 n = n+1 thing = {x=pos2[n].x,y=pos2[n].y,z=pos2[n].z,stackpos=253} if n < #pos then addEvent(sendDistanceShootWithProtect, 50, cid, getThingPos(cid), pos[n], effDis) --39 addEvent(sendEffWithProtect, 100, cid, pos[n], effMagic) -- 112 --- --alterado v1.6.1 if math.random(1, 2) == 2 then addEvent(sendDistanceShootWithProtect, 450, cid, getThingPos(cid), pos[n], effDis) --550 addEvent(sendEffWithProtect, 550, cid, pos[n], effMagic) -- 650 end end local pid = getThingFromPosWithProtect(thing) if isCreature(pid) then if ret and ret.id == 0 then --alterado v1.8 ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) end if not ret then ret = {} end --alterado v1.7 doMoveDano2(cid, pid, element, min, max, ret, getPlayerStorageValue(cid, 21102)) end end end --------------------------------------------------------------------------------------- function doDoubleHit(cid, pid, valor, cor) --alterado v1.6 if isCreature(cid) and isCreature(pid) then if getPlayerStorageValue(cid, 374896) >= 1 then if isInArray({"Kadabra", "Alakazam", "Mew", "Shiny Abra", "Shiny Alakazam"}, getCreatureName(cid)) then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(pid), 39) end valor = valor * -1 doCreatureAddHealth(pid, -math.abs(valor)) doSendMagicEffect(getThingPos(pid), 3) doSendAnimatedText(getThingPos(pid), (valor == 0 and "" or valor), cor) end end end --------------------------------------------------------------------------------------- function doDanoInTarget(cid, target, combat, min, max, eff) --alterado v1.7 if not isCreature(cid) or not isCreature(target) 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 doTargetCombatHealth(cid, target, combat, -math.abs(min), -math.abs(max), eff) end ----------------------------------------------------------------------------------------- function doDanoInTargetWithDelay(cid, target, combat, min, max, eff) --alterado v1.7 const_distance_delay = 56 if not isCreature(cid) or not isCreature(target) 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 delay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay addEvent(doDanoInTarget, delay, cid, target, combat, min, max, eff) end acha q tem soluçao? x.x Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) Você testou o que eu disse no meu último comentário da página anterior? Editado Dezembro 11, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 11, 2016 Autor Share Postado Dezembro 11, 2016 (editado) 29 minutos atrás, zipter98 disse: Você testou o que eu disse no meu último comentário da página anterior? nao tinha olhado, testei agr acontece isso: eu uso falling rock umas 6 veces e nao faz dano, na 7º ela volta a fazer dano melee ainda fica bugado Pelo que vi, enquanto o "tick" do quake estiver ativo qualquer cd vai ser null ai, mas se vc acertar no segundo exacto q esta inativo ai bate Editado Dezembro 11, 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 Isso só acontece com o Falling Rocks ou com qualquer outra spell do Crystal Onix (Iron Tail, Rock Throw, etc)? Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 11, 2016 Autor Share Postado Dezembro 11, 2016 (editado) 2 horas atrás, zipter98 disse: Isso só acontece com o Falling Rocks ou com qualquer outra spell do Crystal Onix (Iron Tail, Rock Throw, etc)? acontece con Rock Slide tb, com os outros cds que sao "de dano instantaneo" nao acontece lembrando q o MELEE nao esta saindo tb enquanot estiver o quake ativo e despois de finalizar tem q usar outra spell pra ele "tomar o type" da nova spell e começar a bater spam de thunderstorm + 1 quick attack Editado Dezembro 11, 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 Por enquanto estamos nos focando em encontrar uma correção para o Earthquake. Assim, poderemos aplicá-la futuramente em outras spells, como Falling Rocks, Rock Slide e Electric Storm. Então, neste quesito, vejo que a única coisa que falta para corrigir o Earthquake é o melee, certo? Abaixo de: function onStatsChange(...) coloque: print(combat) e informe o que for imprimido. Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 11, 2016 Autor Share Postado Dezembro 11, 2016 3 minutos atrás, zipter98 disse: Por enquanto estamos nos focando em encontrar uma correção para o Earthquake. Assim, poderemos aplicá-la futuramente em outras spells, como Falling Rocks, Rock Slide e Electric Storm. Então, neste quesito, vejo que a única coisa que falta para corrigir o Earthquake é o melee, certo? Abaixo de: function onStatsChange(...) coloque: print(combat) e informe o que for imprimido. Spoiler [11/12/2016 18:50:22] 128[11/12/2016 18:50:26] 128[11/12/2016 18:50:26] 128[11/12/2016 18:50:27] 128[11/12/2016 18:50:31] 128[11/12/2016 18:50:31] 128[11/12/2016 18:50:33] 128[11/12/2016 18:50:33] 16[11/12/2016 18:50:35] 128[11/12/2016 18:50:35] 16[11/12/2016 18:50:37] 128[11/12/2016 18:50:37] 16[11/12/2016 18:50:39] 128[11/12/2016 18:50:39] 16[11/12/2016 18:50:39] 128[11/12/2016 18:50:40] 128[11/12/2016 18:50:40] 128[11/12/2016 18:50:41] 128[11/12/2016 18:50:41] 128[11/12/2016 18:50:41] 16[11/12/2016 18:50:42] 128[11/12/2016 18:50:42] 128[11/12/2016 18:50:42] 128[11/12/2016 18:50:43] 128[11/12/2016 18:50:43] 128[11/12/2016 18:50:43] 128[11/12/2016 18:50:43] 16[11/12/2016 18:50:44] 128[11/12/2016 18:50:44] 128[11/12/2016 18:50:44] 128[11/12/2016 18:50:45] 128[11/12/2016 18:50:45] 128[11/12/2016 18:50:45] 16[11/12/2016 18:50:45] 128[11/12/2016 18:50:46] 128[11/12/2016 18:50:46] 128[11/12/2016 18:50:47] 128[11/12/2016 18:50:47] 128[11/12/2016 18:50:47] 128[11/12/2016 18:50:47] 16[11/12/2016 18:50:48] 128[11/12/2016 18:50:48] 128[11/12/2016 18:50:48] 128[11/12/2016 18:50:48] 128[11/12/2016 18:50:48] 128[11/12/2016 18:50:48] 128[11/12/2016 18:50:49] 128[11/12/2016 18:50:49] 128[11/12/2016 18:50:49] 128[11/12/2016 18:50:49] 16[11/12/2016 18:50:50] 128[11/12/2016 18:50:51] 128[11/12/2016 18:50:51] 16[11/12/2016 18:50:52] 128[11/12/2016 18:50:53] 128[11/12/2016 18:50:53] 16[11/12/2016 18:50:54] 128[11/12/2016 18:50:55] 128[11/12/2016 18:50:57] 128 Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 11, 2016 Share Postado Dezembro 11, 2016 (editado) Eu gostaria de fazer dois pedidos agora: O primeiro, para confirmar uma dúvida minha, é que você teste ataques de outros elementos e verifique o que é imprimido (não precisa atacar com o melee, apenas com as spells). Se possível, especifique também qual elemento imprimiu qual valor. O segundo, troque esta parte: 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 endelse -- 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) endend por: if(combat == 128 or combat == 1) and getPlayerStorageValue(attacker, 21102) == -1 then -- ataque basico print("auto attacking...") if value == 0 then print("value = 0") return false else print("value do auto ataque antes da fórmula = "..value) value = value * getOffense(attacker) -- buff ataque system print("value do auto ataque depois da fórmula = "..value) 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 endelse -- 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) endend Depois, use a combinação Earthquake + melee e informe o que for imprimido. Editado Dezembro 11, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 11, 2016 Autor Share Postado Dezembro 11, 2016 Agora, zipter98 disse: Eu gostaria de fazer dois pedidos agora: O primeiro, para confirmar uma dúvida minha, é que você teste ataques de outros elementos e verifique o que é imprimido (não precisa atacar com o melee, apenas com as spells). Se possível, especifique também qual elemento imprimiu qual valor. O segundo, troque esta parte: 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 endelse -- 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) endend por: if(combat == 128 or combat == 1) and getPlayerStorageValue(attacker, 21102) == -1 then -- ataque basico print("auto attacking...") if value == 0 then print("value = 0") return false else print("value do auto ataque antes da fórmula = "..value) value = value * getOffense(attacker) -- buff ataque system print("value do auto ataque depois da fórmula = "..value) 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 endelse -- 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) endend Depois, use a combinação Earthquake + melee e informe o que for imprimido. 1º usando electabuz electric storm [11/12/2016 19:16:42] 128[11/12/2016 19:16:42] 16[11/12/2016 19:16:42] 128[11/12/2016 19:16:42] 16[11/12/2016 19:16:44] 128[11/12/2016 19:16:44] 16[11/12/2016 19:16:45] 128[11/12/2016 19:16:45] 128 usando alakazam psyusion [11/12/2016 19:17:42] 128[11/12/2016 19:17:42] 16 magmar storm [11/12/2016 19:19:47] 128[11/12/2016 19:19:47] 16[11/12/2016 19:19:48] 128[11/12/2016 19:19:48] 16 blizzard [11/12/2016 19:20:44] 128[11/12/2016 19:20:44] 128 Great Love [11/12/2016 19:21:20] 128[11/12/2016 19:21:20] 16 agora o 2º despois de trocar APOS CHAMAR qualquer poke: [11/12/2016 19:24:17] 128 [11/12/2016 19:24:17] 16 Pidgeot selvagem me atacando: [11/12/2016 19:25:31] 128 [11/12/2016 19:25:31] auto attacking... [11/12/2016 19:25:31] value do auto ataque antes da fórmula = -76 [11/12/2016 19:25:31] value do auto ataque depois da fórmula = -76 [11/12/2016 19:25:31] 16 COMBINAÇAO QUAKE+HARDEN [11/12/2016 19:26:47] 128[11/12/2016 19:26:48] 128[11/12/2016 19:26:48] 128[11/12/2016 19:26:49] 128[11/12/2016 19:26:49] 128[11/12/2016 19:26:50] 128[11/12/2016 19:26:50] 128[11/12/2016 19:26:51] 128[11/12/2016 19:26:52] 128[11/12/2016 19:26:52] 128[11/12/2016 19:26:53] 128[11/12/2016 19:26:53] 128[11/12/2016 19:26:54] 128[11/12/2016 19:26:55] 128[11/12/2016 19:26:55] 128[11/12/2016 19:26:56] 128[11/12/2016 19:26:56] 128[11/12/2016 19:26:57] 128 Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 12, 2016 Share Postado Dezembro 12, 2016 (editado) É, parece que o combat não varia. Então, teremos de continuar com essa gambiarra. Aliás, já pode tirar o print(combat). O auto ataque do Pidgeot deu dano, nesse caso? No exemplo do Earthquake, houve algum auto ataque neste meio tempo (que, por acaso, não foi imprimido no console)? Ou você apenas usou o Earthquake + Harden? De qualquer modo, por Harden ser uma spell instantânea, ela, ao que tudo indica, está OK. O que estamos testando agora é apenas Earthquake + melee. Editado Dezembro 12, 2016 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
Ited 0 Postado Dezembro 12, 2016 Share Postado Dezembro 12, 2016 Estou Usando DxP , e não acontece esse bug :s Não , agora eu testei e o bug acontece Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Dezembro 12, 2016 Autor Share Postado Dezembro 12, 2016 (editado) 3 minutos atrás, Ited disse: Estou Usando DxP , e não acontece esse bug :s porque você usa versao 3, vai summonar um PIDGEOT, e um charizard ao mesmo tempo e olha como quake bate neles. 20 minutos atrás, zipter98 disse: É, parece que o combat não varia. Então, teremos de continuar com essa gambiarra. Aliás, já pode tirar o print(combat). O auto ataque do Pidgeot deu dano, nesse caso? No exemplo do Earthquake, houve algum auto ataque neste meio tempo (que, por acaso, não foi imprimido no console)? Ou você apenas usou o Earthquake + Harden? De qualquer modo, por Harden ser uma spell instantânea, ela, ao que tudo indica, está OK. O que estamos testando agora é apenas Earthquake + melee. sim o auto ataque do pidgeot fez dano com o quake nao usei melee tirando p rimer print(combat) da em isso quake + harden + melee [12/12/2016 18:25:36] auto attacking...[12/12/2016 18:25:36] value do auto ataque antes da fórmula = -58[12/12/2016 18:25:36] value do auto ataque depois da fórmula = -58[12/12/2016 18:25:37] auto attacking...[12/12/2016 18:25:37] value do auto ataque antes da fórmula = -68[12/12/2016 18:25:37] value do auto ataque depois da fórmula = -136[12/12/2016 18:25:38] auto attacking...[12/12/2016 18:25:38] value do auto ataque antes da fórmula = -90[12/12/2016 18:25:38] value do auto ataque depois da fórmula = -90[12/12/2016 18:25:40] auto attacking...[12/12/2016 18:25:40] value do auto ataque antes da fórmula = -91[12/12/2016 18:25:40] value do auto ataque depois da fórmula = -91[12/12/2016 18:25:42] auto attacking...[12/12/2016 18:25:42] value do auto ataque antes da fórmula = -69[12/12/2016 18:25:42] value do auto ataque depois da fórmula = -69[12/12/2016 18:25:44] auto attacking...[12/12/2016 18:25:44] value do auto ataque antes da fórmula = -62[12/12/2016 18:25:44] value do auto ataque depois da fórmula = -62[12/12/2016 18:25:46] auto attacking...[12/12/2016 18:25:46] value do auto ataque antes da fórmula = -73[12/12/2016 18:25:46] value do auto ataque depois da fórmula = -73[12/12/2016 18:25:48] auto attacking...[12/12/2016 18:25:48] value do auto ataque antes da fórmula = -72[12/12/2016 18:25:48] value do auto ataque depois da fórmula = -72[12/12/2016 18:25:50] auto attacking...[12/12/2016 18:25:50] value do auto ataque antes da fórmula = -71[12/12/2016 18:25:50] value do auto ataque depois da fórmula = -71[12/12/2016 18:25:52] auto attacking...[12/12/2016 18:25:52] value do auto ataque antes da fórmula = -60[12/12/2016 18:25:52] value do auto ataque depois da fórmula = -60[12/12/2016 18:25:54] auto attacking...[12/12/2016 18:25:54] value do auto ataque antes da fórmula = -79[12/12/2016 18:25:54] value do auto ataque depois da fórmula = -79[12/12/2016 18:25:56] auto attacking...[12/12/2016 18:25:56] value do auto ataque antes da fórmula = -63[12/12/2016 18:25:56] value do auto ataque depois da fórmula = -63[12/12/2016 18:25:58] auto attacking...[12/12/2016 18:25:58] value do auto ataque antes da fórmula = -92[12/12/2016 18:25:58] value do auto ataque depois da fórmula = -92[12/12/2016 18:26:00] auto attacking...[12/12/2016 18:26:00] value do auto ataque antes da fórmula = -68[12/12/2016 18:26:00] value do auto ataque depois da fórmula = -68[12/12/2016 18:26:02] auto attacking...[12/12/2016 18:26:02] value do auto ataque antes da fórmula = -74[12/12/2016 18:26:02] value do auto ataque depois da fórmula = -74[12/12/2016 18:26:04] auto attacking...[12/12/2016 18:26:04] value do auto ataque antes da fórmula = -88[12/12/2016 18:26:04] value do auto ataque depois da fórmula = -88[12/12/2016 18:26:06] auto attacking...[12/12/2016 18:26:06] value do auto ataque antes da fórmula = -67[12/12/2016 18:26:06] value do auto ataque depois da fórmula = -67[12/12/2016 18:26:08] auto attacking...[12/12/2016 18:26:08] value do auto ataque antes da fórmula = -79[12/12/2016 18:26:08] value do auto ataque depois da fórmula = -79[12/12/2016 18:26:10] auto attacking...[12/12/2016 18:26:10] value do auto ataque antes da fórmula = -75[12/12/2016 18:26:10] value do auto ataque depois da fórmula = -75[12/12/2016 18:26:12] auto attacking...[12/12/2016 18:26:12] value do auto ataque antes da fórmula = -87[12/12/2016 18:26:12] value do auto ataque depois da fórmula = -87[12/12/2016 18:26:14] auto attacking...[12/12/2016 18:26:14] value do auto ataque antes da fórmula = -50[12/12/2016 18:26:14] value do auto ataque depois da fórmula = -50[12/12/2016 18:26:16] auto attacking...[12/12/2016 18:26:16] value do auto ataque antes da fórmula = -87[12/12/2016 18:26:16] value do auto ataque depois da fórmula = -87 com o print combat quake+harden+melee [12/12/2016 18:27:49] 128[12/12/2016 18:27:49] 128[12/12/2016 18:27:49] auto attacking...[12/12/2016 18:27:49] value do auto ataque antes da fórmula = -83[12/12/2016 18:27:49] value do auto ataque depois da fórmula = -83[12/12/2016 18:27:49] 16[12/12/2016 18:27:51] 128[12/12/2016 18:27:51] 128[12/12/2016 18:27:51] auto attacking...[12/12/2016 18:27:51] value do auto ataque antes da fórmula = -95[12/12/2016 18:27:51] value do auto ataque depois da fórmula = -95[12/12/2016 18:27:51] 16[12/12/2016 18:27:51] 128[12/12/2016 18:27:51] 128[12/12/2016 18:27:52] 128[12/12/2016 18:27:52] 128[12/12/2016 18:27:53] 128[12/12/2016 18:27:53] auto attacking...[12/12/2016 18:27:53] value do auto ataque antes da fórmula = -87[12/12/2016 18:27:53] value do auto ataque depois da fórmula = -87[12/12/2016 18:27:53] 16[12/12/2016 18:27:53] 128[12/12/2016 18:27:53] 128[12/12/2016 18:27:54] 128[12/12/2016 18:27:54] 128[12/12/2016 18:27:55] 128[12/12/2016 18:27:55] 128[12/12/2016 18:27:55] auto attacking...[12/12/2016 18:27:55] value do auto ataque antes da fórmula = -71[12/12/2016 18:27:55] value do auto ataque depois da fórmula = -71[12/12/2016 18:27:55] 16[12/12/2016 18:27:55] 128[12/12/2016 18:27:56] 128[12/12/2016 18:27:56] 128[12/12/2016 18:27:56] 128[12/12/2016 18:27:57] 128[12/12/2016 18:27:57] 128[12/12/2016 18:27:57] auto attacking...[12/12/2016 18:27:57] value do auto ataque antes da fórmula = -77[12/12/2016 18:27:57] value do auto ataque depois da fórmula = -77[12/12/2016 18:27:57] 16[12/12/2016 18:27:58] 128[12/12/2016 18:27:58] 128[12/12/2016 18:27:58] 128[12/12/2016 18:27:59] 128[12/12/2016 18:27:59] 128[12/12/2016 18:27:59] auto attacking...[12/12/2016 18:27:59] value do auto ataque antes da fórmula = -63[12/12/2016 18:27:59] value do auto ataque depois da fórmula = -63[12/12/2016 18:27:59] 16[12/12/2016 18:27:59] 128[12/12/2016 18:28:00] 128[12/12/2016 18:28:00] 128[12/12/2016 18:28:01] 128[12/12/2016 18:28:01] 128[12/12/2016 18:28:01] auto attacking...[12/12/2016 18:28:01] value do auto ataque antes da fórmula = -64[12/12/2016 18:28:01] value do auto ataque depois da fórmula = -64[12/12/2016 18:28:01] 16[12/12/2016 18:28:02] 128[12/12/2016 18:28:03] 128[12/12/2016 18:28:03] auto attacking...[12/12/2016 18:28:03] value do auto ataque antes da fórmula = -90[12/12/2016 18:28:03] value do auto ataque depois da fórmula = -90[12/12/2016 18:28:03] 16[12/12/2016 18:28:04] 128[12/12/2016 18:28:05] 128[12/12/2016 18:28:05] auto attacking...[12/12/2016 18:28:05] value do auto ataque antes da fórmula = -74[12/12/2016 18:28:05] value do auto ataque depois da fórmula = -74[12/12/2016 18:28:05] 16[12/12/2016 18:28:06] 128 QUAKE + MELEE Spoiler [12/12/2016 18:29:24] 128[12/12/2016 18:29:24] auto attacking...[12/12/2016 18:29:24] value do auto ataque antes da fórmula = -71[12/12/2016 18:29:24] value do auto ataque depois da fórmula = -71[12/12/2016 18:29:24] 16[12/12/2016 18:29:24] 128[12/12/2016 18:29:24] 128[12/12/2016 18:29:25] 128[12/12/2016 18:29:25] 128[12/12/2016 18:29:26] 128[12/12/2016 18:29:26] 128[12/12/2016 18:29:26] auto attacking...[12/12/2016 18:29:26] value do auto ataque antes da fórmula = -83[12/12/2016 18:29:26] value do auto ataque depois da fórmula = -83[12/12/2016 18:29:26] 16[12/12/2016 18:29:26] 128[12/12/2016 18:29:27] 128[12/12/2016 18:29:27] 128[12/12/2016 18:29:28] 128[12/12/2016 18:29:28] 128[12/12/2016 18:29:28] auto attacking...[12/12/2016 18:29:28] value do auto ataque antes da fórmula = -91[12/12/2016 18:29:28] value do auto ataque depois da fórmula = -91[12/12/2016 18:29:28] 16[12/12/2016 18:29:28] 128[12/12/2016 18:29:28] 128[12/12/2016 18:29:29] 128[12/12/2016 18:29:30] 128[12/12/2016 18:29:30] 128[12/12/2016 18:29:30] auto attacking...[12/12/2016 18:29:30] value do auto ataque antes da fórmula = -58[12/12/2016 18:29:30] value do auto ataque depois da fórmula = -58[12/12/2016 18:29:30] 16[12/12/2016 18:29:30] 128 Editado Dezembro 12, 2016 por Josegvb Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 13, 2016 Share Postado Dezembro 13, 2016 Teoricamente, o auto ataque está dando dano até essa parte. Só estranhei um pouco o fato do valor não mudar depois de multiplicado pelo ataque do pokémon, mas no Pidgeot o mesmo aconteceu e houve dano de qualquer jeito. Apenas para confirmar, novamente: enquanto o Earthquake está ativo, o auto ataque do Crystal Onix não causa dano ao Pidgeot, certo? Depois, volta ao normal? Isso acontece apenas com pokémons do elemento voador? Ou, por exemplo, com uma Victreebel o mesmo acontece? Se o melee, de fato, se anular durante o Earthquake apenas contra pokémons do elemento voador, a efetividade entre eles de algum jeito está relacionada (o que provavelmente entraria na função getEffectvineCombat). Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados