Ir para conteúdo
  • 0

[Ajuda] Script Para Fly Vip


KarlKalvin

Pergunta

ai pessoal esse script que to mandando é o order.. tudo.. tem uma parte nele que é o do FLY, então eu quero que quando o player der order nele com pokemons de FLY e for free a order cancele.. o script é esse :

 

 

-- feito por guuhtorres

 

 

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', 'Crobat', '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', 'Crobat', '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

[544] = {662, 900, 440}, -- crobat

[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', 'shiny abra'}

local exhaustblink = 9501

local cdblink = 40

-- BLINK

 

-- BLINK 2

local blink = {'Mew', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Porygon', 'Porygon2', 'Gallade', 'Shiny abra'}

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", "Haunter"}, getCreatureName(getCreatureSummons(cid)[1])) then

doPlayerSendCancel(cid, "Este pokemon nao 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

 

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tenta ai:


-- feito por guuhtorres


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', 'Crobat', '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', 'Crobat', '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
[544] = {662, 900, 440}, -- crobat
[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', 'shiny abra'}
local exhaustblink = 9501
local cdblink = 40
-- BLINK

-- BLINK 2
local blink = {'Mew', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Porygon', 'Porygon2', 'Gallade', 'Shiny abra'} 
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", "Haunter"}, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendCancel(cid, "Este pokemon nao 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 not isPremium(cid) then
     doPlayerSendTextMessage(cid, 27, "Only menbers premium is arealid to fly.")
  return true
  end
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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...