Ir para conteúdo

Bug No Order


484539

Posts Recomendados

Meu order esta com bug alguem pode me ajudar???

modifiquei ele e agora n funciona

 

meu antigo

-- feito por Lukkas666

local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}
local direction = {'4', '5', '6', '7'}
-- ridefly
local ridefly = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Gligar', 'Girafarig', 'Meganium', 'Porygon2', 'Stantler', 'Skarmory', 'Piloswine', 'Mareep', 'Houndor'}
local ride = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Girafarig', 'Meganium', 'Stantler', 'Piloswine', 'Mareep', 'Houndor'}
local fly = {'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Gligar', 'Porygon2', 'Skarmory'}
local flys = {
[265] = {229, 2300, 350}, -- moltres
[283] = {230, 2100, 350}, -- artic
[199] = {224, 2600, 350}, -- zapdos
[9] = {232, 2200, 525}, -- 1000
[34] = {233, 2200, 525},-- two
[210] = {221, 1300, 410},-- nite
[80] = {222, 900, 375}, -- geot
[17] = {226, 800, 400}, -- fearow
[10] = {227, 1100, 410}, -- aero
[67] = {216, 1000, 410}, -- chari
[97] = {316, 600, 440}, -- porygon
[559] = {662, 900, 440}, -- gligar
[593] = {679, 900, 440}, -- porygon2
[604] = {682, 900, 440}, -- skarmory
}
local rides = {
[93] = {128, 780, 400}, -- tauros
[114] = {129, 800, 375}, -- ninetales
[220] = {130, 800, 395}, -- rapid
[16] = {131, 410, 500}, -- ponyta
[77] = {132, 400, 510}, -- rhyhorn
[88] = {12, 900, 390}, -- arcan
[493] = {492, 1000, 360}, -- shiny arca
[496] = {494, 420, 420}, -- shiny venu
[292] = {293, 480, 430}, -- cristal onix
[248] = {126, 450, 450}, -- onix
[22] = {134, 390, 450}, -- venu
[120] = {133, 750, 380}, -- dodrio
[26] = {135, 420, 500}, -- doduo
[558] = {667, 1000, 360}, -- girafarig
[581] = {674, 1000, 360}, -- meganium
[613] = {684, 1000, 360}, -- stantler
[590] = {677, 900, 440}, -- piloswine
[579] = {672, 900, 440}, -- mareep
[567] = {669, 900, 440}, -- houndor
}
local bolas = {'2222', '2223', '2224'}
local ultra = {'2220', '2221', '2227'}
local etudao = 9506
local mind = 9507
-- ROCK SMASH
local rocksmash = {'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax', 'Poliwrath'}
local erockmash = 9502
local cdrocksmash = 2
-- ROCK SMASH
-- DIG
local digholes = {'468', '481', '483'}
local dig = {'Raticate', 'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax', 'Donphan'}
local edig = 9504
local cddig = 2
-- DIG
-- CUT
local cut = {'Raticate', 'Bulbasaur', 'Ivysaur', 'Venusaur', 'Charmeleon', 'Sandshrew', 'Sandslash', 'Gloom', 'Vileplume', 'Paras', 'Parasect', 'Meowth', 'Persian', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Farfetchd', 'Krabby', 'Kingler', 'Exeggutor', 'Cubone', 'Marowak', 'Tangela', 'Scyther', 'Pinsir'}
local ecut = 9503
local cdcut = 2
-- CUT
-- BLINK
local blink = {'Abra', 'Kadabra', 'Alakazam', 'Porygon', 'Porygon2', 'Gallade'}
local exhaustblink = 9501
local cdblink = 40
-- BLINK
-- BLINK  2
local blink = {'Mew', 'Mewtwo'}   
local exhaustblink = 9501
local cdblink = 10
-- BLINK   2
-- LIGHT
local light = {'Abra', 'Kadabra', 'Alakazam','Mew', 'Magnemite', 'Magneton', 'Drowzee', 'Hypno', 'Voltorb', 'Electrode', 'Mrmime', 'Electabuzz', 'Jolteon', 'Porygon', 'Pikachu', 'Raichu', 'Elekid', 'Ampharos', 'Flaaffy'}
local exhautStorage = 9500
local time = 600
local cd = 17
-- LIGHT
function onUse(cid, item, frompos, item2, topos)
if getPlayerItemCount(cid, item2.itemid) >= 1 then
return false
end
if isMonster(item2.uid) and item2.uid ~= getCreatureSummons(cid)[1] and item2.uid ~= cid then
if #getCreatureSummons(cid) == 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon para usar ordem.")
return true
end
if exhaustion.get(cid, mind) then
doPlayerSendCancel(cid, "Seu pokemon é muito exausto do último controle,espere mais um tempo")
return true
end
if isPlayer(getCreatureMaster(item2.uid)) then
doPlayerSendCancel(cid, "Você não pode controlar a mente de pokemon de outra pessoa.")
return true
end
if not isInArray({"Alakazam", "Tentacruel", "Gengar", "Girafarig"}, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Este pokemon pode controlar mentes.")
return true
end
exhaustion.set(cid, mind, 240)
doCreatureSay(getCreatureSummons(cid)[1], "CONTROL MIND!", TALKTYPE_MONSTER)
doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(item2.uid), 39)
registerCreatureEvent(item2.uid, "Controled")
doSendMagicEffect(getThingPos(item2.uid), 136)
doSendMagicEffect(getThingPos(item2.uid), 134)
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 133)
setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
doConvinceCreature(cid, item2.uid)
if getCreatureSpeed(item2.uid) == 0 then
doChangeSpeed(item2.uid, 180)
end
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", control "..string.lower(getCreatureName(item2.uid)).."'s mind!", 1)
local cmed = item2.uid
local cmname = getCreatureName(getCreatureSummons(cid)[1])
local cmpos = getThingPos(getCreatureSummons(cid)[1])
doRemoveCreature(getCreatureSummons(cid)[1])
local cmzao = doSummonCreature(""..cmname.." cm", cmpos)
doConvinceCreature(cid, cmzao)
setPlayerStorageValue(cid, 888, 1)
local function check(params)
if isCreature(params.cid) then
if getPlayerStorageValue(params.cid, 888) <= 0 then
return true
end
if not isCreature(cmed) then
local pkcmpos = getThingPos(getCreatureSummons(cid)[1])
doRemoveCreature(getCreatureSummons(cid)[1])
local item = getPlayerSlotItem(cid, 8)
local pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), pkcmpos)
doConvinceCreature(cid, pk)
doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(pk, "Exp")
registerCreatureEvent(cid, "PlayerPokeDeath")
setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
setPlayerStorageValue(cid, 888, 0)
end
if params.rod == 20 then
local lifecmed = getCreatureMaxHealth(cmed) - getCreatureHealth(cmed)
local poscmed = getThingPos(cmed)
local cmeddir = getCreatureLookDir(cmed)
local namecmed = getCreatureName(cmed)
doRemoveCreature(getCreatureSummons(cid)[1])
local back = doSummonCreature(""..namecmed.." s", poscmed)
if getCreatureSpeed(back) == 0 then
doChangeSpeed(back, 180)
end
doCreatureSetLookDir(back, cmeddir)
doCreatureAddHealth(back, -lifecmed)
local item = getPlayerSlotItem(cid, 8)
local mynewpos = getThingPos(getCreatureSummons(cid)[1])
doRemoveCreature(getCreatureSummons(cid)[1])
pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), mynewpos)
doConvinceCreature(cid, pk)
doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(pk, "Exp")
registerCreatureEvent(cid, "PlayerPokeDeath")
setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
setPlayerStorageValue(cid, 888, 0)
else
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220)
end
end
end
for rod = 1, 20 do
addEvent(check, rod*500, {cid = cid, rod = rod})
end
return true
end

if item2.uid == cid then
if getPlayerStorageValue(cid, 888) >= 1 then
doPlayerSendCancel(cid, "Você não pode voar nem pokemons passeio está sendo controlado.")
return true
end
if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon para usar ordem.")
return true
end
if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and not isInArray(ridefly, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Você não pode montar este pokemon nem voar com ele.")
return true
end
if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
return true
end

if getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and isInArray(ride, getCreatureName(getCreatureSummons(cid)[1])) then
local pokemon = rides[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getCreatureSpeed(getCreatureSummons(cid)[1]) >= 1 then
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
end
local function ride(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.d then
doChangeSpeed(cid, -250)
doChangeSpeed(cid, pokemon[2])
exhaustion.set(cid, etudao, 4)
setPlayerStorageValue(cid, 17001, 1)
doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)
setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
doRemoveCreature(getCreatureSummons(cid)[1])
else
dirh = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))
if dirh == NORTHWEST then
 if math.random(1,100) >= 51 then
 dirh = NORTH
 else
 dirh = WEST
 end
elseif dirh == SOUTHWEST then
 if math.random(1,100) >= 51 then
 dirh = SOUTH
 else
 dirh = WEST
 end
elseif dirh == SOUTHEAST then
 if math.random(1,100) >= 51 then
 dirh = SOUTH
 else
 dirh = EAST
 end
elseif dirh == NORTHEAST then
 if math.random(1,100) >= 51 then
 dirh = NORTH
 else
 dirh = EAST
 end
end
local dirh = dirh
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
end
end
end
end
end

local function speed(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
end
end
end
end
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", let me ride you!", 1)
exhaustion.set(cid, etudao, 4)
if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then
distanc = 1
else
distanc = 0
end
local distance = distanc
for i=1,12 do
addEvent(ride, pokemon[3]*i, {cid = cid, d = distance})
addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})
end
return true
end
if getPlayerStorageValue(cid, 17001) >= 1 then
setPlayerStorageValue(cid, 17001, 0)
if getPlayerGroupId(cid) ~= 6 then
setPlayerGroupId(cid, 8)
end
doCreatureSetLookDir(cid, 2)
doChangeSpeed(cid, -(getCreatureSpeed(cid)))
if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then
doChangeSpeed(cid, 400*getPlayerGroupId(cid))
else
doChangeSpeed(cid, 250)
end
doRemoveCondition(cid, CONDITION_OUTFIT)
local item = getPlayerSlotItem(cid, 8)
doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)
doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))
local pk = getCreatureSummons(cid)[1]
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(pk, "Exp")
setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
return true
end

if getPlayerStorageValue(cid, 17000) >= 1 then
if isInArray({460, 1022, 1023}, getTileInfo(getThingPos(cid)).itemid) then
doPlayerSendCancel(cid, "Você não pode parar de voar nesta altura!")
return true
end
if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then
doPlayerSendCancel(cid, "Você não pode parar de voar acima da água!")
return true
end
if getPlayerGroupId(cid) ~= 6 then
setPlayerGroupId(cid, 8)
end
doCreatureSetLookDir(cid, 2)
setPlayerStorageValue(cid, 17000, 0)
doChangeSpeed(cid, -(getCreatureSpeed(cid)))
if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then
doChangeSpeed(cid, 200*getPlayerGroupId(cid))
else
doChangeSpeed(cid, 250)
end
doRemoveCondition(cid, CONDITION_OUTFIT)
local item = getPlayerSlotItem(cid, 8)
doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)
doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))
local pk = getCreatureSummons(cid)[1]
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(pk, "Exp")
setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
return true
end
if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(fly, getCreatureName(getCreatureSummons(cid)[1])) then
if getPlayerStorageValue(cid, 17000) <= 0 then
local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
local function fly(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.dd then
doPlayerSendTextMessage(cid,27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower." )
setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
setPlayerStorageValue(cid, 17000, 1)
registerCreatureEvent(cid, "Flying")
doChangeSpeed(cid, -250)
doChangeSpeed(cid, pokemon[2])
exhaustion.set(cid, etudao, 4)
doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)
doRemoveCreature(getCreatureSummons(cid)[1])
else
dir = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))
if dir == NORTHWEST then
 if math.random(1,100) >= 51 then
 dir = NORTH
 else
 dir = WEST
 end
elseif dir == SOUTHWEST then
 if math.random(1,100) >= 51 then
 dir = SOUTH
 else
 dir = WEST
 end
elseif dir == SOUTHEAST then
 if math.random(1,100) >= 51 then
 dir = SOUTH
 else
 dir = EAST
 end
elseif dir == NORTHEAST then
 if math.random(1,100) >= 51 then
 dir = NORTH
 else
 dir = EAST
 end
end
local dir = dir
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
end
end
end
end
end
local function speed(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
end
end
end
end
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", lets fly!", 1)
exhaustion.set(cid, etudao, 4)
if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then
distancc = 1
else
distancc = 0
end
local distancee = distancc
for i=1,12 do
addEvent(fly, pokemon[3]*i, {cid = cid, dd = distancee})
addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})
end
return true
end
return true
end
end
-- ROCK SMASH
if item2.itemid == 1285 and getPlayerStorageValue(cid, 63215) <= 0 then
if #getCreatureSummons(cid) == 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon de usar Rock Smash.")
return true
end
if not isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Este pokemon não pode usar Rock Smash.")
return true
end
if isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) then
if exhaustion.get(cid, erocksmash) then
doPlayerSendCancel(cid, "Por favor, aguarde alguns segundos antes de usar Rock Smash novamente!")
return true
end

if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
return true
end
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
local function tocut(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then
return true
end
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 100) >= 1 then
return true
end
if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
doSendMagicEffect(topos, 118)
doTransformItem(getTileItemById(topos, 1285).uid, 2257)
exhaustion.set(cid, erocksmash, cdrocksmash)
setPlayerStorageValue(getCreatureSummons(params.cid)[1], 100, 1)
 local function detrans(params)
 doTransformItem(getTileItemById(topos, 2257).uid, 1285)
  if isCreature(getCreatureSummons(params.ciddd)[1]) then
  setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 100, 0)
  end
 end
addEvent(detrans, 5500, {ciddd = cid})
doCreatureSay(getCreatureSummons(cid)[1], "ROCK SMASH!", TALKTYPE_MONSTER)
local function nmr(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
 doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
 end
end
end
end
addEvent(nmr, 400, {cid = cid})
else
local badire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)
if badire == NORTHWEST then
 if math.random(1,100) >= 51 then
 badire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = NORTH
  else
  badire = WEST
  end
 else
 badire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = WEST
  else
  badire = NORTH
  end
 end
elseif badire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 badire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = SOUTH
  else
  badire = WEST
  end
 else
 badire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = WEST
  else
  badire = SOUTH
  end
 end
elseif badire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 badire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = SOUTH
  else
  badire = EAST
  end
 else
 badire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = EAST
  else
  badire = SOUTH
  end
 end
elseif badire == NORTHEAST then
 if math.random(1,100) >= 51 then
 badire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = NORTH
  else
  badire = EAST
  end
 else
 badire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = EAST
  else
  badire = NORTH
  end
 end
end
local badire = badire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", esmagar esse rock!", 1)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do
addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
end
return true
end
end
-- ROCK SMASH END
-- CUT
if item2.itemid == 2767 and getPlayerStorageValue(cid, 63215) <= 0 then
if #getCreatureSummons(cid) == 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon usar corte.")
return true
end
if not isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Este pokemon não pode usar corte.")
return true
end
if isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) then
if exhaustion.get(cid, ecut) then
doPlayerSendCancel(cid, "Por favor, aguarde alguns segundos antes de usar o corte de novo!")
return true
end
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
return true
end
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
local function tocut(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then
return true
end
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 101) >= 1 then
return true
end
if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
doSendMagicEffect(topos, 141)
doTransformItem(getTileItemById(topos, 2767).uid, 6216)
exhaustion.set(cid, ecut, cdcut)
setPlayerStorageValue(getCreatureSummons(params.cid)[1], 101, 1)
 local function detrans(params)
 doTransformItem(getTileItemById(topos, 6216).uid, 2767)
  if isCreature(getCreatureSummons(params.ciddd)[1]) then
  setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 101, 0)
  end
 end
addEvent(detrans, 5500, {ciddd = cid})
doCreatureSay(getCreatureSummons(cid)[1], "CUT!", TALKTYPE_MONSTER)
local function nmr(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
 doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
 end
end
end
end
addEvent(nmr, 400, {cid = cid})
else
adire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)
if adire == NORTHWEST then
 if math.random(1,100) >= 51 then
 adire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = NORTH
  else
  adire = WEST
  end
 else
 adire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = WEST
  else
  adire = NORTH
  end
 end
elseif adire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 adire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = SOUTH
  else
  adire = WEST
  end
 else
 adire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = WEST
  else
  adire = SOUTH
  end
 end
elseif adire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 adire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = SOUTH
  else
  adire = EAST
  end
 else
 adire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = EAST
  else
  adire = SOUTH
  end
 end
elseif adire == NORTHEAST then
 if math.random(1,100) >= 51 then
 adire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = NORTH
  else
  adire = EAST
  end
 else
 adire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
  adire = EAST
  else
  adire = NORTH
  end
 end
end
local adire = adire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", cortar esse mato!", 1)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
temk = 1000 -(2.3 * speed)
addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do
addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
end
return true
end
end
-- CUT END
-- DIG
if isInArray(digholes, item2.itemid) and getPlayerStorageValue(cid, 63215) <= 0 then
if #getCreatureSummons(cid) == 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon usar dig.")
return true
end
if not isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Este pokemon não pode usar dig.")
return true
end
if isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) then
if exhaustion.get(cid, edig) then
doPlayerSendCancel(cid, "Por favor, aguarde alguns segundos antes de usar dig de novo!")
return true
end
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
return true
end
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
local function tocut(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then
return true
end
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 99) >= 1 then
return true
end
if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
doSendMagicEffect(topos, 3)
setPlayerStorageValue(getCreatureSummons(params.cid)[1], 99, 1)
doTransformItem(getTileItemById(topos, item2.itemid).uid, item2.itemid+1)
exhaustion.set(cid, edig, cddig)
 local function detrans(params)
 doTransformItem(getTileItemById(topos, item2.itemid+1).uid, item2.itemid)
  if isCreature(getCreatureSummons(params.ciddd)[1]) then
  setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 99, 0)
  end
 end
addEvent(detrans, 5500, {ciddd = cid})
doCreatureSay(getCreatureSummons(cid)[1], "DIG!", TALKTYPE_MONSTER)
local function nmr(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
 doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
 end
end
end
end
addEvent(nmr, 400, {cid = cid})
else
local cdire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)
if cdire == NORTHWEST then
 if math.random(1,100) >= 51 then
 cdire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = NORTH
  else
  cdire = WEST
  end
 else
 cdire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = WEST
  else
  cdire = NORTH
  end
 end
elseif cdire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 cdire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = SOUTH
  else
  cdire = WEST
  end
 else
 cdire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = WEST
  else
  cdire = SOUTH
  end
 end
elseif cdire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 cdire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = SOUTH
  else
  cdire = EAST
  end
 else
 cdire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = EAST
  else
  cdire = SOUTH
  end
 end
elseif cdire == NORTHEAST then
 if math.random(1,100) >= 51 then
 cdire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = NORTH
  else
  cdire = EAST
  end
 else
 cdire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
  cdire = EAST
  else
  cdire = NORTH
  end
 end
end
local cdire = cdire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", abrir este buraco!", 1)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
temk = 1000 -(2.3 * speed)
addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do
addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
end
return true
end
end
-- DIG END
-- BLINK
if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon para usar ordem.")
return true
end
if not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then
if isInArray(blink, getCreatureName(getCreatureSummons(cid)[1])) then
if exhaustion.get(cid, exhaustblink) then
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
doPlayerSendCancel(cid, "Você não pode encomendar o seu pokemon para se mover agora.")
return true
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)
local function move(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then
return true
end
 if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then
  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   if getCreatureSpeed(params.sum) == 0 then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   end
   addEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
 return true
 end
local edire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)
if edire >= 0 and edire <= 7 then
if edire == NORTHWEST then
 if math.random(1,100) >= 51 then
 edire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = NORTH
  else
  edire = WEST
  end
 else
 edire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = WEST
  else
  edire = NORTH
  end
 end
elseif edire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 edire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = SOUTH
  else
  edire = WEST
  end
 else
 edire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = WEST
  else
  edire = SOUTH
  end
 end
elseif edire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 edire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = SOUTH
  else
  edire = EAST
  end
 else
 edire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = EAST
  else
  edire = SOUTH
  end
 end
elseif edire == NORTHEAST then
 if math.random(1,100) >= 51 then
 edire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = NORTH
  else
  edire = EAST
  end
 else
 edire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = EAST
  else
  edire = NORTH
  end
 end
end
local edire = edire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
local function voltarnormal(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   addEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
end
end
end

local pois = getThingPos(item2.uid)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
local SumPos = getThingPos(getCreatureSummons(cid)[1])
local travelx = math.abs((topos.x) - (SumPos.x))
local travely = math.abs((topos.y) - (SumPos.y))
local travel = ((travelx) + (travely))
addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
for i = 1, travel do
addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
end
addEvent(voltarnormal, temk * travel, {cid = cid})
exhaustion.set(cid, etudao, travel)
else
if not isWalkable(topos, cid, 0, 0) then
doPlayerSendCancel(cid, "Seu pokemon não pode teleport lá.")
return true
end
if getItemName(item2.uid) == "shallow water" then
doPlayerSendCancel(cid, "Seu pokemon não pode teleport lá.")
return true
end
doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), topos, 39)
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 211)
doTeleportThing(getCreatureSummons(cid)[1], topos, false)
doSendMagicEffect(topos, 134)
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", teleport there!", 1)
doCreatureSay(getCreatureSummons(cid)[1], "BLINK!", TALKTYPE_MONSTER)
exhaustion.set(cid, exhaustblink, cdblink)
return true
end
return true
end
end
--- BLINK END

-- BLINK 2
if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then
doPlayerSendCancel(cid, "Você precisa de um pokemon para usar ordem.")
return true
end
if not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then
if isInArray(blink2, getCreatureName(getCreatureSummons(cid)[1])) then
if exhaustion.get(cid, exhaustblink2) then
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
doPlayerSendCancel(cid, "Você não pode encomendar o seu pokemon para se mover agora.")
return true
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)
local function move(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then
return true
end
 if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then
  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   if getCreatureSpeed(params.sum) == 0 then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   end
   addEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
 return true
 end
local edire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)
if edire >= 0 and edire <= 7 then
if edire == NORTHWEST then
 if math.random(1,100) >= 51 then
 edire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = NORTH
  else
  edire = WEST
  end
 else
 edire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = WEST
  else
  edire = NORTH
  end
 end
elseif edire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 edire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = SOUTH
  else
  edire = WEST
  end
 else
 edire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = WEST
  else
  edire = SOUTH
  end
 end
elseif edire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 edire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = SOUTH
  else
  edire = EAST
  end
 else
 edire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = EAST
  else
  edire = SOUTH
  end
 end
elseif edire == NORTHEAST then
 if math.random(1,100) >= 51 then
 edire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = NORTH
  else
  edire = EAST
  end
 else
 edire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = EAST
  else
  edire = NORTH
  end
 end
end
local edire = edire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
local function voltarnormal(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   addEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
end
end
end

local pois = getThingPos(item2.uid)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
local SumPos = getThingPos(getCreatureSummons(cid)[1])
local travelx = math.abs((topos.x) - (SumPos.x))
local travely = math.abs((topos.y) - (SumPos.y))
local travel = ((travelx) + (travely))
addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
for i = 1, travel do
addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
end
addEvent(voltarnormal, temk * travel, {cid = cid})
exhaustion.set(cid, etudao, travel)
else
if not isWalkable(topos, cid, 0, 0) then
doPlayerSendCancel(cid, "Seu pokemon não pode teleport lá.")
return true
end
if getItemName(item2.uid) == "shallow water" then
doPlayerSendCancel(cid, "Seu pokemon não pode teleport lá.")
return true
end
doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), topos, 39)
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 211)
doTeleportThing(getCreatureSummons(cid)[1], topos, false)
doSendMagicEffect(topos, 134)
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", teleport there!", 1)
doCreatureSay(getCreatureSummons(cid)[1], "BLINK!", TALKTYPE_MONSTER)
exhaustion.set(cid, exhaustblink, cdblink)
return true
end
return true
end
end
--- BLINK2 END
-- LIGHT --
if isCreature(item2.uid) and getCreatureMaster(item2.uid) == cid and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and item2.uid ~= cid then
if not isInArray(light, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Este pokemon não pode usar flash.")
return true
end
if isInArray(light, getCreatureName(getCreatureSummons(cid)[1])) then
    if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then
    return doPlayerSendCancel(cid,"Por favor use flash em seu pokemon.")
    end
    if exhaustion.get(cid, exhautStorage) then
    doPlayerSendCancel(cid,"Por favor, aguarde alguns segundos antes de usar o flash de novo!")
    return true
    end
exhaustion.set(cid, exhautStorage, cd)
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use flash!", 1)
doCreatureSay(getCreatureSummons(cid)[1], "FLASH!", TALKTYPE_MONSTER)
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 28)
doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)
return true
end
end
-- LIGHT END --
if #getCreatureSummons(cid) == 0 then
return true
end
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
doPlayerSendCancel(cid, "Você não pode encomendar o seu pokemon para se mover agora.")
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 12) == 1 then
doPlayerSendCancel(cid, "Você não pode encomendar o seu pokemon para se mover agora.")
return true
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)
local function move(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then
return true
end
 if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then
  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   if getCreatureSpeed(params.sum) == 0 then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   end
   addEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
 setPlayerStorageValue(cid, etudao, -1)
 return true
 end
local dire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)
if dire >= 0 and dire <= 7 then
if dire == NORTHWEST then
 if math.random(1,100) >= 51 then
 dire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = NORTH
  else
  dire = WEST
  end
 else
 dire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = WEST
  else
  dire = NORTH
  end
 end
elseif dire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 dire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = SOUTH
  else
  dire = WEST
  end
 else
 dire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = WEST
  else
  dire = SOUTH
  end
 end
elseif dire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 dire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = SOUTH
  else
  dire = EAST
  end
 else
 dire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = EAST
  else
  dire = SOUTH
  end
 end
elseif dire == NORTHEAST then
 if math.random(1,100) >= 51 then
 dire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = NORTH
  else
  dire = EAST
  end
 else
 dire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = EAST
  else
  dire = NORTH
  end
 end
end
local dire = dire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
local function voltarnormal(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
setPlayerStorageValue(cid, etudao, -1)
 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   if getCreatureSpeed(params.sum) == 0 then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   end
 addEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
end
end
end

local pois = getThingPos(item2.uid)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
local SummonPos = getThingPos(getCreatureSummons(cid)[1])
local travelx = math.abs((topos.x) - (SummonPos.x))
local travely = math.abs((topos.y) - (SummonPos.y))
local travel = ((travelx) + (travely))
addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
for i = 1, travel-1 do
addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
end
addEvent(voltarnormal, temk*travel, {cid = cid})
exhaustion.set(cid, etudao, travel)
return true
end

 

e agora estou querendo colocar esse e não funfa

 

-- feito por brun123, editado por glugluguga
-- Otimizado e adaptado por Lukkas666
local testeTmp = true
local pokes = {
 ["Bulbasaur"] = {level = 20, cons = 40, vida = 1200},
 ["Ivysaur"] = {level = 40, cons = 80, vida = 2600},
 ["Venusaur"] = {level = 85, cons = 100, vida = 5200},
 ["Charmander"] = {level = 20, cons = 30, vida = 970},
 ["Charmeleon"] = {level = 40, cons = 70, vida = 2900},
 ["Charizard"] = {level = 85, cons = 100, vida = 5200},
 ["Squirtle"] = {level = 20, cons = 40, vida = 1350},
 ["Wartortle"] = {level = 40, cons = 80, vida = 2800},
 ["Blastoise"] = {level = 85, cons = 100, vida = 5900},
 ["Caterpie"] = {level = 1, cons = 5, vida = 300},
 ["Metapod"] = {level = 10, cons = 10, vida = 1100},
 ["Butterfree"] = {level = 30, cons = 20, vida = 2000},
 ["Weedle"] = {level = 1, cons = 5, vida = 325},
 ["Kakuna"] = {level = 10, cons = 10, vida = 900},
 ["Beedrill"] = {level = 30, cons = 20, vida = 1900},
 ["Pidgey"] = {level = 1, cons = 5, vida = 380},
 ["Pidgeotto"] = {level = 20, cons = 20, vida = 1400},
 ["Pidgeot"] = {level = 65, cons = 70, vida = 3800},
 ["Rattata"] = {level = 1, cons = 5, vida = 350},
 ["Raticate"] = {level = 20, cons = 40, vida = 900},
 ["Spearow"] = {level = 5, cons = 5, vida = 450},
 ["Fearow"] = {level = 50, cons = 50, vida = 3300},
 ["Ekans"] = {level = 12, cons = 10, vida = 600},
 ["Arbok"] = {level = 30, cons = 40, vida = 2300},
 ["Pikachu"] = {level = 20, cons = 30, vida = 900},
 ["Raichu"] = {level = 50, cons = 60, vida = 3200},
 ["Sandshrew"] = {level = 18, cons = 15, vida = 700},
 ["Sandslash"] = {level = 55, cons = 60, vida = 3400},
 ["Nidoran Female"] = {level = 10, cons = 5, vida = 600},
 ["Nidorina"] = {level = 25, cons = 15, vida = 2000},
 ["Nidoqueen"] = {level = 65, cons = 80, vida = 4200},
 ["Nidoran Male"] = {level = 10, cons = 5, vida = 650},
 ["Nidorino"] = {level = 25, cons = 15, vida = 2500},
 ["Nidoking"] = {level = 65, cons = 80, vida = 4800},
 ["Clefairy"] = {level = 10, cons = 15, vida = 600},
 ["Clefable"] = {level = 35, cons = 70, vida = 2400},
 ["Vulpix"] = {level = 20, cons = 15, vida = 680},
 ["Ninetales"] = {level = 65, cons = 70, vida = 3400},
 ["Jigglypuff"] = {level = 10, cons = 15, vida = 550},
 ["Wigglytuff"] = {level = 42, cons = 60, vida = 2900},
 ["Zubat"] = {level = 5, cons = 10, vida = 450},
 ["Golbat"] = {level = 30, cons = 40, vida = 1900},
 ["Oddish"] = {level = 5, cons = 5, vida = 340},
 ["Gloom"] = {level = 18, cons = 15, vida = 1400},
 ["Vileplume"] = {level = 50, cons = 50, vida = 3300},
 ["Paras"] = {level = 1, cons = 5, vida = 850},
 ["Parasect"] = {level = 50, cons = 35, vida = 3800},
 ["Venonat"] = {level = 18, cons = 10, vida = 1500},
 ["Venomoth"] = {level = 50, cons = 40, vida = 4000},
 ["Diglett"] = {level = 5, cons = 10, vida = 900},
 ["Dugtrio"] = {level = 35, cons = 50, vida = 3450},
 ["Meowth"] = {level = 12, cons = 20, vida = 950},
 ["Persian"] = {level = 25, cons = 50, vida = 4000},
 ["Psyduck"] = {level = 12, cons = 50, vida = 2000},
 ["Golduck"] = {level = 55, cons = 90, vida = 4000},
 ["Mankey"] = {level = 10, cons = 15, vida = 800},
 ["Primeape"] = {level = 45, cons = 70, vida = 2550},
 ["Growlithe"] = {level = 20, cons = 25, vida = 1000},
 ["Arcanine"] = {level = 80, cons = 80, vida = 6000},
 ["Poliwag"] = {level = 5, cons = 5, vida = 400},
 ["Poliwhirl"] = {level = 20, cons = 35, vida = 1800},
 ["Poliwrath"] = {level = 65, cons = 80, vida = 4400},
 ["Abra"] = {level = 15, cons = 15, vida = 800},
 ["Kadabra"] = {level = 50, cons = 45, vida = 4000},
 ["Alakazam"] = {level = 80, cons = 70, vida = 7000},
 ["Machop"] = {level = 18, cons = 15, vida = 425},
 ["Machoke"] = {level = 40, cons = 40, vida = 2850},
 ["Machamp"] = {level = 65, cons = 90, vida = 6100},
 ["Bellsprout"] = {level = 5, cons = 5, vida = 420},
 ["Weepinbell"] = {level = 18, cons = 28, vida = 1100},
 ["Victreebel"] = {level = 50, cons = 76, vida = 4000},
 ["Tentacool"] = {level = 12, cons = 24, vida = 725},
 ["Tentacruel"] = {level = 70, cons = 70, vida = 6000},
 ["Geodude"] = {level = 15, cons = 15, vida = 800},
 ["Graveler"] = {level = 40, cons = 45, vida = 3000},
 ["Golem"] = {level = 70, cons = 90, vida = 6500},
 ["Ponyta"] = {level = 20, cons = 18, vida = 800},
 ["Rapidash"] = {level = 60, cons = 58, vida = 6000},
 ["Slowpoke"] = {level = 12, cons = 20, vida = 1200},
 ["Slowbro"] = {level = 45, cons = 68, vida = 3000},
 ["Magnemite"] = {level = 15, cons = 15, vida = 450},
 ["Magneton"] = {level = 40, cons = 55, vida = 2000},
 ["Farfetchd"] = {level = 40, cons = 60, vida = 4000},
 ["Doduo"] = {level = 12, cons = 15, vida = 600},
 ["Dodrio"] = {level = 45, cons = 60, vida = 2650},
 ["Seel"] = {level = 20, cons = 25, vida = 1200},
 ["Dewgong"] = {level = 65, cons = 70, vida = 6000},
 ["Grimer"] = {level = 12, cons = 10, vida = 600},
 ["Muk"] = {level = 30, cons = 55, vida = 2400},
 ["Shellder"] = {level = 5, cons = 23, vida = 800},
 ["Cloyster"] = {level = 65, cons = 70, vida = 6000},
 ["Gastly"] = {level = 18, cons = 15, vida = 800},
 ["Haunter"] = {level = 45, cons = 45, vida = 3000},
 ["Gengar"] = {level = 80, cons = 90, vida = 8000},
 ["Onix"] = {level = 50, cons = 70, vida = 5300},
 ["Drowzee"] = {level = 22, cons = 30, vida = 1200},
 ["Hypno"] = {level = 50, cons = 70, vida = 4000},
 ["Krabby"] = {level = 5, cons = 12, vida = 500},
 ["Kingler"] = {level = 35, cons = 40, vida = 2750},
 ["Voltorb"] = {level = 14, cons = 11, vida = 800},
 ["Electrode"] = {level = 38, cons = 50, vida = 2000},
 ["Exeggcute"] = {level = 8, cons = 15, vida = 500},
 ["Exeggutor"] = {level = 48, cons = 50, vida = 3500},
 ["Cubone"] = {level = 18, cons = 20, vida = 900},
 ["Marowak"] = {level = 45, cons = 60, vida = 5000},
 ["Hitmonlee"] = {level = 60, cons = 100, vida = 8000},
 ["Hitmonchan"] = {level = 60, cons = 80, vida = 6000},
 ["Lickitung"] = {level = 45, cons = 50, vida = 2350},
 ["Koffing"] = {level = 15, cons = 20, vida = 700},
 ["Weezing"] = {level = 30, cons = 61, vida = 1250},
 ["Rhyhorn"] = {level = 35, cons = 25, vida = 2500},
 ["Rhydon"] = {level = 65, cons = 80, vida = 6000},
 ["Chansey"] = {level = 60, cons = 90, vida = 3500},
 ["Tangela"] = {level = 40, cons = 70, vida = 4000},
 ["Kangaskhan"] = {level = 60, cons = 110, vida = 8000},
 ["Horsea"] = {level = 5, cons = 5, vida = 300},
 ["Seadra"] = {level = 45, cons = 45, vida = 2500},
 ["Goldeen"] = {level = 10, cons = 5, vida = 300},
 ["Seaking"] = {level = 25, cons = 25, vida = 2000},
 ["Staryu"] = {level = 15, cons = 18, vida = 1200},
 ["Starmie"] = {level = 45, cons = 50, vida = 3000},
 ["Mr Mime"] = {level = 60, cons = 60, vida = 4000},
 ["Scyther"] = {level = 70, cons = 100, vida = 8000},
 ["Jynx"] = {level = 65, cons = 90, vida = 7000},
 ["Electabuzz"] = {level = 70, cons = 120, vida = 8000},
 ["Magmar"] = {level = 70, cons = 120, vida = 8000},
 ["Pinsir"] = {level = 42, cons = 50, vida = 3000},
 ["Tauros"] = {level = 40, cons = 30, vida = 2400},
 ["Magikarp"] = {level = 1, cons = 5, vida = 120},
 ["Gyarados"] = {level = 75, cons = 110, vida = 8000},
 ["Lapras"] = {level = 70, cons = 120, vida = 7000},
 ["Ditto"] = {level = 40, cons = 30, vida = 1200},
 ["Eevee"] = {level = 20, cons = 50, vida = 1500},
 ["Vaporeon"] = {level = 55, cons = 60, vida = 3500},
 ["Jolteon"] = {level = 55, cons = 60, vida = 4000},
 ["Flareon"] = {level = 55, cons = 60, vida = 2010},
 ["Porygon"] = {level = 45, cons = 44, vida = 4000},
 ["Omanyte"] = {level = 20, cons = 25, vida = 2000},
 ["Omastar"] = {level = 70, cons = 100, vida = 6000},
 ["Kabuto"] = {level = 20, cons = 35, vida = 3000},
 ["Kabutops"] = {level = 70, cons = 110, vida = 7500},
 ["Aerodactyl"] = {level = 100, cons = 150, vida = 13000},
 ["Snorlax"] = {level = 85, cons = 150, vida = 9000},
 ["Articuno"] = {level = 120, cons = 200, vida = 200000},
 ["Zapdos"] = {level = 120, cons = 200, vida = 200000},
 ["Moltres"] = {level = 120, cons = 200, vida = 200000},
 ["Dratini"] = {level = 10, cons = 35, vida = 1500},
 ["Dragonair"] = {level = 70, cons = 70, vida = 6000},
 ["Dragonite"] = {level = 100, cons = 160, vida = 17000},
 ["Mewtwo"] = {level = 100, cons = 175, vida = 100000},
 ["Mew"] = {level = 100, cons = 125, vida = 50000},
 ["Elder Charizard"] = {level = 100, cons = 120, vida = 15000},
 ["Crystal Onix"] = {level = 100, cons = 160, vida = 18000},
 ["Shiny Abra"] = {level = 100, cons = 110, vida = 10000},
 ["Shiny Arcanine"] = {level = 100, cons = 140, vida = 13000},
 ["Shiny Alakazam"] = {level = 100, cons = 125, vida = 12000},
 ["Shiny Beedrill"] = {level = 50, cons = 80, vida = 5000},
 ["Shiny Blastoise"] = {level = 100, cons = 120, vida = 15000},
 ["Shiny Butterfree"] = {level = 50, cons = 80, vida = 5000},
 ["Shiny Dratini"] = {level = 50, cons = 75, vida = 5000},
 ["Shiny Electabuzz"] = {level = 100, cons = 140, vida = 15000},
 ["Shiny Electrode"] = {level = 70, cons = 80, vida = 5000},
 ["Shiny Cubone"] = {level = 50, cons = 80, vida = 2500},
 ["Shiny Dragonair"] = {level = 90, cons = 150, vida = 15000},
 ["Shiny Dragonite"] = {level = 150, cons = 180, vida = 20000},
 ["Shiny Farfetchd"] = {level = 60, cons = 100, vida = 10000},
 ["Shiny Flareon"] = {level = 70, cons = 110, vida = 10000},
 ["Shiny Gengar"] = {level = 100, cons = 115, vida = 13000},
 ["Shiny Golbat"] = {level = 80, cons = 90, vida = 10000},
 ["Shiny Growlithe"] = {level = 40, cons = 70, vida = 8000},
 ["Shiny Grimer"] = {level = 30, cons = 50, vida = 5000},
 ["Shiny Gyarados"] = {level = 120, cons = 150, vida = 16000},
 ["Shiny Hitmonchan"] = {level = 100, cons = 90, vida = 9000},
 ["Shiny Hitmonlee"] = {level = 100, cons = 100, vida = 14000},
 ["Shiny Horsea"] = {level = 20, cons = 40, vida = 1000},
 ["Shiny Hypno"] = {level = 70, cons = 80, vida = 10000},
 ["Shiny Jolteon"] = {level = 70, cons = 80, vida = 10000},
 ["Shiny Jynx"] = {level = 100, cons = 90, vida = 12000},
 ["Shiny Krabby"] = {level = 20, cons = 30, vida = 1000},
 ["Shiny Kingler"] = {level = 60, cons = 60, vida = 6000},
 ["Shiny Magikarp"] = {level = 10, cons = 20, vida = 1000},
 ["Shiny Marowak"] = {level = 70, cons = 70, vida = 9000},
 ["Shiny Muk"] = {level = 60, cons = 60, vida = 8000},
 ["Shiny Oddish"] = {level = 15, cons = 25, vida = 1200},
 ["Shiny Paras"] = {level = 10, cons = 20, vida = 800},
 ["Shiny Parasect"] = {level = 50, cons = 80, vida = 5000},
 ["Shiny Pidgeot"] = {level = 85, cons = 90, vida = 9000},
 ["Shiny Pinsir"] = {level = 60, cons = 80, vida = 7000},
 ["Shiny Rattata"] = {level = 10, cons = 15, vida = 800},
 ["Shiny Raticate"] = {level = 35, cons = 40, vida = 5000},
 ["Shiny Raichu"] = {level = 70, cons = 80, vida = 9000},
 ["Shiny Seadra"] = {level = 70, cons = 70, vida = 8000},
 ["Shiny Scyther"] = {level = 100, cons = 110, vida = 10000},
 ["Shiny Snorlax"] = {level = 120, cons = 160, vida = 25000},
 ["Shiny Tangela"] = {level = 70, cons = 90, vida = 8000},
 ["Shiny Tentacool"] = {level = 30, cons = 60, vida = 2000},
 ["Shiny Tentacruel"] = {level = 100, cons = 110, vida = 11000},
 ["Shiny Vaporeon"] = {level = 70, cons = 80, vida = 8000},
 ["Shiny Venomoth"] = {level = 60, cons = 70, vida = 6500},
 ["Shiny Venonat"] = {level = 30, cons = 40, vida = 3000},
 ["Shiny Venusaur"] = {level = 100, cons = 160, vida = 15000},
 ["Shiny Voltorb"] = {level = 30, cons = 40, vida = 2000},
 ["Shiny Zubat"] = {level = 15, cons = 30, vida = 2000},
 ["Ampharos"] = {level = 80, cons = 140, vida = 9000},
 ["Ariados"] = {level = 40, cons = 140, vida = 3000},
 ["Azumarill"] = {level = 50, cons = 140, vida = 3000},
 ["Bayleef"] = {level = 40, cons = 140, vida = 6000},
 ["Bellossom"] = {level = 50, cons = 140, vida = 3000},
 ["Blissey"] = {level = 80, cons = 140, vida = 3000},
 ["Celebi"] = {level = 300, cons = 140, vida = 3000},
 ["Chikorita"] = {level = 20, cons = 140, vida = 3000},
 ["Chinchou"] = {level = 20, cons = 140, vida = 3000},
 ["Cleffa"] = {level = 5, cons = 140, vida = 3000},
 ["Corsola"] = {level = 50, cons = 140, vida = 3000},
 ["Crobat"] = {level = 50, cons = 140, vida = 5500},
 ["Croconaw"] = {level = 40, cons = 140, vida = 6000},
 ["Cyndaquil"] = {level = 20, cons = 140, vida = 3000},
 ["Delibird"] = {level = 50, cons = 140, vida = 5000},
 ["Donphan"] = {level = 50, cons = 140, vida = 6000},
 ["Dunsparce"] = {level = 25, cons = 140, vida = 3000},
 ["Elekid"] = {level = 20, cons = 140, vida = 3000},
 ["Entei"] = {level = 300, cons = 140, vida = 3000},
 ["Espeon"] = {level = 55, cons = 140, vida = 5500},
 ["Feraligatr"] = {level = 80, cons = 140, vida = 9000},
 ["Flaaffy"] = {level = 40, cons = 140, vida = 6000},
 ["Forretress"] ={level = 35, cons = 140, vida = 3000},
 ["Furret"] = {level = 35, cons = 140, vida = 5000},
 ["Gallade"] = {level = 80, cons = 140, vida = 9000},
 ["Girafarig"] = {level = 40, cons = 140, vida = 3000},
 ["Gligar"] = {level = 25, cons = 140, vida = 3000},
 ["Granbull"] = {level = 60, cons = 140, vida = 3000},
 ["Heracross"] = {level = 35, cons = 140, vida = 3000},
 ["Hitmontop"] = {level = 80, cons = 140, vida = 3000},
 ["Ho oh"] = {level = 30, cons = 140, vida = 3000},
 ["Hoothoot"] = {level = 10, cons = 140, vida = 2500},
 ["Hoppip"] = {level = 30, cons = 140, vida = 3000},
 ["Houndoom"] = {level = 30, cons = 140, vida = 3000},
 ["Houndor"] = {level = 30, cons = 140, vida = 3000},
 ["Igglybuff"] = {level = 30, cons = 140, vida = 3000},
 ["Jumpluff"] = {level = 30, cons = 140, vida = 3000},
 ["Kingdra"] = {level = 30, cons = 140, vida = 3000},
 ["Lanturn"] = {level = 30, cons = 140, vida = 3000},
 ["Larvitar"] = {level = 30, cons = 140, vida = 3000},
 ["Ledian"] = {level = 30, cons = 140, vida = 3000},
 ["Ledyba"] = {level = 30, cons = 140, vida = 3000},
 ["Lugia"] = {level = 30, cons = 140, vida = 3000},
 ["Magby"] = {level = 30, cons = 140, vida = 3000},
 ["Magcarbo"] = {level = 30, cons = 140, vida = 3000},
 ["Mantine"] = {level = 30, cons = 140, vida = 3000},
 ["Mareep"] = {level = 20, cons = 140, vida = 3000},
 ["Marill"] = {level = 30, cons = 140, vida = 3000},
 ["Meganium"] ={level = 80, cons = 140, vida = 9000},
 ["Miltank"] = {level = 30, cons = 140, vida = 5000},
 ["Misdreavus"] = {level = 30, cons = 140, vida = 3000},
 ["Murkrow"] = {level = 30, cons = 140, vida = 3000},
 ["Natu"] = {level = 30, cons = 140, vida = 3000},
 ["Noctowl"] = {level = 30, cons = 140, vida = 5000},
 ["Octillery"] ={level = 30, cons = 140, vida = 3000},
 ["Phanpy"] = {level = 30, cons = 140, vida = 3000},
 ["Pichu"] = {level = 30, cons = 140, vida = 3000},
 ["Piloswine"] ={level = 30, cons = 140, vida = 3000},
 ["Pineco"] = {level = 30, cons = 140, vida = 3000},
 ["Politoed"] ={level = 30, cons = 140, vida = 3000},
 ["Porygon2"] ={level = 30, cons = 140, vida = 3000},
 ["Pupitar"] = {level = 30, cons = 140, vida = 3000},
 ["Quaqsire"] ={level = 30, cons = 140, vida = 3000},
 ["Quilava"] ={level = 40, cons = 140, vida = 6000},
 ["Qwilfish"] = {level = 30, cons = 140, vida = 3000},
 ["Raikou"] ={level = 300, cons = 140, vida = 3000},
 ["Remoraid"] = {level = 30, cons = 140, vida = 3000},
 ["Scizor"] = {level = 100, cons = 140, vida = 3000},
 ["Shuckle"] ={level = 30, cons = 140, vida = 3000},
 ["Skarmory"] ={level = 30, cons = 140, vida = 3000},
 ["Skiploom"] = {level = 30, cons = 140, vida = 3000},
 ["Slowking"] = {level = 30, cons = 140, vida = 3000},
 ["Slugma"] ={level = 30, cons = 140, vida = 3000},
 ["Smeargle"] = {level = 30, cons = 140, vida = 3000},
 ["Smoochum"] = {level = 30, cons = 140, vida = 3000},
 ["Sneasel"] = {level = 30, cons = 140, vida = 3000},
 ["Sentret"] = {level = 25, cons = 140, vida = 2500},
 ["Snubbull"] = {level = 30, cons = 140, vida = 3000},
 ["Spinarak"] ={level = 30, cons = 140, vida = 3000},
 ["Stantler"] = {level = 30, cons = 140, vida = 3000},
 ["Steelix"] = {level = 80, cons = 140, vida = 3000},
 ["Sudowoodo"] ={level = 30, cons = 140, vida = 3000},
 ["Suicune"] = {level = 30, cons = 140, vida = 3000},
 ["Sunflora"] = {level = 30, cons = 140, vida = 3000},
 ["Sunkern"] = {level = 30, cons = 140, vida = 3000},
 ["Swinub"] ={level = 30, cons = 140, vida = 3000},
 ["Teddiursa"] ={level = 30, cons = 140, vida = 3000},
 ["Togepi"] = {level = 30, cons = 140, vida = 3000},
 ["Togetic"] ={level = 30, cons = 140, vida = 3000},
 ["Totodile"] = {level = 20, cons = 140, vida = 1000},
 ["Typhlosion"] ={level = 80, cons = 140, vida = 9000},
 ["Tyranitar"] = {level = 30, cons = 140, vida = 3000},
 ["Tyrogue"] = {level = 30, cons = 140, vida = 3000},
 ["Umbreon"] ={level = 30, cons = 140, vida = 3000},
 ["Ursaring"] = {level = 30, cons = 140, vida = 3000},
 ["Wobbuffet"] = {level = 30, cons = 140, vida = 3000},
 ["Wooper"] = {level = 30, cons = 140, vida = 3000},
 ["Xatu"] = {level = 30, cons = 140, vida = 3000},
 ["Yanma"] = {level = 30, cons = 140, vida = 3000},
 ["Giratina"] = {level = 1, cons = 250, vida = 15000},
 ["Palkia"] = {level = 1, cons = 251, vida = 15000},
 ["Rayquaza"] = {level = 1, cons = 251, vida = 15000},
 ["Primal Dialga"] = {level = 1, cons = 251, vida = 15000},
 ["Dialga"] = {level = 1, cons = 251, vida = 15000},
}
local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}
local direction = {'4', '5', '6', '7'}
-- ridefly
local ridefly = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Elder Charizard', 'Shiny Arcanine','Crystal Onix','Shiny Pidgeot','Shiny Venusaur','Crobat','Skarmory','Porygon2','Bayleef','Girafarig','Houndoom','Mareep','Meganium','Piloswine','Stantler','Steelix'}
local ride = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Shiny Arcanine','Crystal Onix','Shiny Venusaur','Bayleef','Mareep','Girafarig','Houndoom','Meganium','Piloswine','Stantler','Steelix'}
local fly = {'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Elder Charizard','Shiny Pidgeot','Crobat','Skarmory','Porygon2'}
local flys = {
 [265] = {229, 2300, 350}, -- moltres
 [283] = {230, 2100, 350}, -- artic
 [199] = {224, 2600, 350}, -- zapdos
 [9] = {232, 2200, 350}, -- 1000
 [34] = {233, 2200, 350},-- two
 [210] = {221, 1300, 350},-- nite
 [80] = {222, 900, 350}, -- geot
 [17] = {226, 800, 350}, -- fearow
 [10] = {227, 1100, 350}, -- aero
 [67] = {216, 1000, 350}, -- chari
 [97] = {316, 600, 350}, -- porygon
 [294] = {295, 600, 350}, -- elder zard
 [297] = {178, 550, 350}, -- shiny geot
 [544] = {636, 550, 350}, -- crobat
 [604] = {656, 550, 350}, -- skarmory
 [593] = {653, 550, 350}, -- porygon2
}
local rides = {
 [93] = {128, 780, 350}, -- tauros
 [114] = {129, 800, 350}, -- kyuubi
 [220] = {130, 800, 350}, -- rapid
 [16] = {131, 410, 350}, -- ponyta
 [77] = {132, 400, 350}, -- rhyhorn
 [88] = {12, 900, 350}, -- arcan
 [493] = {492, 1000, 350}, -- shiny arca
 [496] = {494, 420, 350}, -- shiny vneu
 [292] = {293, 480, 350}, -- cristal onix
 [248] = {126, 450, 350}, -- onix
 [22] = {134, 390, 350}, -- venu
 [120] = {133, 750, 350}, -- dodrio
 [26] = {135, 420, 350}, -- doduo
 [337] = {336, 420, 350}, -- shiny arcanine
 [340] = {338,460,350}, -- shiny venu
 [536] = {635,460,350}, -- bayleef
 [558] = {641,460,350}, -- gyrafarig
 [566] = {643,460,350}, -- Houndoom
 [581] = {648,460,350}, -- Meganium
 [590] = {652,460,350}, -- Piloswine
 [613] = {658,460,350}, -- Stantler
 [579] = {646,460,350}, -- marrep
 [614] = {459,460,350}, -- steelix
}
local poke = {'Poliwag', 'Poliwhirl', 'Seaking', 'Dewgong', 'Blastoise', 'Tentacruel', 'Lapras', 'Gyarados', 'Omastar', 'Kabutops', 'Vaporeon', 'Staryu', 'Starmie', 'Goldeen', 'Seadra', 'Golduck', 'Squirtle', 'Wartortle', 'Tentacool', 'Snorlax', 'Poliwrath', 'Shiny Blastoise','Shiny Gyarados','Shiny Tentacool','Shiny Tentacruel','Shiny Vaporeon','Totodile','Croconaw','Feraligatr','Kingdra','Mantine','Azumarill','Marill','Octillery','Quaqsire','Wooper'}
local flie = {'4820-4825','4644-4655','6627-6638','4632-4643'}
local surfs = {
 ["Poliwag"] = {lookType=278, speed = 100},
 ["Poliwhirl"] = {lookType=137, speed = 150},
 ["Seaking"] = {lookType=269, speed = 140},
 ["Dewgong"] = {lookType=183, speed = 200},
 ["Blastoise"] = {lookType=184, speed = 220},
 ["Tentacruel"] = {lookType=185, speed = 210},
 ["Lapras"] = {lookType=186, speed = 250},
 ["Gyarados"] = {lookType=187, speed = 250},
 ["Omastar"] = {lookType=188, speed = 220},
 ["Kabutops"] = {lookType=189, speed = 220},
 ["Poliwrath"] = {lookType=190, speed = 210},
 ["Vaporeon"] = {lookType=191, speed = 200},
 ["Staryu"] = {lookType=266, speed = 110},
 ["Starmie"] = {lookType=267, speed = 140},
 ["Goldeen"] = {lookType=268, speed = 100},
 ["Seadra"] = {lookType=270, speed = 140},
 ["Golduck"] = {lookType=271, speed = 200},
 ["Squirtle"] = {lookType=273, speed = 140},
 ["Wartortle"] = {lookType=275, speed = 180},
 ["Tentacool"] = {lookType=277, speed = 120},
 ["Snorlax"] = {lookType=300, speed = 250},
 ["Shiny Blastoise"] = {lookType=205, speed = 350},
 ["Shiny Gyarados"] = {lookType = 225, speed = 380},
 ["Shiny Tentacool"] = {lookType = 347, speed = 150},
 ["Shiny Tentacruel"] = {lookType = 334, speed = 320},
 ["Shiny Vaporeon"] = {lookType = 308, speed = 300},
 ["Totodile"] = {lookType = 450, speed = 300},
 ["Croconaw"] = {lookType = 451, speed = 300},
 ["Kingdra"] = {lookType = 644, speed = 300},
 ["Mantine"] = {lookType = 645, speed = 300},
 ["Azumarill"] = {lookType = 634, speed = 300},
 ["Marill"] = {lookType = 647, speed = 300},
 ["Octillery"] = {lookType = 650, speed = 300},
 ["Quaqsire"] = {lookType = 654, speed = 300},
 ["Wooper"] = {lookType = 660, speed = 300},
 ["Feraligatr"] = {lookType = 640, speed = 300},
}
local bolas = {'2222', '2223', '2224'}
local ultra = {'2220', '2221', '2227'}
local etudao = 9506
local mind = 9507
local abili = 9509
-- ROCK SMASH
local rocksmash = {'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax', 'Poliwrath', 'Crystal Onix', 'Shiny Cubone','Electabuzz','Shiny Marowak','Shiny Snorlax','Donphan','Miltank','Steelix'}
local erockmash = 9502
local cdrocksmash = 0
-- ROCK SMASH
-- DIG
local digholes = {'468', '481', '483','383'}
local dig = {'Raticate', 'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros','Arcanine', 'Snorlax', 'Shiny Arcanine', 'Shiny Cubone','Crystal Onix','Shiny Growlithe','Kingler','Shiny Kingler','Shiny Marowak','Steelix'}
local edig = 9504
local cddig = 0
-- DIG
-- CUT
local cut = {'Charizard','Raticate', 'Bulbasaur', 'Ivysaur', 'Venusaur', 'Charmeleon', 'Sandshrew', 'Sandslash', 'Gloom', 'Vileplume', 'Paras', 'Parasect', 'Meowth', 'Persian', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Farfetchd', 'Krabby', 'Kingler', 'Exeggutor', 'Cubone', 'Marowak', 'Tangela', 'Scyther', 'Pinsir','Shiny Beedrill','Shiny Farfetchd','Shiny Golbat','Shiny Kingler','Shiny Pinsir','Shiny Paras','Shiny Parasect','Shiny Scyther','Shiny Venusaur','Shiny Tangela','Ariados','Bayleef','Chikorita','Meganium'}
local ecut = 9503
local cdcut = 0
-- CUT
-- BLINK
local blink = {'Abra', 'Kadabra', 'Alakazam', 'Porygon', 'Shiny Abra', 'Shiny Alakazam',}
local exhaustblink = 9501
local cdblink = 50
-- BLINK
-- LIGHT
local light = {'Abra', 'Kadabra', 'Alakazam', 'Magnemite', 'Magneton', 'Drowzee', 'Hypno', 'Voltorb', 'Electrode', 'Mrmime', 'Electabuzz', 'Jolteon', 'Porygon', 'Pikachu', 'Raichu', 'Shiny Electabuzz', 'Shiny Electrode','Shiny Alakazam','Shiny Hypno','Shiny Jolteon','Shiny Voltorb','Shiny Raichu','Ampharos'}
local exhautStorage = 9500
local time = 600
local cd = 17
-- LIGHT
function onUse(cid, item, frompos, item2, topos)

  local storageAbilidade = getPlayerStorageValue(cid, 7778)

  if getPlayerItemCount(cid, item2.itemid) >= 1 then
   return false
  end

  if exhaustion.get(cid, etudao) then
   doPlayerSendCancel(cid, "Please wait a few seconds before using order again!")
   return true
  end

  if isMonster(item2.uid) and item2.uid ~= getCreatureSummons(cid)[1] and item2.uid ~= cid then
  if #getCreatureSummons(cid) == 0 then
    doPlayerSendCancel(cid, "You need a pokemon to use order.")
    return true
  end


  local summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")

  if isMonster(item2.uid) == TRUE and summonName == "Ditto" then

    if getPlayerLevel(cid) < pokes[summonName].level then
	 doPlayerSendCancel(cid,"You cannot transform in a pokemon that have a level above yours")
	 return true
    end

    if getCreatureName(item2.uid) == summonName then	   
	 doPlayerSendCancel(cid,"You are already a Ditto")
	 return true	   
    end

	  local apelido = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")  

	  if apelido == nil then
	   apelido = summonName
	  end

    doCreatureSay(cid, ""..apelido..", transform in ".. getCreatureName(item2.uid) .."!", 1)
    local posDito = getCreaturePosition(getCreatureSummons(cid)[1])
    doSendMagicEffect(posDito, 184)
    doSetCreatureOutfit(getCreatureSummons(cid)[1], getCreatureOutfit(item2.uid), 50000)
    return TRUE
  end

  if exhaustion.get(cid, mind) then
    doPlayerSendCancel(cid, "Your pokemon is too exhausted from the last control, this ability has 2 minutes cooldown.")
    return true
  end

  if isPlayer(getCreatureMaster(item2.uid)) then
    doPlayerSendCancel(cid, "You cant control the mind of someone's else pokemon.")
    return true
  end

  if not isInArray({"Alakazam","Haunter","Tentacruel", "Gengar", "Shiny Alakazam","Shiny Gengar","Shiny Tentacruel"}, summonName) then
    doPlayerSendCancel(cid, "This pokemon cant control mind.")
    return true
  end
  if  getPlayerLevel(cid) < pokes[summonName].level then
    doPlayerSendCancel(cid, "Você não tem level para usar control mind neste pokemon")
    return true
  end

  exhaustion.set(cid, mind, 240)
  doCreatureSay(getCreatureSummons(cid)[1], "CONTROL MIND!", TALKTYPE_MONSTER)
  doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(item2.uid), 39)
  registerCreatureEvent(item2.uid, "Controled")
  doSendMagicEffect(getThingPos(item2.uid), 136)
  doSendMagicEffect(getThingPos(item2.uid), 134)
  doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 133)
  setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
  setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
  doConvinceCreature(cid, item2.uid)

  if getCreatureSpeed(item2.uid) == 0 then
   doChangeSpeed(item2.uid, 180)
  end

  doCreatureSay(cid, ""..summonName..", control mind!", 1)

  local cmed = item2.uid
  local cmname = summonName
  local cmpos = getThingPos(getCreatureSummons(cid)[1])
  doRemoveCreature(getCreatureSummons(cid)[1])

  apelido = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
  if apelido == nil then
    apelido = cmname
  end

  setCreatureName(cid,""..cmname.." cm",apelido,'Its belongs to '..getCreatureName(cid))

  local cmzao = getCreatureSummons(cid)[1]

  doTeleportThing(cmzao,cmpos,false)

  setPlayerStorageValue(cid, 888, 1)

  local function check(params)
    if isCreature(params.cid) then
	  if getPlayerStorageValue(params.cid, 888) <= 0 then
	   return true
	  end

	  if not isCreature(cmed) then
	    local pkcmpos = getThingPos(getCreatureSummons(cid)[1])
	    doRemoveCreature(getCreatureSummons(cid)[1])

	    local item = getPlayerSlotItem(cid, 8)
	    pokeNome = getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")
	    apelido = getItemAttribute(item.uid, "apelido")
	    if apelido == nil then
		  apelido = pokeNome
	    end

	    setCreatureName(cid,pokeNome,apelido,'Its belongs to '..getCreatureName(cid))

	    local pk = getCreatureSummons(cid)[1]
	    doTeleportThing(pk,pkcmpos,false)

	    doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)
	    registerCreatureEvent(pk, "DiePoke")
	    registerCreatureEvent(pk, "Exp")
	    registerCreatureEvent(cid, "PlayerPokeDeath")
	    setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
	    doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
	    doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
	    setPlayerStorageValue(cid, 888, 0)
	  end

	  if params.rod == 60 then
	    local lifecmed = getCreatureMaxHealth(cmed) - getCreatureHealth(cmed)
	    local poscmed = getThingPos(cmed)
	    local cmeddir = getCreatureLookDir(cmed)
	    local namecmed = getCreatureName(cmed)
	    doRemoveCreature(getCreatureSummons(cid)[1])
	    local back = doSummonCreature(""..namecmed.."_s", poscmed)
	    if getCreatureSpeed(back) == 0 then
		  doChangeSpeed(back, 180)
	    end

	    doCreatureSetLookDir(back, cmeddir)
	    doCreatureAddHealth(back, -lifecmed)
	    local item = getPlayerSlotItem(cid, 8)
	    local mynewpos = getThingPos(getCreatureSummons(cid)[1])
	    doRemoveCreature(getCreatureSummons(cid)[1])

	    pokeNome = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
	    apelido = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
	    if apelido == nil then
		  apelido = pokeNome
	    end

	    setCreatureName(cid,pokeNome,apelido,'Its belongs to '..getCreatureName(cid))

	    local pk = getCreatureSummons(cid)[1]
	    doTeleportThing(pk,mynewpos,false)

	    doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)
	    registerCreatureEvent(pk, "DiePoke")
	    registerCreatureEvent(pk, "Exp")
	    registerCreatureEvent(cid, "PlayerPokeDeath")
	    setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
	    doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
	    doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
	    setPlayerStorageValue(cid, 888, 0)
	  else
	   doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220)
	  end
    end
  end

  for rod = 1, 60 do
    addEvent(check, rod*500, {cid = cid, rod = rod})
  end
  return true
  end
if item2.uid == cid then
  if getPlayerStorageValue(cid, 888) >= 1 then
   doPlayerSendCancel(cid, "You cant fly neither ride pokemons being controled.")
   return true
  end
  if #getCreatureSummons(cid) == 0 and storageAbilidade <= 0 and getPlayerStorageValue(cid, 17001) <= 0 then
 doPlayerSendCancel(cid, "You need a pokemon to use order.")
 return true
  end
  summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")

  if storageAbilidade <= 0 and getPlayerStorageValue(cid, 7778) <= 0 and not isInArray(ridefly, summonName) then
 doPlayerSendCancel(cid, "You can't ride this pokemon nor fly with it.")
 return true
  end
  if storageAbilidade <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
 return true
  end

  if getPlayerStorageValue(cid, 17001) <= 0 and storageAbilidade <= 0 and isInArray(ride, summonName) then
 local pokemon = rides[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
 if getCreatureSpeed(getCreatureSummons(cid)[1]) >= 1 then
   doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
 end

 local function ride(params)
   if isCreature(params.cid) then
	 if isCreature(getCreatureSummons(params.cid)[1]) then
	   if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.d then
		 if getPlayerStorageValue(cid, abili) > 0 then			  
		   return false;			  
		 end
		 doChangeSpeed(cid, -250)
		 doChangeSpeed(cid, pokemon[2])
		 setPlayerStorageValue(cid, abili, 1)
		 setPlayerStorageValue(cid, 17001, 1)
		 doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)
		 setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
		 setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
		 doRemoveCreature(getCreatureSummons(cid)[1])
	   else
		 dirh = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))
		 if dirh == NORTHWEST then
		  if math.random(1,100) >= 51 then
		    dirh = NORTH
		  else
		    dirh = WEST
		  end
		 elseif dirh == SOUTHWEST then
		  if math.random(1,100) >= 51 then
		    dirh = SOUTH
		  else
		    dirh = WEST
		  end
		 elseif dirh == SOUTHEAST then
		  if math.random(1,100) >= 51 then
		    dirh = SOUTH
		  else
		    dirh = EAST
		  end
		 elseif dirh == NORTHEAST then
		  if math.random(1,100) >= 51 then
		    dirh = NORTH
		  else
		    dirh = EAST
		  end
		 end

		 local dirh = dirh
		 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
		   doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
		   doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0)
		   doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
		 else
		   doPushCreature(getCreatureSummons(params.cid)[1], dirh, 1, 0)
		   doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
		 end
	   end
	 end
   end
 end
 local function speed(params)
   if isCreature(params.cid) then
	 if isCreature(getCreatureSummons(params.cid)[1]) then
	   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
		 doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
	   end
	 end
   end
 end

 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
 if summonName == nil then
  summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
 end
 doCreatureSay(cid, ""..summonName..", let me ride you!", 1)
 exhaustion.set(cid, etudao, 4)

 if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then
  distanc = 1
 else
  distanc = 0
 end
 local distance = distanc
 for i=1,12 do
  addEvent(ride, pokemon[3]*i, {cid = cid, d = distance})
  addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})
 end
 addEvent(setPlayerStorageValue,5000,cid, abili, 0)
 return true
  end
  if getPlayerStorageValue(cid, 17001) >= 1 then

 setPlayerStorageValue(cid, 17001, 0)
 if getPlayerGroupId(cid) ~= 6 then
   setPlayerGroupId(cid, 8)
 end

 doCreatureSetLookDir(cid, 2)
 doChangeSpeed(cid, -(getCreatureSpeed(cid)))

 if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then
   doChangeSpeed(cid, 400*getPlayerGroupId(cid))
 else
   doChangeSpeed(cid, 250)
 end
 local item = getPlayerSlotItem(cid, 8)
 doRemoveCondition(cid, CONDITION_OUTFIT)
 pokeNome = getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")

 summonName = getItemAttribute(item.uid, "apelido")
 if summonName == nil then
  summonName = pokeNome
 end

 doCreatureSay(cid, "" .. summonName..", let me get down!", 1)


 setCreatureName(cid,pokeNome,summonName,'Its belongs to '..getCreatureName(cid))

 local pk = getCreatureSummons(cid)[1]
 registerCreatureEvent(cid, "PlayerPokeDeath")
 registerCreatureEvent(pk, "DiePoke")
 registerCreatureEvent(pk, "Exp")
 setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
 doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
 doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))
 return true
  end
  -- Fly Begin --
  if getPlayerStorageValue(cid, 7778) == 4 then
 if isInArray({460, 1022, 1023}, getTileInfo(getThingPos(cid)).itemid) then
   doPlayerSendCancel(cid, "You can\'t stop flying at this place!")
   return true
 end

 if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then
   doPlayerSendCancel(cid, "You can\'t stop flying above the water!")
   return true
 end
 setPlayerStorageValue(cid, 7778, 0)
 if getPlayerGroupId(cid) ~= 6 then
   setPlayerGroupId(cid, 8)
 end

 doCreatureSetLookDir(cid, 2)
 doChangeSpeed(cid, -(getCreatureSpeed(cid)))
 if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then
   doChangeSpeed(cid, 200*getPlayerGroupId(cid))
 else
   doChangeSpeed(cid, 250)
 end

 doRemoveCondition(cid, CONDITION_OUTFIT)
 local item = getPlayerSlotItem(cid, 8)

 --doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))
 local varNome = getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")
 local varApelido = getItemAttribute(item.uid, "apelido")
 local varSpecial = getItemAttribute(item.uid, "special")

 if(varApelido == nil)then
	 varApelido = varNome
 end
 doCreatureSay(cid, "" .. varApelido..", let me get down!", 1)
 setCreatureName(cid, varNome,varApelido ,varSpecial)
 local pk = getCreatureSummons(cid)[1]
 registerCreatureEvent(cid, "PlayerPokeDeath")
 registerCreatureEvent(pk, "DiePoke")
 registerCreatureEvent(pk, "Exp")
 setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
 doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
 doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))

 return true

  end

  summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
  if summonName == nil then
   summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
  end

  if storageAbilidade <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(fly, summonName) then
 if storageAbilidade <= 0 then
   local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
   if not isVip(cid) then
	 doPlayerSendTextMessage(cid, 22, "Voce Precisa Ser Vip Para fly.")
	 return false
   end
   local function fly(params)
	 if isCreature(params.cid) then
	   if isCreature(getCreatureSummons(params.cid)[1]) then
		 if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(cid)) <= params.dd then
		   if getPlayerStorageValue(cid, abili) > 0 then			  
		    return false;			  
		   end
		   setPlayerStorageValue(cid, abili, 1)

		   doPlayerSendTextMessage(cid,27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower." )
		   setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
		   setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
		   setPlayerStorageValue(cid, 7778, 4)
		   registerCreatureEvent(cid, "Flying")
		   doChangeSpeed(cid, -250)
		   doChangeSpeed(cid, pokemon[2])
		   doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)
		   doRemoveCreature(getCreatureSummons(cid)[1])
		 else
		   dir = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))
		   if dir == NORTHWEST then
			 if math.random(1,100) >= 51 then
			   dir = NORTH
			 else
			   dir = WEST
			 end
		   elseif dir == SOUTHWEST then
			 if math.random(1,100) >= 51 then
			   dir = SOUTH
			 else
			   dir = WEST
			 end
		   elseif dir == SOUTHEAST then
			 if math.random(1,100) >= 51 then
			   dir = SOUTH
			 else
			   dir = EAST
			 end
		   elseif dir == NORTHEAST then
			 if math.random(1,100) >= 51 then
			   dir = NORTH
			 else
			   dir = EAST
			 end
		   end

		   local dir = dir
		   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
			 doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
			 doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0)
			 doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
		   else
			 doPushCreature(getCreatureSummons(params.cid)[1], dir, 1, 0)
			 doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
		   end
		 end
	   end
	 end
   end

   local function speed(params)
	 if isCreature(params.cid) then
	   if isCreature(getCreatureSummons(params.cid)[1]) then
		 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
		   doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(cid)[1]))
		 end
	   end
	 end
   end
   summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
   if summonName == nil then
    summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
   end
   doCreatureSay(cid, ""..summonName..", lets fly!", 1)

   if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then
	 distancc = 1
   else
	 distancc = 0
   end
   local distancee = distancc
   for i=1,12 do
	 addEvent(fly, pokemon[3]*i, {cid = cid, dd = distancee})
	 addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})
   end
   addEvent(setPlayerStorageValue,5000,cid, abili, 0)
   return true
 end

 return true
  end

  -- Fly End --

end
-- Ride,Fly End --
-- ROCK SMASH
if item2.itemid == 1285 and getPlayerStorageValue(cid, 63215) <= 0 then

 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
 if #getCreatureSummons(cid) == 0 then
   doPlayerSendCancel(cid, "You need a pokemon to use rock smash.")
   return true
 end
 if not isInArray(rocksmash, summonName) then
   doPlayerSendCancel(cid, "This pokemon can't use rock smash.")
   return true
 else
   if exhaustion.get(cid, erocksmash) then
  doPlayerSendCancel(cid, "Please wait a few seconds before using rock smash again!")
  return true
   end
   if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
  return true
   end

   doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
   local function tocut(params)
   if isCreature(params.cid) then
	 if isCreature(getCreatureSummons(params.cid)[1]) then
	   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then
		 return true
	   end
	   if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 100) >= 1 then
		 return true
	   end

	   if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
		 doSendMagicEffect(topos, 118)
		 doTransformItem(getTileItemById(topos, 1285).uid, 2257)
		 exhaustion.set(cid, erocksmash, cdrocksmash)

		 local function detrans(params)
		    doTransformItem(getTileItemById(topos, 2257).uid, 1285)  
		 end
		 addEvent(detrans, 15*1000, {ciddd = cid})
		 doCreatureSay(getCreatureSummons(cid)[1], "ROCK SMASH!", TALKTYPE_MONSTER)
		 local function nmr(params)
		   if isCreature(params.cid) then
			 if isCreature(getCreatureSummons(params.cid)[1]) then
			   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
			    doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
			   end
			 end
		   end
		 end
		 addEvent(nmr, 400, {cid = cid})
	   else
		 local badire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)
if badire == NORTHWEST then
 if math.random(1,100) >= 51 then
 badire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = NORTH
  else
  badire = WEST
  end
 else
 badire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = WEST
  else
  badire = NORTH
  end
 end
elseif badire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 badire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = SOUTH
  else
  badire = WEST
  end
 else
 badire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = WEST
  else
  badire = SOUTH
  end
 end
elseif badire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 badire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = SOUTH
  else
  badire = EAST
  end
 else
 badire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = EAST
  else
  badire = SOUTH
  end
 end
elseif badire == NORTHEAST then
 if math.random(1,100) >= 51 then
 badire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = NORTH
  else
  badire = EAST
  end
 else
 badire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), badire), params.ccid, 0, 0) then
  badire = EAST
  else
  badire = NORTH
  end
 end
end
local badire = badire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], badire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", smash this rock!", 1)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do
addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
end
return true
end
end
-- ROCK SMASH END
-- Surf Begin --
   local brd = bordas[item2.itemid]

if brd ~= nil then  

  if getPlayerStorageValue(cid, 7778) == 3 then
 coordenadas = bordas[item2.itemid]
 oldPos = getThingPos(item2.uid)
 newPos = { x = oldPos.x - coordenadas.x, y = oldPos.y - coordenadas.y, z = oldPos.z }

 if (getDistanceBetween(getThingPos(cid), getThingPos(item2.uid)) > 1 ) or (not getClosestFreeTile(cid,oldPos)) then
  return doPlayerSendCancel(cid,"You cannot stop surfing here")	
 end

 if getPlayerGroupId(cid) ~= 6 then
   setPlayerGroupId(cid, 8)
 end

 doCreatureSetLookDir(cid, 2)



 doChangeSpeed(cid, -(getCreatureSpeed(cid)))
 if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then
   doChangeSpeed(cid, 200*getPlayerGroupId(cid))
 else
   doChangeSpeed(cid, 250)
 end

 doRemoveCondition(cid, CONDITION_OUTFIT)

 setPlayerStorageValue(cid, 7778, 0)
 setPlayerStorageValue(cid, 17001, 0)
 local item = getPlayerSlotItem(cid, 8)

 --doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))
 local varNome = getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")
 local varApelido = getItemAttribute(item.uid, "apelido")
 local varSpecial = getItemAttribute(item.uid, "special")
 moveAgua(cid,item2,true)
 if(varApelido == nil)then
	 varApelido = varNome
 end
 doCreatureSay(cid, "" .. varApelido..", let me get out!", 1)
 setCreatureName(cid, varNome, varApelido,varSpecial)

 local pk = getCreatureSummons(cid)[1]
 registerCreatureEvent(cid, "PlayerPokeDeath")
 registerCreatureEvent(pk, "DiePoke")
 registerCreatureEvent(pk, "Exp")
 setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))
 doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))
 doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))


 return true
  end
  summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
  if #getCreatureSummons(cid) == 0 then

   return doPlayerSendCancel(cid,"You need a Pokemon for this")

  end

  local function doVoltaSpeed(speedPoke,velocidade)

   if getCreatureName(speedPoke) ~= nil then
 doChangeSpeed(speedPoke, velocidade)
   end

  end


  if storageAbilidade <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and isInArray(poke, summonName) then
 if storageAbilidade <= 0 then
   local pokemon = surfs[summonName]
   if not isVip(cid) then
	 doPlayerSendTextMessage(cid, 22, "Voce Precisa Ser Vip Para Surf.")
	 return TRUE
   end
   local function surf(params)
	 if isCreature(params.cid) then
	   if isCreature(getCreatureSummons(params.cid)[1]) then
		 if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
		   pokeSpeed = getCreatureSummons(params.cid)[1]
		   posicaoAid = getPosByDir(getCreaturePosition(pokeSpeed), getCreatureLookDirection(pokeSpeed), -1)
		   chaoAid = getTileThingByPos(posicaoAid)
		   if chaoAid ~= nil and getPlayerStorageValue(cid, 7800) <= 0 then
		    doItemSetAttribute(chaoAid.uid,"aid",9000)
		    doChangeSpeed(pokeSpeed, -getCreatureSpeed(pokeSpeed))
		    setPlayerStorageValue(cid, 7800, params.dd)
		    addEvent(doItemSetAttribute, 6000, chaoAid.uid,"aid",9000)
		    addEvent(doVoltaSpeed, 6000, pokeSpeed,getCreatureBaseSpeed(pokeSpeed))
		    addEvent(setPlayerStorageValue,6000,params.cid,7800,0)
		   end

		 else
		   local edire = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), params.topos)
		   doPlayerSendCancel(params.cid,getThingFromPos(params.topos).itemid)
		   if edire >= 0 and edire <= 7 then
		    if edire == NORTHWEST then
			  if math.random(1,100) >= 51 then
			   edire = NORTH
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = NORTH
			   else
			    edire = WEST
			   end
			  else
			   edire = WEST
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = WEST
			   else
			    edire = NORTH
			   end
			  end
		    elseif edire == SOUTHWEST then
			  if math.random(1,100) >= 51 then
			   edire = SOUTH
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = SOUTH
			   else
			    edire = WEST
			   end
			  else
			   edire = WEST
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = WEST
			   else
			    edire = SOUTH
			   end
			  end
		    elseif edire == SOUTHEAST then
			  if math.random(1,100) >= 51 then
			   edire = SOUTH
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = SOUTH
			   else
			    edire = EAST
			   end
			  else
			   edire = EAST
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = EAST
			   else
			    edire = SOUTH
			   end
			  end
		    elseif edire == NORTHEAST then
			  if math.random(1,100) >= 51 then
			   edire = NORTH
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = NORTH
			   else
			    edire = EAST
			   end
			  else
			   edire = EAST
			   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
			    edire = EAST
			   else
			    edire = NORTH
			   end
			  end
		    end
			 local dir = edire
			 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
			  doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
			  doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
			  doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
			 else
			  doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
			  doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
			 end
		    end
		 end

	   end
	 end
   end

   local function speed(params)
	 if isCreature(params.cid) then
	   if isCreature(getCreatureSummons(params.cid)[1]) then
		 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
		   doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
		   doChangeSpeed(params.cid, getCreatureBaseSpeed(params.cid))
		 end
	   end
	 end
   end
   summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
   if summonName == nil then
    summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
   end
   doCreatureSay(cid, ""..summonName..", lets Surf!", 1)
   exhaustion.set(cid, etudao, 4)
   if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 6 then
	 distancc = 1
   else
	 distancc = 0
   end
   local distancee = distancc

   --for i=1,12 do
   --  addEvent(surf, 150*i, {cid = cid, dd = item2.uid, topos = topos})
   --  addEvent(speed, ((150*12)+100), {cid = cid})
   --end

   setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))
   setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))
   registerCreatureEvent(cid, "Surfing")
   doChangeSpeed(cid, -250)
   doChangeSpeed(cid, pokemon.speed)
   exhaustion.set(cid, etudao, 4)
   doSetCreatureOutfit(cid, {lookType = pokemon.lookType, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)
   doRemoveCreature(getCreatureSummons(cid)[1])
   setPlayerStorageValue(cid, 7778, 3)
   setPlayerStorageValue(cid, 17001, 3)
   moveAgua(cid,item2,false)
   return true
 end

 return true
  end
end 
  -- Surf End --

-- CUT
if item2.itemid == 2767 and getPlayerStorageValue(cid, 63215) <= 0 then
 if #getCreatureSummons(cid) == 0 then
   doPlayerSendCancel(cid, "You need a pokemon to use cut.")
   return true
 end

 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
 if not isInArray(cut, summonName) then
   doPlayerSendCancel(cid, "This pokemon can't use cut.")
   return true
 end
 if isInArray(cut, summonName) then
   if exhaustion.get(cid, ecut) then
  doPlayerSendCancel(cid, "Please wait a few seconds before using cut again!")
  return true
   end
   if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
  return true
   end
   doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
   local function tocut(params)
  if isCreature(params.cid) then
    if isCreature(getCreatureSummons(params.cid)[1]) then
	  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then
	    return true
	  end
	  if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 101) >= 1 then
	    return true
	  end
	  if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
	    doSendMagicEffect(topos, 141)
	    doTransformItem(getTileItemById(topos, 2767).uid, 6216)
	    exhaustion.set(cid, ecut, cdcut)

	    local function detrans(params)
		  doTransformItem(getTileItemById(topos, 6216).uid, 2767)
	    end

	    addEvent(detrans, 15*1000, {ciddd = cid})
	    doCreatureSay(getCreatureSummons(cid)[1], "CUT!", TALKTYPE_MONSTER)
	    local function nmr(params)
		  if isCreature(params.cid) then
		    if isCreature(getCreatureSummons(params.cid)[1]) then
			  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
			    doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
			  end
		    end
		  end
	    end
	    addEvent(nmr, 400, {cid = cid})
	  else
	    adire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)
	    if adire == NORTHWEST then
		 if math.random(1,100) >= 51 then
		  adire = NORTH
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = NORTH
		  else
		   adire = WEST
		  end
		 else
		  adire = WEST
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = WEST
		  else
		   adire = NORTH
		  end
		 end
	    elseif adire == SOUTHWEST then
		  if math.random(1,100) >= 51 then
		   adire = SOUTH
		   if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		    adire = SOUTH
		   else
		    adire = WEST
		   end
		 else
		  adire = WEST
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = WEST
		  else
		   adire = SOUTH
		  end
		 end
	    elseif adire == SOUTHEAST then
		 if math.random(1,100) >= 51 then
		  adire = SOUTH
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = SOUTH
		  else
		   adire = EAST
		  end
		 else
		  adire = EAST
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = EAST
		  else
		   adire = SOUTH
		  end
		 end
	    elseif adire == NORTHEAST then
		 if math.random(1,100) >= 51 then
		  adire = NORTH
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = NORTH
		  else
		   adire = EAST
		  end
		 else
		  adire = EAST
		  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), adire), params.ccid, 0, 0) then
		   adire = EAST
		  else
		   adire = NORTH
		  end
		 end
	    end
	    local adire = adire
	    if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
		  doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
		  doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0)
		  doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
	    else
		  doPushCreature(getCreatureSummons(params.cid)[1], adire, 1, 0)
		  doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
	    end
    end
  end
   end
 end

 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
 if summonName == nil then
   summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
 end

 doPlayerSay(cid, ""..summonName..", cut this bush!", 1)

 local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
 temk = 1000 -(2.3 * speed)
 addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

 for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do
   addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
 end

 return true
 end
end
-- CUT END
-- DIG
if isInArray(digholes, item2.itemid) and getPlayerStorageValue(cid, 63215) <= 0 then
 if #getCreatureSummons(cid) == 0 then
   doPlayerSendCancel(cid, "You need a pokemon to use dig.")
   return true
 end

 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
 if not isInArray(dig, summonName) then
   doPlayerSendCancel(cid, "This pokemon can't use dig.")
   return true
 end
 if isInArray(dig, summonName) then
   if exhaustion.get(cid, edig) then
  doPlayerSendCancel(cid, "Please wait a few seconds before using dig again!")
  return true
   end
   if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
  return true
   end

   doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
   local function tocut(params)
  if isCreature(params.cid) then
    if isCreature(getCreatureSummons(params.cid)[1]) then
	  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then
	    return true
	  end
	  if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 99) >= 1 then
	    return true
	  end

	  if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then
	    doSendMagicEffect(topos, 3)
	    setPlayerStorageValue(getCreatureSummons(params.cid)[1], 99, 1)
	    doTransformItem(getTileItemById(topos, item2.itemid).uid, item2.itemid+1)
	    exhaustion.set(cid, edig, cddig)
	    local function detrans(params)
		  doTransformItem(getTileItemById(topos, item2.itemid+1).uid, item2.itemid)
		  if isCreature(getCreatureSummons(params.ciddd)[1]) then
		    setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 99, 0)
		  end
	    end
	    addEvent(detrans, 5500, {ciddd = cid})
	    doCreatureSay(getCreatureSummons(cid)[1], "DIG!", TALKTYPE_MONSTER)
	    local function nmr(params)
		  if isCreature(params.cid) then
		    if isCreature(getCreatureSummons(params.cid)[1]) then
			  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
			    doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
			  end
		    end
		  end
	    end

	    addEvent(nmr, 400, {cid = cid})
	  else
	    local cdire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)
	    if cdire == NORTHWEST then
		  if math.random(1,100) >= 51 then
		    cdire = NORTH
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = NORTH
		    else
			 cdire = WEST
		    end
		  else
		    cdire = WEST
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = WEST
		    else
			 cdire = NORTH
		    end
		  end
	    elseif cdire == SOUTHWEST then
		  if math.random(1,100) >= 51 then
		    cdire = SOUTH
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = SOUTH
		    else
			 cdire = WEST
		    end
		  else
		    cdire = WEST
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = WEST
		    else
			 cdire = SOUTH
		    end
		  end
	    elseif cdire == SOUTHEAST then
		  if math.random(1,100) >= 51 then
		    cdire = SOUTH
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = SOUTH
		    else
			 cdire = EAST
		    end
		  else
		    cdire = EAST
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = EAST
		    else
			 cdire = SOUTH
		    end
		  end
	    elseif cdire == NORTHEAST then
		  if math.random(1,100) >= 51 then
		    cdire = NORTH
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = NORTH
		    else
			 cdire = EAST
		    end
		  else
		    cdire = EAST
		    if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then
			 cdire = EAST
		    else
			 cdire = NORTH
		    end
		  end
	    end

	    local cdire = cdire
	    if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
		  doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
		  doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)
		  doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
	    else
		  doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)
		  doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
	    end
	  end
    end
  end
   end

   summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
   if summonName == nil then
 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
   end

   doPlayerSay(cid, ""..summonName..", open this hole!", 1)

   local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
   temk = 1000 -(2.3 * speed)
   addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
   for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do
  addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})
   end

   return true
 end
end
-- DIG END
-- BLINK
if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 63215) <= 0 and storageAbilidade <= 0 then
 doPlayerSendCancel(cid, "You need a pokemon to use order.")
 return true
end
if not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and storageAbilidade <= 0 then
summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
if summonName == nil then
 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
end
if isInArray(blink, summonName) then
if exhaustion.get(cid, exhaustblink) then
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
doPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")
return true
end
summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
if summonName == nil then
 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
end
doPlayerSay(cid, ""..summonName..", move!", 1)
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)
local function move(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then
return true
end
 if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then
  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   if getCreatureSpeed(params.sum) == 0 then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   end
   addEvent(speeed, 600, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
 return true
 end
local edire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)
if edire >= 0 and edire <= 7 then
if edire == NORTHWEST then
 if math.random(1,100) >= 51 then
 edire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = NORTH
  else
  edire = WEST
  end
 else
 edire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = WEST
  else
  edire = NORTH
  end
 end
elseif edire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 edire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = SOUTH
  else
  edire = WEST
  end
 else
 edire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = WEST
  else
  edire = SOUTH
  end
 end
elseif edire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 edire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = SOUTH
  else
  edire = EAST
  end
 else
 edire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = EAST
  else
  edire = SOUTH
  end
 end
elseif edire == NORTHEAST then
 if math.random(1,100) >= 51 then
 edire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = NORTH
  else
  edire = EAST
  end
 else
 edire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), edire), params.ccid, 0, 0) then
  edire = EAST
  else
  edire = NORTH
  end
 end
end
local edire = edire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], edire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
local function voltarnormal(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
   if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   addEvent(speeed, 0, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
end
end
end
local pois = getThingPos(item2.uid)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
local SumPos = getThingPos(getCreatureSummons(cid)[1])
local travelx = math.abs((topos.x) - (SumPos.x))
local travely = math.abs((topos.y) - (SumPos.y))
local travel = ((travelx) + (travely))
addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
for i = 1, travel do
addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
end
addEvent(voltarnormal, temk * travel, {cid = cid})
exhaustion.set(cid, etudao, travel)
else
if not isWalkable(topos, cid, 0, 0) then
doPlayerSendCancel(cid, "Your pokemon cannot teleport there.")
return true
end
if getItemName(item2.uid) == "shallow water" then
doPlayerSendCancel(cid, "Your pokemon cannot teleport there.")
return true
end
doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), topos, 39)
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 211)
doTeleportThing(getCreatureSummons(cid)[1], topos, false)
doSendMagicEffect(topos, 134)
doPlayerSay(cid, ""..summonName..", teleport there!", 1)
doCreatureSay(getCreatureSummons(cid)[1], "BLINK!", TALKTYPE_MONSTER)
exhaustion.set(cid, exhaustblink, cdblink)
return true
end
return true
end
end
--- BLINK END
-- LIGHT --
if isCreature(item2.uid) and getCreatureMaster(item2.uid) == cid and getPlayerStorageValue(cid, 63215) <= 0 and storageAbilidade <= 0 and item2.uid ~= cid then
summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
if summonName == nil then
 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
end
if summonName == "Ditto" and isMonster(item2.uid) == TRUE then
doCreatureSay(cid, "Ditto, reverse transformation!", 1)
local posDito = getCreaturePosition(getCreatureSummons(cid)[1])
doSendMagicEffect(posDito, 184)
doSetCreatureOutfit(getCreatureSummons(cid)[1], {lookType = 28, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)

return TRUE
elseif not isInArray(light, summonName) then
doPlayerSendCancel(cid, "This pokemon can't use flash.")
return TRUE
end
if isInArray(light, summonName) then
    if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then
    return doPlayerSendCancel(cid,"Please use flash on your pokemon.")
    end
    if exhaustion.get(cid, exhautStorage) then
    doPlayerSendCancel(cid,"Please wait a few seconds before using flash again!")
    return true
    end
exhaustion.set(cid, exhautStorage, cd)
doPlayerSay(cid, ""..summonName..", use flash!", 1)
doCreatureSay(getCreatureSummons(cid)[1], "FLASH!", TALKTYPE_MONSTER)
doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 28)
doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)
return true
end
end
-- LIGHT END --
-- surf Begin --

-- surf end --

if #getCreatureSummons(cid) == 0 then
return true
end
if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then
doPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 12) == 1 then
doPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")
return true
end
if getItemName(item2.uid) == "shallow water" then
doPlayerSendCancel(cid, "Your pokemon cannot move there.")
return true
end
summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "apelido")
if summonName == nil then
 summonName = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"):match("This is (.-)'s pokeball.")
end
doPlayerSay(cid, ""..summonName..", move!", 1)
doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))
setPlayerStorageValue(getCreatureSummons(cid)[1], 12, 1)
local function move(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 12) == 0 then
return true
end
 if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 0 then
  if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
 local bspd = getCreatureBaseSpeed(params.summons)
 doChangeSpeed(summons, bspd)
   end
   addEvent(speeed, 600, {summons = getCreatureSummons(params.cid)[1]})
  end

  setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
  setPlayerStorageValue(cid, etudao, -1)
  return true
 end
local dire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), params.topos)
if dire >= 0 and dire <= 7 then
if dire == NORTHWEST then
 if math.random(1,100) >= 51 then
 dire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = NORTH
  else
  dire = WEST
  end
 else
 dire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = WEST
  else
  dire = NORTH
  end
 end
elseif dire == SOUTHWEST then
 if math.random(1,100) >= 51 then
 dire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = SOUTH
  else
  dire = WEST
  end
 else
 dire = WEST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = WEST
  else
  dire = SOUTH
  end
 end
elseif dire == SOUTHEAST then
 if math.random(1,100) >= 51 then
 dire = SOUTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = SOUTH
  else
  dire = EAST
  end
 else
 dire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = EAST
  else
  dire = SOUTH
  end
 end
elseif dire == NORTHEAST then
 if math.random(1,100) >= 51 then
 dire = NORTH
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = NORTH
  else
  dire = EAST
  end
 else
 dire = EAST
  if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), dire), params.ccid, 0, 0) then
  dire = EAST
  else
  dire = NORTH
  end
 end
end
local dire = dire
if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))
doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
else
doPushCreature(getCreatureSummons(params.cid)[1], dire, 1, 0)
doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))
end
end
end
end
end
local function voltarnormal(params)
if isCreature(params.cid) then
if isCreature(getCreatureSummons(params.cid)[1]) then
setPlayerStorageValue(cid, etudao, -1)
 if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then
   local function speeed(params)
   if isCreature(params.sum) then
   if getCreatureSpeed(params.sum) == 0 then
   doChangeSpeed(params.sum, getCreatureBaseSpeed(params.sum))
   end
   end
   end
 addEvent(speeed, 3000, {sum = getCreatureSummons(params.cid)[1]})
  end
 setPlayerStorageValue(getCreatureSummons(params.cid)[1], 12, 0)
end
end
end
local pois = getThingPos(item2.uid)
local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])
local temk = 1000 -(2.3 * speed)
local SummonPos = getThingPos(getCreatureSummons(cid)[1])
local travelx = math.abs((topos.x) - (SummonPos.x))
local travely = math.abs((topos.y) - (SummonPos.y))
local travel = ((travelx) + (travely))
addEvent(move, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
for i = 1, travel-1 do
addEvent(move, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = pois, item2 = item2.uid})
end
addEvent(voltarnormal, temk*travel, {cid = cid})
exhaustion.set(cid, etudao, travel)
return true
end

 

help ai povo e ajudem nesse aqui tbm

http://www.xtibia.com/forum/topic/172913-erro-no-goback/page__fromsearch__1

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...