Ir para conteúdo

[Tutorial]Order E Surf Igual Ao Svke


Tiagohells

Posts Recomendados

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:

Editado por Tiagohells
Link para o comentário
Compartilhar em outros sites

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:

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
  • 2 weeks later...

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

Link para o comentário
Compartilhar em outros sites

  • 3 months later...

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 ^^

Link para o comentário
Compartilhar em outros sites

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