Ah, sim. Como você disse, essa storage serve apenas como um auxílio para cancelar os ticks em caso de sleep ou fear.
- Forums
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] [Encerrado] [DXP] 2º Bug mais critico do DXP
[Encerrado] [Encerrado] [DXP] 2º Bug mais critico do DXP
By Josegvb, 09 de nov. de 2016 in Tópicos Sem Resposta
Edited Dezembro 11 by zipter98
1 hora atrás, zipter98 disse: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
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
Você testou o que eu disse no meu último comentário da página anterior?
Edited Dezembro 11 by zipter98
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

Edited Dezembro 11 by Josegvb
Isso só acontece com o Falling Rocks ou com qualquer outra spell do Crystal Onix (Iron Tail, Rock Throw, etc)?
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

Edited Dezembro 11 by Josegvb
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.
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.
[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
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.
Edited Dezembro 11 by zipter98
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) endendpor:
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) endendDepois, 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
É, 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.
Edited Dezembro 12 by zipter98
Estou Usando DxP , e não acontece esse bug :s
Não , agora eu testei e o bug acontece ![]()
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
[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
Edited Dezembro 12 by Josegvb
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).




info
Group: Marquês
Joined: 23/09/12
Posts: 1k
Reputation: +87
Gender: Masculino
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++