[Tutorial]Order E Surf Igual Ao Svke

Tiagohells
em Lixeira Pública

Tiagohells

Dark Tiagohells
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/12/10Posts: 53Gênero: MasculinoChar no Tibia: Uknown

Olha galera aki está o tuto do ORDER para pokemon e surf .para q funcione coloque tudo direitinho :thumbsupsmiley2:

 

1° va em items.xml e edit seu order e deixe assim.

 

 

</item>

<item id="2550" article="the command button" name="order">

<attribute key="weight" value="0" />

<attribute key="slotType" value="body" />

</item>

 

 

2°Depois va em data\actions\scripts e cria um arquivo.lua e escre Order dae ficara order.lua ,dentro ponha:

 

 

-- feito por brun123, editado por glugluguga ultima edição Tiagohells revisão Tiagohells

 

 

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'}

local ride = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros'}

local fly = {'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo'}

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

}

 

local rides = {

[93] = {128, 780, 400}, -- tauros

[114] = {129, 800, 375}, -- kyuubi

[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 vneu

[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

}

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 = 5

-- 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'}

local edig = 9504

local cddig = 5

-- 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', 'Charizard'}

local ecut = 9503

local cdcut = 5

-- CUT

 

-- BLINK

local blink = {'Abra', 'Kadabra', 'Alakazam', 'Porygon'}

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

-- LIGHT

local light = {'Abra', 'Kadabra', 'Alakazam', 'Magnemite', 'Magneton', 'Drowzee', 'Hypno', 'Voltorb', 'Electrode', 'Mrmime', 'Electabuzz', 'Jolteon', 'Porygon', 'Pikachu', 'Raichu'}

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 exhaustion.get(cid, etudao) then

doPlayerSendCancel(cid, "Please wait a few seconds before using order again!")

return true

end

if isMonster(item2.uid) and item2.uid ~= getCreatureSummons(cid)[1] and item2.uid ~= cid then

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "You need a pokemon to use order.")

return true

end

if exhaustion.get(cid, mind) then

doPlayerSendCancel(cid, "Your pokemon is too exhausted from the last control, this ability has 2 minutes cooldown.")

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

doPlayerSendCancel(cid, "You cant control the mind of someone's else pokemon.")

return true

end

if not isInArray({"Alakazam", "Tentacruel", "Gengar"}, getCreatureName(getCreatureSummons(cid)[1])) then

doPlayerSendCancel(cid, "This pokemon cant control minds.")

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, "You cant fly neither ride pokemons being controled.")

return true

end

if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 then

doPlayerSendCancel(cid, "You need a pokemon to use order.")

return true

end

 

if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and not isInArray(ridefly, getCreatureName(getCreatureSummons(cid)[1])) then

doPlayerSendCancel(cid, "You can't ride this pokemon nor fly with it.")

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, "You can\'t stop flying at this height!")

return true

end

if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then

doPlayerSendCancel(cid, "You can\'t stop flying above the water!")

return true

end

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, "You need a pokemon to use rock smash.")

return true

end

if not isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) then

doPlayerSendCancel(cid, "This pokemon can't use rock smash.")

return true

end

if isInArray(rocksmash, getCreatureName(getCreatureSummons(cid)[1])) then

if exhaustion.get(cid, erocksmash) then

doPlayerSendCancel(cid, "Please wait a few seconds before using rock smash again!")

return true

end

 

 

if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then

return true

end

doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))

local function tocut(params)

if isCreature(params.cid) then

if isCreature(getCreatureSummons(params.cid)[1]) then

if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then

return true

end

if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 100) >= 1 then

return true

end

if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then

doSendMagicEffect(topos, 118)

doTransformItem(getTileItemById(topos, 1285).uid, 2257)

exhaustion.set(cid, erocksmash, cdrocksmash)

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])..", smash this rock!", 1)

local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])

local temk = 1000 -(2.3 * speed)

addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do

addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

end

return true

end

end

-- ROCK SMASH END

 

-- CUT

if item2.itemid == 2767 and getPlayerStorageValue(cid, 63215) <= 0 then

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "You need a pokemon to use cut.")

return true

end

if not isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) then

doPlayerSendCancel(cid, "This pokemon can't use cut.")

return true

end

if isInArray(cut, getCreatureName(getCreatureSummons(cid)[1])) then

if exhaustion.get(cid, ecut) then

doPlayerSendCancel(cid, "Please wait a few seconds before using cut again!")

return true

end

if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then

return true

end

doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))

local function tocut(params)

if isCreature(params.cid) then

if isCreature(getCreatureSummons(params.cid)[1]) then

if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then

return true

end

if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 101) >= 1 then

return true

end

if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then

doSendMagicEffect(topos, 141)

doTransformItem(getTileItemById(topos, 2767).uid, 6216)

exhaustion.set(cid, ecut, cdcut)

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])..", cut this bush!", 1)

local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])

temk = 1000 -(2.3 * speed)

addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do

addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

end

 

return true

end

end

-- CUT END

 

-- DIG

if isInArray(digholes, item2.itemid) and getPlayerStorageValue(cid, 63215) <= 0 then

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "You need a pokemon to use dig.")

return true

end

if not isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) then

doPlayerSendCancel(cid, "This pokemon can't use dig.")

return true

end

if isInArray(dig, getCreatureName(getCreatureSummons(cid)[1])) then

if exhaustion.get(cid, edig) then

doPlayerSendCancel(cid, "Please wait a few seconds before using dig again!")

return true

end

if getCreatureSpeed(getCreatureSummons(cid)[1]) == 0 then

return true

end

doChangeSpeed(getCreatureSummons(cid)[1], -getCreatureSpeed(getCreatureSummons(cid)[1]))

local function tocut(params)

if isCreature(params.cid) then

if isCreature(getCreatureSummons(params.cid)[1]) then

if getCreatureSpeed(getCreatureSummons(params.cid)[1]) >= 1 then

return true

end

if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 99) >= 1 then

return true

end

if getDistanceBetween(getThingPos(getCreatureSummons(params.cid)[1]), topos) == 1 then

doSendMagicEffect(topos, 3)

setPlayerStorageValue(getCreatureSummons(params.cid)[1], 99, 1)

doTransformItem(getTileItemById(topos, item2.itemid).uid, item2.itemid+1)

exhaustion.set(cid, edig, cddig)

local function detrans(params)

doTransformItem(getTileItemById(topos, item2.itemid+1).uid, item2.itemid)

if isCreature(getCreatureSummons(params.ciddd)[1]) then

setPlayerStorageValue(getCreatureSummons(params.ciddd)[1], 99, 0)

end

end

addEvent(detrans, 5500, {ciddd = cid})

doCreatureSay(getCreatureSummons(cid)[1], "DIG!", TALKTYPE_MONSTER)

local function nmr(params)

if isCreature(params.cid) then

if isCreature(getCreatureSummons(params.cid)[1]) then

if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then

doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))

end

end

end

end

addEvent(nmr, 400, {cid = cid})

else

local cdire = getDirectionTo(getThingPos(getCreatureSummons(cid)[1]), topos)

if cdire == NORTHWEST then

if math.random(1,100) >= 51 then

cdire = NORTH

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = NORTH

else

cdire = WEST

end

else

cdire = WEST

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = WEST

else

cdire = NORTH

end

end

elseif cdire == SOUTHWEST then

if math.random(1,100) >= 51 then

cdire = SOUTH

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = SOUTH

else

cdire = WEST

end

else

cdire = WEST

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = WEST

else

cdire = SOUTH

end

end

elseif cdire == SOUTHEAST then

if math.random(1,100) >= 51 then

cdire = SOUTH

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = SOUTH

else

cdire = EAST

end

else

cdire = EAST

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = EAST

else

cdire = SOUTH

end

end

elseif cdire == NORTHEAST then

if math.random(1,100) >= 51 then

cdire = NORTH

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = NORTH

else

cdire = EAST

end

else

cdire = EAST

if isWalkable(getPosByDir(getThingPos(getCreatureSummons(params.cid)[1]), cdire), params.ccid, 0, 0) then

cdire = EAST

else

cdire = NORTH

end

end

end

local cdire = cdire

if getCreatureSpeed(getCreatureSummons(params.cid)[1]) == 0 then

doChangeSpeed(getCreatureSummons(params.cid)[1], getCreatureBaseSpeed(getCreatureSummons(params.cid)[1]))

doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)

doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))

else

doPushCreature(getCreatureSummons(params.cid)[1], cdire, 1, 0)

doChangeSpeed(getCreatureSummons(params.cid)[1], -getCreatureSpeed(getCreatureSummons(params.cid)[1]))

end

end

end

end

end

 

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", open this hole!", 1)

local speed = getCreatureBaseSpeed(getCreatureSummons(cid)[1])

temk = 1000 -(2.3 * speed)

addEvent(tocut, 0, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

for i = 1, getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), topos) * 2 do

addEvent(tocut, temk*i, {cid = cid, ccid = getCreatureSummons(cid)[1], topos = topos})

end

return true

end

end

-- DIG END

 

-- BLINK

if #getCreatureSummons(cid) == 0 and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then

doPlayerSendCancel(cid, "You need a pokemon to use order.")

return true

end

if not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and 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, "You can\'t order your pokemon to move now.")

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, "Your pokemon cannot teleport there.")

return true

end

if getItemName(item2.uid) == "shallow water" then

doPlayerSendCancel(cid, "Your pokemon cannot teleport there.")

return true

end

doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), topos, 39)

doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 211)

doTeleportThing(getCreatureSummons(cid)[1], topos, false)

doSendMagicEffect(topos, 134)

doPlayerSay(cid, ""..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

 

-- 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, "This pokemon can't use 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,"Please use flash on your pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

doPlayerSendCancel(cid,"Please wait a few seconds before using flash again!")

return true

end

exhaustion.set(cid, exhautStorage, cd)

doPlayerSay(cid, ""..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, "You can\'t order your pokemon to move now.")

return true

end

if getPlayerStorageValue(getCreatureSummons(cid)[1], 12) == 1 then

doPlayerSendCancel(cid, "You can\'t order your pokemon to move now.")

return true

end

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

------------------------------------------By Tiagohells-------------------------------------

 

 

3° Depois va em actinos.xml e deixe assim:

 

 

<action itemid="2550" event="script" value="order.lua" allowfaruse="1"/>

 

 

4° va na pasta \data\lib de seu ot e crie outro arquivo.lua e deixe escrito assim, move dae ficara move.lua abra e deixe isso:

 

 

function doPushCreature(uid,direction,distance,time)

 

if isCreature(uid) == TRUE then

 

local rand = (2*math.random(0,1))-1

 

local rand2 = math.random(-1,0)

 

if direction == 0 then

 

signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0}

 

elseif direction == 1 then

 

signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0}

 

elseif direction == 2 then

 

signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0}

 

elseif direction == 3 then

 

signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0}

 

elseif direction == 4 then

 

signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0}

 

elseif direction == 5 then

 

signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0}

 

elseif direction == 6 then

 

signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0}

 

else

 

signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0}

 

end

 

local pos = getThingPos(uid)

 

nsig = #signal

 

nvar = 0

 

 

 

repeat

 

nvar = nvar+1

 

newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z}

 

newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0}

 

until getTileThingByPos(newtile).uid ~= 0 and hasProperty(getTileThingByPos(newtile).uid,3) == FALSE and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2)

 

 

 

if distance == nil or distance == 1 then

 

doTeleportThing(uid,newpos,TRUE)

 

else

 

distance = distance-1

 

doTeleportThing(uid,newpos,TRUE)

 

if time ~= nil then

 

addEvent(doPushCreature,time,uid,direction,distance,time)

 

else

 

addEvent(doPushCreature,500,uid,direction,distance,500)

 

end

 

end

 

end

 

end

 

 

5° Fly e Ride desse order va em \data\creaturescripts\scripts crie um arquivo.lua com esse nome flycool deixe isso dentro:

 

 

function onThink(cid, interval)

if(not isCreature(cid)) then

return

end

if getPlayerStorageValue(cid, 17000) >= 1 then

if getThingPos(cid).z <= 6 then

if getTileThingByPos(getThingPos(cid)).itemid ~= 460 then

for x=-1,1 do

for y=-1,1 do

posa = {x=getThingPos(cid).x+x,y=getThingPos(cid).y+y,z=getThingPos(cid).z}

if getTileThingByPos(posa).itemid == 0 then

doCombatAreaHealth(cid, 0, posa, 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, posa)

end

end

end

elseif getTileThingByPos(getThingPos(cid)).itemid == 0 then

for x=-1,1 do

for y=-1,1 do

posa = {x=getThingPos(cid).x+x,y=getThingPos(cid).y+y,z=getThingPos(cid).z}

if getTileThingByPos(posa).itemid == 0 then

doCombatAreaHealth(cid, 0, posa, 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, posa)

end

end

end

end

end

end

return true

end

 

 

6° Depois va em creaturescripts.xml e deixe isso lá:

 

 

<event type="think" name="Flying" event="script" value="flycool.lua"/>

 

 

7° va em \data\movements e crie um arquivo.lua e deixe o nome assim fly deixe dentro isso:

 

 

local del = {'460', '1022', '1023'}

local updown = {'1', '3'}

 

function onStepIn(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid, 17000) <= 0 then

doTeleportThing(cid, topos, false)

doRemoveItem(getTileThingByPos(frompos).uid, 1)

if isPlayer(cid) then

doPlayerSendCancel(cid, "You can't fly.")

end

return true

end

if getPlayerStorageValue(cid, 17000) >= 1 then

if topos.z == frompos.z then

if getCreatureOutfit(cid).lookType == 316 then

effect = 136

else

effect = 2

end

doSendMagicEffect(topos, effect)

end

end

for x=-1,1 do

for y=-1,1 do

posa = {x=topos.x+x,y=topos.y+y,z=topos.z}

if isInArray(del, getTileThingByPos(posa).itemid) then

doRemoveItem(getTileThingByPos(posa).uid, 1)

end

end

end

for x=-1,1 do

for y=-1,1 do

pose = {x=frompos.x+x,y=frompos.y+y,z=frompos.z}

if getTileThingByPos(pose).itemid == 0 then

doCombatAreaHealth(cid, 0, pose, 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, pose)

end

end

end

doCombatAreaHealth(cid, 0, topos, 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, frompos)

if topos.z > frompos.z then

doCreateItem(1023, 1, frompos)

doTransformItem(getTileThingByPos(frompos).uid, 1023)

elseif topos.z < frompos.z then

doCreateItem(1022, 1, frompos)

doTransformItem(getTileThingByPos(frompos).uid, 1022)

end

return true

end

 

 

8° va em movements.xml e deixe isso la dentro:

 

 

<movevent type="StepIn" itemid="460;1022;1023" event="script" value="fly.lua"/>

 

 

9° Fly Up . va em \data\talkactions e crie um arquivo.lua e deixe flyup e deixe isso dentro:

 

 

function onSay(cid)

if getPlayerStorageValue(cid, 17000) <= 0 then

return true

end

if getThingPos(cid).z == 0 then

doPlayerSendCancel(cid, "You can\'t go higher!")

return true

end

local pos = getCreaturePosition(cid)

pos.stackpos = 0

local g = getTileThingByPos(pos)

pos.z = pos.z-1

pos.x = pos.x+1

pos.y = pos.y+1

if getTileThingByPos(pos).itemid == 0 then

doCombatAreaHealth(cid, 0, pos, 0, 0, 0, CONST_ME_NONE)

doCreateItem(1023, 1, pos)

doTeleportThing(cid, pos)

else

doPlayerSendCancel(cid, "You can\'t fly through constructions.")

return true

end

for x=-1,1 do

for y=-1,1 do

posa = {x=getThingPos(cid).x+x,y=getThingPos(cid).y+y,z=getThingPos(cid).z}

if getTileThingByPos(posa).itemid == 0 then

doCombatAreaHealth(cid, 0, posa, 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, posa)

end

end

doCreateItem(1023, 1, pos)

end

return true

end

 

 

10° Fly Down Crie outro arquivo.lua e deixe assim flydown dentro ponha isso:

 

 

local lower = {'460', '1022', '1023'}

 

function onSay(cid)

local houses = {'919', '1015', '1590', '1591', '1592', '1593', '1582', '1584', '1586', '1588', '5248', '5189'}

if getPlayerStorageValue(cid, 17000) <= 0 then

return true

end

if getThingPos(cid).z == 7 then

doPlayerSendCancel(cid, "You can\'t go lower!")

return true

end

if not isInArray(lower, getTileInfo(getThingPos(cid)).itemid) then

doPlayerSendCancel(cid, "You can\'t go lower!")

return true

end

local pos = getCreaturePosition(cid)

pos.stackpos = 0

pos.z = pos.z+1

pos.x = pos.x-1

pos.y = pos.y-1

if isInArray(houses, getTileThingByPos(pos).itemid) then

doPlayerSendCancel(cid, "You can\'t go lower!")

return true

end

if getTileThingByPos(pos).itemid >= 1 then

if getTilePzInfo(pos) == true then

doPlayerSendCancel(cid, "You can\'t go down here.")

return true

end

if not isWalkable(pos, cid, 0, 0) then

doPlayerSendCancel(cid, "You can\'t go there.")

return true

end

ground = getTileInfo(pos).itemid

doCreateItem(460, 1, pos)

doTeleportThing(cid, pos)

doCreateItem(ground, 1, pos)

else

doCombatAreaHealth(cid, 0, pos, 0, 0, 0, CONST_ME_NONE)

doCreateItem(1022, 1, pos)

doTeleportThing(cid, pos)

return true

end

for x=-1,1 do

for y=-1,1 do

posa = {x=getThingPos(cid).x+x,y=getThingPos(cid).y+y,z=getThingPos(cid).z}

if getTileThingByPos(posa).itemid == 0 then

doCombatAreaHealth(cid, 0, posa, 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, posa)

end

end

end

return true

end

 

 

11° Va em talkactions.xml e deixe isso lá dentro:

 

 

<talkaction words="up" case-sensitive="no" event="script" value="flyup.lua"/>

<talkaction words="h1" case-sensitive="no" event="script" value="flyup.lua"/>

<talkaction words="down" case-sensitive="no" event="script" value="flydown.lua"/>

<talkaction words="h2" case-sensitive="no" event="script" value="flydown.lua"/>

 

 

12° "Surf" By Tiagohells "parecido com svke" vá em \data\movements crie um arquivo.lua deixe o nome surf e deixe dentro:

 

 

local poke = {'Poliwag', 'Poliwhirl', 'Seaking', 'Dewgong', 'Blastoise', 'Tentacruel', 'Lapras', 'Gyarados', 'Omastar', 'Kabutops', 'Vaporeon', 'Staryu', 'Starmie', 'Goldeen', 'Seadra', 'Golduck', 'Squirtle', 'Wartortle', 'Tentacool', 'Snorlax', 'Poliwrath'}

 

local flie = {'4820', '4821', '4822', '4823', '4824', '4825'}

 

local surf = {

["Poliwag"] = {lookType=278, speed = 320},

["Poliwhirl"] = {lookType=137, speed = 480},

["Seaking"] = {lookType=269, speed = 520},

["Dewgong"] = {lookType=183, speed = 700},

["Blastoise"] = {lookType=184, speed = 850},

["Tentacruel"] = {lookType=185, speed = 750},

["Lapras"] = {lookType=186, speed = 960},

["Gyarados"] = {lookType=187, speed = 1050},

["Omastar"] = {lookType=188, speed = 680},

["Kabutops"] = {lookType=189, speed = 840},

["Poliwrath"] = {lookType=190, speed = 680},

["Vaporeon"] = {lookType=191, speed = 800},

["Staryu"] = {lookType=266, speed = 385},

["Starmie"] = {lookType=267, speed = 685},

["Goldeen"] = {lookType=268, speed = 355},

["Seadra"] = {lookType=270, speed = 655},

["Golduck"] = {lookType=271, speed = 760},

["Squirtle"] = {lookType=273, speed = 365},

["Wartortle"] = {lookType=275, speed = 605},

["Tentacool"] = {lookType=277, speed = 340},

["Snorlax"] = {lookType=300, speed = 500},

}

 

function onStepIn(cid, item, position, fromPosition)

if not isPlayer(cid) and not isPremium(cid) then -- tire o primeiro not, atras do isPlayer para ativar o premium

doTeleportThing(cid, fromPosition, false)

doPlayerSendCancel(cid, "Only premium members are allowed to surf.")

return true

end

if getCreatureOutfit(cid).lookType == 316 then

doSendMagicEffect(fromPosition, 136)

end

if not isPlayer(cid) then

doTeleportThing(cid, fromPosition, false)

return true

end

 

if getPlayerStorageValue(cid, 63215) ~= 1 and getPlayerStorageValue(cid, 17000) <= 0 then

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "You need a pokemon to surf.")

doTeleportThing(cid, fromPosition, false)

else

if (not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1]))) then

doPlayerSendCancel(cid, "This pokemon cannot surf.")

doTeleportThing(cid, fromPosition, false)

return true

end

end

end

if #getCreatureSummons(cid) >= 1 and isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) and getPlayerStorageValue(cid, 63215) ~= 1 and getPlayerStorageValue(cid, 17000) <= 0 then

doSetCreatureOutfit(cid, surf[getCreatureName(getCreatureSummons(cid)[1])], -1)

doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", lets surf!", 1)

doChangeSpeed(cid, -(getCreatureSpeed(cid)))

doChangeSpeed(cid, surf[getCreatureName(getCreatureSummons(cid)[1])].speed)

setPlayerStorageValue(cid, 61209, getCreatureMaxHealth(getCreatureSummons(cid)[1]))

setPlayerStorageValue(cid, 61210, getCreatureHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

addEvent(setPlayerStorageValue, 100, cid, 63215, 1)

end

if getPlayerStorageValue(cid, 63215) == 1 then

if getCreatureLookDir(cid) == 0 then

doSendMagicEffect(fromPosition, 33)

elseif getCreatureLookDir(cid) == 1 then

doSendMagicEffect(fromPosition, 49)

elseif getCreatureLookDir(cid) == 2 then

doSendMagicEffect(fromPosition, 30)

elseif getCreatureLookDir(cid) == 3 then

doSendMagicEffect(fromPosition, 51)

end

end

if getPlayerStorageValue(cid, 17000) >= 1 then

if not isInArray(flie, getTileInfo(fromPosition).itemid) then

return true

end

if getCreatureLookDir(cid) == 0 then

doSendMagicEffect(fromPosition, 33)

elseif getCreatureLookDir(cid) == 1 then

doSendMagicEffect(fromPosition, 49)

elseif getCreatureLookDir(cid) == 2 then

doSendMagicEffect(fromPosition, 30)

elseif getCreatureLookDir(cid) == 3 then

doSendMagicEffect(fromPosition, 51)

end

end

return true

end

 

function onStepOut(cid, item, position, fromPosition)

if not isInArray({4820, 4821, 4822, 4823, 4824, 4825}, getTileThingByPos(getThingPos(cid)).itemid) then

setPlayerGroupId(cid, 1)

end

return true

end

--------------------------------------------By Tiagohells----------------------------------

 

 

13° Depois va em movements.xml e deixe isso dentro :

 

 

<movevent type="StepIn" itemid="XXXX" event="script" value="surfcancel.lua"/>

 

 

XXXX - PONHA os ids de agua do map de seu ot de preferencia ponha todos exemplo: se for muito deixe assim xxxx;xxxx;xxxx;xxxx.

não ira ocorer nenhum bug desse jeito

 

Axou q é muito? "sim" poiz é mais se colocar tudo isso concerteza seu ot ficará 1000 :smile_positivo: . flw galera até a poxima :weight_lift:

rodrigocmj18

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/01/11Posts: 15

Agora o order de move funcionou, porem fly e ride infelizmente continua sem funcionar, ja refiz varias vezes pensando ser erro meu, mas infelizmente, mas vlw ajudou muito.

eduardo190696

Força de vontade ensina até os mortos
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 22/09/10Posts: 474

legal + podia postar de onde tiro né .... Ot Pokemon dash + valeu pois os que ainda n viram o ot dash para download vão pegar aqui o script

Tiagohells

Dark Tiagohells
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/12/10Posts: 53Gênero: MasculinoChar no Tibia: Uknown

Blz :smile_positivo: agora vo ver esse bug q deu ae no seu ot :sarcastic:

 

 

Flw até a proxima...................... :positive:

 

 

:construction: Trabalhando para deixar menos bug's :construction: :thumbsupsmiley2:

Tiagohells

Dark Tiagohells
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/12/10Posts: 53Gênero: MasculinoChar no Tibia: Uknown

pavi

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/06/11Posts: 4

A mano

Aque no flash n ta funcionando...diz:

unable to "n sei o q" XML. still continue?

Ai fiz uns bagaço loco , e consegui coloca o order , mas n ta dando pra usa e no look aparece assim:

You see an item of type 2550, please report it to gamemaster.

ItemID: [2550].

Position: [X: 1132] [Y: 1092] [Z: 7].

 

...help? '-'

239965

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/01/11Posts: 1

no pokemon maluco nenhum script q eu achei funcionou =/

Tiagohells

Dark Tiagohells
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/12/10Posts: 53Gênero: MasculinoChar no Tibia: Uknown

blz to pensando num jeito de ajudar vc's axo q ja sei o erro :construction:

guilhermeip

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 31/10/11Posts: 24

Fala galera, meu ot eh o Maluco, e nao esta pegando nenhum script :/, se vc poder ajudar, mto grato ^^

 

mas tem uma outra coisa q queria tbm, para me ajudar, é a foto dos pokemon, tipo eu fiz td que um tutorial ae mandou fazer, mas ai até q apareceu a foto dos poke, mas só dos pokes que estava lá na lista como Bulbasaur, Zubat.... mas no meu tem Dialga, Aggron, Rayquaza, e tipo nao aparece a foto deles e nem da pra usar, e tbm quando eu tiro a pokeball a foto do poke fica lá ainda n sai (e quando eu capturo um pokemon tbm nao da certo de usar-lo, talvez seja pq o nome do pokemon fica em letra de forma, tipo You see a gengar pokeball. deveria ficar You se a Gengar Pokeball.

em maiusculo, mas n sei fazer isso) :/

 

entao eh isso ae se vc poder ajudar nao só a mim mas a todos que estao com esse mesmo problema, ficaria muito grato.. :smile_positivo:

 

flws, abração xtibianos ^^

Gabriel Couto

Anyur
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 22/04/11Posts: 2455Gênero: MasculinoChar no Tibia: Thyn Zare

Mais atenção ao postar. Você postou na área errada. Leia os Nomes da seção!

Cuidado com a reincidência nisso, você pode ser alertado.

 

Movido para o local correto.

 

Até!

Gabriel Couto, 23 anos. Acadêmico de Medicina.

Ex-Diretor Geral do XTibia.

 

www.tibiatv.com.br

 

 

jackbolin

Pokemon Flames Online "Em Breve Online Para Todos"
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/10/11Posts: 28Char no Tibia: caiozito

bom o que me interessa ae é a parada do surf pelo order e o resto ta bom tbm ;D

Meus Trabalhos:

 

Auto Loot para Poketibia:

Sistema De Auto Loot Para Poketibia

 

Download Monsters para Po Dash Adv co m loot's e com itens novos V2 100% Feito Por Mim:

Pack Monster's Loot's Com Itens Novos All Pokemons V2

 

 

KKKKKK Bando De Loucos No E.U.A Vejam!!! Mt Lol

 

 

POKEMON FLAMES ONLINE

"Em Breve"