You are on page 1of 128

const_distance_delay = 56

RollOuts = {
["Voltorb"] = {lookType = 638},
["Electrode"] = {lookType = 637},
["Sandshrew"] = {lookType = 635},
["Sandslash"] = {lookType = 636},
["Phanpy"] = {lookType = 1005},
["Donphan"] = {lookType = 1007},
["Miltank"] = {lookType = 1006},
["Golem"] = {lookType = 639},
["Omastar"] = {lookType = 1579},
["Shiny Electrode"] = {lookType = 1387},
["Shiny Golem"] = {lookType = 1403},
["Shiny Voltorb"] = {lookType = 1388},
["Shiny Sandslash"] = {lookType = 1506},
["Shiny Donphan"] = {lookType = 1905},
["Shiny Miltank"] = {lookType = 1913},
["Shiny Ninetales"] = {lookType = 1581},
}
--//////////////////////////////////////////////////////////////////////////////
////////////////////////////-local function getSubName(cid, target)
if not isCreature(cid) then return "" end
if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] a
nd getPlayerStorageValue(cid, 1010) ~= "Ditto" then
return getPlayerStorageValue(cid, 1010)
elseif pokeHaveReflect(cid) and isCreature(target) then
return getCreatureName(target)
else
--alterado v
1.6.1
return getCreatureName(cid)
end
end
local function getThingName(cid)
if not isCreature(cid) then return "" end
return getCreatureName(cid)
end

--alterado v1.6

function getTableMove(cid, move)


--alterado v1.6
local backup = {f = 0, t = ""}
if getThingName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and
getPlayerStorageValue(cid, 1010) ~= "Ditto" then
name = getPlayerStorageValue(cid, 1010)
else
name = getThingName(cid)
end
if not isCreature(cid) or name == "" or not move then return backup end
local x = movestable[name]
if not x then return "" end
local z = {x.move1, x.move2, x.move3, x.move4, x.move5, x.move6, x.move7, x.move
8, x.move9, x.move10, x.move11, x.move12, x.passive1, x.passive2, x.passive3}
if getPlayerStorageValue(cid, 21103) ~= -1 then
local sto = getPlayerStorageValue(cid, 21103)
setPlayerStorageValue(cid, 21103, -1)
return {f = sto, t = ""}
end
for j = 1, 15 do

if z[j] and z[j].name == move then


return z[j]
end
end
return movesinfo[move]
end
function getMasterTarget(cid)
if isCreature(cid) and getPlayerStorageValue(cid, 21101) ~= -1 then
return getPlayerStorageValue(cid, 21101)
--alterado v1.6
end
if isSummon(cid) then
return getCreatureTarget(getCreatureMaster(cid))
else
return getCreatureTarget(cid)
end
end
--//////////////////////////////////////////////////////////////////////////////
//////////////////////////-function docastspell(cid, spell, mina, maxa)
local target = 0
local getDistDelay = 0
if not isCreature(cid) or getCreatureHealth(cid) <= 0 then return false end --a
lterado v1.6
if isSleeping(cid) and getPlayerStorageValue(cid, 21100) <= -1 then return true
end --alterado v1.6
if isCreature(getMasterTarget(cid)) then
target = getMasterTarget(cid)
getDistDelay = getDistanceBetween(getThingPosWithDebug(cid), getThingPos
WithDebug(target)) * const_distance_delay
end
if isMonster(cid) and not isSummon(cid) then
if getCreatureCondition(cid, CONDITION_EXHAUST) then
return true
end
doCreatureAddCondition(cid, wildexhaust)
end
local mydir = isCreature(target) and getCreatureDirectionToTarget(cid, target) o
r getCreatureLookDir(cid)
local table = getTableMove(cid, spell) --alterado v1.6
local min = 0
local max = 0

--alterado v1.7 \/\/


if ehMonstro(cid) and isCreature(getMasterTarget(cid)) and isInArray(specialabil
ities["evasion"], getCreatureName(getMasterTarget(cid))) then
local target = getMasterTarget(cid)
if math.random(1, 100) <= passivesChances["Evasion"][getCreatureName(target)]
then
if isCreature(getMasterTarget(target)) then --alterado v1.6

doSendMagicEffect(getThingPosWithDebug(target), 211)
doSendAnimatedText(getThingPosWithDebug(target), "TOO BAD", 215)
doTeleportThing(target, getClosestFreeTile(target, getThingPosWithDebug
(cid)), false)
doSendMagicEffect(getThingPosWithDebug(target), 211)
doFaceCreature(target, getThingPosWithDebug(cid))
return false
--alterado v1.8
end
end
end
--- FEAR / ROAR / SILENCE --if (isWithFear(cid) or isSilence(cid)) and getPlayerStorageValue(cid, 21100) <=
-1 then
return true
--alterado v1.6!!
end
---------------------------if mina and maxa then
min = math.abs(mina)
max = math.abs(maxa)
elseif not isPlayer(cid) then
if table ~= "" then --alterado v1.6
min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6
max = min + (isSummon(cid) and getMasterLevel(cid) or getPokemonLeve
l(cid))
if spell == "Selfdestruct" then
min = getCreatureHealth(cid) --alterado v1.6
max = getCreatureHealth(cid)
end
if not isSummon(cid) and not isInArray({"Demon Puncher", "Demon
Kicker"}, spell) then --alterado v1.7
doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MO
NSTER)
end
if isNpcSummon(cid) then
local mnn = {" use ", " "}
local use = mnn[math.random(#mnn)]
doCreatureSay(getCreatureMaster(cid), getPlayerStorageVa
lue(cid, 1007)..","..use..""..doCorrectString(spell).."!", 1)
end
else
print("Error trying to use move "..spell..", move not specified in the p
okemon table.")
end
end
--- FOCUS ---------------------------------if getPlayerStorageValue(cid, 253) >= 0 and table ~= "" and table.f ~= 0 then
--alterado v1.6
min = min * 2
max = max * 2
setPlayerStorageValue(cid, 253, -1)
end
--- Shredder Team ------------------------------if getPlayerStorageValue(cid, 637501) >= 1 then

if #getCreatureSummons(cid) == 1 then
docastspell(getCreatureSummons(cid)[1], spell)
elseif #getCreatureSummons(cid) == 2 then
docastspell(getCreatureSummons(cid)[1], spell)
docastspell(getCreatureSummons(cid)[2], spell)
end
elseif getPlayerStorageValue(cid, 637500) >= 1 then
min = 0
max = 0
end
------------------Miss System-------------------------local cd = getPlayerStorageValue(cid, conds["Miss"])
local cd2 = getPlayerStorageValue(cid, conds["Confusion"])
--alterado v1.5
local cd3 = getPlayerStorageValue(cid, conds["Stun"])
if cd >= 0 or cd2 >= 0 or cd3 >= 0 then
--alterado v1.7
if not isInArray({"Shock-Counter", "Lava-Counter", "Counter Helix", "Demon Pu
ncher", "Demon Kicker", "Stunning Confusion", "Electric Charge", "Melody", "Mirr
or Coat", "Mega Drain",
"Aromateraphy", "Heal Bell", "Emergency Call", "Magical Leaf", "Sunny Day", "Tau
nt", "Skull Bash", "Safeguard", "Rain Dance", "Spores Reaction", "Giroball", "Co
unter Claw", "Counter Spin", "Dragon Fury",
"Amnesia", "Healing Wish", "Zen Mind", "Bone Spin", "Thick Fat", "Meteor Mash"},
spell) and getPlayerStorageValue(cid, 21100) <= -1 then
if math.random(1, 100) > 30 then
--alterado v1.6
doSendAnimatedText(getThingPosWithDebug(cid), "MISS", 215)
return false
end
end
end
---------------GHOST DAMAGE----------------------ghostDmg = GHOSTDAMAGE
psyDmg = PSYCHICDAMAGE
if getPlayerStorageValue(cid, 999457) >= 1 and table ~= "" and table.f ~= 0 then
--alterado v1.6
psyDmg = MIRACLEDAMAGE
ghostDmg = DARK_EYEDAMAGE
addEvent(setPlayerStorageValue, 50, cid, 999457, -1)
end
--------------------REFLECT---------------------setPlayerStorageValue(cid, 21100, -1)
--alterado v1.6
if not isInArray({"Psybeam", "Sand Attack", "Flamethrower", "Heal Bell"}, spell)
then --alterado v1.8
setPlayerStorageValue(cid, 21101, -1)
end
setPlayerStorageValue(cid, 21102, spell)
---------------------------------------------------

if spell == "Reflect" or spell == "Mimic" or spell == "Magic Coat" then


if spell == "Magic Coat" then
eff = 11
else
eff = 135

end
doSendMagicEffect(getThingPosWithDebug(cid), eff)
setPlayerStorageValue(cid, 21099, 1)
elseif spell == "Quick Attack" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, max, 111)
elseif spell == "Razor Leaf" or spell == "Magical Leaf" then
local eff = spell == "Razor Leaf" and 8 or 21
local function throw(cid, target)
if not isCreature(cid) or not isCreature(target) then return false end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
eff)
doDanoInTargetWithDelay(cid, target, GRASSDAMAGE, min, max, 245) --alte
rado v1.7
end
addEvent(throw, 0, cid, target)
addEvent(throw, 100, cid, target) --alterado v1.7
elseif spell == "Vine Whip" then
local area = getThingPosWithDebug(cid)
local dano = {}
local effect = 255
if mydir == 0 then
area.x = area.x
area.y = area.y
dano = whipn
effect = 80
elseif mydir == 1 then
area.x = area.x
area.y = area.y
dano = whipe
effect = 83
elseif mydir == 2 then
area.x = area.x
area.y = area.y
dano = whips
effect = 81
elseif mydir == 3 then
area.x = area.x
area.y = area.y
dano = whipw
effect = 82
end

+ 1
- 1

+ 2
+ 1

+ 1
+ 2

- 1
+ 1

doSendMagicEffect(area, effect)
doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(cid),
dano, -min, -max, 255)
elseif spell == "Headbutt" then

doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -m


in, -max, 118)
elseif spell == "Leech Seed" then
local ret = {}
ret.id = target
ret.attacker = cid
ret.cd = 5
ret.check = getPlayerStorageValue(target, conds["Leech"])
ret.damage = isSummon(cid) and getMasterLevel(cid)+getPokemonBoost(cid) or g
etPokemonLevel(cid)
ret.cond = "Leech"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 1)
addEvent(doMoveDano2, 1000, cid, target, GRASSDAMAGE, 0, 0, ret, spell)
elseif spell == "Leech Life" then
local ret = {}
ret.id = target
ret.attacker = cid
ret.cd = 5
ret.check = getPlayerStorageValue(target, conds["Leech"])
ret.damage = isSummon(cid) and getMasterLevel(cid)+getPokemonBoost(cid) or g
etPokemonLevel(cid)
ret.cond = "Leech"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 1)
addEvent(doMoveDano2, 1000, cid, target, GRASSDAMAGE, 0, 0, ret, spell)
elseif spell == "Protection" then
local pos = getPosfromArea(cid, heal)
local n = 0
while n < #pos do
n = n+1
thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253}
local pid = getThingFromPosWithProtect(thing)
local pospid = getThingPosWithDebug(pid)
local poscid = getThingPosWithDebug(cid)
doSendMagicEffect(pos[n], 12)
for i = 0, 9 do
if isCreature(pid) then
if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then
if canAttackOther(cid, pid) == "Cant" then
doCreatureSetNoMove(pid, true)
doCreatureSetNoMove(cid, true)
setPlayerStorageValue(pid, 9658783, 1)
setPlayerStorageValue(cid, 9658783, 1)
addEvent(doSendMagicEffect, i*800, pospid, 117)
addEvent(doSendMagicEffect, i*800, poscid, 117)
addEvent(setPlayerStorageValue, 8000, pid, 9658783, -1)
addEvent(setPlayerStorageValue, 8000, cid, 9658783, -1)
addEvent(doCreatureSetNoMove, 8000, pid, false)

addEvent(doCreatureSetNoMove, 8000, cid, false)


end
elseif ehMonstro(cid) and ehMonstro(pid) then
doCreatureSetNoMove(pid, true)
doCreatureSetNoMove(cid, true)
setPlayerStorageValue(pid, 9658783, 1)
setPlayerStorageValue(cid, 9658783, 1)
addEvent(doSendMagicEffect, i*800, pospid, 117)
addEvent(doSendMagicEffect, i*800, poscid, 117)
addEvent(setPlayerStorageValue, 8000, pid, 9658783, -1)
addEvent(setPlayerStorageValue, 8000, cid, 9658783, -1)
addEvent(doCreatureSetNoMove, 8000, pid, false)
addEvent(doCreatureSetNoMove, 8000, cid, false)
end
end
end
end
elseif spell == "Solar Beam" then
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {36, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {4, {x=p.x+6, y=p.y+1, z=p.z}}, --alterado v1.6
[2] = {36, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {4, {x=p.x-1, y=p.y+1, z=p.z}}, --alterado v1.6
}
doMoveInArea2(cid, 0, triplo6, GRASSDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "XDMoonblast" then
doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfarea2, 400000, 800
000, 2)
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 1
ret.cond = "Silence"
---local p = getThingPosWithDebug(cid)
doSendMagicEffect({x=p.x+1, y=p.y, z=p.z}, 9)
--if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
setPlayerStorageValue(cid, 253, 1) --focus
doMoveInArea2(cid, 0, moon, PSYCHICDAMAGE, 0, 0, spell, ret)
elseif spell == "Moonblast" then
doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfArea2, min, max, 2
)
local ret = {}
ret.id = 0

ret.cd = 9
ret.check = 0
ret.eff = 1
ret.cond = "Silence"
---local p = getThingPosWithDebug(cid)
doSendMagicEffect({x=p.x+1, y=p.y, z=p.z}, 9)
--if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
setPlayerStorageValue(cid, 253, 1) --focus
doMoveInArea2(cid, 0, electro, FAIRYDAMAGE, 0, 0, spell, ret)
elseif spell == "Healing Wish" then
local min = (getCreatureMaxHealth(cid) * 80) / 100
local max = (getCreatureMaxHealth(cid) * 99) / 100
local function doHealArea(cid, min, max)
local amount = math.random(min, max)
if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
end
if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then
doCreatureAddHealth(cid, amount)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)
end
end
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
local pos = getPosfromArea(cid, heal)
local n = 0
doHealArea(cid, min, max)
while n < #pos do
n = n+1
thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253}
local pid = getThingFromPosWithProtect(thing)
doSendMagicEffect(pos[n], 14)
doSendMagicEffect(pos[n], 13)
if isCreature(pid) then
if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then
if canAttackOther(cid, pid) == "Cant" then
doHealArea(pid, min, max)
end
elseif ehMonstro(cid) and ehMonstro(pid) then
doHealArea(pid, min, max)
end
end
end
elseif spell == "Dragon Tail" then
local function rebackSpd(cid, sss)
if not isCreature(cid) then return true end

doChangeSpeed(cid, sss)
setPlayerStorageValue(cid, 446, -1)
end
local x = getCreatureSpeed(cid)
doFaceOpposite(cid)
doChangeSpeed(cid, -x)
addEvent(rebackSpd, 400, cid, x)
setPlayerStorageValue(cid, 446, 1)
doAreaCombatHealth(cid, DRAGONDAMAGE, getThingPosWithDebug(target), 0, min, -max, 104)
elseif spell == "Outrage" then
local config = {
outfit = {
--["pokemon_name"] = outfit,
["Salamence"] = 2043,
["Shiny Salamence"] = 2043,
["Super Salamence"] = 2043,
["Mega Sceptile"] = 2434,
["Dark Mega Sceptile"] = 2434,
["Mega Charizard X"] = 2451,
["Dark Mega Charizard"] = 2451,
},
AOE = {
times = 2,
--Quantas vezes o golpe AO
E ser usado.
interval = 3000,
--Intervalo de tempo, em m
ilsimos de segundo, entre cada golpe AOE.
combat = DRAGONDAMAGE,
--Elemento.
spell = {
--Uma tabela dever ser configurada com a rea e efeito da parte com
socos, e a outra com a parte do efeito do Draco Meteor.
{area = OutrageArea1, effect = 112}, --{area = rea do dano AOE,
effect = efeito}
{area = OutrageArea2, effect = 248}
},
}
}
local function doOutrage(cid, times)
if not isCreature(cid) then return true end
for i = 1, #config.AOE.spell do
doMoveInArea2(cid, config.AOE.spell[i].effect, config.AOE.spell[i].a
rea, config.AOE.combat, min, max, spell)
end
times = times - 1
if times <= 0 then
local rounds = math.random(4, 7)
rounds = rounds + math.floor(getPokemonLevel(cid) / 35)
local ret = {}
ret.id = cid
ret.cd = rounds
ret.check = getPlayerStorageValue(cid, conds["Confusion"])
ret.cond = "Confusion"
doCondition2(ret)
return true
end
addEvent(doOutrage, config.AOE.interval, cid, times)

end
local ret = {}
ret.id = cid
ret.cd = config.AOE.interval / 1000 * config.AOE.times
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
doSetCreatureOutfit(cid, {lookType = config.outfit[getCreatureName(cid)]}, c
onfig.AOE.interval * config.AOE.times)
addEvent(doOutrage, config.AOE.interval, cid, config.AOE.times)
elseif spell == "Sleep Powder" then
local ret = {}
ret.id = 0
ret.cd = math.random(6, 9)
ret.check = 0
ret.first = true
ret.cond = "Sleep"

--alterado v1.6

doMoveInArea2(cid, 27, confusion, NORMALDAMAGE, 0, 0, spell, ret)


elseif spell == "Stun Spore" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 85, confusion, GRASSDAMAGE, 0, 0, spell, ret)
elseif spell == "Poison Powder" then
local ret = {}
ret.id = 0
ret.cd = math.random(6, 15)
--alterado v1.6
ret.check = 0
local lvl = isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)
ret.damage = math.floor((getPokemonLevel(cid)+lvl * 3)/2)
ret.cond = "Poison"
doMoveInArea2(cid, 84, confusion, NORMALDAMAGE, 0, 0, spell, ret)
elseif spell == "Bullet Seed" then
--cid, effDist, effDano, areaEff, areaDano, element, min, max
doMoveInAreaMulti(cid, 1, 45, bullet, bulletDano, GRASSDAMAGE, min, max)
elseif spell == "Body Slam" then
doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -m
in, -max, 118)
elseif spell == "Leaf Storm" or tonumber(spell) == 73 then

addEvent(doDanoWithProtect, 150, cid, GRASSDAMAGE, getThingPosWithDebug(


cid), grassarea, -min, -max, 0)
local pos = getThingPosWithDebug(cid)
local function doSendLeafStorm(cid, pos)
--alterado!!
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 8)
end
for a = 1, 100 do
local lugar = {x = pos.x + math.random(-6, 6), y = pos.y + math.
random(-5, 5), z = pos.z}
addEvent(doSendLeafStorm, a * 2, cid, lugar)
end
elseif spell == "Scratch" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -m
in, -max, 142)
elseif spell == "Iron Head" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -m
in, -max, 77)
elseif spell == "Ember" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDe
bug(target), 3)
doDanoInTargetWithDelay(cid, target, FIREDAMAGE, min, max, 15)
--alterado v1.7
elseif spell == "Flamethrower" then
local flamepos = getThingPosWithDebug(cid)
local flamepos1 = getThingPosWithDebug(cid)
local flamepos2 = getThingPosWithDebug(cid)
local effect = 255
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) o
r getCreatureLookDir(cid)
if a == 0 then
---Magmortar-flamepos1.x = flamepos1.x+2
flamepos1.y = flamepos1.y-1
flamepos2.x = flamepos2.x-1
flamepos2.y = flamepos2.y-1
---Magmortar-flamepos.x = flamepos.x+1
flamepos.y = flamepos.y-1
effect = 106
elseif a == 1 then
---Magmortar-flamepos1.x = flamepos1.x+3
flamepos1.y = flamepos1.y+2
flamepos2.x = flamepos2.x+3
flamepos2.y = flamepos2.y
---Magmortar-flamepos.x = flamepos.x+3
flamepos.y = flamepos.y+1

effect = 109
elseif a == 2 then
---Magmortar-flamepos1.x = flamepos1.x+2
flamepos1.y = flamepos1.y+3
flamepos2.x = flamepos2.x
flamepos2.y = flamepos2.y+3
---Magmortar-flamepos.x = flamepos.x+1
flamepos.y = flamepos.y+3
effect = 107
elseif a == 3 then
---Magmortar-flamepos1.x = flamepos1.x-1
flamepos1.y = flamepos1.y+2
flamepos2.x = flamepos2.x-1
flamepos2.y = flamepos2.y
---Magmortar-flamepos.x = flamepos.x-1
flamepos.y = flamepos.y+1
effect = 108
end
if getCreatureName(cid) == "Magmortar" or getCreatureName(cid) == "Shiny Magmo
rtar" then
doMoveInArea2(cid, 0, flamek, FIREDAMAGE, min, max, spell)
doSendMagicEffect(flamepos1, effect)
doSendMagicEffect(flamepos2, effect)
else
doMoveInArea2(cid, 0, flamek, FIREDAMAGE, min, max, spell)
doSendMagicEffect(flamepos, effect)
end
elseif spell == "Fireball" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 3)
addEvent(doDanoWithProtect, 200, cid, FIREDAMAGE, getThingPosWithDebug(t
arget), waba, min, max, 5)
elseif spell == "Lightning Hell" then
local function doDivine(cid, min, max, spell, rounds, area)
if not isCreature(cid) then return true end
local ret = {}
ret.id = 0
ret.check = 0
ret.cd = rounds
ret.cond = "Stun"
for i = 1, 9 do
addEvent(doMoveInArea2, i*500, cid, 207, area[i], ELECTRICDAMAGE, min, max,
spell, ret)
addEvent(doMoveInArea2, 1000, cid, 47, electro, ELECTRICDAMAGE, 0, 0, spell,
ret)
addEvent(doMoveInArea2, 1000, cid, 207, electro, ELECTRICDAMAGE, 0, 0, s
pell, ret)
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, ro

ck5}
local ret = {}
ret.id = 0
ret.cd = 5
ret.eff = 48
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
for i = 0, 8 do
addEvent(doMoveInArea2, i*400, cid, 47, areas[i+1], ELECTRICDAMAGE, min, max
, spell, ret)
addEvent(doMoveInArea2, i*410, cid, 171, areas[i+1], ELECTRICAMAGE, 0, 0, sp
ell)
end
end
end
local rounds = math.random(9, 12)
local area = {punish1, punish2, punish3, punish1, punish2, punish3, punis
h1, punish2, punish3}
local posi = getThingPosWithDebug(cid)
posi.x = posi.x+1
posi.y = posi.y+1
setPlayerStorageValue(cid, 2365487, 1)
addEvent(setPlayerStorageValue, 6450, cid, 2365487, -1) --alterado v1.4
doDisapear(cid)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSendMagicEffect(posi, 163)
addEvent(doAppear, 6450, cid)
addEvent(doRegainSpeed, 6450, cid)
local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1)
for _,pid in pairs(uid) do
if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canA
ttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) ==
"Can")) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and
#getCreatureSummons(pid) <= 0)) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
end
end
addEvent(doDivine, 2200, cid, min, max, spell, rounds, area)
elseif spell == "Fire Fang" then
doSendMagicEffect(getThingPosWithDebug(target), 138)
doDanoInTargetWithDelay(cid, target, FIREDAMAGE, min, max, 15) --alterado v1
.7
elseif spell == "Dual Chop" then
local ret = {}
ret.id = target
ret.cd = 9
ret.check = 0
ret.eff = 147

ret.spell = spell
ret.cond = "Slow"
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
doSendMagicEffect(getThingPosWithDebug(target), 223)
doSendMagicEffect(getThingPosWithDebug(target), 224)
doDanoInTargetWithDelay(cid, target, DRAGONDAMAGE, min, max, 253) --alterado
v1.7
for i = 0, 1 do
addEvent(doDualDualChop, i * 900, cid)
end
elseif spell == "Grass Knot" then
local function throw(cid, target)
if not isCreature(cid) or not isCreature(target) then return false end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
eff)
doDanoInTargetWithDelay(cid, target, GRASSDAMAGE, min, max, 245)
doSendMagicEffect(getThingPosWithDebug(target), 240)
doSendMagicEffect(getThingPosWithDebug(target), 240)
end
addEvent(throw, 0, cid, target)
addEvent(throw, 100, cid, target)
elseif spell == "Ground Colapse" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, areaEff, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
--testar o atk!!
doAreaCombatHealth(cid, GROUNDDAMAGE, areaEff, 0, 0, 0, eff)
doAreaCombatHealth(cid, GROUNDDAMAGE, area, whirl3, -min, -max, 255)
end
end
for a = 0, 5 do
local t = {
[0] = {178, {x=p.x, y=p.y-(a+1), z=p.z}, {x=p.x+1, y=p.y-(a+1), z=p.z}},
[1] = {178, {x=p.x+(a+1), y=p.y, z=p.z}, {x=p.x+(a+1), y=p.y+1, z=p.z}},
[2] = {178, {x=p.x, y=p.y+(a+1), z=p.z}, {x=p.x+1, y=p.y+(a+1), z=p.z}},
[3] = {178, {x=p.x-(a+1), y=p.y, z=p.z}, {x=p.x-(a+1), y=p.y+1, z=p.z}}
}
addEvent(sendAtk, 325*a, cid, t[d][2], t[d][3], t[d][1])
end
elseif spell == "Wood Hammer" then
local function doPulse(cid, eff)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
10)

doDanoInTargetWithDelay(cid, target, GRASSDAMAGE, min, max, 37)


do pokemon TES
end
addEvent(doPulse, 0, cid, 37)

--altera

elseif spell == "Fire Blast" then


local p = getThingPosWithDebug(cid)
local p1 = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
if getCreatureName(cid) == "Magmortar" then
doAreaCombatHealth(cid, BURNEDDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, BURNEDDAMAGE, area, whirl4, -min, -max, 35)
else
doAreaCombatHealth(cid, BURNEDDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, BURNEDDAMAGE, area, whirl3, -min, -max, 35)
end
end
end
for a = 0, 4 do
local t = {
[0] = {60, {x=p.x, y=p.y-(a+1), z=p.z}},
--alterado v1.4
[1] = {61, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {62, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {63, {x=p.x-(a+1), y=p.y, z=p.z}}
}
local m = {
[0] = {60, {x=p.x+1, y=p.y-(a+1), z=p.z}},
--alterado v1.4
[1] = {61, {x=p.x+(a+1), y=p.y+1, z=p.z}},
[2] = {62, {x=p.x+1, y=p.y+(a+1), z=p.z}},
[3] = {63, {x=p.x-(a+1), y=p.y+1, z=p.z}}
}
local n = {
[0] = {60, {x=p.x-1, y=p.y-(a+1), z=p.z}},
--alterado v1.4
[1] = {61, {x=p.x+(a+1), y=p.y-1, z=p.z}},
[2] = {62, {x=p.x-1, y=p.y+(a+1), z=p.z}},
[3] = {63, {x=p.x-(a+1), y=p.y-1, z=p.z}}
}
if getCreatureName(cid) == "Magmortar" or getCreatureName(cid) == "Shiny Magmort
ar" then
addEvent(sendAtk, 300*a, cid, m[d][2], m[d][1])
addEvent(sendAtk, 300*a, cid, n[d][2], n[d][1])
else
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1])
end
end
elseif spell == "Dual Fire Blast" then
local function doDualFireBlast(cid)
if not isCreature(cid) then return false end
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge

tCreatureLookDir(cid)
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, FIREDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, FIREDAMAGE, area, whirl3, -min, -max, 35)
end
end
for a = 0, 4 do
local t = {
[0] = {60, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {61, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {62, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {63, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1])
end
return true
end

--alterado v1.4

for i = 0, 1 do
addEvent(doDualFireBlast, 900 * i, cid)
end
doSetCreatureOutfit(cid, {lookType = 2045}, 1000)
elseif spell == "Rage" then
local ret = {}
ret.id = cid
ret.cd = 15
ret.eff = 13
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Raging Blast" then
--cid, effDist, effDano, areaEff, areaDano, element, min, max
doMoveInAreaMulti(cid, 3, 6, bullet, bulletDano, FIREDAMAGE, min, max)
elseif spell == "Dragon Claw" then
doDanoWithProtect(cid, DRAGONDAMAGE, getThingPosWithDebug(target), 0, -mi
n, -max, 141)
elseif spell == "Wing Attack" or spell == "Steel Wing" then
local effectpos = getThingPosWithDebug(cid)
local effect = 255
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
if a == 0 then
effect = spell == "Steel Wing" and 251 or 128
effectpos.x = effectpos.x + 1

effectpos.y = effectpos.y - 1
elseif a == 1 then
effectpos.x = effectpos.x + 2
effectpos.y = effectpos.y + 1
effect = spell == "Steel Wing" and 253 or 129
elseif a == 2 then
effectpos.x = effectpos.x + 1
effectpos.y = effectpos.y + 2
effect = spell == "Steel Wing" and 252 or 131
elseif a == 3 then
effectpos.x = effectpos.x - 1
effectpos.y = effectpos.y + 1
effect = spell == "Steel Wing" and 254 or 130
end

--alterado v1.4

doSendMagicEffect(effectpos, effect)
doMoveInArea2(cid, 0, wingatk, FLYINGDAMAGE, min, max, spell)
elseif spell == "Dragon Flight" then
sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebu
g(target), 53)
doDanoInTargetWithDelay(cid, target, DRAGONDAMAGE, min, max, 143) --alterado v1
.7
doSendMagicEffect(getThingPosWithDebug(cid), 211)
local x = getClosestFreeTile(cid, getThingPosWithDebug(target))
doTeleportThing(cid, x, false)
doFaceCreature(cid, getThingPosWithDebug(target))
doAreaCombatHealth(cid, DRAGONDAMAGE, getThingPosWithDebug(target), 0, min, -max, 143)
elseif spell == "Magma Storm" then
local eff = {6, 35, 35, 6}
local area = {flames1, flames2, flames3, flames4}
addEvent(doMoveInArea2, 2*450, cid, 2, flames0, FIREDAMAGE, min, max, spell)
for i = 0, 3 do
addEvent(doMoveInArea2, i*450, cid, eff[i+1], area[i+1], FIREDAMAGE, min, ma
x, spell)
end
elseif spell == "Magma Storm" then
elseif spell == "Bubbles" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 2)
doDanoInTargetWithDelay(cid, target, WATERDAMAGE, min, max, 68) --altera
do v1.7
elseif spell == "Clamp" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 2)
doDanoInTargetWithDelay(cid, target, WATERDAMAGE, min, max, 53) --alter
ado v1.7

elseif spell == "Water Gun" then


local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {69, {x=p.x, y=p.y-1, z=p.z}},
[1] = {70, {x=p.x+6, y=p.y, z=p.z}},
--alterado v1.8
[2] = {69, {x=p.x, y=p.y+6, z=p.z}},
[3] = {70, {x=p.x-1, y=p.y, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, WATERDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Waterball" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
2)
doDanoWithProtectWithDelay(cid, target, WATERDAMAGE, min, max, 68, waba)
elseif spell == "Aqua Tail" then
local function rebackSpd(cid, sss)
if not isCreature(cid) then return true end
doChangeSpeed(cid, sss)
setPlayerStorageValue(cid, 446, -1)
end
local x = getCreatureSpeed(cid)
doFaceOpposite(cid)
doChangeSpeed(cid, -x)
addEvent(rebackSpd, 400, cid, x)
setPlayerStorageValue(cid, 446, 1)
doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(target), 0, -m
in, -max, 68)
elseif spell == "Hydro Cannon" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
if getCreatureName(cid) == "Mega Blastoise" then
doAreaCombatHealth(cid,
doAreaCombatHealth(cid,
else
doAreaCombatHealth(cid,
doAreaCombatHealth(cid,
end
end
end

WATERDAMAGE, area, 0, 0, 0, eff)


WATERDAMAGE, area, whirl3, -min, -max, 68)
WATERDAMAGE, area, 0, 0, 0, eff)
WATERDAMAGE, area, whirl3, -min, -max, 68)

for a = 0, 4 do
local
[0] =
[1] =
[2] =
[3] =
}
local
[0] =
[1] =
[2] =
[3] =
}
local
[0] =
[1] =
[2] =
[3] =
}

t = {
{64, {x=p.x, y=p.y-(a+1),
{65, {x=p.x+(a+1), y=p.y,
{66, {x=p.x, y=p.y+(a+1),
{67, {x=p.x-(a+1), y=p.y,

--alterado v1.4
z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}}

m = {
{64, {x=p.x+1, y=p.y-(a+1),
{65, {x=p.x+(a+1), y=p.y+1,
{66, {x=p.x+1, y=p.y+(a+1),
{67, {x=p.x-(a+1), y=p.y+1,

z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}}

--alterado v1.4

n = {
{64, {x=p.x-1, y=p.y-(a+1),
{65, {x=p.x+(a+1), y=p.y-1,
{66, {x=p.x-1, y=p.y+(a+1),
{67, {x=p.x-(a+1), y=p.y-1,

z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}}

--alterado v1.4

if getCreatureName(cid) == "Mega Blastoise" then


addEvent(sendAtk, 300*a, cid, m[d][2], m[d][1])
addEvent(sendAtk, 300*a, cid, n[d][2], n[d][1])
else
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1])
end
end

elseif spell == "Thick Fat" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 8
ret.check = 0
ret.spell = spell
ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 8
ret2.check = 0
ret2.eff = -1
ret2.cond = "Silence"
doMoveInArea2(cid, 182, muddy, NORMALDAMAGE, min, max, spell, ret)
doMoveInArea2(cid, 182, muddy, NORMALDAMAGE, 0, 0, spell, ret2)
elseif spell == "Mamaragan" then
local eff = getSubName(cid, target) == "Shiny Electabuzz" and 29 or 207 --alter
ado v1.6.1
local eff = getSubName(cid, target) == "Shiny Electivire" and 29 or 207
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, ro

ck5}
local ret = {}
ret.id = 0
ret.cd = 12
ret.eff = 48
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
for i = 0, 8 do
addEvent(doMoveInArea2, i*400, cid, eff, areas[i+1], ELECTRICDAMAGE, min, ma
x, spell, ret)
addEvent(doMoveInArea2, i*410, cid, eff, areas[i+1], ELECTRICAMAGE, 0, 0, sp
ell)
end
elseif spell == "Harden" or spell == "Calm Mind" or spell == "Defense Curl" or s
pell == "Charm" then
--alterado v
1.4
if spell == "Calm Mind" then
eff = 133
elseif spell == "Charm" then
eff = 147
--efeito n eh esse.. e n sei se eh soh bonus de
def, ou sp.def tb.. ;x
else
eff = 144
end
local ret = {}
ret.id = cid
ret.cd = 8
ret.eff = eff
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Bubble Blast" then
--cid, effDist, effDano, areaEff, areaDano, element, min, max
doMoveInAreaMulti(cid, 2, 68, bullet, bulletDano, WATERDAMAGE, min, max)
elseif spell == "Skull Bash" then
local ret = {}
ret.id = 0
ret.cd = 8
--alterado v1.6
ret.eff = 89
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 8
ret2.check = 0
ret2.eff = -1
ret2.cond = "Silence"
doMoveInArea2(cid, 118, reto5, NORMALDAMAGE, min, max, spell, ret)

doMoveInArea2(cid, 118, reto5, NORMALDAMAGE, 0, 0, spell, ret2)


elseif spell == "Hydropump" then
local pos = getThingPosWithDebug(cid)
local function doSendBubble(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 2)
doSendMagicEffect(pos, 53)
end
--alterado!!
for a = 1, 20 do
local lugar = {x = pos.x + math.random(-4, 4), y = pos.y + math.rand
om(-3, 3), z = pos.z}
addEvent(doSendBubble, a * 25, cid, lugar)
end
addEvent(doDanoWithProtect, 150, cid, WATERDAMAGE, pos, waterarea, -min,
-max, 0)
elseif spell == "Giga Impact" then
local tempo = 3
--Tempo, em segundos.
local a = {}
local ret1 = {}
ret1.id = 0
ret1.cd = 5
ret1.eff = 0
ret1.check = 0
ret1.first = true
ret1.cond = "Slow"
local ret2 = {}
ret2.id = 0
ret2.cd = 5
ret2.eff = 0
ret2.check = 0
ret2.first = true
ret2.cond = "Miss"
a.speed = getCreatureSpeed(cid)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, a.speed*2)
addEvent(function()
if not isCreature(cid) then return true end
doRegainSpeed(cid)
doMoveInArea2(cid, 118, quake, NORMALDAMAGE, min, max, spell, ret1)
doMoveInArea2(cid, 118, quake, NORMALDAMAGE, 0, 0, spell, ret2)
end, tempo*1000)
elseif spell == "String Shot" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
23)
local ret = {}

ret.id = target
ret.cd = 6
ret.eff = 137
ret.check = getPlayerStorageValue(target, conds["Stun"])
ret.spell = spell
ret.cond = "Stun"
addEvent(doMoveDano2, 100, cid, target, BUGDAMAGE, 0, 0, ret, spell)
elseif spell == "Bug Bite" then
doSendMagicEffect(getThingPosWithDebug(target), 2)
doDanoInTargetWithDelay(cid, target, BUGDAMAGE, min, max, 8) --alterado v1.7
elseif spell == "Super Sonic" then
local rounds = math.random(4, 7)
rounds = rounds + math.floor(getPokemonLevel(cid) / 35)
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 32)
local ret = {}
ret.id = target
ret.cd = rounds
ret.check = getPlayerStorageValue(target, conds["Confusion"])
ret.cond = "Confusion"
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Whirlwind" then
area = {SL1, SL2, SL3, SL4}
for i = 0, 3 do
addEvent(doMoveInArea2, i*300, cid, 42, area[i+1], FLYINGDAMAGE, min, max, s
pell)
end
elseif spell == "Razor Wind" then
area = {SL1, SL2, SL3, SL4}
for i = 0, 3 do
addEvent(doMoveInArea2, i*300, cid, 131, area[i+1], NORMALDAMAGE, min, max,
spell)
end
elseif spell == "Psybeam" then
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local t = {
[0] = 58,
--alterado v1.6
[1] = 234,
[2] = 58,
[3] = 209,
}
doMoveInArea2(cid, t[a], reto4, psyDmg, min, max, spell)

--alterado v1.4

elseif spell == "Sand Attack" then


local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local t = {
[0] = 120,
[1] = 121,
[2] = 122,
[3] = 119,
}
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
doCreatureSetLookDir(cid, a) --sera? '-'
stopNow(cid, 1000)
doMoveInArea2(cid, t[a], reto5, GROUNDDAMAGE, 0, 0, spell, ret)
elseif spell == "Confusion" or spell == "Night Shade" then
local rounds = math.random(4, 7)
--rever area...
rounds = rounds + math.floor(getPokemonLevel(cid) / 35)
if spell == "Confusion" then
dano = psyDmg
--alterado v1.4
else
dano = ghostDmg
end
local ret = {}
ret.id = 0
ret.check = 0
ret.cd = rounds
ret.cond = "Confusion"
doMoveInArea2(cid, 136, selfArea1, dano, min, max, spell, ret)
elseif spell == "Horn Attack" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targe
t), 15)
doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterad
o v1.7
elseif spell == "Poison Sting" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targe
t), 15)
doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 8) --alterad
o v1.7
elseif spell == "Fury Cutter" or spell == "Red Fury" then
local effectpos = getThingPosWithDebug(cid)
local effect = 255

local a = isCreature(target) and getCreatureDirectionToTarget(cid, target


) or getCreatureLookDir(cid)
if a == 0 then
if getSubName(cid, target) == "Scizor" then --alterado v1.6.1
effect = 236
else
effect = 128
end
effectpos.x = effectpos.x + 1
effectpos.y = effectpos.y - 1
elseif a == 1 then
effectpos.x = effectpos.x + 2
effectpos.y = effectpos.y + 1
if getSubName(cid, target) == "Scizor" then --alterado v1.6.1
effect = 232
else
effect = 129
end
elseif a == 2 then
effectpos.x = effectpos.x + 1
effectpos.y = effectpos.y + 2
if getSubName(cid, target) == "Scizor" then --alterado v1.6.1
effect = 233
else
effect = 131
end
elseif a == 3 then
effectpos.x = effectpos.x - 1
effectpos.y = effectpos.y + 1
if getSubName(cid, target) == "Scizor" then --alterado v1.6.1
effect = 224
else
effect = 130
end
end
local function doFury(cid, effect)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
doSendMagicEffect(effectpos, effect)
doMoveInArea2(cid, 2, wingatk, BUGDAMAGE, min, max, spell)
end
addEvent(doFury, 0, cid, effect)
addEvent(doFury, 350, cid, effect)
elseif spell == "Pin Missile" then
doMoveInAreaMulti(cid, 13, 7, bullet, bulletDano, BUGDAMAGE, min, max)
elseif spell == "Strafe" or spell == "Agility" then
local ret = {}
ret.id = cid
ret.cd = 15
ret.eff = 14
ret.check = 0

ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Gust" then
doMoveInArea2(cid, 42, reto5, FLYINGDAMAGE, min, max, spell)
elseif spell == "Drill Peck" then
doDanoWithProtect(cid, FLYINGDAMAGE, getThingPosWithDebug(target), 0, -min, -max
, 148)
elseif spell == "Tornado" then
local pos = getThingPosWithDebug(cid)
local function doSendTornado(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 22)
doSendMagicEffect(pos, 42)
end
for b = 1, 3 do
for a = 1, 20 do
local lugar = {x = pos.x + math.random(-4, 4), y = pos.y
+ math.random(-3, 3), z = pos.z}
addEvent(doSendTornado, a * 75, cid, lugar)
end
end
doDanoWithProtect(cid, FLYINGDAMAGE, pos, waterarea, -min, -max, 0)
elseif spell == "Sky Attack" then
local pos = getThingPosWithDebug(cid)
local function doSendTornado(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 22)
doSendMagicEffect(pos, 78)
end
for b = 1, 3 do
for a = 1, 20 do
local lugar = {x = pos.x + math.random(-4, 4), y = pos.y
+ math.random(-3, 3), z = pos.z}
addEvent(doSendTornado, a * 75, cid, lugar)
end
end
doDanoWithProtect(cid, FLYINGDAMAGE, pos, waterarea, -min, -max, 0)

elseif spell == "Bite" or tonumber(spell) == 5 then


doDanoWithProtect(cid, DARKDAMAGE, getThingPosWithDebug(target), 0, -min
, -max, 146)
elseif spell == "Super Fang" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -m
in, -max, 2)
elseif spell == "Poison Fang" then
doSendMagicEffect(getThingPosWithDebug(target), 2)
doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 114) --alterado
v1.7
elseif spell == "Sting Gun" then
local function doGun(cid, target)
if not isCreature(cid) or not isCreature(target) then return true end
--alterado v1.7
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(ta
rget), 13)
doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 8) --alt
erado v1.7
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 200, cid, 3644587, 1)
for i = 0, 2 do
addEvent(doGun, i*100, cid, target)
end
elseif spell == "Acid" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 14)
doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 20)
--al
terado v1.7
elseif spell == "Fear" or spell == "Roar" then
local ret = {}
ret.id = 0
ret.cd = 5
ret.check = 0
ret.skill = spell
ret.cond = "Fear"
doMoveInArea2(cid, 0, confusion, DARKDAMAGE, 0, 0, spell, ret)
elseif spell == "Iron Tail" then
local function rebackSpd(cid, sss)
if not isCreature(cid) then return true end
doChangeSpeed(cid, sss)
setPlayerStorageValue(cid, 446, -1)
end
local x = getCreatureSpeed(cid)

doFaceOpposite(cid)
doChangeSpeed(cid, -x)
addEvent(rebackSpd, 400, cid, x)
setPlayerStorageValue(cid, 446, 1)
doDanoWithProtect(cid, STEELDAMAGE, getThingPosWithDebug(target), 0, -mi
n, -max, 160)
elseif spell == "Thunder Shock" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 40)
doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --a
lterado v1.7
elseif spell == "Thunder Bolt" then
--alterado v1.7
local function doThunderFall(cid, frompos, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local ry = math.abs(frompos.y - pos.y)
doSendDistanceShoot(frompos, getThingPosWithDebug(target), 41)
addEvent(doDanoInTarget, ry * 11, cid, target, ELECTRICDAMAGE, m
in, max, 48) --alterado v1.7
end
local function doThunderUp(cid, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local mps = getThingPosWithDebug(cid)
local xrg = math.floor((pos.x - mps.x) / 2)
local topos = mps
topos.x = topos.x + xrg
local rd = 7
topos.y = topos.y - rd
doSendDistanceShoot(getThingPosWithDebug(cid), topos, 41)
addEvent(doThunderFall, rd * 49, cid, topos, target)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 350, cid, 3644587, -1)
for thnds = 1, 2 do
addEvent(doThunderUp, thnds * 155, cid, target)
end
elseif spell == "Thunder Wave" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 48
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 48, db1, ELECTRICDAMAGE, min, max, spell, ret) --alterado v1.
8

elseif spell == "Disarming Voice" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 46
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 46, db1, FAIRYDAMAGE, min, max, spell, ret) --alterado v1.8
elseif spell == "Dragon Breath2" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 10
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 10, db1, DRAGONDAMAGE, min, max, spell, ret) --alterado v1.8
elseif spell == "Thunder" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 48
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 48, thunderr, ELECTRICDAMAGE, min, max, spell, ret)
elseif spell == "Web Shot" then
local ret = {}
ret.id = target
ret.cd = 9
ret.eff = 26
ret.check = 0
ret.spell = spell
ret.cond = "Paralyze"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 23)
addEvent(doMoveDano2, 100, cid, target, BUGDAMAGE, -min, -max, ret, spel
l)
elseif spell == "Mega Kick" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
39)
doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, min, max, 113)
alterado v1.7
elseif spell == "Thunder Punch" then

--

doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 39)
doSendMagicEffect(getThingPosWithDebug(target), 112)
doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --alterad
o v1.7
elseif spell == "Electric Storm" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid
local function doFall(cid)
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, ELECTRICDAMAGE, 41, 48)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 41)
end
addEvent(doFall, 450, cid)
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 48
ret.spell = spell
ret.cond = "Stun"
addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ELECTRICDAMAGE, min, max, spell,
ret)
elseif spell == "Grass Knot bugedo" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, eff, area2)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
if not isWalkable(area) then return true end
if isInArray(waters, getTileInfo(area).itemid) then return true end
doAreaCombatHealth(cid, GRASSDAMAGE, area, whirl3, -min, -max, 37)
doTeleportThing(cid, area)
end
end
for a = 0, 5 do
local t = {
[0] = {0, {x=p.x, y=p.y-(a+1), z=p.z}, {x=p.x + 1,y=p.y-(a+1), z=p.z}},
[1] = {0, {x=p.x+(a+1), y=p.y, z=p.z}, {x=p.x+(a+1) + 1, y=p.y + 1, z=p.z}},
[2] = {0, {x=p.x, y=p.y+(a+1), z=p.z}, {x=p.x + 1, y=p.y+(a+1) + 1, z=p.z}},
[3] = {0, {x=p.x-(a+1), y=p.y, z=p.z}, {x=p.x-(a+1), y=p.y + 1, z=p.z}}
}
doCreatureSetNoMove(cid, true)
addEvent(sendAtk, 200*a, cid, t[d][2], t[d][1], t[d][3])
addEvent(doCreatureSetNoMove, 1000, cid, false)
end

elseif spell == "Frenzy Plant" then


local master = isSummon(cid) and getCreatureMaster(cid) or cid
local function doFall(cid)
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, GRASSDAMAGE, 99, 71)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 99)
end
addEvent(doFall, 450, cid)
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 71
ret.spell = spell
ret.cond = "Sleep"
addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, GRASSDAMAGE, min, max, spell, re
t)
elseif spell == "Web Rain" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid
local function doFall(cid)
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, BUGDAMAGE, 23)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 23)
end
addEvent(doFall, 450, cid)
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 26
ret.spell = spell
ret.cond = "Silence"
addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, BUGDAMAGE, min, max, spell, ret)
elseif spell == "Spider Web" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 26
ret.cond = "Silence"

doMoveInAreaMulti(cid, 23, 26, multi, multiDano, BUGDAMAGE, min, max)


doMoveInArea2(cid, 0, multiDano, BUGDAMAGE, 0, 0, spell, ret)
elseif spell == "Mud Shot" or spell == "Mud Slap" then
if isCreature(target) then
local contudion = spell == "Mud Shot" and "Miss" or "Stun"

--alterado v1.8

local ret = {}
ret.id = target
ret.cd = 9
ret.eff = 34
ret.check = getPlayerStorageValue(target, conds[contudion])
ret.spell = spell
ret.cond = contudion
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 6)
addEvent(doMoveDano2, 100, cid, target, GROUNDDAMAGE, -min, -max, ret, s
pell)
end
elseif spell == "Vines Grap" then
local ret = {}
ret.id = 0
ret.cd = 40
ret.check = 0
ret.eff = 104
ret.cond = "Silence"

--Durao do silence, em milesimosdesegundos.


--Efeito do silence.

doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfArea2, min, max, 4


5)
stopNow(cid, 200)
--alterado v1.6
doCreatureSetLookDir(cid, 2)
local
local
pos.x
pos.y

effect = 0
pos = getThingPosWithDebug(cid)
= pos.x + 1
= pos.y + 1

local effect = getSubName(cid, target) == "Mega Tangrowth" and 229 or 229


local effect = getSubName(cid, target) == "Shiny Tangela" and 213 or 229
--alterado v1.6.1
doSendMagicEffect(pos, effect)
doDanoWithProtect(cid, GRASSDAMAGE, getThingPosWithDebug(cid), splash, min, -max, 0)
elseif spell == "Power Whipe" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 3
ret.eff = 7
ret.check = 0
ret.first = true

ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 3
ret2.check = 0
ret2.eff = -1
ret2.cond = "Silence"
local config = {
outfit = 1685,
--Outfit.
time = {3
, 500},
--{Durao da spell, intervalo entre cada
"tick" de dano (em milsimos de segundos)},
storage = 93828,
effects = {
pullEffects = {
distance = 167,
--Distance effect do efeito de puxar pokmons.
effect = 7,
--Efeito de tornado.
},
damageEffect = 45,
--Efeito do redemoinho que aplica dano.
},
}
local time = os.time() + config.time[1]
function Pull(cid, ret)
local pos = getPosfromArea(cid, pullArea)
if pos and #pos > 0 then
for i = 1, #pos do
local c = getTopCreature(pos[i]).uid
if c > 0 then
legendarios = { "Blue Tower 1", "Blue Tower 2",
"Blue Tower 3", "Red Tower 1", "Red Tower 2", "Red Tower 3", "Entei", "Moltres",
"Zapdos", "Articuno", "Celebi"}
if ehMonstro(c) and not isInArray(legendarios, getCreatureNa
me(c))then
doTeleportThing(c, getClosestFreeTile(cid, getThingPos(c
id)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret2, spell)
elseif isSummon(c) then
local master = getCreatureMaster(c)
if isSummon(cid) then
if getPlayerStorageValue(master, 52480) >= 1 and get
PlayerStorageValue(master, 52481) >= 0 then
local masterCid = getCreatureMaster(cid)
if isDuelingAgainst(masterCid, master) then
doTeleportThing(c, getClosestFreeTile(cid, g
etThingPos(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret,
spell)
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret2
, spell)
end
end
else
doTeleportThing(c, getClosestFreeTile(cid, getThingP
os(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret2, spell)
end
end
end -end

end
end
function doSendTornado(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
doSendDistanceShoot(getThingPos(cid), pos, config.effects.pullEffects.di
stance)
doSendMagicEffect(pos, config.effects.pullEffects.effect)
end
function vortexDamage(cid)
if not isCreature(cid) then
return true
elseif time - os.time() < 0 then
return true
end
doDanoWithProtect(cid, GRASS, getThingPos(cid), damageArea, min, max, co
nfig.effects.damageEffect)
addEvent(vortexDamage, config.time[2], cid)
end
for b = 1, 3 do
for a = 1, 20 do
local pos = {x = getThingPos(cid).x + math.random(-4, 4), y = getThi
ngPos(cid).y + math.random(-3, 3), z = getThingPos(cid).z}
addEvent(doSendTornado, a * 75, cid, pos)
end
end
Pull(cid, ret)
vortexDamage(cid)
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSetCreatureOutfit(cid, {lookType = config.outfit}, config.time[1] * 1000)
setPlayerStorageValue(cid, config.storage, time)
addEvent(function()
if isCreature(cid) then
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
end, config.time[1] * 1000)
elseif spell == "Mud Rain" then
local ret = {}
ret.id = 0
ret.cd = 200
--Durao do silence, em milesimosdesegundos.
ret.check = 0
ret.eff = 34
--Efeito do silence.
ret.cond = "Silence"
doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfArea2, min, max, 3
4)
local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1
.6.1
doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash,
-min, -max, 255)
local sps = getThingPosWithDebug(cid)

sps.x = sps.x+1
sps.y = sps.y+1
doSendMagicEffect(sps, eff)
elseif spell == "Rollout" then
local function setOutfit(cid, outfit)
if isCreature(cid) and getCreatureCondition(cid, CONDITION_OUTFIT) ==
true then
if getCreatureOutfit(cid).lookType == outfit then
doRemoveCondition(cid, CONDITION_OUTFIT)
if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageVal
ue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then
if isSummon(cid) then
local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
doSetCreatureOutfit(cid, {lookType = getItemAttribute(item
.uid, "transOutfit")}, -1) --alterado v1.8
end
end
end
end
end
if RollOuts[getSubName(cid, target)] then
doSetCreatureOutfit(cid, RollOuts[getSubName(cid, target)], -1)
--alterado v1.6.1
end
local outfit = getCreatureOutfit(cid).lookType
local function roll(cid, outfit)
if not isCreature(cid) then return true end
if isSleeping(cid) then return true end
if RollOuts[getSubName(cid, target)] then
doSetCreatureOutfit(cid, RollOuts[getSubName(cid, target)], -1) --al
terado v1.6.1
end
doDanoWithProtect(cid, ROCKDAMAGE, getThingPosWithDebug(cid), splash, -mi
n, -max, 0)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 9000, cid, 3644587, -1)
for r = 1, 11 do --8
addEvent(roll, 750 * r, cid, outfit)
end
addEvent(setOutfit, 9050, cid, outfit)
elseif spell == "Shockwave" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, areaEff, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
--testar o atk!!
doAreaCombatHealth(cid, GROUNDDAMAGE, areaEff, 0, 0, 0, eff)

doAreaCombatHealth(cid, GROUNDDAMAGE, area, whirl3, -min, -max, 255)


end
end
for a = 0, 5 do
local t = {
[0] = {126, {x=p.x, y=p.y-(a+1), z=p.z}, {x=p.x+1, y=p.y-(a+1), z=p.z}},
[1] = {124, {x=p.x+(a+1), y=p.y, z=p.z}, {x=p.x+(a+1), y=p.y+1, z=p.z}},
[2] = {125, {x=p.x, y=p.y+(a+1), z=p.z}, {x=p.x+1, y=p.y+(a+1), z=p.z}},
[3] = {123, {x=p.x-(a+1), y=p.y, z=p.z}, {x=p.x-(a+1), y=p.y+1, z=p.z}}
}
addEvent(sendAtk, 325*a, cid, t[d][2], t[d][3], t[d][1])
end
elseif spell == "Earth Power" then
local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 127 --alterado v1
.6.1
local eff = getSubName(cid, target) == "Crystal Steelix" and 179 or 127
doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash,
-min, -max, 255)
local sps = getThingPosWithDebug(cid)
sps.x = sps.x+1
sps.y = sps.y+1
doSendMagicEffect(sps, eff)
elseif spell == "Frost Power" then
local eff = getSubName(cid, target) == "Shiny Onix" and 179 or 179 --alterado v1
.6.1
doAreaCombatHealth(cid, GROUNDDAMAGE, getThingPosWithDebug(cid), splash,
-min, -max, 255)
local sps = getThingPosWithDebug(cid)
sps.x = sps.x+1
sps.y = sps.y+1
doSendMagicEffect(sps, eff)
elseif spell == "Sheer Cold" then
local ret = {}
ret.id = 0
ret.cd = 4
ret.eff = 43
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local function sendAtk(cid)
if isCreature(cid) then
doRemoveCondition(cid, CONDITION_OUTFIT)
setPlayerStorageValue(cid, 9658783, -1)
for i = 0, 4 do

addEvent(doMoveInArea2, i*400, cid, 43, areas[i+1], ICEDAMAGE, min, max, spe


ll, ret)
addEvent(doMoveInArea2, i*410, cid, 43, areas[i+1], ICEDAMAGE, 0, 0, spell)
end
end
end
setPlayerStorageValue(cid, 9658783, 1)
addEvent(sendAtk, 2000, cid)
elseif spell == "Earthquake" then
local eff = getSubName(cid, target) == "Shiny Onix" and 175 or 118 --alterado v
1.6.1
local eff = getSubName(cid, target) == "Crystal Steelix" and 175 or 118
local function doQuake(cid)
if not isCreature(cid) then return false end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return fals
e end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true
end
doMoveInArea2(cid, eff, confusion, GROUNDDAMAGE, min, max, spell)
end
times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 690
0, 7400, 7900, 8400, 9200, 10000}
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1)
for i = 1, #times do
--alterado v1.4
addEvent(doQuake, times[i], cid)
end
elseif spell == "Stomp" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 34
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 118, stomp, GROUNDDAMAGE, min, max, spell, ret)
elseif spell == "Toxic Spikes" then
local function doToxic(cid, target)
if not isCreature(cid) or not isCreature(target) then return true end -alterado v1.7
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(ta
rget), 15)
doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 114) --al
terado v1.7
end
setPlayerStorageValue(cid, 3644587, 1)

addEvent(setPlayerStorageValue, 300, cid, 3644587, -1)


addEvent(doToxic, 0, cid, target)
addEvent(doToxic, 300, cid, target)
elseif spell == "Horn Drill" then
local function doHorn(cid, target)
if not isCreature(cid) or not isCreature(target) then return true end -alterado v1.7
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(ta
rget), 25)
doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alt
erado v1.7
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 300, cid, 3644587, -1)
addEvent(doHorn, 0, cid, target)
addEvent(doHorn, 300, cid, target)
elseif spell == "Doubleslap" then
doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, min, -max, 148)
elseif spell == "Lovely Kiss" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 16)
local ret = {}
ret.id = target
ret.cd = 9
ret.check = getPlayerStorageValue(target, conds["Stun"])
ret.eff = 147
ret.spell = spell
ret.cond = "Stun"
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Sing" then
local ret = {}
ret.id = 0
ret.cd = math.random(6, 10)
ret.check = 0
ret.first = true
ret.cond = "Sleep"

--alterado v1.6

doMoveInArea2(cid, 33, selfArea1, NORMALDAMAGE, 0, 0, spell, ret)


elseif spell == "Multislap" then
doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), splash,
-min, -max, 3)
elseif spell == "Metronome" then
local spells = {"Shadow Storm", "Electric Storm", "Magma Storm", "Blizzard", "Me
teor Mash", "Leaf Storm", "Hydropump", "Falling Rocks"}

local random = math.random(1, #spells)


local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 161)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
elseif spell == "Sketch 1" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 1)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Psy Pulse", "Shadow Ball", "Thunder Bolt", "Ember", "Rock Throw
", "Razor Leaf", "Bubbles", "Ice Shards", "Egg Bomb", "Poison Bomb"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 2" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 2)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Mud Bomb", "Cyber Pulse", "Dark Pulse", "Rock Slide", "Magical
Leaf", "Fireball", "Waterball", "Feather Dance"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end

docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 3" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 3)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Poison Gas", "Earthquake", "Petal Tornado", "Electro Field", "F
lame Circle"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 4" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 4)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Thunder", "Night Slash", "Confusion", "Air Slash", "Confusion",
"Night Shade"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 5" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 5)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Solar Beam", "Bullet Seed", "Raging Blast", "Fire Blast", "Bubb

le Blast", "Hydro Cannon", "Pin Missile"}


local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 6" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 6)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Shockwave", "Petal Dance", "Hyper Beam", "Zap Cannon", "Aurora
Beam", "Ice Beam", "Ground Chop"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 7" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 7)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Fear", "Sunny Day", "Scary Face", "Skull Bash", "Cotton Spore",
"Sleep Powder","Healing Wish"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end

docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 8" then
if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
setPlayerStorageValue(cid, 18554, 8)
addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 18554
, -1) end end, 3000)
else
local spells = {"Reflect", "Charm", "Agility", "Safeguard", "Synthesis", "Emerge
ncy Call", "Healarea", "Sing", "Moonblast"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
end
elseif spell == "Sketch 9" then
local spells = {"Psychic", "Epicenter", "Mortal Gas", "Hydropump", "Muddy Water"
}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)
pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
elseif spell == "Sketch 10" then
local spells = {"Focus Blast", "Blizzard", "Shadow Storm", "Falling Rocks", "Met
eor Mash", "Electric Storm", "Hydro Dance", "Magma Storm", "Draco Meteor", "Psy
Impact"}
local random = math.random(1, #spells)
local randommove = spells[random]
local pos = getThingPosWithDebug(cid)

pos.y = pos.y - 1
doSendMagicEffect(pos, 0)
local function doMetronome(cid, skill)
if not isCreature(cid) then return true end
docastspell(cid, skill)
end
addEvent(doMetronome, 200, cid, randommove)
elseif spell == "Focus" or spell == "Charge" or spell == "Swords Dance" then
--alterado v1.4
if spell == "Charge" then
doSendAnimatedText(getThingPosWithDebug(cid), "CHARGE", 168)
doSendMagicEffect(getThingPosWithDebug(cid), 177)
elseif spell == "Swords Dance" then
doSendMagicEffect(getThingPosWithDebug(cid), 132)
else
doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144)
doSendMagicEffect(getThingPosWithDebug(cid), 132)
end
setPlayerStorageValue(cid, 253, 1)
elseif spell == "Growth" then
--alterado v1.4
if spell == "Growth" then
doSendAnimatedText(getThingPosWithDebug(cid), "Growth", 168)
doSendMagicEffect(getThingPosWithDebug(cid), 177)
end
setPlayerStorageValue(cid, 253, 1)

--[[elseif spell == "Flame Wheel" then


--alterado v1.8 o atk ta la
pra baixo agora...
local function sendFireEff(cid, dir)
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return
false end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return
true end
doDanoWithProtect(cid, FIREDAMAGE, getPosByDir(getThingPosWithDebug(cid),
dir), 0, -min, -max, 15)
end
local function doWheel(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTH,
[2] = SOUTHEAST,
[3] = EAST,
[4] = NORTHEAST,
[5] = NORTH,
--alterado!
[6] = NORTHWEST,
[7] = WEST,
[8] = SOUTHWEST,
}
for a = 1, 8 do

addEvent(sendFireEff, a * 140, cid, t[a])


end
end
doWheel(cid, false, cid)

]]

elseif spell == "Hyper Voice" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 22
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 22, tw1, NORMALDAMAGE, min, max, spell, ret)
elseif spell == "Restore" or spell == "Selfheal" then
local min = (getCreatureMaxHealth(cid) * 75) / 100
local max = (getCreatureMaxHealth(cid) * 85) / 100
local function doHealArea(cid, min, max)
local amount = math.random(min, max)
if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
end
if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then
doCreatureAddHealth(cid, amount)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)
end
end
doSendMagicEffect(getThingPosWithDebug(cid), 132)
doHealArea(cid, min, max)
elseif spell == "Aqua Ring" then
local min = (getCreatureMaxHealth(cid) * 5) / 100
local max = (getCreatureMaxHealth(cid) * 7) / 100
local function doHealOverTime(cid)
local amount = math.random(min, max)
if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
return false
end
if getCreatureHealth(cid) < getCreatureMaxHealth(cid) then
doCreatureAddHealth(cid, amount)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)
doSendMagicEffect(getThingPosWithDebug(cid), 132)
end
end
for a = 0, 24 do
addEvent(doHealOverTime, 500*a, cid)
end

elseif spell == "Healarea" then


local min = (getCreatureMaxHealth(cid) * 50) / 100
local max = (getCreatureMaxHealth(cid) * 60) / 100
local function doHealArea(cid, min, max)
local amount = math.random(min, max)
if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
end
if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then
doCreatureAddHealth(cid, amount)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)
end
end
local pos = getPosfromArea(cid, heal)
local n = 0
doHealArea(cid, min, max)
while n < #pos do
n = n+1
thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253}
local pid = getThingFromPosWithProtect(thing)
doSendMagicEffect(pos[n], 12)
if isCreature(pid) then
if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then
if canAttackOther(cid, pid) == "Cant" then
doHealArea(pid, min, max)
end
elseif ehMonstro(cid) and ehMonstro(pid) then
doHealArea(pid, min, max)
end
end
end
elseif spell == "Milk Drink" then
local min = (getCreatureMaxHealth(cid) * 50) / 100
local max = (getCreatureMaxHealth(cid) * 60) / 100
local function doHealArea(cid, min, max)
local amount = math.random(min, max)
if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
end
if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then
doCreatureAddHealth(cid, amount)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)
end
end
local pos = getPosfromArea(cid, heal)
local n = 0
doHealArea(cid, min, max)
while n < #pos do
n = n+1

thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253}
local pid = getThingFromPosWithProtect(thing)
doSendMagicEffect(pos[n], 12)
if isCreature(pid) then
if isSummon(cid) and (isSummon(pid) or isPlayer(pid)) then
if canAttackOther(cid, pid) == "Cant" then
doHealArea(pid, min, max)
end
elseif ehMonstro(cid) and ehMonstro(pid) then
doHealArea(pid, min, max)
end
end
end
elseif spell == "Toxic" then
doMoveInArea2(cid, 114, reto5, POISONDAMAGE, min, max, spell)
elseif spell == "Absorb" then
local life = getCreatureHealth(target)
doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -m
in, -max, 14)
local newlife = life - getCreatureHealth(target)
doSendMagicEffect(getThingPosWithDebug(cid), 14)
if newlife >= 1 then
doCreatureAddHealth(cid, newlife)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32)
end
elseif spell == "Poison Bomb" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
14)
doDanoWithProtectWithDelay(cid, target, POISONDAMAGE, min, max, 20, bombWee2
)
elseif spell == "Poison Gas" then
local dmg = isSummon(cid) and getMasterLevel(cid)+getPokemonBoost(cid) or getPok
emonLevel(cid)
local ret = {id = 0, cd = 13, eff = 34, check = 0, spell = spell, cond = "Miss"}
local ret2 = {id = 0, cd = 13, check = 0, damage = dmg, cond = "Poison"}
--rever isso ainda!!
local function gas(cid)
doMoveInArea2(cid, 114, confusion, POISONDAMAGE, 0, 0, spell, ret)
doMoveInArea2(cid, 0, confusion, POISONDAMAGE, min, max, spel
l)
end
times = {0, 500, 1000, 1500, 2300, 2800, 3300, 3800, 4600, 5100, 5600, 6100, 690
0, 7400, 7900, 8400, 9200, 10000}
for i = 1, #times do

addEvent(gas, times[i], cid)


end
elseif spell == "Petal Dance" then
doMoveInAreaMulti(cid, 21, 245, bullet, bulletDano, GRASSDAMAGE, min, max
)
elseif spell == "Dynamic Punch" then
local pos = getThingPosWithDebug(cid)
local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, ro
ck1}
for i = 0, 9 do
addEvent(doMoveInArea2, i*400, cid, 112, areas[i+1], FIGHTINGDAMAGE, min, ma
x, spell)
addEvent(doMoveInArea2, i*410, cid, 112, areas[i+1], FIGHTINGDAMAGE, 0, 0, s
pell)
end
elseif spell == "Revenge" then
local function doRevenge(cid)
if not isCreature(cid) then return false end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return fals
e end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true
end
local rev = getThingPosWithDebug(cid)
rev.x = rev.x+1
rev.y = rev.y+1
doSendMagicEffect(rev, 99)
doAreaCombatHealth(cid, FIGHTINGDAMAGE, getThingPosWithDebug(cid), splas
h, -min, -max, 255)
end
times = {0, 500, 1000, 1500, 2300}
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 10000, cid, 3644587, -1)
for i = 1, #times do
--alterado v1.4
addEvent(doRevenge, times[i], cid)
end
elseif spell == "Close Combat" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 26)
doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, -min, -max, 237) -alterado v1.7
doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144)
setPlayerStorageValue(cid, 253, 1)
elseif spell == "Sand Storm" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid

-----------local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 34
ret.cond = "Silence"
--local function doFall(cid)
for rocks = 1, 42 do --62
addEvent(fall, rocks*35, cid, master, GROUNDDAMAGE, 22, 158)
end
end
--local function doRain(cid)
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
--cura status
doCureStatus(cid, "all")
--setPlayerStorageValue(cid, 253, 1) --focus
doSendMagicEffect(getThingPosWithDebug(cid), 132)
--doMoveInArea2(cid, 0, confusion, GROUNDDAMAGE, 0, 0, spell, ret)
end
--addEvent(doFall, 200, cid)
addEvent(doRain, 1000, cid)
elseif spell == "Powder Snow" then
snowP = getThingPosWithDebug(cid)
local ret = {}
ret.id = 0
ret.cd = 10
ret.check = 0
ret.eff = 43
ret.spell = spell
ret.cond = "Slow"
doMoveInArea2(cid, 0, check, ICEDAMAGE, min, max, spell, ret)
doSendMagicEffect({x = snowP.x + 1, y = snowP.y, z = snowP.z}, 206)
elseif spell == "Slash" then
doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, min, -max, 159)
elseif spell == "X-Scissor" then
local a = getThingPosWithDebug(cid)
local
{{x =
{{x =
{{x =
{{x =
}

X = {
a.x+1,
a.x+2,
a.x+1,
a.x, y

y
y
y
=

= a.y, z
= a.y+1,
= a.y+2,
a.y+1, z

=
z
z
=

a.z}, 16}, --norte


= a.z}, 221}, --leste
= a.z}, 223}, --sul
a.z}, 243}, --oeste

local pos = X[mydir+1]


for b = 1, 3 do
addEvent(doSendMagicEffect, b * 70, pos[1], pos[2])
end
doMoveInArea2(cid, 2, xScissor, BUGDAMAGE, min, max, spell)
elseif spell == "Psychic" then
doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfArea2, min
, max, 133)
elseif spell == "Pay Day" then
--alterado v1.7
local function doThunderFall(cid, frompos, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local ry = math.abs(frompos.y - pos.y)
doSendDistanceShoot(frompos, getThingPosWithDebug(target), 39)
addEvent(doDanoInTarget, ry * 11, cid, target, NORMALDAMAGE, min
, max, 28) --alterado v1.7
end
local function doThunderUp(cid, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local mps = getThingPosWithDebug(cid)
local xrg = math.floor((pos.x - mps.x) / 2)
local topos = mps
topos.x = topos.x + xrg
local rd = 7
topos.y = topos.y - rd
doSendDistanceShoot(getThingPosWithDebug(cid), topos, 39)
addEvent(doThunderFall, rd * 49, cid, topos, target)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 350, cid, 3644587, -1)
for thnds = 1, 2 do
addEvent(doThunderUp, thnds * 155, cid, target)
end
elseif spell == "Psywave" then
doMoveInArea2(cid, 133, db1, psyDmg, min, max, spell)
elseif spell == "Triple Kick" or spell == "Triple Kick Lee" then
doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0,
-min, -max, 110)
elseif spell == "Karate Chop" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
39)
doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, -min, -max, 113) -

-alterado v1.7
elseif spell == "Ground Chop" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, area2, eff) --alterado v1.6
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, FIGHTINGDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, FIGHTINGDAMAGE, area2, whirl3, -min, -max, 255) --al
terado v1.6
end
end
for a = 0, 4 do
local t = {
[0] = {99, {x=p.x+1, y=p.y-(a+1), z=p.z}, {x=p.x, y=p.y-(a+1), z=p.z}},
--alterado v1.6
[1] = {99, {x=p.x+(a+2), y=p.y+1, z=p.z}, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {99, {x=p.x+1, y=p.y+(a+2), z=p.z}, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {99, {x=p.x-(a+1), y=p.y+1, z=p.z}, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 270*a, cid, t[d][2], t[d][3], t[d][1]) --alterado v1.6
end
elseif spell == "Mega Punch" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 39)
doDanoInTargetWithDelay(cid, target, FIGHTINGDAMAGE, -min, -max, 112) -alterado v1.7
elseif spell == "Tri Flames" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 39
ret.cond = "Silence"
doMoveInArea2(cid, 6, triflames, FIREDAMAGE, min, max, spell, ret)
elseif spell == "War Dog" then
local ret = {}
ret.id = cid
ret.cd = 15
ret.eff = 28
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Hypnosis" then

local ret = {}
ret.id = target
ret.cd = math.random(6, 9)
ret.check = getPlayerStorageValue(target, conds["Sleep"])
ret.first = true
ret.cond = "Sleep"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
24)
addEvent(doMoveDano2, 150, cid, target, PSYCHICDAMAGE, 0, 0, ret, spell)
elseif spell == "Dizzy Punch" then
local rounds = getPokemonLevel(cid) / 12
rounds = rounds + 2
local ret = {}
ret.id = target
ret.check = getPlayerStorageValue(target, conds["Confusion"])
ret.cd = rounds
ret.cond = "Confusion"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
26)
doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0, -min,
-max, 112)
addEvent(doMoveDano2, 50, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Ice Punch" then
local ret = {}
ret.id = target
ret.cd = 9
ret.eff = 43
ret.check = getPlayerStorageValue(target, conds["Slow"])
ret.first = true
ret.cond = "Slow"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
28)
doSendMagicEffect(getThingPosWithDebug(target), 112)
doDanoWithProtectWithDelay(cid, target, ICEDAMAGE, min, max, 43)
addEvent(doMoveDano2, 50, cid, target, ICEDAMAGE, 0, 0, ret, spell)
elseif spell == "Ice Beam" then
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {97, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {96, {x=p.x+6, y=p.y+1, z=p.z}},
[2] = {97, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {96, {x=p.x-1, y=p.y+1, z=p.z}},
}
local ret = {}
ret.id = 0
ret.cd = 9

ret.eff = 43
ret.check = 0
ret.first = true
ret.cond = "Slow"
doMoveInArea2(cid, 0, triplo6, ICEDAMAGE, min, max, spell, ret)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Psy Pulse" or spell == "Cyber Pulse" or spell == "Dark Pulse" t
hen
damage = skill == "Dark Pulse" and DARKDAMAGE or psyDmg
local function doPulse(cid, eff)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
3)
doDanoInTargetWithDelay(cid, target, damage, min, max, eff)
--alterado v
1.7
end
if spell == "Cyber Pulse" then
eff = 11
elseif spell == "Dark Pulse" then
eff = 222 --efeito n eh esse mas... ;p
else
eff = 133
end
addEvent(doPulse, 0, cid, eff)
addEvent(doPulse, 250, cid, eff)
elseif spell == "Psyusion" then
local rounds = math.random(4, 7)
rounds = rounds + math.floor(getPokemonLevel(cid) / 35)
local eff = {136, 133, 136, 133, 137}
local area = {psy1, psy2, psy3, psy4, psy5}
local ret = {}
ret.id = 0
ret.check = 0
ret.cd = rounds
ret.cond = "Confusion"
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 4*400, cid, 3644587, -1)
for i = 0, 4 do
addEvent(doMoveInArea2, i*400, cid, eff[i+1], area[i+1], psyDmg, min,
max, spell, ret)
end
elseif spell == "Triple Punch" then
doDanoWithProtect(cid, FIGHTINGDAMAGE, getThingPosWithDebug(target), 0,
-min, -max, 110)
elseif spell == "Fist Machine" then

local mpos = getThingPosWithDebug(cid)


local b = isCreature(target) and getCreatureDirectionToTarget(cid, targe
t) or getCreatureLookDir(cid)
local effect = 0
local xvar = 0
local yvar = 0
if b == SOUTH then
effect = 218
yvar = 2
elseif b == NORTH then
effect = 217
elseif b == WEST then
effect = 216
elseif b == EAST then
effect = 215
xvar = 2
end
mpos.x = mpos.x + xvar
mpos.y = mpos.y + yvar
doSendMagicEffect(mpos, effect)
doMoveInArea2(cid, 0, machine, FIGHTINGDAMAGE, min, max, spell)
elseif spell == "Destroyer Hand" then
doMoveInAreaMulti(cid, 26, 111, bullet, bulletDano, FIGHTINGDAMAGE, min,
max)
elseif spell == "Rock Throw" then
local effD = getSubName(cid, target) == "Shiny Onix" and 0 or 11
local eff = getSubName(cid, target) == "Shiny Onix" and 176 or 44 --alterado v1
.6.1
local eff = getSubName(cid, target) == "Crystal Steelix" and 176 or 44
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), effD)
doDanoInTargetWithDelay(cid, target, ROCKDAMAGE, min, max, eff) --altera
do v1.7
elseif spell == "Rock Slide" or spell == "Stone Edge" then
atk = {
["Rock Slide"] = {11, 44, 0, 176},
["Stone Edge"] = {11, 239}
}
local effD = getSubName(cid, target) == "Shiny Onix" and atk[spell][3] or atk[sp
ell][1]
local eff = getSubName(cid, target) == "Shiny Onix" and atk[spell][4] or atk[spe
ll][2]
local eff = getSubName(cid, target) == "Crystal Steelix" and atk[spell][5] or at
k[spell][3] --alterado v1.6.1
--alterado v1.7
local function doRockFall(cid, frompos, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end

local pos = getThingPosWithDebug(target)


local ry = math.abs(frompos.y - pos.y)
doSendDistanceShoot(frompos, getThingPosWithDebug(target), effD)
addEvent(doDanoInTarget, ry * 11, cid, target, ROCKDAMAGE, min,
max, eff) --alterado v1.7
end
local function doRockUp(cid, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local mps = getThingPosWithDebug(cid)
local xrg = math.floor((pos.x - mps.x) / 2)
local topos = mps
topos.x = topos.x + xrg
local rd = 7
topos.y = topos.y - rd
doSendDistanceShoot(getThingPosWithDebug(cid), topos, effD)
addEvent(doRockFall, rd * 49, cid, topos, target)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 350, cid, 3644587, -1)
for thnds = 1, 2 do
addEvent(doRockUp, thnds * 155, cid, target)
end
elseif spell == "Falling Rocks" then
local effD = getSubName(cid, target) == "Shiny Onix" and 0 or 11
local eff = getSubName(cid, target) == "Shiny Onix" and 176 or 44
local eff = getSubName(cid, target) == "Crystal Steelix" and 176 or 44
local master = isSummon(cid) and getCreatureMaster(cid) or cid
-----------local function doFall(cid)
for rocks = 1, 62 do
addEvent(fall, rocks*35, cid, master, ROCKDAMAGE, effD, eff)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, effD)
end
addEvent(doFall, 450, cid)
addEvent(doDanoWithProtect, 1400, cid, ROCKDAMAGE, getThingPosWithDebug(cid), wa
terarea, -min, -max, 0)
elseif spell == "Selfdestruct" then
local function death(cid)
if isCreature(cid) then
if pokeHaveReflect(cid) then return true end

--alt

erado v1.6
doCreatureAddHealth(cid, -getCreatureMaxHealth(cid))
end
end
doMoveInArea2(cid, 5, selfArea1, NORMALDAMAGE, min, max, spell)

--alt

erado v1.6
addEvent(death, 300, cid)
elseif spell == "Crusher Stomp" then
local pL = getThingPosWithDebug(cid)
pL.x = pL.x+5
pL.y = pL.y+1
----------------local pO = getThingPosWithDebug(cid)
pO.x = pO.x-3
pO.y = pO.y+1
-----------------local pN = getThingPosWithDebug(cid)
pN.x = pN.x+1
pN.y = pN.y+5
----------------local pS = getThingPosWithDebug(cid)
pS.x = pS.x+1
pS.y = pS.y-3
local po = {pL, pO, pN, pS}
local po2 = {
{x = pL.x, y = pL.y-1, z = pL.z},
{x = pO.x, y = pO.y-1, z = pO.z},
{x = pN.x-1, y = pN.y, z = pN.z},
{x = pS.x-1, y = pS.y, z = pS.z},
}
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 34
ret.spell = spell
ret.cond = "Stun"
for i = 1, 4 do
doSendMagicEffect(po[i], 127)
doAreaCombatHealth(cid, GROUNDDAMAGE, po2[i], crusher, -min, -max, 255)
end
doMoveInArea2(cid, 118, stomp, GROUNDDAMAGE, min, max, spell, ret)
elseif spell == "Water Pulse" then
doDanoWithProtect(cid, WATERDAMAGE, getThingPosWithDebug(cid), selfArea2
, min, max, 155)
elseif spell == "Sonicboom" then
local function doBoom(cid)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
33)
doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterado
v1.7
end
addEvent(doBoom, 0, cid)
addEvent(doBoom, 250, cid)

elseif spell == "Stickmerang" then


doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
34)
doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, min, max, 212) --alterado
v1.7
elseif spell == "Stickslash" then
local function sendStickEff(cid, dir)
if not isCreature(cid) then return true end
doAreaCombatHealth(cid, FLYINGDAMAGE, getPosByDir(getThingPosWithDebug(ci
d), dir), 0, -min, -max, 212)
end
local function doStick(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTHWEST,
[2] = SOUTH,
[3] = SOUTHEAST,
[4] = EAST,
[5] = NORTHEAST,
[6] = NORTH,
[7] = NORTHWEST,
[8] = WEST,
[9] = SOUTHWEST,
}
for a = 1, 9 do
addEvent(sendStickEff, a * 140, cid, t[a])
end
end
doStick(cid, false, cid)
elseif spell == "Stick Throw" then
local area = {Throw01, Throw02, Throw03, Throw04, Throw03, Throw02, Throw01}
for i = 0, 6 do
addEvent(doMoveInArea2, i*400, cid, 212, area[i+1], FLYINGDAMAGE, min, max,
spell)
end
elseif spell == "Cannon Ball" then
local area = {Throw01, Throw02, Throw03, Throw04, Throw03, Throw02, Throw01}
for i = 0, 6 do
addEvent(doMoveInArea2, i*400, cid, 100, area[i+1], GROUNDDAMAGE, min, max,
spell)
end
elseif spell == "Pluck" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
39)
doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, min, max, 111) --alterado

v1.7
elseif spell == "Tri-Attack" then
--alterado v1.7
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 600, cid, 3644587, -1)
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
42) --alterado v1.6
for i = 0, 2 do
addEvent(doDanoInTargetWithDelay, i*300, cid, target, NORMALDAMAGE, min,
max, 238)
--alterado v1.7
end
elseif spell == "Fury Attack" then
--alterado v1.7
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 600, cid, 3644587, -1)
for i = 0, 2 do
addEvent(doDanoInTargetWithDelay, i*300, cid, target, NORMALDAMAGE, min,
max, 110)
--alterado v1.7
end
elseif spell == "Ice Shards" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
28)
doDanoInTargetWithDelay(cid, target, ICEDAMAGE, min, max, 43) --alterado v1
.7
elseif spell == "Icy Wind" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 43
ret.check = 0
ret.first = true
ret.cond = "Slow"
doMoveInArea2(cid, 17, db1, ICEDAMAGE, min, max, spell, ret)
elseif spell == "Aurora Beam" then
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {186, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {57, {x=p.x+6, y=p.y+1, z=p.z}}, --alterado v1.6
[2] = {186, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {57, {x=p.x-1, y=p.y+1, z=p.z}}, --alterado v1.6
}
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 43
ret.check = 0

ret.first = true
ret.cond = "Slow"
doMoveInArea2(cid, 0, triplo6, ICEDAMAGE, min, max, spell, ret)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Rest" then
local ret = {}
ret.id = cid
ret.cd = 6
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Sludge" then
--alterado v1.7
local function doSludgeFall(cid, frompos, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local ry = math.abs(frompos.y - pos.y)
doSendDistanceShoot(frompos, getThingPosWithDebug(target), 6)
addEvent(doDanoInTargetWithDelay, ry * 11, cid, target, POISONDA
MAGE, min, max, 116) --alterado v1.7
end
local function doSludgeUp(cid, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local mps = getThingPosWithDebug(cid)
local xrg = math.floor((pos.x - mps.x) / 2)
local topos = mps
topos.x = topos.x + xrg
local rd = 7
topos.y = topos.y - rd
doSendDistanceShoot(getThingPosWithDebug(cid), topos, 6)
addEvent(doSludgeFall, rd * 49, cid, topos, target)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 350, cid, 3644587, -1)
for thnds = 1, 2 do
addEvent(doSludgeUp, thnds * 155, cid, target)
end
--alterado v1.5
elseif spell == "Mud Bomb" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
6) --alterado v1.8
doDanoWithProtectWithDelay(cid, target, MUDBOMBDAMAGE, min, max, 116, bombWee
2)
elseif spell == "Mortal Gas" then

local pos = getThingPosWithDebug(cid)


local function doSendAcid(cid, pos)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 14)
doSendMagicEffect(pos, 114)
end
for b = 1, 3 do
for a = 1, 20 do
local lugar = {x = pos.x + math.random(-4, 4), y = pos.y
+ math.random(-3, 3), z = pos.z}
addEvent(doSendAcid, a * 75, cid, lugar)
end
end
doDanoWithProtect(cid, POISONDAMAGE, pos, waterarea, -min, -max, 0)
elseif spell == "Rock Drill" or spell == "Megahorn" or spell == "Rock Blast" the
n
local damage = spell == "Megahorn" and BUGDAMAGE or ROCKDAMAGE
local eff = spell == "Megahorn" and 8 or 44
local effD = spell == "Rock Blast" and 11 or 25
--cid, effDist, effDano, areaEff, areaDano, element, min, max
doMoveInAreaMulti(cid, effD, eff, bullet, bulletDano, damage, min, max)
elseif spell == "Egg Bomb" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 12)
doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 5, crush
er)
elseif spell == "Super Vines" then
stopNow(cid, 200)
--alterado v1.6
doCreatureSetLookDir(cid, 2)
local
local
pos.x
pos.y

effect = 0
pos = getThingPosWithDebug(cid)
= pos.x + 1
= pos.y + 1

local effect = getSubName(cid, target) == "Tangela" and 213 or 229 --altera


do v1.6.1
doSendMagicEffect(pos, effect)
doDanoWithProtect(cid, GRASSDAMAGE, getThingPosWithDebug(cid), splash, min, -max, 0)
elseif spell == "Epicenter" then
doMoveInArea2(cid, 127, epicenter, GROUNDDAMAGE, min, max, spell)
elseif spell == "Bubblebeam" then
local function sendBubbles(cid)
if not isCreature(cid) or not isCreature(target) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
2)

doDanoInTargetWithDelay(cid, target, WATERDAMAGE, min, max, 68) --alterado v


1.7
end
sendBubbles(cid)
addEvent(sendBubbles, 250, cid)
elseif spell == "Swift" then
local function sendSwift(cid, target)
if not isCreature(cid) or not isCreature(target) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
32)
doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 3) --alterado
v1.7
end
addEvent(sendSwift, 100, cid, target)
addEvent(sendSwift, 200, cid, target)
elseif spell == "Spark" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
32)
doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48)
ado v1.7

--alter

elseif spell == "Mimic Wall" then


local p = getThingPosWithDebug(cid)
local dirr = getCreatureLookDir(cid)
if dirr == 0 or dirr == 2 then
item = 11439
else
item = 11440
end
local wall = {
[0] = {{x = p.x, y = p.y-1,
1, y = p.y-1, z = p.z}},
[2] = {{x = p.x, y = p.y+1,
1, y = p.y+1, z = p.z}},
[1] = {{x = p.x+1, y = p.y,
1, y = p.y-1, z = p.z}},
[3] = {{x = p.x-1, y = p.y,
1, y = p.y-1, z = p.z}},
}

z = p.z}, {x = p.x+1, y = p.y-1, z = p.z}, {x = p.xz = p.z}, {x = p.x+1, y = p.y+1, z = p.z}, {x = p.xz = p.z}, {x = p.x+1, y = p.y+1, z = p.z}, {x = p.x+
z = p.z}, {x = p.x-1, y = p.y+1, z = p.z}, {x = p.x-

function removeAllActionIDs(pos, onlyOne)


if onlyOne then
local thing1 = {x=pos.x,y=pos.y,z=pos.z,stackpos=0}
local tile1 = getTileThingWithProtect(thing1).uid
doSetItemActionId(tile1, 0)
end
n = 0
for i = 1, #pos do
n = n + 1
thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=0}

local tile = getTileThingWithProtect(thing).uid


doSetItemActionId(tile, 0)
end
end
for i = 1, 3 do
if wall[dirr] then
local t = wall[dirr]
if hasTile(t[i]) and canWalkOnPos2(t[i], true, true, true, true, false) t
hen --alterado v1.6
doCreateItem(item, 1, t[i])
-local Tile = getTileThingWithProtect({x=t[i].x,y=t[i].y,z=t[i].z,stack
pos=0})
doSetItemActionId(Tile.uid, 88072)
addEvent(removeAllActionIDs, 15000, t[i], true)
-addEvent(doRemoveItemFromPos, 15000, t[i], item, 1)
end
end
end
local pos = getPosfromArea(cid, wall_1)
local pos2 = getPosfromArea(cid, wall_2)
if hasTile({x=p.x,y=p.y,z=p.z,stackpos=0}) then
tile0 = getTileThingWithProtect({x=p.x,y=p.y,z=p.z,stackpos=0}).uid
end
doSetItemActionId(tile0, 88070)
addEvent(removeAllActionIDs, 15000, p, true)
n = 0
while n < #pos do
if not isCreature(cid) then return true end
n = n+1
local tile1 = getTileThingWithProtect({x=pos[n].x,y=pos[n].y,z=pos[n].z,st
ackpos=0}).uid
--local tile2 = getTileThingWithProtect({x=pos2[n].x,y=pos2[n].y,z=pos2[n].z
,stackpos=0}).uid
doSetItemActionId(tile1, 88071)
doSetItemActionId(tile2, 88070)
end
addEvent(removeAllActionIDs, 15000, pos)
addEvent(removeAllActionIDs, 15000, pos2)
elseif spell == "Shredder Team" then
local team = {
["Scyther"] = "ScytherTeam",
["Shiny Scyther"] = "Shiny ScytherTeam",
["Scizor"] = "ScizorTeam",
["Shiny Scizor"] = "Shiny ScizorTeam",
["Mega Mawile"] = "Mega MawileTeam",
}

--alterado v1.8 \/

local function RemoveTeam(cid)


if isCreature(cid) then
doSendMagicEffect(getThingPosWithDebug(cid), 211)
doRemoveCreature(cid)
end
end
local function sendEff(cid, master, t)
if isCreature(cid) and isCreature(master) and t > 0 and #getCreatureSummons(mast
er) >= 2 then
doSendMagicEffect(getThingPosWithDebug(cid), 86, master)
addEvent(sendEff, 1000, cid, master, t-1)
--alterado v
1.9
end
end
if getPlayerStorageValue(cid, 637500) >= 1 then
return true
end
local
local
local
local
local
local

master = getCreatureMaster(cid)
item = getPlayerSlotItem(master, 8)
life, maxLife = getCreatureHealth(cid), getCreatureMaxHealth(cid)
name = getItemAttribute(item.uid, "poke")
pos = getThingPosWithDebug(cid)
time = 21

doItemSetAttribute(item.uid, "hp", (life/maxLife))


local num = isInArray({"Scizor", "Shiny Scizor", "Mega Mawile"}, getSubName(cid,
target)) and 4 or 3
local pk = {}
doTeleportThing(cid, {x=4, y=3, z=10}, false)
if team[name] then
pk[1] = cid
for b = 2, num do
pk[b] = doSummonCreature(team[name], pos)
doConvinceCreature(master, pk[b])
end
for a = 1, num do
addEvent(doTeleportThing, math.random(0, 5), pk[a], getClosestFreeTile(pk[
a], pos), false)
addEvent(doAdjustWithDelay, 5, master, pk[a], true, true, true)
doSendMagicEffect(getThingPosWithDebug(pk[a]), 211)
end
sendEff(cid, master, time)
--alterado v1.9
setPlayerStorageValue(master, 637501, 1)
addEvent(setPlayerStorageValue, time * 1000, master, 637501, -2)
----setPlayerStorageValue(pk[2], 637500, 1)
addEvent(RemoveTeam, time * 1000, pk[2])
----setPlayerStorageValue(pk[3], 637500, 1)
addEvent(RemoveTeam, time * 1000, pk[3])
---if isInArray({"Scizor", "Shiny Scizor", "Mega Mawile"}, getSubName(cid, targe
t)) then

setPlayerStorageValue(pk[4], 637500, 1)
addEvent(RemoveTeam, time * 1000, pk[4])
end
end
elseif spell == "Team Slice" or spell == "Team Claw" then
local master = getCreatureMaster(cid)
if #getCreatureSummons(master) < 2 or not isCreature(target) then return true en
d
local summons = getCreatureSummons(master)
local posis = {[1] = pos1, [2] = pos2, [3] = pos3, [4] = pos4}
if getSubName(cid, target) == "Scyther" then --alterado v1.6.1
eff = 29
elseif getSubName(cid, target) == "Shiny Scyther" then --alterado v1.6.1
eff = 29
elseif getSubName(cid, target) == "Shiny Scizor" then --editado por Evary
eff = 19
else
eff = 42 --alterado v1.5
end
if #getCreatureSummons(master) >= 2 and isCreature(target) then
if isCreature(cid) then
addEvent(doDanoInTarget, 500, cid, target, BUGDAMAGE, -min, -max, 0) -alterado v1.7
for i = 1, #summons do
posis[i] = getThingPosWithDebug(summons[i])
doDisapear(summons[i])
stopNow(summons[i], 670)
addEvent(doSendMagicEffect, 300, posis[i], 211)
addEvent(doSendDistanceShoot, 350, posis[i], getThingPosWithDebug(t
arget), eff)
addEvent(doSendDistanceShoot, 450, getThingPosWithDebug(target), po
sis[i], eff)
addEvent(doSendDistanceShoot, 600, posis[i], getThingPosWithDebug(t
arget), eff)
addEvent(doSendDistanceShoot, 650, getThingPosWithDebug(target), po
sis[i], eff)
addEvent(doAppear, 670, summons[i])
end
end
end
elseif spell == "Blizzard" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 43
ret.check = 0
ret.first = true
ret.cond = "Slow"
local function doFall(cid)
for rocks = 1, 42 do

addEvent(fall, rocks*35, cid, master, ICEDAMAGE, 28, 52)


end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 28)
end
--alterado v1.4
addEvent(doFall, 450, cid)
addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, ICEDAMAGE, min, max, spell, ret)
elseif spell == "Meteor Mash" then
local pL = getThingPosWithDebug(cid)
pL.x = pL.x+5
pL.y = pL.y+1
----------------local pO = getThingPosWithDebug(cid)
pO.x = pO.x-3
pO.y = pO.y+1
-----------------local pN = getThingPosWithDebug(cid)
pN.x = pN.x+1
pN.y = pN.y+5
----------------local pS = getThingPosWithDebug(cid)
pS.x = pS.x+1
pS.y = pS.y-3
local po = {pL, pO, pN, pS}
local po2 = {
{x = pL.x, y = pL.y-1, z = pL.z},
{x = pO.x, y = pO.y-1, z = pO.z},
{x = pN.x-1, y = pN.y, z = pN.z},
{x = pS.x-1, y = pS.y, z = pS.z},
}
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 0
ret.spell = spell
ret.cond = "Slow"
for i = 1, 4 do
doSendMagicEffect(po[i], 77)
doAreaCombatHealth(cid, STEELDAMAGE, po2[i], crusher, -min, -max, 255)
end
doMoveInArea2(cid, 77, AREA_CROSS6X6, STEELDAMAGE, min, max, spell, ret)
elseif spell == "Metal Burst" then
local ret = {}
ret.id = 0
ret.cd = 2
ret.check = 0
ret.eff = 0
ret.spell = spell

ret.cond = "Paralyze"
local function doPulse(cid, eff)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
9)
doDanoInTargetWithDelay(cid, target, STEELDAMAGE, min, max, 77)
--altera
do pokemon TES
end
addEvent(doPulse, 0, cid, 77)
addEvent(doPulse, 2000, cid, 77)
addEvent(doPulse, 4000, cid, 77)
addEvent(doPulse, 6000, cid, 77)
addEvent(doPulse, 8000, cid, 77)
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Tower Pulse" then
local function doPulse(cid, eff)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
3)
doDanoInTargetWithDelay(cid, target, STEELDAMAGE, 3000, 5000, 103)
--alt
erado pokemon TES
end
addEvent(doPulse, 0, cid, 103)
addEvent(doPulse, 50, cid, 103)
addEvent(doPulse, 100, cid, 103)
addEvent(doPulse, 150, cid, 103)
addEvent(doPulse, 200, cid, 103)
addEvent(doPulse, 250, cid, 103)
addEvent(doPulse, 300, cid, 103)
addEvent(doPulse, 350, cid, 103)
addEvent(doPulse, 400, cid, 103)
addEvent(doPulse, 450, cid, 103)
addEvent(doPulse, 500, cid, 103)
addEvent(doPulse, 550, cid, 103)
addEvent(doPulse, 650, cid, 103)
addEvent(doPulse, 700, cid, 103)
elseif spell == "Great Love" then
local master = getCreatureMaster(cid) or 0
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 147
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
for rocks = 1, 62 do
addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 147)
end
addEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, re
t)
elseif spell == "Flare Blitz" then

local effD = 54
local eff = 91
local master = isSummon(cid) and getCreatureMaster(cid) or cid
doSetCreatureOutfit(cid, {lookType = 2135}, 4000)
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 17*600, cid, 3644587, -1)
local function doFall(cid)
for rocks = 5, 42 do
addEvent(fall, rocks*35, cid, master, FIREDAMAGE, effD, eff)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, effD)
end
addEvent(doFall, 450, cid)
addEvent(doDanoWithProtect, 1400, cid, FIREDAMAGE, getThingPosWithDebug(cid), wa
terarea, -min, -max, 0)
elseif spell == "Flare Blitz2" then
local effD = 54
local eff = 91
local master = isSummon(cid) and getCreatureMaster(cid) or cid
doSetCreatureOutfit(cid, {lookType = 2136}, 4000)
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 17*600, cid, 3644587, -1)
local function doFall(cid)
for rocks = 5, 42 do
addEvent(fall, rocks*35, cid, master, FIREDAMAGE, effD, eff)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, effD)
end
addEvent(doFall, 450, cid)
addEvent(doDanoWithProtect, 1400, cid, FIREDAMAGE, getThingPosWithDebug(cid), wa
terarea, -min, -max, 0)
addEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, re
t)
elseif spell == "Fire Punch" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 39)
doSendMagicEffect(getThingPosWithDebug(target), 112)
doDanoInTargetWithDelay(cid, target, FIREDAMAGE, min, max, 35) --alterado v1
.7
elseif spell == "Guillotine" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max
, 146)
elseif spell == "Hyper Beam" then
--if getSubName(cid, target) == "Magmortar" then
--docastspell(cid, "Dual Hyper Beam")

---return true
--end
-------

---if getSubName(cid, target) == "Shiny Magmortar" then


docastspell(cid, "Dual Hyper Beam")
return true
end

local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge


tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {149, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {150, {x=p.x+6, y=p.y+1, z=p.z}},
[2] = {149, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {150, {x=p.x-1, y=p.y+1, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, NORMALDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Dual Hyper Beam" then
local function doDualHyperBeam(cid)
if not isCreature(cid) then return false end
local a = isCreature(target) and getCreatureDirectionToTarget(cid, targe
t) or getCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {149, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {150, {x=p.x+6, y=p.y+1, z=p.z}},
[2] = {149, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {150, {x=p.x-1, y=p.y+1, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, NORMALDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])
return true
end
for i = 0, 1 do
addEvent(doDualHyperBeam, i * 900, cid)
end
--doSetCreatureOutfit(cid, {lookType = 1519}, 1000)
elseif spell == "Signal Beam" then --alterado v1.7 \/
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {262, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {263, {x=p.x+6, y=p.y+1, z=p.z}},
[2] = {264, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {265, {x=p.x-1, y=p.y+1, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, BUGDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])

elseif spell == "Flash Cannon" then --alterado v1.7 \/


local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {260, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {259, {x=p.x+6, y=p.y+1, z=p.z}},
[2] = {260, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {259, {x=p.x-1, y=p.y+1, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, STEELDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Thrash" then
--cid, effDist, effDano, areaEff, areaDano, element, min, max
doMoveInAreaMulti(cid, 10, 111, bullet, bulletDano, NORMALDAMAGE, min, max)
elseif spell == "Splash" or tonumber(spell) == 7 then
doAreaCombatHealth(cid, WATERDAMAGE, getThingPosWithDebug(cid), splash,
-min, -max, 255)
doSendMagicEffect(getThingPosWithDebug(cid), 1)
elseif spell == "Dragon Breath" then
doMoveInArea2(cid, 143, db1, DRAGONDAMAGE, min, max, spell)

elseif spell == "Muddy Water" then


local pos = getThingPosWithDebug(cid)
doMoveInArea2(cid, 55, doSurf1, GROUNDDAMAGE, 0, 0, spell)
addEvent(doDanoWithProtect, math.random(100, 400), cid, GROUNDDAMAGE, pos, doSur
f2, -min, -max, 0)
elseif spell == "Venom Motion" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
doMoveInArea2(cid, 114, muddy, POISONDAMAGE, min, max, spell, ret)
elseif spell == "Thunder Fang" then
doSendMagicEffect(getThingPosWithDebug(target), 146)
doDanoInTargetWithDelay(cid, target, ELECTRICDAMAGE, min, max, 48) --altera
do v1.7

elseif spell == "Zap Cannon" then


local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {73, {x=p.x, y=p.y-1, z=p.z}},
[1] = {74, {x=p.x+6, y=p.y, z=p.z}},
--alterado v1.8
[2] = {74, {x=p.x, y=p.y+6, z=p.z}},
[3] = {73, {x=p.x-1, y=p.y, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, ELECTRICDAMAGE, min, max, spell)
doMoveInArea2(cid, 177, reto6, ELECTRICDAMAGE, 0, 0, "Zap Cannon Eff")
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Charge Beam" then
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {73, {x=p.x, y=p.y-1, z=p.z}},
[1] = {74, {x=p.x+6, y=p.y, z=p.z}},
--alterado v1.8
[2] = {74, {x=p.x, y=p.y+6, z=p.z}},
[3] = {73, {x=p.x-1, y=p.y, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, ELECTRICDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Sacred Fire" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target)
, 3)
)

doDanoWithProtectWithDelay(cid, target, SACREDDAMAGE, min, max, 143, sacred


--alterado v1.6

elseif spell == "Blaze Kick" then


sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebu
g(target), 55)
doDanoInTargetWithDelay(cid, target, DRAGONDAMAGE, min, max, 143) --alterado v1
.7
doSendMagicEffect(getThingPosWithDebug(cid), 211)
local x = getClosestFreeTile(cid, getThingPosWithDebug(target))
doTeleportThing(cid, x, false)
doFaceCreature(cid, getThingPosWithDebug(target))
doAreaCombatHealth(cid, FIREDAMAGE, getThingPosWithDebug(target), 0, -mi
n, -max, 6)
elseif spell == "Cross Chop" then
doMoveInArea2(cid, 118, blaze, FIGHTINGDAMAGE, min, max, spell)
addEvent(doMoveInArea2, 200, cid, 118, kick, FIGHTINGDAMAGE, min, max, spell)
elseif spell == "Overheat" then

doMoveInArea2(cid, 5, reto5, FIREDAMAGE, min, max, spell)


elseif spell == "Ancient Power" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, ROCKDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, ROCKDAMAGE, area, whirl3, -min, -max, 137)
end
end
for a = 0, 4 do
local t = {
[0] = {18, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {18, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {18, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {18, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1])
end

--alterado v1.4

elseif spell == "Twister" then


doMoveInAreaMulti(cid, 28, 42, bullet, bulletDano, DRAGONDAMAGE, min, max)
elseif spell == "Multi-Kick" then
doMoveInAreaMulti(cid, 39, 113, multi, multiDano, FIGHTINGDAMAGE, min, max)
elseif spell == "Multi-Punch" then
doMoveInAreaMulti(cid, 39, 112, multi, multiDano, FIGHTINGDAMAGE, min, max)
elseif spell == "Squisky Licking" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 0
ret.spell = spell
ret.cond = "Stun"
local areas = {SL1, SL2, SL3, SL4}
for i = 0, 3 do
addEvent(doMoveInArea2, i*200, cid, 145, areas[i+1], NORMALDAMAGE, min, max,
spell, ret)
end
elseif spell == "Lick" then
local ret = {}
ret.id = target

ret.cd = 9
ret.check = getPlayerStorageValue(target, conds["Stun"])
ret.eff = 0
ret.spell = spell
ret.cond = "Stun"
doSendMagicEffect(getThingPosWithDebug(target), 145)
--alterado v1.4!
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Bonemerang" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
7)
doDanoInTargetWithDelay(cid, target, GROUNDDAMAGE, min, max, 227) --alterado
v1.7
addEvent(doSendDistanceShoot, 250, getThingPosWithDebug(target), getThingPosW
ithDebug(cid), 7)
elseif spell == "Bone Club" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 7
)
doDanoInTargetWithDelay(cid, target, GROUNDDAMAGE, min, max, 118) --alterado
v1.7
elseif spell == "Bone Slash" then
local function sendStickEff(cid, dir)
if not isCreature(cid) then return true end
doAreaCombatHealth(cid, GROUNDDAMAGE, getPosByDir(getThingPosWithDebug(ci
d), dir), 0, -min, -max, 227)
end
local function doStick(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTHWEST,
[2] = SOUTH,
[3] = SOUTHEAST,
[4] = EAST,
[5] = NORTHEAST,
[6] = NORTH,
[7] = NORTHWEST,
[8] = WEST,
[9] = SOUTHWEST,
}
for a = 1, 9 do
addEvent(sendStickEff, a * 140, cid, t[a])
end
end
doStick(cid, false, cid)
--al
terado v1.4
elseif spell == "Furious Legs" or spell == "Ultimate Champion" or spell == "Figh
ter Spirit" then
local ret = {}
ret.id = cid
ret.cd = 15

ret.eff = 13
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Sludge Wave" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local master = isSummon(cid) and getCreatureMaster(cid) or cid
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, POISONDAMAGE, area, 0, 0, 0, eff)
doAreaCombatHealth(cid, POISONDAMAGE, area, whirl3, -min, -max, 114)
end
end
for a = 0, 4 do
local t = {
[0] = {114, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {114, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {114, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {114, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][1])
end

--alterado v1.4

elseif spell == "Sludge Rain" then


local master = isSummon(cid) and getCreatureMaster(cid) or cid
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
local function doFall(cid)
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, POISONDAMAGE, 6, 116)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 6)

end
addEvent(doFall, 450, cid)
addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, POISONDAMAGE, min, max, spell, r
et)
elseif spell == "Shadow Ball" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
18)
local function doDamageWithDelay(cid, target)
if not isCreature(cid) or not isCreature(target) then return true end
if isSleeping(cid) then return false end
if getPlayerStorageValue(cid, conds["Fear"]) >= 1 then return true end
doAreaCombatHealth(cid, ghostDmg, getThingPosWithDebug(target), 0, -m
in, -max, 255)
local pos = getThingPosWithDebug(target)
pos.x = pos.x + 1
doSendMagicEffect(pos, 140)
end
addEvent(doDamageWithDelay, 100, cid, target)
elseif spell == "Shadow Punch" then
local pos = getThingPosWithDebug(target)
doSendMagicEffect(pos, 112)
local function doPunch(cid, target)
if not isCreature(cid) or not isCreature(target) then re
turn true end
doAreaCombatHealth(cid, ghostDmg, getThingPosWithDebug(ta
rget), 0, -min, -max, 255)
pos.x = pos.x + 1
doSendMagicEffect(pos, 140)
end
addEvent(doPunch, 200, cid, target)
elseif spell == "Brick Beak" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 88
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
ret.id = 0
ret.cd = 9
ret.eff = 88
ret.check = 0
ret.first = true
ret.cond = "Silence"
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)

local
[0] =
[1] =
[2] =
[3] =
}

t = {
{90, {x=p.x+1,
{90, {x=p.x+2,
{90, {x=p.x+1,
{90, {x=p.x-1,

y=p.y-1,
y=p.y+1,
y=p.y+2,
y=p.y+1,

z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}},

doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, min, max, spell, ret)


doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Shadow Storm" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid
local function doFall(cid)
for rocks = 1, 42 do --62
addEvent(fall, rocks*35, cid, master, ghostDmg, 18, 140)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 18)
end
addEvent(doFall, 450, cid)
addEvent(doMoveInArea2, 1400, cid, 2, BigArea2, ghostDmg, min, max, spell)
elseif spell == "Invisible" then
doDisapear(cid)
doSendMagicEffect(getThingPosWithDebug(cid), 134)
if isMonster(cid) then
local pos = getThingPosWithDebug(cid)
doTeleportThing(cid, {x=4, y=3, z=10}, false)
doTeleportThing(cid, pos, false)
end
addEvent(doAppear, 4000, cid)

--alterei!

elseif spell == "Instant Teleportation" then


doDisapear(cid)
doSendMagicEffect(getThingPosWithDebug(cid), 211)
if isMonster(cid) then
local pos = getThingPosWithDebug(cid)
doTeleportThing(cid, {x=4, y=3, z=10}, false)
doTeleportThing(cid, pos, false)
end
addEvent(doAppear, 4000, cid)

--alterei!

elseif spell == "Nightmare" then


if not isSleeping(target) then
doSendMagicEffect(getThingPosWithDebug(target), 3)
doSendAnimatedText(getThingPosWithDebug(target), "FAIL", 155)
return true
end
doDanoWithProtectWithDelay(cid, target, ghostDmg, -min, -max, 138)
elseif spell == "Dream Eater" then

if not isSleeping(target) then


doSendMagicEffect(getThingPosWithDebug(target), 3)
doSendAnimatedText(getThingPosWithDebug(target), "FAIL", 155)
return true
end
--alterado v1.
6
setPlayerStorageValue(cid, 95487, 1)
doSendMagicEffect(getThingPosWithDebug(cid), 132)
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
39)
doDanoWithProtectWithDelay(cid, target, psyDmg, -min, -max, 138)
elseif spell == "Dark Eye" or spell == "Miracle Eye" then
doSendMagicEffect(getThingPosWithDebug(cid), 98)
setPlayerStorageValue(cid, 999457, 1)
elseif spell == "Elemental Hands" then
if getCreatureOutfit(cid).lookType == 1301 then
print("Error occurred with move 'Elemental Hands', outfit of hitmonchan is wrong
")
doPlayerSendTextMessage(getCreatureMaster(cid), MESSAGE_STATUS_CONSOLE_BLUE, "A
error are ocurred... A msg is sent to gamemasters!")
return true
end
--proteao pra n usar o move com o shiny hitmonchan com outfit diferent
e da do elite monchan do PO...
local e = getCreatureMaster(cid)
local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke")
local hands = getItemAttribute(getPlayerSlotItem(e, 8).uid, "hands")
if hands == 4 then
doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hands", 0)
doSendMagicEffect(getThingPosWithDebug(cid), hitmonchans[name][0].eff)
doSetCreatureOutfit(cid, {lookType = hitmonchans[name][0].out}, -1)
else
doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hands", hands+1)
doSendMagicEffect(getThingPosWithDebug(cid), hitmonchans[name][hands+1].e
ff)
doSetCreatureOutfit(cid, {lookType = hitmonchans[name][hands+1].out}, -1)
end
elseif spell == "Crabhammer" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, -max
, 225)
elseif spell == "Ancient Fury" then
local ret = {}
ret.id = cid
ret.cd = 15
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true

doCondition2(ret)
elseif spell == "Divine Punishment" then
local roardirections = {
[NORTH] = {SOUTH},
[SOUTH] = {NORTH},
[WEST] = {EAST},
[EAST] = {WEST}}
local function divineBack(cid)
if not isCreature(cid) then return true end
local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1)
for _,pid in pairs(uid) do
dirrr = getCreatureDirectionToTarget(pid, cid)
delay = getNextStepDelay(pid, 0)
if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canAttackOt
her(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can")
) and pid ~= cid then
setPlayerStorageValue(pid, 654878, 1)
doChangeSpeed(pid, -getCreatureSpeed(pid))
doChangeSpeed(pid, 100)
doPushCreature(pid, roardirections[dirrr][1], 1, 0)
doChangeSpeed(pid, -getCreatureSpeed(pid))
addEvent(setPlayerStorageValue, 6450, pid, 654878, -1)
addEvent(doRegainSpeed, 6450, pid)
elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and #getCr
eatureSummons(pid) <= 0)) and pid ~= cid then
setPlayerStorageValue(pid, 654878, 1)
doChangeSpeed(pid, -getCreatureSpeed(pid))
doChangeSpeed(pid, 100)
doPushCreature(pid, roardirections[dirrr][1], 1, 0)
doChangeSpeed(pid, -getCreatureSpeed(pid))
addEvent(doRegainSpeed, 6450, pid)
addEvent(setPlayerStorageValue, 6450, pid, 654878, -1)
end
end
end
local function doDivine(cid, min, max, spell, rounds, area)
if not isCreature(cid) then return true end
local ret = {}
ret.id = 0
ret.check = 0
ret.cd = rounds
ret.cond = "Confusion"
for i = 1, 9 do
addEvent(doMoveInArea2, i*500, cid, 137, area[i], psyDmg, min, max, spell, r
et)
end
end
local rounds = math.random(9, 12)
local area = {punish1, punish2, punish3, punish1, punish2, punish3, punis
h1, punish2, punish3}
local posi = getThingPosWithDebug(cid)
posi.x = posi.x+1

posi.y = posi.y+1
setPlayerStorageValue(cid, 2365487, 1)
addEvent(setPlayerStorageValue, 6450, cid, 2365487, -1) --alterado v1.4
doDisapear(cid)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSendMagicEffect(posi, 247)
addEvent(doAppear, 6450, cid)
addEvent(doRegainSpeed, 6450, cid)
local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1)
for _,pid in pairs(uid) do
if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canA
ttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) ==
"Can")) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and
#getCreatureSummons(pid) <= 0)) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
end
end
addEvent(divineBack, 2100, cid)
addEvent(doDivine, 2200, cid, min, max, spell, rounds, area)
elseif isInArray({"Psychic Sight", "Future Sight", "Camouflage", "Acid Armor", "
Iron Defense", "Minimize", "Iron Defense2", "Crystal Defense", "Instant Teleport
ation"}, spell) then
local ret = {}
ret.id = cid
ret.cd = 10
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Shadowave" then
doMoveInArea2(cid, 222, db1, DARKDAMAGE, min, max, spell)
elseif spell == "Confuse Ray" then
local rounds = math.random(4, 7)
rounds = rounds + math.floor(getPokemonLevel(cid) / 35)
local ret = {}
ret.id = target
ret.cd = rounds
ret.check = getPlayerStorageValue(target, conds["Confusion"])
ret.cond = "Confusion"
posi = getThingPosWithDebug(target)
posi.y = posi.y+1
--doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(targ
et), 39)
addEvent(doSendMagicEffect, 100, posi, 222)

addEvent(doMoveDano2, 100, cid, target, GHOSTDAMAGE, -min, -max, ret, spell)


elseif spell == "Leaf Blade" then
local a = getThingPosWithDebug(target)
posi = {x = a.x+1, y = a.y+1, z = a.z}
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)
addEvent(doSendMagicEffect, 200, posi, 240)
doDanoWithProtectWithDelay(cid, target, GRASSDAMAGE, -min, -max, 0, LeafBlade)
elseif spell == "Hell Fire" then
local function doDivine(cid, min, max, spell, rounds, area)
if not isCreature(cid) then return true end
for i = 1, 9 do
addEvent(doMoveInArea2, i*500, cid, 6, area[i], FIREDAMAGE, min, max, spell)
addEvent(doMoveInArea2, 1000, cid, 6, electro, FIREDAMAGE, 0, 0, spell)
addEvent(doMoveInArea2, 1000, cid, 15, electro, FIREDAMAGE, 0, 0, spell)
doMoveInArea2(cid, 15, AREA_CROSS6X6, FIREDAMAGE, min, max, spell)
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, ro
ck5}
for i = 0, 8 do
addEvent(doMoveInArea2, i*400, cid, 91, areas[i+1], FIREDAMAGE, min, max, sp
ell)
addEvent(doMoveInArea2, i*410, cid, 30, areas[i+1], FIREDAMAGE, 0, 0, spell)
end
end
end
local rounds = math.random(9, 12)
local area = {punish1, punish2, punish3, punish1, punish2, punish3, punis
h1, punish2, punish3}
local posi = getThingPosWithDebug(cid)
posi.x = posi.x+1
posi.y = posi.y+1
setPlayerStorageValue(cid, 2365487, 1)
addEvent(setPlayerStorageValue, 6450, cid, 2365487, -1) --alterado v1.4
doDisapear(cid)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSendMagicEffect(posi, 244)
addEvent(doAppear, 6450, cid)
addEvent(doRegainSpeed, 6450, cid)
local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1)
for _,pid in pairs(uid) do
if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canA
ttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) ==
"Can")) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and
#getCreatureSummons(pid) <= 0)) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
end
end

addEvent(doDivine, 2200, cid, min, max, spell, rounds, area)


elseif spell == "Flamota" or spell == "Elecball" then
local ret = {}
ret.id = cid
ret.cd = 15
ret.eff = 14
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
pos = getThingPosWithDebug(cid)
pos.x = pos.x+1
pos.y = pos.y+1
atk = {
["Flamota"] = {241, FIREDAMAGE},
["Elecball"] = {171, ELECTRICDAMAGE}
}
stopNow(cid, 1000)
doSendMagicEffect(pos, atk[spell][1])
doMoveInArea2(cid, 0, bombWee1, atk[spell][2], min, max, spell)
elseif spell == "Meteor Smash" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 20)
doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, -min, -max, 242) --alterado v
1.7
elseif spell == "Dazzling Gleam" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 20)
doDanoInTargetWithDelay(cid, target, FAIRYDAMAGE, -min, -max, 242) --alterado v1
.7
elseif spell == "Moon Blast" then
doDanoWithProtect(cid, psyDmg, getThingPosWithDebug(cid), selfArea2, min
, max, 133)
--alterado v2.7
local function doThunderFall(cid, frompos, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local ry = math.abs(frompos.y - pos.y)
doSendDistanceShoot(frompos, getThingPosWithDebug(target), 39)
addEvent(doDanoInTarget, ry * 11, cid, target, NORMALDAMAGE, min
, max, 28) --alterado v2.7
end
local function doThunderUp(cid, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end

local pos = getThingPosWithDebug(target)


local mps = getThingPosWithDebug(cid)
local xrg = math.floor((pos.x - mps.x) / 2)
local topos = mps
topos.x = topos.x + xrg
local rd = 7
topos.y = topos.y - rd
doSendDistanceShoot(getThingPosWithDebug(cid), topos, 39)
addEvent(doThunderFall, rd * 49, cid, topos, target)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 350, cid, 3644587, -1)
for thnds = 1, 2 do
addEvent(doThunderUp, thnds * 155, cid, target)
end
elseif spell == "Draco Meteor" then
local effD = 5
local eff = 248
local master = isSummon(cid) and getCreatureMaster(cid) or cid
local function doFall(cid)
for rocks = 5, 42 do
addEvent(fall, rocks*35, cid, master, DRAGONDAMAGE, effD, eff)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, effD)
end
addEvent(doFall, 450, cid)
addEvent(doDanoWithProtect, 1400, cid, DRAGONDAMAGE, getThingPosWithDebug(cid),
waterarea, -min, -max, 0)
elseif spell == "Dragon Pulse" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, DRAGONDAMAGE, area, pulse2, -min, -max, 255)
end
end
for a = 0, 3 do
local t = {
[0] = {249, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {249, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {249, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {249, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 300*a, cid, t[d][2])
addEvent(doDanoWithProtect, 400*a, cid, DRAGONDAMAGE, t[d][2], pulse2, 0, 0, 177

)
addEvent(doDanoWithProtect, 400*a, cid, DRAGONDAMAGE, t[d][2], pulse1, 0, 0, t[d
][1])
end
elseif spell == "Psy Ball" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
3)
doDanoInTargetWithDelay(cid, target, psyDmg, min, max, 250) --alterado v1.7
elseif spell == "Aura Sphere" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
3)
doDanoInTargetWithDelay(cid, target, psyDmg, min, max, 59) --alterado v1.7
elseif spell == "SmokeScreen" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
local function smoke(cid)
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return fals
e end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true
end
doMoveInArea2(cid, 34, confusion, NORMALDAMAGE, 0, 0, spell, ret)
end
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 1000, cid, 3644587, -1)
for i = 0, 2 do
addEvent(smoke, i*500, cid)
end
elseif spell == "Faint Attack" or spell == "Sucker Punch" then --alterado v1.5
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
39)
doDanoInTargetWithDelay(cid, target, DARKDAMAGE, min, max, 237) --alterado v
1.7
elseif spell == "Assurance" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area1, area2, eff)
if isCreature(cid) then
if not isSightClear(p, area1, false) then return true end
if not isSightClear(p, area2, false) then return true end

doAreaCombatHealth(cid, DARKDAMAGE, area1, 0, 0, 0, eff)


doAreaCombatHealth(cid, DARKDAMAGE, area2, whirl3, -min, -max, 0)
end
end
for a = 0, 3 do
local t = {
[0] = {230, {x=p.x+1, y=p.y-(a+1), z=p.z}, {x=p.x, y=p.y-(a+1),
[1] = {226, {x=p.x+(a+2), y=p.y+1, z=p.z}, {x=p.x+(a+1), y=p.y,
[2] = {235, {x=p.x+1, y=p.y+(a+1), z=p.z}, {x=p.x, y=p.y+(a+1),
[3] = {231, {x=p.x-(a+1), y=p.y+1, z=p.z}, {x=p.x-(a+1), y=p.y,
}
addEvent(sendAtk, 300*a, cid, t[d][2], t[d][3], t[d][1])
end

z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}}

elseif spell == "Scary Face" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 0
ret.spell = spell
ret.cond = "Stun"
local p = getThingPosWithDebug(cid)
doSendMagicEffect({x=p.x+1, y=p.y+1, z=p.z}, 228)
doMoveInArea2(cid, 0, electro, NORMALDAMAGE, 0, 0, spell, ret)
elseif spell == "Surf" then
local pos = getThingPosWithDebug(cid)
doMoveInArea2(cid, 246, doSurf1, WATERDAMAGE, 0, 0, spell)
addEvent(doDanoWithProtect, math.random(100, 400), cid, WATERDAMAGE, pos, doSurf
2, -min, -max, 0)
elseif spell == "Sunny Day" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 39
ret.cond = "Silence"
---local p = getThingPosWithDebug(cid)
doSendMagicEffect({x=p.x+1, y=p.y, z=p.z}, 181)
--if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
setPlayerStorageValue(cid, 253, 1) --focus
doMoveInArea2(cid, 0, electro, NORMALDAMAGE, 0, 0, spell, ret)
elseif spell == "Taunt" then

local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 136
ret.cond = "Silence"
---local p = getThingPosWithDebug(cid)
doSendMagicEffect({x=p.x+1, y=p.y, z=p.z}, 140)
--if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
setPlayerStorageValue(cid, 253, 1) --focus
doMoveInArea2(cid, 0, electro, NORMALDAMAGE, 0, 0, spell, ret)

elseif isInArray({"Pursuit", "ExtremeSpeed", "U-Turn", "Shell Attack"}, spell) t


hen
local atk = {
["Pursuit"] = {17, DARKDAMAGE},
["ExtremeSpeed"] = {50, NORMALDAMAGE, 51},
["U-Turn"] = {19, BUGDAMAGE},
["Shell Attack"] = {45, BUGDAMAGE}
--alterado v1.5
}
local pos = getThingPosWithDebug(cid)
local p = getThingPosWithDebug(target)
local newPos = getClosestFreeTile(target, p)
local eff = getSubName(cid, target) == "Shiny Arcanine" and atk[spell][3] or atk
[spell][1] --alterado v1.6.1
local damage = atk[spell][2]
----------doDisapear(cid)
doChangeSpeed(cid, -getCreatureSpeed(cid))
----------addEvent(doSendMagicEffect, 300, pos, 211)
addEvent(doSendDistanceShoot, 400, pos, p,
addEvent(doSendDistanceShoot, 400, newPos,
addEvent(doDanoInTarget, 400, cid, target,
7
addEvent(doSendDistanceShoot, 800, p, pos,
addEvent(doSendMagicEffect, 850, pos, 211)
addEvent(doRegainSpeed, 1000, cid)
addEvent(doAppear, 1000, cid)

eff)
p, eff)
damage, -min, -max, 0) --alterado v1.
eff)

elseif spell == "Egg Rain" then


local effD = 12
local eff = 5
local master = isSummon(cid) and getCreatureMaster(cid) or cid
------------

local function doFall(cid)


for rocks = 1, 62 do
addEvent(fall, rocks*35, cid, master, ROCKDAMAGE, effD, eff)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, effD)
end
addEvent(doFall, 450, cid)
addEvent(doDanoWithProtect, 1400, cid, NORMALDAMAGE, getThingPosWithDebug(cid),
waterarea, -min, -max, 0)
elseif spell == "Stampade" then
local master = getCreatureMaster(cid) or 0
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 187)
end
addEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, re
t)
elseif spell == "Stampage" then
local master = getCreatureMaster(cid) or 0
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, NORMALDAMAGE, -1, 194)
end
addEvent(doMoveInArea2, 500, cid, 0, BigArea2, NORMALDAMAGE, min, max, spell, re
t)
elseif spell == "Barrier" then
if not isCreature(getCreatureTarget(cid)) then
local function sendAtk(cid)
if not isCreature(cid) then return true end
setPlayerStorageValue(cid, 9658783, -1)
setPlayerStorageValue(cid, 734276, -1)
end
setPlayerStorageValue(cid, 734276, 1)
setPlayerStorageValue(cid, 9658783, 1)
pos = getThingPosWithDebug(cid)

local function doSendEff(cid)


if not isCreature(cid) then return true end
doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 172)
end
for i = 0, 7 do
addEvent(doSendEff, i*1000, cid)
end
addEvent(sendAtk, 8000, cid)
stopNow(cid, 8 * 800)
else
local ret = {}
ret.id = target
ret.cd = 10
ret.check = getPlayerStorageValue(target, conds["Sleep"])
ret.eff = 0
ret.cond = "Sleep"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 24)
pos = getThingPosWithDebug(target)
addEvent(doMoveDano2, 150, cid, target, PSYCHICDAMAGE, 0, 0, ret, spell)
local function doSendEff(cid)
if not isCreature(cid) then return true end
doSendMagicEffect({x = pos.x + 1, y = pos.y + 1, z = pos.z}, 172)
end
for i = 0, 7 do
addEvent(doSendEff, i*1000, cid)
end
stopNow(target, 8 * 800)
end
elseif spell == "Air Cutter" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, FLYINGDAMAGE, area, whirl3, -min, -max, 255)
end
end
for a = 0, 5 do
local t = {
[0] = {128, {x=p.x, y=p.y-(a+1), z=p.z}, {x=p.x+1, y=p.y-(a+1),
[1] = {129, {x=p.x+(a+1), y=p.y, z=p.z}, {x=p.x+(a+2), y=p.y+1,
[2] = {131, {x=p.x, y=p.y+(a+1), z=p.z}, {x=p.x+1, y=p.y+(a+2),
[3] = {130, {x=p.x-(a+1), y=p.y, z=p.z}, {x=p.x-(a+1), y=p.y+1,
}
addEvent(doSendMagicEffect, 300*a, t[d][3], t[d][1])
addEvent(sendAtk, 300*a, cid, t[d][2])
end
elseif spell == "Venom Gale" then
local area = {gale1, gale2, gale3, gale4, gale3, gale2, gale1}
for i = 0, 6 do

z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}}

addEvent(doMoveInArea2, i*400, cid, 138, area[i+1], POISONDAMAGE, min, max,


spell)
end
elseif spell == "Crunch" then
doMoveInArea2(cid, 146, Crunch1, DARKDAMAGE, min, max, spell)
addEvent(doMoveInArea2, 300, cid, 146, Crunch2, DARKDAMAGE, min, max, spell)
elseif spell == "Ice Fang" then
doTargetCombatHealth(cid, target, ICEDAMAGE, 0, 0, 146)
addEvent(doDanoWithProtect, 250, cid, ICEDAMAGE, getThingPosWithDebug(target), 0
, -min, -max, 17)
elseif spell == "Psyshock" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area, eff)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, psyDmg, area, 0, 0, 0, eff)
--alterado v1.4
doAreaCombatHealth(cid, psyDmg, area, whirl3, -min, -max, 255)
--alterado
v1.4
end
end
for a = 0, 4 do
local t = {
[0] = {250, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {250, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {250, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {250, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 370*a, cid, t[d][2], t[d][1])
end

--alterado v1.4

elseif spell == "Hurricane" then


local function hurricane(cid)
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return false end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1
then return true end
doMoveInArea2(cid, 42, bombWee1, FLYINGDAMAGE, min, max, spel
l)
end
doSetCreatureOutfit(cid, {lookType = 1398}, 10000)
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 17*600, cid, 3644587, -1)
for i = 1, 17 do
addEvent(hurricane, i*600, cid)

--alterado v1

.4
end

elseif spell == "Air Vortex" then


local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 10
ret.eff = 103
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 10
ret2.check = 0
ret2.eff = 103
ret2.cond = "Silence"
local config = {
outfit = 1661,
--Outfit.
time = {10
, 500},
--{Durao da spell, intervalo entre cada
"tick" de dano (em milsimos de segundos)},
storage = 93828,
effects = {
pullEffects = {
distance = 167,
--Distance effect do efeito de puxar pokmons.
effect = 42,
--Efeito de tornado.
},
damageEffect = 42,
--Efeito do redemoinho que aplica dano.
},
}
local time = os.time() + config.time[1]
function Pull(cid, ret)
local pos = getPosfromArea(cid, pullArea)
if pos and #pos > 0 then
for i = 1, #pos do
local c = getTopCreature(pos[i]).uid
if c > 0 then
legendarios = { "Blue Tower 1", "Blue Tower 2",
"Blue Tower 3", "Red Tower 1", "Red Tower 2", "Red Tower 3", "Entei", "Moltres",
"Zapdos", "Articuno", "Celebi"}
if ehMonstro(c) and not isInArray(legendarios, getCreatureNa
me(c))then
doTeleportThing(c, getClosestFreeTile(cid, getThingPos(c
id)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret2, spell)
elseif isSummon(c) then
local master = getCreatureMaster(c)
if isSummon(cid) then
if getPlayerStorageValue(master, 52480) >= 1 and get
PlayerStorageValue(master, 52481) >= 0 then
local masterCid = getCreatureMaster(cid)
if isDuelingAgainst(masterCid, master) then
doTeleportThing(c, getClosestFreeTile(cid, g
etThingPos(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret,

spell)
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret2
, spell)
end
end
else
doTeleportThing(c, getClosestFreeTile(cid, getThingP
os(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret2, spell)
end
end
end -end
end
end
function doSendTornado(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
doSendDistanceShoot(getThingPos(cid), pos, config.effects.pullEffects.di
stance)
doSendMagicEffect(pos, config.effects.pullEffects.effect)
end
function vortexDamage(cid)
if not isCreature(cid) then
return true
elseif time - os.time() < 0 then
return true
end
doDanoWithProtect(cid, FLYINGDAMAGE, getThingPos(cid), damageArea, min,
max, config.effects.damageEffect)
addEvent(vortexDamage, config.time[2], cid)
end
for b = 1, 3 do
for a = 1, 20 do
local pos = {x = getThingPos(cid).x + math.random(-4, 4), y = getThi
ngPos(cid).y + math.random(-3, 3), z = getThingPos(cid).z}
addEvent(doSendTornado, a * 75, cid, pos)
end
end
Pull(cid, ret)
vortexDamage(cid)
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSetCreatureOutfit(cid, {lookType = config.outfit}, config.time[1] * 1000)
setPlayerStorageValue(cid, config.storage, time)
addEvent(function()
if isCreature(cid) then
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
end, config.time[1] * 1000)
elseif spell == "Giant Water Gun" then
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge

tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {214, {x=p.x+1, y=p.y-1, z=p.z}},
[1] = {184, {x=p.x+6, y=p.y+1, z=p.z}},
[2] = {189, {x=p.x+1, y=p.y+6, z=p.z}},
[3] = {195, {x=p.x-1, y=p.y+1, z=p.z}},
}
doMoveInArea2(cid, 0, triplo6, WATERDAMAGE, min, max, spell)
doSendMagicEffect(t[a][2], t[a][1])

elseif spell == "Aromateraphy" or spell == "Emergency Call" then


eff = spell == "Aromateraphy" and 14 or 13
doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(cid), bombWee3, 0, 0,
eff)
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
local uid = checkAreaUid(getThingPosWithDebug(cid), confusion, 1, 1)
for _,pid in pairs(uid) do
if isCreature(pid) then
if ehMonstro(cid) and ehMonstro(pid) and pid ~= cid then
doCureStatus(pid, "all")
elseif isSummon(cid) and ((isSummon(pid) and canAttackOther(cid, pid) ==
"Cant") or (isPlayer(pid) and canAttackOther(cid, pid) == "Cant")) and pid ~= ci
d then
if isSummon(pid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(pid), 8).uid,
"all")
end
doCureStatus(pid, "all")
end
end
end
elseif spell == "Synthesis" or spell == "Roost" then
local min = (getCreatureMaxHealth(cid) * 45) / 100
local max = (getCreatureMaxHealth(cid) * 60) / 100
local function doHealArea(cid, min, max)
local amount = math.random(min, max)
if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
amount = -(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
end
if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then
doCreatureAddHealth(cid, amount)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)
end
end
doSendMagicEffect(getThingPosWithDebug(cid), 39)
doHealArea(cid, min, max)

elseif spell == "Cotton Spore" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 85, confusion, GRASSDAMAGE, 0, 0, spell, ret)
elseif spell == "Peck" then
sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebu
g(target), 39)
doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, min, max, 3) --alterado v1.7
elseif spell == "Night Daze" then
local pos = getThingPosWithDebug(cid)
local eff = spell == "Night Daze" and 222 or 113
local dmg = spell == "Night Daze" and DARKDAMAGE or FIGHTINGDAMAGE
local out = getSubName(cid, target) == "Hitmontop" and 1193 or 1451 --alterado v
1.6.1
local function doSendBubble(cid, pos)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 39)
doSendMagicEffect(pos, eff)
end
--alterado!!
for a = 1, 20 do
local r1 = math.random(-4, 4)
local r2 = r1 == 0 and choose(-3, -2, -1, 2, 3) or math.random(-3, 3
)
-local lugar = {x = pos.x + r1, y = pos.y + r2, z = pos.z}
addEvent(doSendBubble, a * 25, cid, lugar)
end
if isInArray({"Hitmontop", "Shiny Hitmontop"}, getSubName(cid, target))
then --alterado v1.6.1
doSetCreatureOutfit(cid, {lookType = out}, 400)
end
addEvent(doDanoWithProtect, 150, cid, dmg, pos, waterarea, -min, -max, 0
)
elseif spell == "Rolling Kick" then
local pos = getThingPosWithDebug(cid)
local eff = spell == "Night Daze" and 222 or 113
local dmg = spell == "Night Daze" and DARKDAMAGE or FIGHTINGDAMAGE
local out = getSubName(cid, target) == "Hitmontop" and 1193 or 1451 --alterado v
1.6.1
local function doSendBubble(cid, pos)
if not isCreature(cid) then return true end

doSendDistanceShoot(getThingPosWithDebug(cid), pos, 27)


doSendMagicEffect(pos, eff)
end
--alterado!!
for a = 1, 20 do
local r1 = math.random(-4, 4)
local r2 = r1 == 0 and choose(-3, -2, -1, 2, 3) or math.random(-3, 3
)
-local lugar = {x = pos.x + r1, y = pos.y + r2, z = pos.z}
addEvent(doSendBubble, a * 25, cid, lugar)
end
if isInArray({"Hitmontop", "Shiny Hitmontop"}, getSubName(cid, target))
then --alterado v1.6.1
doSetCreatureOutfit(cid, {lookType = out}, 400)
end
addEvent(doDanoWithProtect, 150, cid, dmg, pos, waterarea, -min, -max, 0
)
elseif spell == "Safeguard" then
doSendMagicEffect(getThingPosWithDebug(cid), 1)
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
elseif spell == "Air Slash" then
local p = getThingPosWithDebug(cid)
local t =
{{128, {x
{{129, {x
,
{{131, {x
,
{{130, {x
,
}

{
= p.x+1, y = p.y-1, z = p.z}}, {16, {x = p.x+1, y = p.y-1, z = p.z}}},
= p.x+2, y = p.y+1, z = p.z}}, {221, {x = p.x+3, y = p.y+1, z = p.z}}}
= p.x+1, y = p.y+2, z = p.z}}, {223, {x = p.x+1, y = p.y+3, z = p.z}}}
= p.x-1, y = p.y+1, z = p.z}}, {243, {x = p.x-1, y = p.y+1, z = p.z}}}

for i = 1, 4 do
doSendMagicEffect(t[i][2][2], t[i][2][1])
end
doDanoWithProtect(cid, FLYINGDAMAGE, getThingPosWithDebug(cid), airSlash, -min,
-max, 0)
for i = 1, 4 do
addEvent(doSendMagicEffect, 400, t[i][1][2], t[i][1][1])
end
addEvent(doDanoWithProtect, 400, cid, FLYINGDAMAGE, getThingPosWithDebug(cid), b
ombWee2, -min, -max, 0)
elseif spell == "Feather Dance" then
local function doPulse(cid, eff)
if not isCreature(cid) or not isCreature(target) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
9)
doDanoInTargetWithDelay(cid, target, FLYINGDAMAGE, -min, -max, eff) --alter

ado v1.7
end
addEvent(doPulse, 0, cid, 137)
addEvent(doPulse, 100, cid, 137)
elseif spell == "Tailwind" then
local ret = {}
ret.id = cid
ret.cd = 10
ret.eff = 137
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Double Team" then
local function RemoveTeam(cid, master)
if isCreature(cid) then
local p = getThingPosWithDebug(cid)
doSendMagicEffect(p, 211)
doRemoveCreature(cid)
end
end
local function sendEff(cid, master, t)
if isCreature(cid) and isCreature(master) and t > 0 and #getCreatureSummons(mast
er) >= 2 then
doSendMagicEffect(getThingPosWithDebug(cid), 86, master)
addEvent(sendEff, 1000, cid, master, t-1)
--alterado v
1.9
end
end
if getPlayerStorageValue(cid, 637500) >= 1 then
return true
end
local s = {
["Xatu"] = "XatuTeam",
["Shiny Xatu"] = "Shiny XatuTeam",
["Yanma"] = "YanmaTeam",
["Mega Lucario"] = "Mega LucarioTeam",
}
local master = getCreatureMaster(cid)
local item = getPlayerSlotItem(master, 8)
local pos = getThingPosWithDebug(cid)
local time = 20
local pokelife = (getCreatureHealth(cid) / getCreatureMaxHealth(cid))
local random = math.random(5, 10)
local dir = getCreatureLookDir(cid)
--------doItemSetAttribute(item.uid, "hp", pokelife)
--------doDisapear(cid)

doTeleportThing(cid, {x=4, y=3, z=10}, false)


doAppear(cid)
--------doSummonMonster(master, s[getSubName(cid, target)]) --alterado v1.6.1
local pk = getCreatureSummons(master)[2]
adjustStatus(pk, item.uid, true, true, true)
--------doTeleportThing(pk, getClosestFreeTile(pk, pos), false)
doTeleportThing(cid, getClosestFreeTile(cid, pos), false)
doCreatureSetLookDir(pk, dir)
doCreatureSetLookDir(cid, dir)
doSendMagicEffect(getThingPosWithDebug(pk), 211)
doSendMagicEffect(getThingPosWithDebug(cid), 211)
if getPlayerStorageValue(cid, 9658783) >= 1 then
--gambiarra
doSetCreatureOutfit(cid, {lookType = 1446}, -1)
end
sendEff(cid, master, time)
--alterado v1.9
-------setPlayerStorageValue(pk, 637500, 1)
setPlayerStorageValue(master, 637501, 1)
addEvent(RemoveTeam, time*1000, pk, master)
addEvent(setPlayerStorageValue, time*1000, master, 637501, -2) --alterado v1
.6
elseif spell == "Tackle" then
doDanoWithProtect(cid, NORMALDAMAGE, getThingPosWithDebug(target), 0, -min, max, 111)
elseif spell == "Giga Drain" then
local life = getCreatureHealth(target)
doDanoWithProtect(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -mi
n, -max, 14)
local newlife = life - getCreatureHealth(target)
doSendMagicEffect(getThingPosWithDebug(cid), 14)
if newlife >= 1 then
doCreatureAddHealth(cid, newlife)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32)
end
elseif spell == "Leech Life" then
local life = getCreatureHealth(target)
doDanoWithProtect(cid, BUGDAMAGE, getThingPosWithDebug(target), 0, -min,
-max, 14)
local newlife = life - getCreatureHealth(target)
doSendMagicEffect(getThingPosWithDebug(cid), 14)
if newlife >= 1 then
doCreatureAddHealth(cid, newlife)
doSendAnimatedText(getThingPosWithDebug(cid), "+"..newlife.."", 32)
end

elseif spell == "Bug Fighter" then


local ret = {}
ret.id = cid
ret.cd = 10
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
elseif spell == "Bug Fighter2" then
local ret = {}
ret.id = cid
ret.cd = 10
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doSetCreatureOutfit(cid, {lookType = 1764}, -1)
doCondition2(ret)
elseif spell == "Metal Claw" then
doDanoWithProtect(cid, STEELDAMAGE, getThingPosWithDebug(target), 0, -min, -m
ax, 160)
elseif spell == "Power Gem" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area)
if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, ROCKDAMAGE, area, pulse2, -min, -max, 255)
end
end
for a = 0, 3 do
local t = {
[0] = {29, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {29, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {29, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {29, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 400*a, cid, t[d][2])
addEvent(doAreaCombatHealth, 400*a, cid, ROCKDAMAGE, t[d][2], pulse1, 0, 0, t[d]
[1])
addEvent(doAreaCombatHealth, 400*a, cid, ROCKDAMAGE, t[d][2], pulse1, 0, 0, 103)
end
elseif spell == "Octazooka" then
local ret = {}

ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 34
ret.cond = "Silence"
doMoveInAreaMulti(cid, 6, 116, multi, multiDano, WATERDAMAGE, min, max)
doMoveInArea2(cid, 0, multiDano, WATERDAMAGE, 0, 0, spell, ret)
elseif spell == "Take Down" then
doMoveInArea2(cid, 111, reto5, NORMALDAMAGE, min, max, spell)
elseif spell == "Yawn" then
local ret = {}
ret.id = target
ret.cd = math.random(6, 9)
ret.check = getPlayerStorageValue(target, conds["Sleep"])
ret.first = true
ret.cond = "Sleep"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
11)
addEvent(doMoveDano2, 1500, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Tongue Hook" then
sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebu
g(target), 38)
addEvent(doTeleportThing, 200, target, getClosestFreeTile(cid, getThingPosWithDe
bug(cid)), true)
addEvent(sendDistanceShootWithProtect, 200, cid, getThingPosWithDebug(target), g
etThingPosWithDebug(cid), 38)
elseif spell == "Tongue Grap" then
local function distEff(cid, target)
if not isCreature(cid) or not isCreature(target) or not isSilence(target) then r
eturn true end --alterado v1.6
sendDistanceShootWithProtect(cid, getThingPosWithDebug(target), getThingPosWi
thDebug(cid), 38)
end
local ret = {}
ret.id = target
ret.cd = 10
ret.check = getPlayerStorageValue(target, conds["Silence"])
ret.eff = 185
ret.cond = "Silence"
sendDistanceShootWithProtect(cid, getThingPosWithDebug(cid), getThingPosWithDebu
g(target), 38)
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
for i = 1, 10 do
addEvent(distEff, i*930, cid, target)
end

elseif spell == "Struggle Bug" then


local function sendFireEff(cid, dir)
if not isCreature(cid) then return true end
doDanoWithProtect(cid, BUGDAMAGE, getPosByDir(getThingPosWithDebug(cid),
dir), 0, -min, -max, 105)
end
local function doWheel(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTH,
[2] = SOUTHEAST,
[3] = EAST,
[4] = NORTHEAST,
[5] = NORTH,
--alterado v1.5
[6] = NORTHWEST,
[7] = WEST,
[8] = SOUTHWEST,
}
for a = 1, 8 do
addEvent(sendFireEff, a * 200, cid, t[a])
end
end
doWheel(cid, false, cid)
elseif spell == "Iron Spiner" then
local function sendFireEff(cid, dir)
if not isCreature(cid) then return true end
doDanoWithProtect(cid, BUGDAMAGE, getPosByDir(getThingPosWithDebug(cid),
dir), 0, -min, -max, 156)
end
local function doWheel(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTH,
[2] = SOUTHEAST,
[3] = EAST,
[4] = NORTHEAST,
[5] = NORTH,
--alterado v1.5
[6] = NORTHWEST,
[7] = WEST,
[8] = SOUTHWEST,
}
for a = 1, 8 do
addEvent(sendFireEff, a * 200, cid, t[a])
end
end
doWheel(cid, false, cid)
elseif spell == "Extrasensory" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid

local function doFall(cid)


for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, GRASSDAMAGE, 99, 238)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 99)
end
addEvent(doFall, 450, cid)
addEvent(doMoveInArea2, 1400, cid, 0, BigArea2, GRASSDAMAGE, min, max, spell)
elseif spell == "Heavy Slam" then
local ret = {}
ret.id = 0
ret.cd = 1
ret.check = 0
ret.eff = 0
ret.spell = spell
ret.cond = "Paralyze"
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2}
for i = 0, 1 do
addEvent(doMoveInArea2, i*320, cid, 77, areas[i+1], STEELDAMAGE, min, max, s
pell, ret)
end
local config = {
areas = {area1, area2},
--reas, em ordem de execuo.
effect = 160,
--Efeito.
combat = NORMALDAMAGE,
--Elemento.
}
local function doPushCreature(target, cid)
if target > 0 then
if not isNpc(target) then
local position = getThingPosition(cid)
local fromPosition = getThingPosition(target)
local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPositio
n.x - position.x) == 0 and 0 or 1))
local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPositio
n.y - position.y) == 0 and 0 or 1))
local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y,
z = fromPosition.z}
if doTileQueryAdd(target, toPosition) == 1 and getTileInfo(toPositio
n).house == false then
doTeleportThing(target, toPosition, true)
end
end
end
end
jump(cid, 2)
addEvent(function()
for i = 0, #config.areas - 1 do
addEvent(function()
local pos = getPosfromArea(cid, config.areas[i + 1])
doMoveInArea2(cid, config.effect, config.areas[i + 1], config.combat
, min, max)
for j = 1, #pos do
local pid = getTopCreature(pos[j]).uid

if ehMonstro(pid) then
doPushCreature(pid, cid)
elseif isSummon(pid) then
local master = getCreatureMaster(pid)
if isSummon(cid) then
if getPlayerStorageValue(master, 52480) >= 1 and getPlay
erStorageValue(master, 52481) >= 0 then
local masterCid = getCreatureMaster(cid)
if isDuelingAgainst(masterCid, master) then
doPushCreature(pid, cid)
end
end
else
doPushCreature(pid, cid)
end
end
end
end, i * 230)
end
end, 650)
elseif spell == "Metal Sound" then
local ret = {}
ret.id = 0
ret.cd = 6
ret.eff = 46
ret.check = 0
ret.spell = spell
ret.cond = "Paralyze"
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, ro
ck5, rock5, rock1, rock2, rock3, rock4, rock5,rock1, rock2, rock3, rock4, rock5,
}
for i = 0, 24 do
addEvent(doMoveInArea2, i*320, cid, 46, areas[i+1], STEELDAMAGE, min, max, s
pell, ret)
addEvent(doMoveInArea2, i*330, cid, 46, areas[i+1], STEELDAMAGE, 0, 0, spell
)
end
elseif spell == "Present" then
local function sendHeal(cid)
if isCreature(cid) and isCreature(target) then
doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(target), crusher,
min, max, 5)
doSendAnimatedText(getThingPosWithDebug(target), "HEALTH!", 65)
end
end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
31)
if math.random(1, 100) >= 10 then
doDanoWithProtectWithDelay(cid, target, NORMALDAMAGE, min, max, 5, cr
usher)
else
addEvent(sendHeal, 100, cid)

end
elseif spell == "Inferno" or spell == "Fissure" then
local pos = getThingPosWithDebug(cid)
atk = {
["Inferno"] = {101, FIREDAMAGE},
["Fissure"] = {102, GROUNDDAMAGE}
}
doMoveInArea2(cid, atk[spell][1], inferno1, atk[spell][2], 0, 0, spell)
addEvent(doDanoWithProtect, math.random(100, 400), cid, atk[spell][2], pos, infe
rno2, -min, -max, 0)
elseif spell == "Wrap" then
local ret = {}
ret.id = target
ret.cd = 10
ret.check = getPlayerStorageValue(target, conds["Silence"])
ret.eff = 104
ret.cond = "Silence"
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)
addEvent(doMoveDano2, 100, cid, target, NORMALDAMAGE, 0, 0, ret, spell)
elseif spell == "Rock n'Roll" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock4, rock3, rock2, rock1}
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 1
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
for i = 0, 8 do
addEvent(doMoveInArea2, i*400, cid, 1, areas[i+1], NORMALDAMAGE, min, max, s
pell, ret)
addEvent(doMoveInArea2, i*410, cid, 1, areas[i+1], NORMALDAMAGE, 0, 0, spell
)
end
elseif spell == "Power Wave" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 4
ret.eff = 103
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 4

ret2.check = 0
ret2.eff = -1
ret2.cond = "Silence"
local function sendAtk(cid)
if isCreature(cid) then
doRemoveCondition(cid, CONDITION_OUTFIT)
setPlayerStorageValue(cid, 9658783, -1)
for i = 0, 4 do
addEvent(doMoveInArea2, i*400, cid, 103, areas[i+1], psyDmg, min, max, spell
, ret)
addEvent(doMoveInArea2, i*400, cid, 103, areas[i+1], psyDmg, 0, 0, spell, re
t2)
end
end
end
doSetCreatureOutfit(cid, {lookType = 1001}, -1)
setPlayerStorageValue(cid, 9658783, 1)
stopNow(cid, 2000)
addEvent(sendAtk, 2000, cid)
elseif spell == "Future Sights" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 103
ret.check = 0
ret.first = true
ret.cond = "Sleep"
local function sendAtk(cid)
if isCreature(cid) then
doRemoveCondition(cid, CONDITION_OUTFIT)
setPlayerStorageValue(cid, 9658783, -1)
for i = 0, 4 do
addEvent(doMoveInArea2, i*400, cid, 103, areas[i+1], psyDmg, min, max, spell
, ret)
addEvent(doMoveInArea2, i*410, cid, 103, areas[i+1], psyDmg, 0, 0, spell)
end
end
end
setPlayerStorageValue(cid, 9658783, 1)
addEvent(sendAtk, 2000, cid)
local config = {
outfit = 2463,
--Outfit.
time = {5
, 0},
--{Durao da spell, intervalo entre cada "t
ick" de dano (em milsimos de segundos)},
storage = 93828,
}
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSetCreatureOutfit(cid, {lookType = config.outfit}, config.time[1] * 1000)
setPlayerStorageValue(cid, config.storage, time)

addEvent(function()
if isCreature(cid) then
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
end, config.time[1] * 1000)
elseif spell == "Future Sights2" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 103
ret.check = 0
ret.first = true
ret.cond = "Sleep"
local function sendAtk(cid)
if isCreature(cid) then
doRemoveCondition(cid, CONDITION_OUTFIT)
setPlayerStorageValue(cid, 9658783, -1)
for i = 0, 4 do
addEvent(doMoveInArea2, i*400, cid, 103, areas[i+1], psyDmg, min, max, spell
, ret)
addEvent(doMoveInArea2, i*410, cid, 103, areas[i+1], psyDmg, 0, 0, spell)
end
end
end
setPlayerStorageValue(cid, 9658783, 1)
addEvent(sendAtk, 2000, cid)
local config = {
outfit = 2452,
--Outfit.
time = {5
, 0},
--{Durao da spell, intervalo entre cada "t
ick" de dano (em milsimos de segundos)},
storage = 93828,
}
doCreatureSetNoMove(cid, true)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSetCreatureOutfit(cid, {lookType = config.outfit}, config.time[1] * 1000)
setPlayerStorageValue(cid, config.storage, time)
addEvent(function()
if isCreature(cid) then
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
end, config.time[1] * 1000)
elseif spell == "Hidden Power" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 9

ret.eff = 103
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local function sendAtk(cid)
if isCreature(cid) then
doRemoveCondition(cid, CONDITION_OUTFIT)
setPlayerStorageValue(cid, 9658783, -1)
for i = 0, 4 do
addEvent(doMoveInArea2, i*400, cid, 103, areas[i+1], psyDmg, min, max, spell
, ret)
addEvent(doMoveInArea2, i*410, cid, 103, areas[i+1], psyDmg, 0, 0, spell)
end
end
end
doSetCreatureOutfit(cid, {lookType = 1909}, -1)
setPlayerStorageValue(cid, 9658783, 1)
addEvent(sendAtk, 2000, cid)
elseif spell == "Heal Bell" then
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, ro
ck4, rock5, rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, rock5
, rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = cid
ret.cd = 10
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
for i = 0, 22 do
addEvent(doMoveInArea2, i*400, cid, 33, areas[i+1], NORMALDAMAGE, 0, 0, spel
l)
end
elseif spell == "Nasty Plot" then
doAreaCombatHealth(cid, PSYCHICDAMAGE, getThingPosWithDebug(cid), splash, -min,
-max, 255)
setPlayerStorageValue(cid, 253, 1) --focus
doSendMagicEffect(getThingPosWithDebug(cid), 132)
elseif spell == "Ground Crusher" then
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 12

ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
local function endMove(cid)
if isCreature(cid) then
doRemoveCondition(cid, CONDITION_OUTFIT)
end
end
if getSubName(cid, target) == "Mega Swampert" or "Dark Mega Swampert" then
doSetCreatureOutfit(cid, {lookType = 2318}, -1)
else
doSetCreatureOutfit(cid, {lookType = 1449}, -1)
end
stopNow(cid, 16*360)
addEvent(endMove, 16*360, cid)
---for i = 0, 4 do
addEvent(doMoveInArea2, i*350, cid, 100, areas[i+1], GROUNDDAMAGE, min, max,
spell, ret)
addEvent(doMoveInArea2, i*360, cid, 100, areas[i+1], GROUNDDAMAGE, 0, 0, spe
ll, ret)
end
for i = 4, 8 do
local a = i-3
addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, s
pell, ret)
addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell
, ret)
end
for i = 8, 12 do
local a = i-7
addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, s
pell, ret)
addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell
, ret)
end
for i = 12, 16 do
local a = i-11
addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, s
pell, ret)
addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell
, ret)
end
for i = 16, 20 do
local a = i-15
addEvent(doMoveInArea2, i*350, cid, 100, areas[a], GROUNDDAMAGE, min, max, s
pell, ret)
addEvent(doMoveInArea2, i*360, cid, 100, areas[a], GROUNDDAMAGE, 0, 0, spell
, ret)
end
elseif spell == "Last Resort" then
local pos = getThingPosWithDebug(cid)
local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, ro
ck1}

for i = 0, 9 do
addEvent(doMoveInArea2, i*400, cid, 3, areas[i+1], NORMALDAMAGE, min, max, s
pell)
addEvent(doMoveInArea2, i*410, cid, 3, areas[i+1], NORMALDAMAGE, 0, 0, spell
)
end
elseif spell == "Psy Impact" then
local master = getCreatureMaster(cid) or 0
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
for rocks = 1, 42 do
addEvent(fall, rocks*35, cid, master, psyDmg, -1, 98)
end
addEvent(doMoveInArea2, 500, cid, 0, BigArea2, psyDmg, min, max, spell, ret)
elseif spell == "Two Face Shock" then
local atk = {
[1] = {179, ICEDAMAGE},
[2] = {127, GROUNDDAMAGE}
}
local rand = math.random(1, 2)
doAreaCombatHealth(cid, atk[rand][2], getThingPosWithDebug(cid), splash,
-min, -max, 255)
local sps = getThingPosWithDebug(cid)
sps.x = sps.x+1
sps.y = sps.y+1
doSendMagicEffect(sps, atk[rand][1])
elseif spell == "Aerial Ace" then
local eff = {16, 221, 223, 243}
for rocks = 1, 32 do
addEvent(fall, rocks*22, cid, master, FLYINGDAMAGE, -1, eff[math.random(1, 4
)])
end
addEvent(doMoveInArea2, 500, cid, 0, BigArea2, FLYINGDAMAGE, min, max, spell)
elseif spell == "Echoed Voice" then
local p = getThingPosWithDebug(cid)
local d = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
function sendAtk(cid, area)

if isCreature(cid) then
if not isSightClear(p, area, false) then return true end
doAreaCombatHealth(cid, NORMALDAMAGE, area, pulse2, -min, -max, 255)
end
end
for a = 0, 5 do
local t = {
[0] = {39, {x=p.x, y=p.y-(a+1), z=p.z}},
[1] = {39, {x=p.x+(a+1), y=p.y, z=p.z}},
[2] = {39, {x=p.x, y=p.y+(a+1), z=p.z}},
[3] = {39, {x=p.x-(a+1), y=p.y, z=p.z}}
}
addEvent(sendAtk, 400*a, cid, t[d][2])
addEvent(doAreaCombatHealth, 400*a, cid, ROCKDAMAGE, t[d][2], pulse1, 0, 0, t[d]
[1])
end
elseif spell == "Frost Tornado" then
local p = getThingPos(cid)
local pos1 = {
[1] = {{x = p.x, y = p.y+4, z = p.z}, {x = p.x+1, y = p.y+4, z = p.z},
2, y = p.y+3, z = p.z}, {x = p.x+3, y = p.y+2, z = p.z}, {x = p.x+4, y
z = p.z}, {x = p.x+4, y = p.y, z = p.z}},
[2] = {{x = p.x, y = p.y+3, z = p.z}, {x = p.x+1, y = p.y+3, z = p.z},
2, y = p.y+2, z = p.z}, {x = p.x+3, y = p.y+1, z = p.z}, {x = p.x+3, y
= p.z}},
[3] = {{x = p.x, y = p.y+2, z = p.z}, {x = p.x+1, y = p.y+2, z = p.z},
2, y = p.y+1, z = p.z}, {x = p.x+2, y = p.y, z = p.z}},
[4] = {{x = p.x, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z},
1, y = p.y, z = p.z}},
}
local pos2 = {
[1] = {{x = p.x, y = p.y-4, z = p.z}, {x = p.x-1, y = p.y-4, z = p.z},
2, y = p.y-3, z = p.z}, {x = p.x-3, y = p.y-2, z = p.z}, {x = p.x-4, y
z = p.z}, {x = p.x-4, y = p.y, z = p.z}},
[2] = {{x = p.x, y = p.y-3, z = p.z}, {x = p.x-1, y = p.y-3, z = p.z},
2, y = p.y-2, z = p.z}, {x = p.x-3, y = p.y-1, z = p.z}, {x = p.x-3, y
= p.z}},
[3] = {{x = p.x, y = p.y-2, z = p.z}, {x = p.x-1, y = p.y-2, z = p.z},
2, y = p.y-1, z = p.z}, {x = p.x-2, y = p.y, z = p.z}},
[4] = {{x = p.x, y = p.y-1, z = p.z}, {x = p.x-1, y = p.y-1, z = p.z},
1, y = p.y, z = p.z}},
}
local pos3 = {
[1] = {{x = p.x+4, y = p.y, z = p.z}, {x = p.x+4, y = p.y-1, z = p.z},
3, y = p.y-2, z = p.z}, {x = p.x+2, y = p.y-3, z = p.z}, {x = p.x+1, y
z = p.z}, {x = p.x, y = p.y-4, z = p.z}},
[2] = {{x = p.x+3, y = p.y, z = p.z}, {x = p.x+3, y = p.y-1, z = p.z},
2, y = p.y-2, z = p.z}, {x = p.x+1, y = p.y-3, z = p.z}, {x = p.x, y =
= p.z}},
[3] = {{x = p.x+2, y = p.y, z = p.z}, {x = p.x+2, y = p.y-1, z = p.z},
1, y = p.y-2, z = p.z}, {x = p.x, y = p.y-2, z = p.z}},
[4] = {{x = p.x+1, y = p.y, z = p.z}, {x = p.x+1, y = p.y-1, z = p.z},
y = p.y-1, z = p.z}},
}

{x = p.x+
= p.y+1,
{x = p.x+
= p.y, z
{x = p.x+
{x = p.x+

{x = p.x= p.y-1,
{x = p.x= p.y, z
{x = p.x{x = p.x-

{x = p.x+
= p.y-4,
{x = p.x+
p.y-3, z
{x = p.x+
{x = p.x,

local pos4 = {
[1] = {{x = p.x-4, y = p.y, z = p.z}, {x = p.x-4, y = p.y+1, z = p.z},
3, y = p.y+2, z = p.z}, {x = p.x-2, y = p.y+3, z = p.z}, {x = p.x-1, y
z = p.z}, {x = p.x, y = p.y+4, z = p.z}},
[2] = {{x = p.x-3, y = p.y, z = p.z}, {x = p.x-3, y = p.y+1, z = p.z},
2, y = p.y+2, z = p.z}, {x = p.x-1, y = p.y+3, z = p.z}, {x = p.x, y =
= p.z}},
[3] = {{x = p.x-2, y = p.y, z = p.z}, {x = p.x-2, y = p.y+1, z = p.z},
1, y = p.y+2, z = p.z}, {x = p.x, y = p.y+2, z = p.z}},
[4] = {{x = p.x-1, y = p.y, z = p.z}, {x = p.x-1, y = p.y+1, z = p.z},
y = p.y+1, z = p.z}},
}
local pos5 = {
[1] = {{x = p.x, y = p.y+4, z = p.z}, {x = p.x+1, y = p.y+4, z = p.z},
2, y = p.y+3, z = p.z}, {x = p.x+3, y = p.y+2, z = p.z}, {x = p.x+4, y
z = p.z}, {x = p.x+4, y = p.y, z = p.z}},
[2] = {{x = p.x, y = p.y+3, z = p.z}, {x = p.x+1, y = p.y+3, z = p.z},
2, y = p.y+2, z = p.z}, {x = p.x+3, y = p.y+1, z = p.z}, {x = p.x+3, y
= p.z}},
[3] = {{x = p.x, y = p.y+2, z = p.z}, {x = p.x+1, y = p.y+2, z = p.z},
2, y = p.y+1, z = p.z}, {x = p.x+2, y = p.y, z = p.z}},
[4] = {{x = p.x, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z},
1, y = p.y, z = p.z}},
}

{x = p.x= p.y+4,
{x = p.xp.y+3, z
{x = p.x{x = p.x,

{x = p.x+
= p.y+1,
{x = p.x+
= p.y, z
{x = p.x+
{x = p.x+

local atk = {
--[atk] = {distance, eff, damage}
["Frost Tornado"] = {-1, 41, ICEDAMAGE},
}
local function sendDist(cid, posi1, posi2, eff, delay)
if posi1 and posi2 and isCreature(cid) then
addEvent(sendDistanceShootWithProtect, delay, cid, posi1, posi2, eff)
erado v1.6
end
end

--alt

local function sendDano(cid, pos, eff, delay, min, max)


if pos and isCreature(cid) then
addEvent(doDanoWithProtect, delay, cid, atk[spell][3], pos, 0, -min, -max, ef
f) --alterado v1.6
end
end
local function doTornado(cid)
if isCreature(cid) then
for j = 1, 4 do
for i = 1, 6 do
14/54
addEvent(sendDist, 350,
30)
addEvent(sendDano, 350,
addEvent(sendDano, 350,
--addEvent(sendDist, 350,
30)
addEvent(sendDano, 350,
addEvent(sendDano, 350,
---addEvent(sendDist, 800,

--41/207 -cid, pos1[j][i], pos1[j][i+1], atk[spell][1], i*3


cid, pos1[j][i], atk[spell][2], i*300, min, max)
cid, pos1[j][i], atk[spell][2], i*310, 0, 0)
cid, pos2[j][i], pos2[j][i+1], atk[spell][1], i*3
cid, pos2[j][i], atk[spell][2], i*300, min, max)
cid, pos2[j][i], atk[spell][2], i*310, 0, 0)
cid, pos3[j][i], pos3[j][i+1], atk[spell][1], i*3

30)
addEvent(sendDano, 800, cid, pos3[j][i], atk[spell][2], i*300, min, max)
addEvent(sendDano, 800, cid, pos3[j][i], atk[spell][2], i*310, 0, 0)
--addEvent(sendDist, 800, cid, pos4[j][i], pos4[j][i+1], atk[spell][1], i*3
30)
addEvent(sendDano, 800, cid, pos4[j][i], atk[spell][2], i*300, min, max)
addEvent(sendDano, 800, cid, pos4[j][i], atk[spell][2], i*310, 0, 0)
end
end
end
end
for b = 0, 2 do
addEvent(doTornado, b*1500, cid)
end
doCreatureSetNoMove(cid, true)
addEvent(canMove, 5700, cid)
local function doDivine(cid, min, max, spell, rounds, area)
if not isCreature(cid) then return true end
for i = 1, 9 do
addEvent(doMoveInArea2, 1000, cid, 196, electro, ICEDAMAGE, 0, 0, spell)
addEvent(doMoveInArea2, i*500, cid, 179, area[i], ICEDAMAGE, min, max, spell
)
addEvent(doMoveInArea2, 1000, cid, 50, electro, ICEDAMAGE, 0, 0, spell)
doMoveInArea2(cid, 175, AREA_CROSS6X6, ICEDAMAGE, min, max, spell)
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, ro
ck5}
local ret = {}
ret.id = 0
ret.cd = 6
ret.eff = 5
ret.check = 0
ret.spell = spell
ret.cond = "Slow"
for i = 0, 8 do
addEvent(doMoveInArea2, i*400, cid, 50, areas[i+1], ICEDAMAGE, min, max, spe
ll)
addEvent(doMoveInArea2, i*410, cid, 50, areas[i+1], ICEDAMAGE, 0, 0, spell,
ret)
end
end
end
local rounds = math.random(9, 12)
local area = {punish1, punish2, punish3, punish1, punish2, punish3, punis
h1, punish2, punish3}
local posi = getThingPosWithDebug(cid)
posi.x = posi.x+1
posi.y = posi.y+1
setPlayerStorageValue(cid, 2365487, 1)
addEvent(setPlayerStorageValue, 6450, cid, 2365487, -1) --alterado v1.4
doDisapear(cid)
doChangeSpeed(cid, -getCreatureSpeed(cid))
doSendMagicEffect(posi, 162)

addEvent(doAppear, 6450, cid)


addEvent(doRegainSpeed, 6450, cid)
local uid = checkAreaUid(getCreaturePosition(cid), check, 1, 1)
for _,pid in pairs(uid) do
if isSummon(cid) and (isMonster(pid) or (isSummon(pid) and canA
ttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) ==
"Can")) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
elseif isMonster(cid) and (isSummon(pid) or (isPlayer(pid) and
#getCreatureSummons(pid) <= 0)) and pid ~= cid then
doChangeSpeed(pid, -getCreatureSpeed(pid))
end
end
addEvent(doDivine, 2200, cid, min, max, spell, rounds, area)
elseif spell == "Iceshock" then
local ret = {}
ret.id = 0
ret.cd = 10
ret.eff = 17
ret.check = 0
ret.spell = spell
ret.cond = "slow"
local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5, rock1, rock2, rock3, rock4, ro
ck5, rock5, rock1, rock2, rock3, rock4, rock5,rock1, rock2, rock3, rock4, rock5,
}
for i = 0, 24 do
addEvent(doMoveInArea2, i*320, cid, 179, areas[i+1], ICEDAMAGE, min, max, sp
ell)
addEvent(doMoveInArea2, i*330, cid, 179, areas[i+1], ICEDAMAGE, 0, 0, spell,
ret)
end
elseif spell == "Electro Field" or spell == "Petal Tornado" or spell == "Waterfa
ll" or spell == "Flame Wheel" or spell == "Lighting Hell" then --alterado v1.8
local p = getThingPos(cid)
local pos1 = {
[1] = {{x = p.x, y = p.y+4, z = p.z}, {x = p.x+1, y = p.y+4, z = p.z},
2, y = p.y+3, z = p.z}, {x = p.x+3, y = p.y+2, z = p.z}, {x = p.x+4, y
z = p.z}, {x = p.x+4, y = p.y, z = p.z}},
[2] = {{x = p.x, y = p.y+3, z = p.z}, {x = p.x+1, y = p.y+3, z = p.z},
2, y = p.y+2, z = p.z}, {x = p.x+3, y = p.y+1, z = p.z}, {x = p.x+3, y
= p.z}},
[3] = {{x = p.x, y = p.y+2, z = p.z}, {x = p.x+1, y = p.y+2, z = p.z},
2, y = p.y+1, z = p.z}, {x = p.x+2, y = p.y, z = p.z}},
[4] = {{x = p.x, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z},
1, y = p.y, z = p.z}},
}

{x = p.x+
= p.y+1,
{x = p.x+
= p.y, z
{x = p.x+
{x = p.x+

local pos2 = {
[1] = {{x = p.x, y = p.y-4, z = p.z}, {x = p.x-1, y = p.y-4, z = p.z}, {x = p.x2, y = p.y-3, z = p.z}, {x = p.x-3, y = p.y-2, z = p.z}, {x = p.x-4, y = p.y-1,

z = p.z}, {x = p.x-4, y = p.y, z = p.z}},


[2] = {{x = p.x, y = p.y-3, z = p.z}, {x = p.x-1, y = p.y-3, z = p.z},
2, y = p.y-2, z = p.z}, {x = p.x-3, y = p.y-1, z = p.z}, {x = p.x-3, y
= p.z}},
[3] = {{x = p.x, y = p.y-2, z = p.z}, {x = p.x-1, y = p.y-2, z = p.z},
2, y = p.y-1, z = p.z}, {x = p.x-2, y = p.y, z = p.z}},
[4] = {{x = p.x, y = p.y-1, z = p.z}, {x = p.x-1, y = p.y-1, z = p.z},
1, y = p.y, z = p.z}},
}
local pos3 = {
[1] = {{x = p.x+4, y = p.y, z = p.z}, {x = p.x+4, y = p.y-1, z = p.z},
3, y = p.y-2, z = p.z}, {x = p.x+2, y = p.y-3, z = p.z}, {x = p.x+1, y
z = p.z}, {x = p.x, y = p.y-4, z = p.z}},
[2] = {{x = p.x+3, y = p.y, z = p.z}, {x = p.x+3, y = p.y-1, z = p.z},
2, y = p.y-2, z = p.z}, {x = p.x+1, y = p.y-3, z = p.z}, {x = p.x, y =
= p.z}},
[3] = {{x = p.x+2, y = p.y, z = p.z}, {x = p.x+2, y = p.y-1, z = p.z},
1, y = p.y-2, z = p.z}, {x = p.x, y = p.y-2, z = p.z}},
[4] = {{x = p.x+1, y = p.y, z = p.z}, {x = p.x+1, y = p.y-1, z = p.z},
y = p.y-1, z = p.z}},
}
local pos4 = {
[1] = {{x = p.x-4, y = p.y, z = p.z}, {x = p.x-4, y = p.y+1, z = p.z},
3, y = p.y+2, z = p.z}, {x = p.x-2, y = p.y+3, z = p.z}, {x = p.x-1, y
z = p.z}, {x = p.x, y = p.y+4, z = p.z}},
[2] = {{x = p.x-3, y = p.y, z = p.z}, {x = p.x-3, y = p.y+1, z = p.z},
2, y = p.y+2, z = p.z}, {x = p.x-1, y = p.y+3, z = p.z}, {x = p.x, y =
= p.z}},
[3] = {{x = p.x-2, y = p.y, z = p.z}, {x = p.x-2, y = p.y+1, z = p.z},
1, y = p.y+2, z = p.z}, {x = p.x, y = p.y+2, z = p.z}},
[4] = {{x = p.x-1, y = p.y, z = p.z}, {x = p.x-1, y = p.y+1, z = p.z},
y = p.y+1, z = p.z}},
}
local pos5 = {
[1] = {{x = p.x, y = p.y+4, z = p.z}, {x = p.x+1, y = p.y+4, z = p.z},
2, y = p.y+3, z = p.z}, {x = p.x+3, y = p.y+2, z = p.z}, {x = p.x+4, y
z = p.z}, {x = p.x+4, y = p.y, z = p.z}},
[2] = {{x = p.x, y = p.y+3, z = p.z}, {x = p.x+1, y = p.y+3, z = p.z},
2, y = p.y+2, z = p.z}, {x = p.x+3, y = p.y+1, z = p.z}, {x = p.x+3, y
= p.z}},
[3] = {{x = p.x, y = p.y+2, z = p.z}, {x = p.x+1, y = p.y+2, z = p.z},
2, y = p.y+1, z = p.z}, {x = p.x+2, y = p.y, z = p.z}},
[4] = {{x = p.x, y = p.y+1, z = p.z}, {x = p.x+1, y = p.y+1, z = p.z},
1, y = p.y, z = p.z}},
}
local atk = {
--[atk] = {distance, eff, damage}
["Electro Field"] = {41, 207, ELECTRICDAMAGE},
["Petal Tornado"] = {14, 54, GRASSDAMAGE},
["Flame Wheel"] = {-1, 6, FIREDAMAGE},
--alterado v1.9
["Waterfall"] = {-1, 155, WATERDAMAGE},
["Lightning Hell"] = {41, 47, ELECTRICDAMAGE},
}

{x = p.x= p.y, z
{x = p.x{x = p.x-

{x = p.x+
= p.y-4,
{x = p.x+
p.y-3, z
{x = p.x+
{x = p.x,

{x = p.x= p.y+4,
{x = p.xp.y+3, z
{x = p.x{x = p.x,

{x = p.x+
= p.y+1,
{x = p.x+
= p.y, z
{x = p.x+
{x = p.x+

local function sendDist(cid, posi1, posi2, eff, delay)


if posi1 and posi2 and isCreature(cid) then
addEvent(sendDistanceShootWithProtect, delay, cid, posi1, posi2, eff)
erado v1.6
end
end

--alt

local function sendDano(cid, pos, eff, delay, min, max)


if pos and isCreature(cid) then
addEvent(doDanoWithProtect, delay, cid, atk[spell][3], pos, 0, -min, -max, ef
f) --alterado v1.6
end
end
local function doTornado(cid)
if isCreature(cid) then
for j = 1, 4 do
for i = 1, 6 do
14/54
addEvent(sendDist, 350,
30)
addEvent(sendDano, 350,
addEvent(sendDano, 350,
--addEvent(sendDist, 350,
30)
addEvent(sendDano, 350,
addEvent(sendDano, 350,
---addEvent(sendDist, 800,
30)
addEvent(sendDano, 800,
addEvent(sendDano, 800,
--addEvent(sendDist, 800,
30)
addEvent(sendDano, 800,
addEvent(sendDano, 800,
end
end
end
end

--41/207 -cid, pos1[j][i], pos1[j][i+1], atk[spell][1], i*3


cid, pos1[j][i], atk[spell][2], i*300, min, max)
cid, pos1[j][i], atk[spell][2], i*310, 0, 0)
cid, pos2[j][i], pos2[j][i+1], atk[spell][1], i*3
cid, pos2[j][i], atk[spell][2], i*300, min, max)
cid, pos2[j][i], atk[spell][2], i*310, 0, 0)
cid, pos3[j][i], pos3[j][i+1], atk[spell][1], i*3
cid, pos3[j][i], atk[spell][2], i*300, min, max)
cid, pos3[j][i], atk[spell][2], i*310, 0, 0)
cid, pos4[j][i], pos4[j][i+1], atk[spell][1], i*3
cid, pos4[j][i], atk[spell][2], i*300, min, max)
cid, pos4[j][i], atk[spell][2], i*310, 0, 0)

if spell == "Electro Field" then


addEvent(doMoveInArea2, 1000, cid, 0, electro, ELECTRICDAMAGE, 0, 0, spell, r
et)
end
if spell == "Waterfall" then
addEvent(doMoveInArea2, 1000, cid, 0, electro, WATERDAMAGE, 0, 0, spell, ret)
end
if spell == "Flame Wheel" then --alterado v1.8
doTornado(cid)
else
for b = 0, 2 do
addEvent(doTornado, b*1500, cid)
end
end

elseif spell == "Seed Bomb" then

--alterado v1.6

local master = isSummon(cid) and getCreatureMaster(cid) or cid


local function doFall(cid)
for rocks = 1, 42 do --62
addEvent(fall, rocks*35, cid, master, SEED_BOMBDAMAGE, 1, 54)
end
end
for up = 1, 10 do
addEvent(upEffect, up*75, cid, 1)
end
addEvent(doFall, 450, cid)
addEvent(doMoveInArea2, 1400, cid, 2, BigArea2, SEED_BOMBDAMAGE, min, max, spell
)
elseif spell == "Reverse Earthshock" then
local p = getThingPosWithDebug(cid)
p.x = p.x+1
p.y = p.y+1
sendEffWithProtect(cid, p, 151)

--send eff

local function doDano(cid)


local pos = getThingPosWithDebug(cid)
local function doSendBubble(cid, pos)
if not isCreature(cid) then return true end
doSendDistanceShoot(getThingPosWithDebug(cid), pos, 39)
doSendMagicEffect(pos, 239)
end
--alterado!!
for a = 1, 20 do
local r1 = math.random(-4, 4)
local r2 = r1 == 0 and choose(-3, -2, -1, 2, 3) or math.random(-3, 3
)
-local lugar = {x = pos.x + r1, y = pos.y + r2, z = pos.z}
addEvent(doSendBubble, a * 25, cid, lugar)
end
addEvent(doDanoWithProtect, 150, cid, ROCKDAMAGE, pos, waterarea, -min,
-max, 0)
end
addEvent(doDano, 1250, cid)
elseif spell == "Fury Swipes" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
23)
doDanoInTargetWithDelay(cid, target, NORMALDAMAGE, min, max, 152)
elseif spell == "Poison Jab" then

doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target),
15)
doDanoInTargetWithDelay(cid, target, POISONDAMAGE, min, max, 153)
elseif spell == "Cross Poison" then
doMoveInArea2(cid, 153, cross, POISONDAMAGE, -min, -max, spell)
elseif spell == "Hydro Dance" then
local eff = {155, 154, 53, 155, 53}
local area = {psy1, psy2, psy3, psy4, psy5}
setPlayerStorageValue(cid, 3644587, 1)
addEvent(setPlayerStorageValue, 4*400, cid, 3644587, -1)
for i = 0, 4 do
addEvent(doMoveInArea2, i*400, cid, eff[i+1], area[i+1], WATERDAMAGE,
min, max, spell)
end
elseif spell == "Gyro Ball" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 0
ret.spell = spell
ret.cond = "Stun"
stopNow(cid, 2000)
doMoveInArea2(cid, 156, reto5, STEELDAMAGE, min, max, spell, ret)
elseif spell == "Rock Tomb" then
local ret = {}
ret.id = target
ret.cd = 9
ret.eff = 0
ret.check = getPlayerStorageValue(target, conds["Slow"])
ret.first = true
ret.cond = "Slow"
local function doRockFall(cid, frompos, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)
local ry = math.abs(frompos.y - pos.y)
doSendDistanceShoot(frompos, pos, 39)
addEvent(doMoveDano2, ry * 11, cid, target, ROCKDAMAGE, min,
max, ret, spell)
addEvent(sendEffWithProtect, ry*11, cid, pos, 157)
end
local function doRockUp(cid, target)
if not isCreature(target) or not isCreature(cid) then re
turn true end
local pos = getThingPosWithDebug(target)

local mps = getThingPosWithDebug(cid)


local xrg = math.floor((pos.x - mps.x) / 2)
local topos = mps
topos.x = topos.x + xrg
local rd = 7
topos.y = topos.y - rd
doSendDistanceShoot(getThingPosWithDebug(cid), topos, 39)
addEvent(doRockFall, rd * 49, cid, topos, target)
end
addEvent(doRockUp, 155, cid, target)
elseif spell == "Stored Power" then
local config = {
outfit = {
--["pokemon_name"] = outfit,
["Gardevoir"] = 1923,
["Mega Gardevoir"] = 1710,
},
AOE = {
times = 1,
--Quantas vezes o golpe AO
E ser usado.
interval = 3000,
--Intervalo de tempo, em m
ilsimos de segundo, entre cada golpe AOE.
combat = PSYCHICDAMAGE,
--Elemento.
spell = {
--Uma tabela dever ser configurada com a rea e efeito da parte com
socos, e a outra com a parte do efeito do Draco Meteor.
{area = OutrageArea1, effect = 39}, --{area = rea do dano AOE, e
ffect = efeito}
{area = OutrageArea2, effect = 220}
},
}
}
local function doOutrage(cid, times)
if not isCreature(cid) then return true end
for i = 1, #config.AOE.spell do
doMoveInArea2(cid, config.AOE.spell[i].effect, config.AOE.spell[i].a
rea, config.AOE.combat, min, max, spell)
end
times = times - 1
if times <= 0 then
local rounds = math.random(4, 7)
rounds = rounds + math.floor(getPokemonLevel(cid) / 35)
return true
end
addEvent(doOutrage, config.AOE.interval, cid, times)
end
local ret = {}
ret.id = cid
ret.cd = config.AOE.interval / 1000 * config.AOE.times
ret.eff = 0
ret.check = 0
ret.buff = spell
ret.first = true
doCondition2(ret)
doSetCreatureOutfit(cid, {lookType = config.outfit[getCreatureName(cid)]}, c
onfig.AOE.interval * config.AOE.times)
addEvent(doOutrage, config.AOE.interval, cid, config.AOE.times)

elseif spell == "Sand Tomb" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
doMoveInAreaMulti(cid, 22, 158, bullet, bulletDano, GROUNDDAMAGE, min, max, ret)
elseif spell == "Magnet Bomb" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 48
ret.check = 0
ret.spell = spell
ret.cond = "Miss"
doMoveInAreaMulti(cid, 22, 171, bullet, bulletDano, ELECTRICDAMAGE, min, max, re
t)
elseif spell == "Rain Dance" then
local master = isSummon(cid) and getCreatureMaster(cid) or cid
-----------local ret = {}
ret.id = 0
ret.cd = 9
ret.check = 0
ret.eff = 1
ret.cond = "Silence"
--local function doFall(cid)
for rocks = 1, 42 do --62
addEvent(fall, rocks*35, cid, master, WATERDAMAGE, 52, 1)
end
end
--local function doRain(cid)
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
--cura status
doCureStatus(cid, "all")
--setPlayerStorageValue(cid, 253, 1) --focus
doSendMagicEffect(getThingPosWithDebug(cid), 132)
--doMoveInArea2(cid, 0, confusion, WATERDAMAGE, 0, 0, spell, ret)
end
--addEvent(doFall, 200, cid)
addEvent(doRain, 1000, cid)
elseif spell == "Night Slash" then

local p = getThingPosWithDebug(cid)
local
{251,
{253,
{252,
{254,
}

t = {
{x = p.x+1,
{x = p.x+2,
{x = p.x+1,
{x = p.x-1,

y
y
y
y

=
=
=
=

p.y-1,
p.y+1,
p.y+2,
p.y+1,

z
z
z
z

=
=
=
=

p.z}},
p.z}},
p.z}},
p.z}},

doAreaCombatHealth(cid, DARKDAMAGE, p, scyther5, -min, -max, 165)


for a = 0, 1 do
for i = 1, 4 do
addEvent(doSendMagicEffect, a*400, t[i][2], t[i][1])
--alterado
v1.8
end
end
addEvent(doAreaCombatHealth, 400, cid, DARKDAMAGE, p, scyther5, -min, -max, 165)
elseif spell == "Heavy Slam" then
local p = getThingPosWithDebug(cid)
local
{251,
{253,
{252,
{254,
}

t = {
{x = p.x+1,
{x = p.x+2,
{x = p.x+1,
{x = p.x-1,

y
y
y
y

=
=
=
=

p.y-1,
p.y+1,
p.y+2,
p.y+1,

z
z
z
z

=
=
=
=

p.z}},
p.z}},
p.z}},
p.z}},

doAreaCombatHealth(cid, STEELDAMAGE, p, confusion, -min, -max, 77)


for a = 0, 1 do
for i = 1, 4 do
addEvent(doSendMagicEffect, a*400, t[i][2], t[i][1])
--alterado
v1.8
end
end
addEvent(doAreaCombatHealth, 400, cid, STEELDAMAGE, p, confusion, -min, -max, 16
5)
elseif spell == "Wild Charge" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 48
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
local pos = getThingPosWithDebug(cid)
local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, ro
ck1, rock5, rock4, rock3, rock2, rock1}
for i = 0, 14 do
addEvent(doMoveInArea2, i*320, cid, 48, areas[i+1], ELECTRICDAMAGE, min, max
, spell, ret)
addEvent(doMoveInArea2, i*330, cid, 48, areas[i+1], ELECTRICDAMAGE, 0, 0, sp
ell)
end

elseif spell == "Focus Blast" then


local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 136
ret.check = 0
ret.spell = spell
ret.cond = "Confusion"
local pos = getThingPosWithDebug(cid)
local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, ro
ck1, rock5, rock4, rock3, rock2, rock1}
for i = 0, 14 do
addEvent(doMoveInArea2, i*320, cid, 112, areas[i+1], FIGHTINGDAMAGE, min, ma
x, spell, ret)
addEvent(doMoveInArea2, i*330, cid, 112, areas[i+1], FIGHTINGDAMAGE, 0, 0, s
pell)
end
elseif spell == "Jump Kick" then

--ver essa

doMoveInAreaMulti(cid, 42, 113, bullet, bulletDano, FIGHTINGDAMAGE, min, max)


elseif spell == "Lava Plume" then
\/\/\/

--alterado v1.8

doMoveInArea2(cid, 5, cross, FIREDAMAGE, -min, -max, spell)


doMoveInArea2(cid, 87, cross, FIREDAMAGE, 0, 0, spell)
elseif spell == "Silver Wind" then
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)
doDanoWithProtectWithDelay(cid, target, BUGDAMAGE, min, max, 78, SilverWing)
elseif spell == "Bug Buzz" then
local ret = {}
ret.id = target
ret.cd = 9
ret.eff = 34
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 86, db1, BUGDAMAGE, min, max, spell, ret)
addEvent(doMoveInArea2, 250, cid, 86, db1, BUGDAMAGE, 0, 0, spell)
elseif spell == "Whirlpool" then
local function setSto(cid)
if isCreature(cid) then
setPlayerStorageValue(cid, 3644587, -1)
end
end
local function doDano(cid)
if isSleeping(cid) then return true end

doDanoWithProtect(cid, WATERDAMAGE, getThingPosWithDebug(cid), splash, min


, max, 89)
end
setPlayerStorageValue(cid, 3644587, 1)
for r = 0, 10 do
addEvent(doDano, 600 * r, cid)
end
addEvent(setSto, 600*10, cid)

elseif spell == "Explosion gas" then


local function setSto(cid)
if isCreature(cid) then
setPlayerStorageValue(cid, 3644587, -1)
end
end
local function doDano(cid)
if isSleeping(cid) then return true end
doDanoWithProtect(cid, WATERDAMAGE, getThingPosWithDebug(cid), splash, min
, max, 116)
end
setPlayerStorageValue(cid, 3644587, 1)
for r = 0, 10 do
addEvent(doDano, 600 * r, cid)
end
addEvent(setSto, 600*10, cid)

elseif spell == "Iron Head" then


doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(target), 39)
doDanoInTargetWithDelay(cid, target, STEELDAMAGE, -min, -max, 77)
elseif spell == "Brick Break" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 88
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 9
ret2.check = 0
ret2.eff = -1
ret2.cond = "Silence"
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {

[0]
[1]
[2]
[3]
}

=
=
=
=

{90,
{90,
{90,
{90,

{x=p.x+1,
{x=p.x+2,
{x=p.x+1,
{x=p.x-1,

y=p.y-1,
y=p.y+1,
y=p.y+2,
y=p.y+1,

z=p.z}},
z=p.z}},
z=p.z}},
z=p.z}},

doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, min, max, spell, ret)


doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, 0, 0, spell, ret2)
doSendMagicEffect(t[a][2], t[a][1])
elseif spell == "Volcano Burst" then
local pos = getThingPosWithDebug(cid)
doMoveInArea2(cid, 91, inferno1, FIREDAMAGE, 0, 0, spell)
addEvent(doDanoWithProtect, math.random(100, 400), cid, FIREDAMAGE, pos, inferno
2, -min, -max, 0)
elseif spell == "Bone Rush" then
local area = {gale1, gale2, gale3, gale4, gale3, gale2, gale1}
for i = 0, 6 do
addEvent(doMoveInArea2, i*400, cid, 227, area[i+1], ROCKDAMAGE, min, max, sp
ell)
end
elseif spell == "Hammer Arm" then
local ret = {}
ret.id = 0
ret.cd = 9
ret.eff = 88
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local ret2 = {}
ret2.id = 0
ret2.cd = 9
ret2.check = 0
ret2.eff = -1
ret2.cond = "Silence"
local a = isCreature(target) and getCreatureDirectionToTarget(cid, target) or ge
tCreatureLookDir(cid)
local p = getThingPosWithDebug(cid)
local t = {
[0] = {92, {x=p.x, y=p.y-1, z=p.z}},
[1] = {94, {x=p.x+2, y=p.y, z=p.z}},
[2] = {95, {x=p.x+1, y=p.y+2, z=p.z}},
[3] = {93, {x=p.x-1, y=p.y, z=p.z}},
}
doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, min, max, spell, ret)
doMoveInArea2(cid, 0, BrickBeak, FIGHTINGDAMAGE, 0, 0, spell, ret2)
doSendMagicEffect(t[a][2], t[a][1])
--///////////////////////

PASSIVAS /////////////////////////--

elseif spell == "Counter Helix" then


-- [nome] = {out = outfit girando, efeitos}
local OutFit = {
["Mega Lucario"] = {out = 1732, cima = 51, direita = 51, esquerda = 51, baixo =
51}, --Scizor
["Shiny Scizor"] = {out = 1907, cima = 128, direita = 129, esquerda = 130, baixo
= 131}, --Scizor
["Scyther"] = {out = 496, cima = 128, direita = 129, esquerda = 130, baixo = 131
}, --scyther
["Scizor"] = {out = 918, cima = 128, direita = 129, esquerda = 130, baixo = 131}
, --Scizor
["Shiny Scyther"] = {out = 849, cima = 128, direita = 129, esquerda = 130, baixo
= 131}, --Shiny Scyther
["Hitmontop"] = {out = 1193, cima = 128, direita = 129, esquerda = 130, baixo =
131}, --Hitmontop
["Shiny Hitmontop"] = {out = 1451, cima = 128, direita = 129, esquerda = 130, ba
ixo = 131}, --Shiny Hitmontop
["Pineco"] = {out = 1194, cima = 128, direita = 129, esquerda = 130, baixo = 131
}, --pineco
["Forretress"] = {out = 1192, cima = 128, direita = 129, esquerda = 130, baixo =
131}, --Forretress
["Wobbuffet"] = {out = 924, cima = 128, direita = 129, esquerda = 130, baixo = 1
31}, --wobb
["Alakazam"] = {out = 569, cima = 128, direita = 129, esquerda = 130, baixo = 13
1}, --alaka
["Kadabra"] = {out = 570, cima = 128, direita = 129, esquerda = 130, baixo = 131
}, --kadabra
["Shiny Abra"] = {out = 1257, cima = 128, direita = 129, esquerda = 130, baixo =
131}, --s abra
}
if getPlayerStorageValue(cid, 32623) == 1 then --proteao pra n usar a pass
iva 2x seguidas...
return true
end
local nome1 = getSubName(cid, target) --alterado v1.6.1
local outfitt = OutFit[nome1] --alterado v1.6.1
local function damage(cid, min, max)
if isCreature(cid) then
if isInArray({"Scyther", "Shiny Scyther", "Pineco"}, nome1) then --al
terado v1.6
damage = BUGDAMAGE
elseif isInArray({"Hitmontop", "Shiny Hitmontop", "Kangaskhan"}, nome1)
then
damage = FIGHTINGDAMAGE
--alterado v1.6.1
else
damage = STEELDAMAGE
end
doAreaCombatHealth(cid, damage, getThingPosWithDebug(cid), scyther5, -m
in, -max, CONST_ME_NONE) --alterado v1.6.1
--doAreaCombatHealth(cid, null, getThingPos(cid), scythe1, 0, 0, outfitt.
cima) --cima
doAreaCombatHealth(cid, null, getThingPos(cid), scythe2, 0, 0, outfitt.
baixo) --baixo
doAreaCombatHealth(cid, null, getThingPos(cid), scythe3, 0, 0, outfitt.

direita) --direita
doAreaCombatHealth(cid, null, getThingPos(cid), scythe4, 0, 0, outfitt.
esquerda) --esquerda
end
end
local function sendEff(cid)
if isCreature(cid) then
doAreaCombatHealth(cid, null, getThingPos(cid),
cima) --cima
doAreaCombatHealth(cid, null, getThingPos(cid),
baixo) --baixo
doAreaCombatHealth(cid, null, getThingPos(cid),
direita) --direita
--alterado v1.6
doAreaCombatHealth(cid, null, getThingPos(cid),
esquerda) --esquerda
end
end

scythe1, 0, 0, outfitt.
scythe2, 0, 0, outfitt.
scythe3, 0, 0, outfitt.
scythe4, 0, 0, outfitt.

local function doChangeO(cid)


if not isCreature(cid) then return true end
setPlayerStorageValue(cid, 32623, 0)
if isSleeping(cid) and getMonsterInfo(getCreatureName(cid)).lookCorpse
~= 0 then
doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(
getCreatureName(cid)).lookCorpse}, -1)
else
doRemoveCondition(cid, CONDITION_OUTFIT)
end
end
local delay = 200 -- no mexe
local master = isSummon(cid) and getCreatureMaster(cid) or cid
--alterado v1.6
local summons = getCreatureSummons(master)
if (isPlayer(master) and #summons >= 2) or (ehMonstro(master) and #summons
>= 1) then
for j = 1, #summons do
setPlayerStorageValue(summons[j], 32623, 1)
doSetCreatureOutfit(summons[j], {lookType = outfitt.out}, -1)
for i = 1, 2 do
--alterado v1.6
addEvent(sendEff, delay*i, summons[j])
end
addEvent(doChangeO, 2 * 300 + 10, summons[j])
end
for i = 1, 2 do
addEvent(damage, delay*i, (isPlayer(master) and summons[1] or maste
r), min, max)
end
else
setPlayerStorageValue(cid, 32623, 1)
setPlayerStorageValue(cid, 98654, 1)
doSetCreatureOutfit(cid, {lookType = outfitt.out}, -1)
for i = 1, 2 do
--alterado v1.6

addEvent(damage, delay*i, cid, min, max)


end
addEvent(doChangeO, 2 * 300 + 10, cid)
end
elseif spell == "Lava-Counter" then
local function sendStickEff(cid, dir)
if not isCreature(cid) then return true end
doAreaCombatHealth(cid, FIREDAMAGE, getPosByDir(getThingPosWithDebug(cid)
, dir), 0, -min, -max, 5)
end
local function doStick(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTHWEST,
[2] = SOUTH,
[3] = SOUTHEAST,
[4] = EAST,
[5] = NORTHEAST,
[6] = NORTH,
[7] = NORTHWEST,
[8] = WEST,
[9] = SOUTHWEST,
}
for a = 1, 9 do
addEvent(sendStickEff, a * 140, cid, t[a])
end
end
doStick(cid, false, cid)
setPlayerStorageValue(cid, 98654, 1)
elseif spell == "Mega Drain" then
local uid = checkAreaUid(getThingPos(cid), check, 1, 1)
for _,pid in pairs(uid) do
if isCreature(cid) and isCreature(pid) and pid ~= cid then
if isPlayer(pid) and #getCreatureSummons(pid) >= 1 then return false e
nd
local life = getCreatureHealth(pid)
doAreaCombatHealth(cid, GRASSDAMAGE, getThingPos(pid), 0, -min, -m
ax, 14)
local newlife = life - getCreatureHealth(pid)
doSendMagicEffect(getThingPos(cid), 14)
setPlayerStorageValue(cid, 98654, 1)
if newlife >= 1 then
doCreatureAddHealth(cid, newlife)
doSendAnimatedText(getThingPos(cid), "+"..newlife.."", 32)
end
end
end
elseif spell == "Spores Reaction" then
local random = math.random(1, 3)

if random == 1 then
local ret = {}
ret.id = 0
ret.cd = math.random(2, 3)
ret.check = 0
ret.first = true
ret.cond = "Sleep"

--alterado v1.6

doMoveInArea2(cid, 27, confusion, GRASSDAMAGE, 0, 0, "Spores Reaction", re


t)
setPlayerStorageValue(cid, 98654, 1)
elseif random == 2 then
local ret = {}
ret.id = 0
ret.cd = 6
ret.eff = 0
ret.check = 0
ret.spell = spell
ret.cond = "Stun"
doMoveInArea2(cid, 85, confusion, GRASSDAMAGE, 0, 0, "Spores Reaction", re
t)
setPlayerStorageValue(cid, 98654, 1)
else
local ret = {}
ret.id = 0
ret.cd = math.random(6, 10)
ret.check = 0
local lvl = isSummon(cid) and getMasterLevel(cid) or getPokemonLevel(cid)
--alterado v1.6
ret.damage = math.floor((getPokemonLevel(cid)+lvl * 3)/2)
ret.cond = "Poison"
doMoveInArea2(cid, 84, confusion, POISONDAMAGE, 0, 0, "Spores Reaction", r
et)
setPlayerStorageValue(cid, 98654, 1)
end
elseif spell == "Stunning Confusion" then
if getPlayerStorageValue(cid, 32623) == 1 then --proteao pra n usar a spel
l 2x seguidas...
return true
end
local function damage(cid)
if isCreature(cid) then
doAreaCombatHealth(cid, PSYCHICDAMAGE, getThingPosWithDebug(cid), bombW
ee3, -min, -max, 133)
end
end
setPlayerStorageValue(cid, 32623, 1)
--proteao
for i = 1, 7 do
addEvent(damage, i*500, cid)
end
addEvent(setPlayerStorageValue, 3500, cid, 32623, 0)
setPlayerStorageValue(cid, 98654, 1)

--proteao

elseif spell == "Bone-Spin" then


local function sendStickEff(cid, dir)
if not isCreature(cid) then return true end
doAreaCombatHealth(cid, GROUNDDAMAGE, getPosByDir(getThingPosWithDebug(ci
d), dir), 0, -min, -max, 227)
end
local function doStick(cid)
if not isCreature(cid) then return true end
local t = {
[1] = SOUTHWEST,
[2] = SOUTH,
[3] = SOUTHEAST,
[4] = EAST,
[5] = NORTHEAST,
[6] = NORTH,
[7] = NORTHWEST,
[8] = WEST,
[9] = SOUTHWEST,
}
for a = 1, 9 do
addEvent(sendStickEff, a * 140, cid, t[a])
end
end
doStick(cid, false, cid)
setPlayerStorageValue(cid, 98654, 1)
--al
terado v1.4
elseif spell == "Amnesia" then
if getPlayerStorageValue(cid, 253) >= 1 then return true end
doCreatureSay(cid, "????", 20)
doSendMagicEffect(getThingPosWithDebug(cid), 132)
setPlayerStorageValue(cid, 253, 1)
setPlayerStorageValue(cid, 98654, 1)
elseif spell == "Dragon Fury" then
if getPlayerStorageValue(cid, 32623) == 1 then
return true
end
setPlayerStorageValue(cid, 32623, 1)
setPlayerStorageValue(cid, 98654, 1)
if isInArray({"Persian", "Raticate", "Shiny Raticate"}, getSubName(cid, targe
t)) then --alterado v1.6.1
doRaiseStatus(cid, 1.5, 0, 0, 10)
else
--alterado v1.5
doRaiseStatus(cid, 1.5, 1.5, 0, 10)
--ver isso
end
for t = 1, 7 do
--alterado v1.5
addEvent(sendMoveEffect, t*1500, cid, 12)
end
addEvent(setPlayerStorageValue, 10500, cid, 32623, 0) --alterado v1.8

elseif spell == "Electric Charge" then


if getPlayerStorageValue(cid, 253) >= 1 then
return true
end
setPlayerStorageValue(cid, 253, 1)
setPlayerStorageValue(cid, 98654, 1)
doSendMagicEffect(getThingPosWithDebug(cid), 207)
doSendAnimatedText(getThingPosWithDebug(cid), "FOCUS", 144)
elseif spell == "Shock-Counter" then
local function doStick(cid)
if not isCreature(cid) then return true end
doAreaCombatHealth(cid, ELECTRICDAMAGE, getThingPosWithDebug(cid), splas
h, -min, -max, 0)
local p = getThingPosWithDebug(cid)
p.x = p.x+1
p.y = p.y+1
sendEffWithProtect(cid, p, 25)
end

--send eff

doStick(cid, false, cid)


setPlayerStorageValue(cid, 98654, 1)

elseif spell == "Eruption" then


local pos = getThingPosWithDebug(cid)
local areas = {rock1, rock2, rock3, rock4, rock5}
local ret = {}
ret.id = 0
ret.cd = 2
ret.eff = 103
ret.check = 0
ret.first = true
ret.cond = "Paralyze"
local config = {
time = {1
, 800},
--{Durao da spell, intervalo entre cada
"tick" de dano (em milsimos de segundos)},
storage = 93828,
effects = {
pullEffects = {
distance = 15,
--Distance effect do efeito de puxar pokmons.
effect = 241,
--Efeito de tornado.
},
damageEffect = 15,
--Efeito do redemoinho que aplica dano.
},
}
local time = os.time() + config.time[1]
function Pull(cid, ret)
local pos = getPosfromArea(cid, pullArea)
if pos and #pos > 0 then
for i = 1, #pos do
local c = getTopCreature(pos[i]).uid
if c > 0 then
legendarios = { "Blue Tower 1", "Blue Tower 2",

"Blue Tower 3", "Red Tower 1", "Red Tower 2", "Red Tower 3", "Entei", "Moltres",
"Zapdos", "Articuno", "Celebi"}
if ehMonstro(c) and not isInArray(legendarios, getCreatureNa
me(c))then
doTeleportThing(c, getClosestFreeTile(cid, getThingPos(c
id)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
elseif isSummon(c) then
local master = getCreatureMaster(c)
if isSummon(cid) then
if getPlayerStorageValue(master, 52480) >= 1 and get
PlayerStorageValue(master, 52481) >= 0 then
local masterCid = getCreatureMaster(cid)
if isDuelingAgainst(masterCid, master) then
doTeleportThing(c, getClosestFreeTile(cid, g
etThingPos(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret,
spell)
end
end
else
doTeleportThing(c, getClosestFreeTile(cid, getThingP
os(cid)))
doMoveDano2(cid, c, NORMALDAMAGE, 0, 0, ret, spell)
end
end
end
end
end
end
function doSendTornado(cid, pos)
if not isCreature(cid) then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then ret
urn true end
doSendDistanceShoot(getThingPos(cid), pos, config.effects.pullEffects.di
stance)
doSendMagicEffect(pos, config.effects.pullEffects.effect)
end
function vortexDamage(cid)
if not isCreature(cid) then
return true
elseif time - os.time() < 0 then
return true
end
doDanoWithProtect(cid, FIREDAMAGE, getThingPos(cid), damageArea, min, ma
x, config.effects.damageEffect)
addEvent(vortexDamage, config.time[2], cid)
end
for b = 1, 3 do
for a = 1, 20 do
local pos = {x = getThingPos(cid).x + math.random(-4, 4), y = getThi
ngPos(cid).y + math.random(-3, 3), z = getThingPos(cid).z}
addEvent(doSendTornado, a * 75, cid, pos)
end
end
Pull(cid, ret)
vortexDamage(cid)
doCreatureSetNoMove(cid, true)

doChangeSpeed(cid, -getCreatureSpeed(cid))
setPlayerStorageValue(cid, config.storage, time)
addEvent(function()
if isCreature(cid) then
doCreatureSetNoMove(cid, false)
doRegainSpeed(cid)
end
end, config.time[1] * 1000)
elseif spell == "Mirror Coat" then
if spell == "Magic Coat" then
eff = 11
else
eff = 135
end
doSendMagicEffect(getThingPosWithDebug(cid), eff)
setPlayerStorageValue(cid, 21099, 1)
setPlayerStorageValue(cid, 98654, 1)
elseif spell == "Zen Mind" then
function doCure(cid)
if not isCreature(cid) then return true end
if isSummon(cid) then
doCureBallStatus(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "all")
end
doCureStatus(cid, "all")
end
addEvent(doCure, 1000, cid)
setPlayerStorageValue(cid, 98654, 1)
elseif spell == "Groundshock" then
doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), scyther5
, -min, -max, 255)
local sps = getThingPosWithDebug(cid)
sps.x = sps.x+1
sps.y = sps.y+1
doSendMagicEffect(sps, 127)
elseif spell == "Demon Kicker" then
--[outfit] = outfit chutando,
local hitmonlees = {
["Hitmonlee"] = 652,
--hitmonlee
["Shiny Hitmonlee"] = 878, --shiny hitmonlee
}
local nome = getCreatureName(cid)
--alterado v1.6
--alterado v1.7
if (not hitmonlees[nome] and isCreature(target)) or (isCreature(target) and math
.random(1, 100) <= passivesChances["Demon Kicker"][nome]) then

if getDistanceBetween(getThingPos(cid), getThingPos(target)) > 1 then


return true
end
if getPlayerStorageValue(cid, 32623) == 1 then --proteao pra n usar a pass
iva 2x seguidas...
return true
end
if not isSummon(cid) then
--alterado v1.7
doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER)
end
local function doChangeHitmon(cid)
if not isCreature(cid) then return true end
setPlayerStorageValue(cid, 32623, 0)
--proteao
if isSleeping(cid) and getMonsterInfo(getCreatureName(cid)).lookCorpse
~= 0 then
doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(
getCreatureName(cid)).lookCorpse}, -1)
else
doRemoveCondition(cid, CONDITION_OUTFIT)
end
end
setPlayerStorageValue(cid, 32623, 1)
--proteao
setPlayerStorageValue(cid, 98654, 1)
local look = hitmonlees[nome] or getPlayerStorageValue(cid, 21104) --a
lterado v1.6
doCreatureSetLookDir(cid, getCreatureDirectionToTarget(cid, target))
doSetCreatureOutfit(cid, {lookType = look}, -1) --alterado v1.6
doTargetCombatHealth(cid, target, FIGHTINGDAMAGE, -min, -max, 255)
addEvent(doChangeHitmon, 700, cid)
end
elseif spell == "Illusion" then
local team = {
["Misdreavus"] = "MisdreavusTeam",
["Shiny Stantler"] = "Shiny StantlerTeam",
["Stantler"] = "StantlerTeam",
}
local function RemoveTeam(cid)
if isCreature(cid) then
doSendMagicEffect(getThingPosWithDebug(cid), 211)
doRemoveCreature(cid)
end
end
local function sendEff(cid, master, t)
if isCreature(cid) and isCreature(master) and t > 0 and #getCreatureSummons(mast
er) >= 2 then
doSendMagicEffect(getThingPosWithDebug(cid), 86, master)
addEvent(sendEff, 1000, cid, master, t-1)
--alterado v
1.9
end
end

if getPlayerStorageValue(cid, 637500) >= 1 then


return true
end
local
local
local
local
local
local

master = getCreatureMaster(cid)
item = getPlayerSlotItem(master, 8)
life, maxLife = getCreatureHealth(cid), getCreatureMaxHealth(cid)
name = getItemAttribute(item.uid, "poke")
pos = getThingPosWithDebug(cid)
time = 5

doItemSetAttribute(item.uid, "hp", (life/maxLife))


local num = getSubName(cid, target) == "Misdreavus" and 3 or 2
local pk = {}
doTeleportThing(cid, {x=4, y=3, z=10}, true)
if team[name] then
pk[1] = cid
for b = 2, num do
pk[b] = doSummonCreature(team[name], pos)
doConvinceCreature(master, pk[b])
end
for a = 1, num do
addEvent(doTeleportThing, math.random(0, 5), pk[a], getClosestFreeTile(pk[
a], pos), true)
addEvent(doAdjustWithDelay, 5, master, pk[a], true, true, true)
doSendMagicEffect(getThingPosWithDebug(pk[a]), 211)
end
sendEff(cid, master, time)
--alterado v1.9
setPlayerStorageValue(master, 637501, 1)
addEvent(setPlayerStorageValue, time * 1000, master, 637501, -2)
----setPlayerStorageValue(pk[2], 637500, 1)
addEvent(RemoveTeam, time * 1000, pk[2])
----setPlayerStorageValue(pk[3], 637500, 1)
addEvent(RemoveTeam, time * 1000, pk[3])
---if getSubName(cid, target) == "Scizor" then
setPlayerStorageValue(pk[4], 637500, 1)
addEvent(RemoveTeam, time * 1000, pk[4])
end
end

elseif spell == "Demon Puncher" then


local name = getCreatureName(cid)
--alterado v1.7
if (not hitmonchans[name] and isCreature(target)) or (isCreature(target) and mat
h.random(1, 100) <= passivesChances["Demon Puncher"][name]) then
if getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(tar
get)) > 1 then

return true
end
if not isSummon(cid) then
--alterado v1.7
doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER)
end
if ehMonstro(cid) or not hitmonchans[name] then
hands = 0
else
hands = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8
).uid, "hands")
end
if not hitmonchans[name] then
tabela = hitmonchans[getCreatureName(target)][hands]
else
tabela = hitmonchans[name][hands]
end
doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(tar
get), 39)
doTargetCombatHealth(cid, target, tabela.type, -min, -max, 255)
local alvo = getThingPosWithDebug(target)
alvo.x = alvo.x + 1

---alterado v1.7

if hands == 4 then
doSendMagicEffect(alvo, tabela.eff)
else
doSendMagicEffect(getThingPosWithDebug(target), tabela.eff)
end
if hands == 3 then
local ret = {}
ret.id = target
ret.cd = 9
--alterado v1.6
ret.eff = 43
ret.check = getPlayerStorageValue(target, conds["Slow"])
ret.first = true
ret.cond = "Slow"
doMoveDano2(cid, target, FIGHTINGDAMAGE, 0, 0, ret, spell)
setPlayerStorageValue(cid, 98654, 1)
end
end
end
return true
end

You might also like