Ir para conteúdo

Order Sytem Sem Bugs


OverCross

Posts Recomendados

Post Atualizado

 

Esse Order Tem:

 

 

Ditto System

Control Mind

Cut System, Bug arrumado quando você usava ele pela segunda vez o pokemon não respodia mais.

Rock Smash System, Bug arrumado quando você usava ele pela segunda vez o pokemon não respodia mais.

Dig System, Bug arrumado quando você usava ele pela segunda vez o pokemon não respodia mais.

Light System

Blink System

Fly System

Ride System

Move system - Agora quando você usa o move o pode fica parado no lugar <- peguei do script de um serve o cut, rock smash, e dig também ai eu editei e fiz funcionar no script do dash.

 

Gente esse é o order do pokemon dash eu só arrumei os bugs

 

 

 

Vá na pasta data/lib e crie um aquivo e cole isso dentro

 

 

 

 

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

 

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

 

function walkTo(cid, direction, finalpos, skill)

if not isCreature(cid) then return false end

--if getDistanceBetween(getThingPos(cid), finalpos) <= 1 and getDirectionTo(getThingPos(cid), finalpos) <= 3 and getThingPos(getCreatureMaster(cid)).x == finalpos.x and getThingPos(getCreatureMaster(cid)).y == finalpos.y and (skill == "ride" or skill == "fly") then

--doTeleportThing(cid, finalpos, true)

--return true

--end

if isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) and direction <= 3 then

doPushCreature(cid, direction, 1, 0)

return true

end

 

if direction >= 4 then

if direction == 4 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 2

end

else

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 3

end

end

elseif direction == 5 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 1

end

else

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 2

end

end

elseif direction == 6 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 3

end

else

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 0

end

end

elseif direction == 7 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 0

end

else

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 1

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

 

if direction <= 3 and not isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) then

if direction == 0 then

if getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 6

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 7

end

end

elseif direction == 1 then

if getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 7

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 5

end

end

elseif direction == 2 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 5

end

end

elseif direction == 3 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 6

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

doPushCreature(cid, direction, 1, 0)

end

 

 

function markPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 145, pos.x)

setPlayerStorageValue(sid, 146, pos.y)

setPlayerStorageValue(sid, 147, pos.z)

end

 

function getMarkedPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 145)

local yy = getPlayerStorageValue(sid, 146)

local zz = getPlayerStorageValue(sid, 147)

return {x = xx, y = yy, z = zz}

end

 

function getOwnerPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 148)

local yy = getPlayerStorageValue(sid, 149)

local zz = getPlayerStorageValue(sid, 150)

return {x = xx, y = yy, z = zz}

end

 

function markOwnerPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 148, pos.x)

setPlayerStorageValue(sid, 149, pos.y)

setPlayerStorageValue(sid, 150, pos.z)

end

 

function doFaceCreature(sid, pos)

if getDirectionTo(getThingPos(sid), pos) == 4 then

return doCreatureSetLookDir(sid, math.random(2, 3))

elseif getDirectionTo(getThingPos(sid), pos) == 5 then

return doCreatureSetLookDir(sid, math.random(1, 2))

elseif getDirectionTo(getThingPos(sid), pos) == 6 then

local dirs = {0, 3}

return doCreatureSetLookDir(sid, dirs[math.random(1, 2)])

elseif getDirectionTo(getThingPos(sid), pos) == 7 then

return doCreatureSetLookDir(sid, math.random(0, 1))

end

return doCreatureSetLookDir(sid, getDirectionTo(getThingPos(sid), pos))

end

 

 

function recheck(sid, skill, pos)

if not isCreature(sid) then return end

local cid = getCreatureMaster(sid)

 

if skill == "cut" then

 

local item = getTileItemById(pos, 2767)

doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 141)

doTransformItem(item.uid, 6216)

local function growBush()

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

end

addEvent(growBush, 5000)

 

elseif skill == "rock smash" then

 

local item = getTileItemById(pos, 1285)

doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 118)

doTransformItem(item.uid, 3610)

local function growRock()

doTransformItem(getTileItemById(pos, 3610).uid, 1285)

end

addEvent(growRock, 5000)

 

elseif skill == "dig" then

 

local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})

doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 3)

doTransformItem(item.uid, item.itemid+1)

local function closeHole()

doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid)

end

addEvent(closeHole, 5000)

 

 

elseif skill == "fly" or skill == "ride" then

 

if skill == "fly" then

 

local pokemon = flys[getCreatureName(getCreatureSummons(cid)[1])]

doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.")

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

if skill == "ride" then

 

local pokemon = rides[getCreatureName(getCreatureSummons(cid)[1])]

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

end

 

if not isCreature(sid) then return end

if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

addEvent(recheck, 120, sid)

end

 

function goThere(sid, thepos, skill, target)

if not isCreature(sid) then return true end

if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end

if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

if skill ~= "move" then

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then

if skill == "ride" or skill == "fly" then

 

if getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y then

recheck(sid, skill, thepos)

return true

end

 

if getThingPos(getCreatureMaster(sid)).x == thepos.x and getThingPos(getCreatureMaster(sid)).y == thepos.y then

 

if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

doTeleportThing(sid, thepos, true)

doChangeSpeed(sid, -getCreatureSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

else

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

else

 

markPos(sid, getThingPos(getCreatureMaster(sid)))

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

else

doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))))

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

return true

end

 

addEvent(recheck, 350, sid, skill, thepos)

return true

end

end

if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then

addEvent(recheck, 350, sid, skill, thepos)

return true

end

if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), 1, 0, 0) then

if isInArray({"Misdreavus", "Gengar", "Gastly", "Haunter"}, getCreatureName(sid)) then

doTeleportThing(sid, getMarkedPos(sid), true)

end

addEvent(recheck, 350, sid, skill, thepos)

doChangeSpeed(sid, - getCreatureSpeed(sid))

return true

end

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

 

 

mais não delete seu aquivo move porque vai precisar também.

 

agora vai na pasta data/actions/actions.xml cole isso

 

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

 

depois na pasta data/actions/scrips crie um aquivo chamado order e cole isso dentro

 

 

 

-- feito por brun123, editado por glugluguga

 

 

local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}

 

local direction = {'4', '5', '6', '7'}

-- ridefly

local ridefly = {'Elder Charizard', 'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh', 'Entei', 'Raikou', 'Suicune'}

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

local fly = {'Elder Charizard', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh'}

local flys = {

[294] = {295, 2200, 525}, -- Elder Charizard

[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

[535] = {535, 2300, 350}, -- lugia

[533] = {533, 2300, 350}, -- ho-oh

}

 

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

[536] = {536, 750, 380}, -- entei

[537] = {537, 420, 500}, -- raikou

[538] = {538, 420, 500}, -- suicune

}

local bolas = {'2222', '2223', '2224'}

local ultra = {'2220', '2221', '2227'}

local etudao = 9506

 

local mind = 9507

 

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

 

-- BLINK

local blink = {"Abra", "Kadabra", "Alakazam", "Porygon", "Mew", "Mewtwo", "MrMime"}

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

local systems = {

["rock smash"] = {"Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Poliwrath", "Hitmonlee", "Hitmonchan", "Aerodactyl", "Charizard", "Blastoise", "Typhlosion", "Feraligatr", "Furret", "Ledian", "Ampharos", "Politoed", "Quagsire", "Forretress", "Steelix", "Snubbull", "Granbull", "Sudowoodo", "Gligar", "Scizor", "Heracross", "Sneasel", "Ursaring", "Teddiursa", "Slugma", "Magcargo", "Piloswine", "Swinub", "Corsola", "Phanpy", "Donphan", "Tyrogue", "Hitmontop", "Miltank", "Blissey", "Tyranitar", "Pupitar"},

["cut"] = {"Charmander", "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", "Chikorita", "Bayleef", "Meganium", "Croconow", "Feraligatr", "Furret", "Bellossom", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Scizor", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Gligar", "Skarmory"},

["digholes"] = {"468", "481", "483"},

["dig"] = {"Raticate", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Eevee", "Dunsparce", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Vulpix", "Ninetales", "Nidorina", "Nidoqueen", "Nidorino", "Nidoking", "Persian", "Arcanine"},

["blink"] = {"Abra", "Kadabra", "Alakazam", "Porygon", "Porygon2", "Mew", "Mewtwo", "MrMime"}

}

 

-------- DITTO E CONTROL MIND ---------

 

function onUse(cid, item, frompos, item2, topos, item3)

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

return false

end

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

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "Você precisa de um pokemon para usar order.")

return true

end

if exhaustion.get(cid, mind) then

doPlayerSendCancel(cid, "Seu pokemon está exausto para usar Control MIND, Espere 2 minutos para usar esse move denovo.")

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

doPlayerSendCancel(cid, "Você só pode usar esse move em pokemons.")

return true

end

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

doPlayerSendCancel(cid, "Este pokemon não tem esse move.")

return true

end

 

if getCreatureName(item2.uid) == "Ditto" and isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, reverse transformation!", 1)

xd = doSummonCreature(getCreatureName(item2.uid), topos)

doCreatureAddHealth(xd, -getCreatureHealth(xd)+getCreatureHealth(getCreatureSummons(cid)[1]))

doTeleportThing(xd, getCreaturePosition(getCreatureSummons(cid)[1]), false)

doRemoveCreature(item2.uid)

doConvinceCreature(cid, xd)

return TRUE

end

 

if isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, Transformação ".. getCreatureName(item2.uid) .."!", 1)

doCreatureSay(cid, "Transform!", TALKTYPE_MONSTER)

doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 184)

doSetCreatureOutfit(getCreatureSummons(cid)[1], getCreatureOutfit(item2.uid), 18000)

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

 

-----------------------------

 

-------- RIDE ---------

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

 

-----------------------------

 

-------- FLY ---------

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, "Você não pode parar de voar na água!")

return true

end

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

setPlayerStorageValue(cid, 17000, 0)

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

if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then

doChangeSpeed(cid, 200*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)

doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))

return true

end

 

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

if getPlayerStorageValue(cid, 17000) <= 0 then

local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]

local function fly(params)

if isCreature(params.cid) then

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

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

doPlayerSendTextMessage(cid,27, "Tipo \"up\" ou \"h1\" para voar para cima e \"down\" ou \"h2\" para voar pra baixo." )

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])..", Vamo voar!", 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 isInArray(systems["rock smash"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", rock smash!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "rock smash", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

-------- CUT ----------------

if item2.itemid == 2767 and isInArray(systems["cut"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "cut", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

-------- DIG ----------------

if isInArray(systems["digholes"], item2.itemid) and isInArray(systems["dig"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "dig", isCreature(getCreatureTarget(cid)))

 

return true

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

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

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)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

exhaustion.set(cid, exhaustblink, cdblink)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

return true

end

return true

end

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, "Esse pokemon não tem LIGHT.")

return true

end

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

if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then

return doPlayerSendCancel(cid,"Por Favor usar LIGHT em seu pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

doPlayerSendCancel(cid,"Por Favor espere alguns segundos para usar LIGHT denovo!")

return true

end

exhaustion.set(cid, exhautStorage, cd)

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use light!", 1)

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

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

doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)

return true

end

end

-----------------------------

 

-------- MOVE ---------

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

 

 

Order do lib - eu peguei de um server não sei quem crio

---em breve postarei o order com surf ai ficando 100%

 

-----------------------------

 

Gente to criando um system de m1 a m12 com 2 script só eu to precisando de ajuda de vocês para adicionar os ataques e criar o comando !cd quem quizer me ajudar add eu no msn

 

msn: Jeferson_joga20@hotmail.com

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

Mais tambem da pra usar no tibia alguns desses system tipo o cut e o rock smash ou o ordem system para o pet system do tibia.

 

Gente esse script foi testado no pokemon dash tfs 8.54. funcionado 100%.

Link para o comentário
Compartilhar em outros sites

tpw o player está com Ditto, ele usa o order no Ditto selvagem ou de outro player e da um bug lá pode ver, nao sei como explicar

 

Só uma pergunta esse Bug é que o Ditto nao usa os ataques ou ele não se transform?

Link para o comentário
Compartilhar em outros sites

Ta ae ja arrumei fiz oq pudi eu testei e ta 100 % o Ditto

 

 

 

 

-- feito por brun123, editado por glugluguga

 

 

local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}

 

local direction = {'4', '5', '6', '7'}

-- ridefly

local ridefly = {'Elder Charizard', 'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh', 'Entei', 'Raikou', 'Suicune'}

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

local fly = {'Elder Charizard', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh'}

local flys = {

[294] = {295, 2200, 525}, -- Elder Charizard

[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

[535] = {535, 2300, 350}, -- lugia

[533] = {533, 2300, 350}, -- ho-oh

}

 

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

[536] = {536, 750, 380}, -- entei

[537] = {537, 420, 500}, -- raikou

[538] = {538, 420, 500}, -- suicune

}

local bolas = {'2222', '2223', '2224'}

local ultra = {'2220', '2221', '2227'}

local etudao = 9506

 

local mind = 9507

 

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

 

-- BLINK

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

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

local systems = {

["rock smash"] = {"Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Poliwrath", "Hitmonlee", "Hitmonchan", "Aerodactyl", "Charizard", "Blastoise", "Typhlosion", "Feraligatr", "Furret", "Ledian", "Ampharos", "Politoed", "Quagsire", "Forretress", "Steelix", "Snubbull", "Granbull", "Sudowoodo", "Gligar", "Scizor", "Heracross", "Sneasel", "Ursaring", "Teddiursa", "Slugma", "Magcargo", "Piloswine", "Swinub", "Corsola", "Phanpy", "Donphan", "Tyrogue", "Hitmontop", "Miltank", "Blissey", "Tyranitar", "Pupitar"},

["cut"] = {"Charmander", "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", "Chikorita", "Bayleef", "Meganium", "Croconow", "Feraligatr", "Furret", "Bellossom", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Scizor", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Gligar", "Skarmory"},

["digholes"] = {"468", "481", "483"},

["dig"] = {"Raticate", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Eevee", "Dunsparce", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Vulpix", "Ninetales", "Nidorina", "Nidoqueen", "Nidorino", "Nidoking", "Persian", "Arcanine"},

["blink"] = {"Abra", "Kadabra", "Alakazam", "Porygon", "Porygon2", "Mew", "Mewtwo", "MrMime"}

}

 

-------- DITTO E CONTROL MIND ---------

 

function onUse(cid, item, frompos, item2, topos, item3)

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

return false

end

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

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "Você precisa de um pokemon para usar order.")

return true

end

if exhaustion.get(cid, mind) then

doPlayerSendCancel(cid, "Seu pokemon está exausto para usar Control MIND, Espere 2 minutos para usar esse move denovo.")

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

doPlayerSendCancel(cid, "Você só pode usar esse move em pokemons.")

return true

end

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

doPlayerSendCancel(cid, "Este pokemon não tem esse move.")

return true

end

 

if getCreatureName(item2.uid) == "Ditto" and isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, reverse transformation!", 1)

xd = doSummonCreature(getCreatureName(item2.uid), topos)

doCreatureAddHealth(xd, -getCreatureHealth(xd)+getCreatureHealth(getCreatureSummons(cid)[1]))

doTeleportThing(xd, getCreaturePosition(getCreatureSummons(cid)[1]), false)

doRemoveCreature(item2.uid)

doConvinceCreature(cid, xd)

return TRUE

end

 

if isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, Transformação ".. getCreatureName(item2.uid) .."!", 1)

doCreatureSay(cid, "Transform!", TALKTYPE_MONSTER)

doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 184)

doSetCreatureOutfit(getCreatureSummons(cid)[1], getCreatureOutfit(item2.uid), 18000)

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

 

-----------------------------

 

-------- RIDE ---------

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

 

-----------------------------

 

-------- FLY ---------

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, "Você não pode parar de voar na água!")

return true

end

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

setPlayerStorageValue(cid, 17000, 0)

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

if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then

doChangeSpeed(cid, 200*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)

doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))

return true

end

 

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

if getPlayerStorageValue(cid, 17000) <= 0 then

local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]

local function fly(params)

if isCreature(params.cid) then

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

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

doPlayerSendTextMessage(cid,27, "Tipo \"up\" ou \"h1\" para voar para cima e \"down\" ou \"h2\" para voar pra baixo." )

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])..", Vamo voar!", 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 isInArray(systems["rock smash"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", rock smash!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "rock smash", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

-------- CUT ----------------

if item2.itemid == 2767 and isInArray(systems["cut"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "cut", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

-------- DIG ----------------

if isInArray(systems["digholes"], item2.itemid) and isInArray(systems["dig"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "dig", isCreature(getCreatureTarget(cid)))

 

return true

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

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

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)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

exhaustion.set(cid, exhaustblink, cdblink)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

return true

end

return true

end

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, "Esse pokemon não tem LIGHT.")

return true

end

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

if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then

return doPlayerSendCancel(cid,"Por Favor usar LIGHT em seu pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

doPlayerSendCancel(cid,"Por Favor espere alguns segundos para usar LIGHT denovo!")

return true

end

exhaustion.set(cid, exhautStorage, cd)

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use light!", 1)

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

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

doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)

return true

end

end

-----------------------------

 

-------- MOVE ---------

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

 

Depois postarei com o surf

Link para o comentário
Compartilhar em outros sites

Ae cara ajuda aqui , da erro

 

[23/08/2011 08:30:33] [Error - LuaScriptInterface::loadFile] data/actions/scripts/order.lua:669: 'end' expected (to close 'if' at line 91) near '<eof>'

[23/08/2011 08:30:33] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/order.lua)

[23/08/2011 08:30:33] data/actions/scripts/order.lua:669: 'end' expected (to close 'if' at line 91) near '<eof>'

 

e quando nao da erro , nao acontece nada fica o mesmo order de antes ,que que eu faço ?

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

Ola Deivx.

 

Procure a linha 91 e em baixo dela coloque end se não der certo vai na linha 91 e retire o end e se não der certo denovo mude seu order pra esse eu testei em um monte de serve e agora ta 100%.

 

vai na pasta data/lib crie um aquivo e add isso aqui

 

 

 

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

 

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

 

function walkTo(cid, direction, finalpos, skill)

if not isCreature(cid) then return false end

--if getDistanceBetween(getThingPos(cid), finalpos) <= 1 and getDirectionTo(getThingPos(cid), finalpos) <= 3 and getThingPos(getCreatureMaster(cid)).x == finalpos.x and getThingPos(getCreatureMaster(cid)).y == finalpos.y and (skill == "ride" or skill == "fly") then

--doTeleportThing(cid, finalpos, true)

--return true

--end

if isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) and direction <= 3 then

doPushCreature(cid, direction, 1, 0)

return true

end

 

if direction >= 4 then

if direction == 4 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 2

end

else

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 3

end

end

elseif direction == 5 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 1

end

else

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 2

end

end

elseif direction == 6 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 3

end

else

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 0

end

end

elseif direction == 7 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 0

end

else

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 1

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

 

if direction <= 3 and not isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) then

if direction == 0 then

if getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 6

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 7

end

end

elseif direction == 1 then

if getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 7

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 5

end

end

elseif direction == 2 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 5

end

end

elseif direction == 3 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 6

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

doPushCreature(cid, direction, 1, 0)

end

 

 

function markPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 145, pos.x)

setPlayerStorageValue(sid, 146, pos.y)

setPlayerStorageValue(sid, 147, pos.z)

end

 

function getMarkedPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 145)

local yy = getPlayerStorageValue(sid, 146)

local zz = getPlayerStorageValue(sid, 147)

return {x = xx, y = yy, z = zz}

end

 

function getOwnerPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 148)

local yy = getPlayerStorageValue(sid, 149)

local zz = getPlayerStorageValue(sid, 150)

return {x = xx, y = yy, z = zz}

end

 

function markOwnerPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 148, pos.x)

setPlayerStorageValue(sid, 149, pos.y)

setPlayerStorageValue(sid, 150, pos.z)

end

 

function doFaceCreature(sid, pos)

if getDirectionTo(getThingPos(sid), pos) == 4 then

return doCreatureSetLookDir(sid, math.random(2, 3))

elseif getDirectionTo(getThingPos(sid), pos) == 5 then

return doCreatureSetLookDir(sid, math.random(1, 2))

elseif getDirectionTo(getThingPos(sid), pos) == 6 then

local dirs = {0, 3}

return doCreatureSetLookDir(sid, dirs[math.random(1, 2)])

elseif getDirectionTo(getThingPos(sid), pos) == 7 then

return doCreatureSetLookDir(sid, math.random(0, 1))

end

return doCreatureSetLookDir(sid, getDirectionTo(getThingPos(sid), pos))

end

 

 

function recheck(sid, skill, pos)

if not isCreature(sid) then return end

local cid = getCreatureMaster(sid)

 

if skill == "cut" then

 

local item = getTileItemById(pos, 2767)

doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 141)

doTransformItem(item.uid, 6216)

local function growBush()

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

end

addEvent(growBush, 5000)

 

elseif skill == "rock smash" then

 

local item = getTileItemById(pos, 1285)

doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 118)

doTransformItem(item.uid, 3610)

local function growRock()

doTransformItem(getTileItemById(pos, 3610).uid, 1285)

end

addEvent(growRock, 5000)

 

elseif skill == "dig" then

 

local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})

doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 3)

doTransformItem(item.uid, item.itemid+1)

local function closeHole()

doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid)

end

addEvent(closeHole, 5000)

 

 

elseif skill == "fly" or skill == "ride" then

 

if skill == "fly" then

 

local pokemon = flys[getCreatureName(getCreatureSummons(cid)[1])]

doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.")

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

if skill == "ride" then

 

local pokemon = rides[getCreatureName(getCreatureSummons(cid)[1])]

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

end

 

if not isCreature(sid) then return end

if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

addEvent(recheck, 120, sid)

end

 

function goThere(sid, thepos, skill, target)

if not isCreature(sid) then return true end

if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end

if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

if skill ~= "move" then

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then

if skill == "ride" or skill == "fly" then

 

if getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y then

recheck(sid, skill, thepos)

return true

end

 

if getThingPos(getCreatureMaster(sid)).x == thepos.x and getThingPos(getCreatureMaster(sid)).y == thepos.y then

 

if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

doTeleportThing(sid, thepos, true)

doChangeSpeed(sid, -getCreatureSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

else

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

else

 

markPos(sid, getThingPos(getCreatureMaster(sid)))

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

else

doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))))

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

return true

end

 

addEvent(recheck, 350, sid, skill, thepos)

return true

end

end

if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then

addEvent(recheck, 350, sid, skill, thepos)

return true

end

if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), 1, 0, 0) then

if isInArray({"Misdreavus", "Gengar", "Gastly", "Haunter"}, getCreatureName(sid)) then

doTeleportThing(sid, getMarkedPos(sid), true)

end

addEvent(recheck, 350, sid, skill, thepos)

doChangeSpeed(sid, - getCreatureSpeed(sid))

return true

end

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

 

 

dps em data/actions/script mude seu order por este

 

 

 

-- feito por brun123, editado por glugluguga

 

 

local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}

 

local direction = {'4', '5', '6', '7'}

-- ridefly

local ridefly = {'Elder Charizard', 'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh', 'Entei', 'Raikou', 'Suicune'}

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

local fly = {'Elder Charizard', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh'}

local flys = {

[294] = {295, 2200, 525}, -- Elder Charizard

[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

[535] = {535, 2300, 350}, -- lugia

[533] = {533, 2300, 350}, -- ho-oh

}

 

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

[536] = {536, 750, 380}, -- entei

[537] = {537, 420, 500}, -- raikou

[538] = {538, 420, 500}, -- suicune

}

local bolas = {'2222', '2223', '2224'}

local ultra = {'2220', '2221', '2227'}

local etudao = 9506

 

local mind = 9507

 

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

 

-- BLINK

local blink = {"Abra", "Kadabra", "Alakazam", "Porygon", "Mew", "Mewtwo", "MrMime"}

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

local systems = {

["rock smash"] = {"Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Poliwrath", "Hitmonlee", "Hitmonchan", "Aerodactyl", "Charizard", "Blastoise", "Typhlosion", "Feraligatr", "Furret", "Ledian", "Ampharos", "Politoed", "Quagsire", "Forretress", "Steelix", "Snubbull", "Granbull", "Sudowoodo", "Gligar", "Scizor", "Heracross", "Sneasel", "Ursaring", "Teddiursa", "Slugma", "Magcargo", "Piloswine", "Swinub", "Corsola", "Phanpy", "Donphan", "Tyrogue", "Hitmontop", "Miltank", "Blissey", "Tyranitar", "Pupitar"},

["cut"] = {"Charmander", "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", "Chikorita", "Bayleef", "Meganium", "Croconow", "Feraligatr", "Furret", "Bellossom", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Scizor", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Gligar", "Skarmory"},

["digholes"] = {"468", "481", "483"},

["dig"] = {"Raticate", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Eevee", "Dunsparce", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Vulpix", "Ninetales", "Nidorina", "Nidoqueen", "Nidorino", "Nidoking", "Persian", "Arcanine"},

["blink"] = {"Abra", "Kadabra", "Alakazam", "Porygon", "Porygon2", "Mew", "Mewtwo", "MrMime"}

}

 

-------- DITTO E CONTROL MIND ---------

 

function onUse(cid, item, frompos, item2, topos, item3)

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

return false

end

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

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "Você precisa de um pokemon para usar order.")

return true

end

if exhaustion.get(cid, mind) then

doPlayerSendCancel(cid, "Seu pokemon está exausto para usar Control MIND, Espere 2 minutos para usar esse move denovo.")

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

doPlayerSendCancel(cid, "Você só pode usar esse move em pokemons.")

return true

end

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

doPlayerSendCancel(cid, "Este pokemon não tem esse move.")

return true

end

 

if getCreatureName(item2.uid) == "Ditto" and isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, reverse transformation!", 1)

xd = doSummonCreature(getCreatureName(item2.uid), topos)

doCreatureAddHealth(xd, -getCreatureHealth(xd)+getCreatureHealth(getCreatureSummons(cid)[1]))

doTeleportThing(xd, getCreaturePosition(getCreatureSummons(cid)[1]), false)

doRemoveCreature(item2.uid)

doConvinceCreature(cid, xd)

return TRUE

end

 

if isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, Transformação ".. getCreatureName(item2.uid) .."!", 1)

doCreatureSay(cid, "Transform!", TALKTYPE_MONSTER)

doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 184)

doSetCreatureOutfit(getCreatureSummons(cid)[1], getCreatureOutfit(item2.uid), 18000)

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

 

-----------------------------

 

-------- RIDE ---------

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

 

-----------------------------

 

-------- FLY ---------

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, "Você não pode parar de voar na água!")

return true

end

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

setPlayerStorageValue(cid, 17000, 0)

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

if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then

doChangeSpeed(cid, 200*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)

doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))

return true

end

 

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

if getPlayerStorageValue(cid, 17000) <= 0 then

local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]

local function fly(params)

if isCreature(params.cid) then

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

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

doPlayerSendTextMessage(cid,27, "Tipo \"up\" ou \"h1\" para voar para cima e \"down\" ou \"h2\" para voar pra baixo." )

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])..", Vamo voar!", 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 isInArray(systems["rock smash"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", rock smash!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "rock smash", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

-------- CUT ----------------

if item2.itemid == 2767 and isInArray(systems["cut"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "cut", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

-------- DIG ----------------

if isInArray(systems["digholes"], item2.itemid) and isInArray(systems["dig"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "dig", isCreature(getCreatureTarget(cid)))

 

return true

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

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

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)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

exhaustion.set(cid, exhaustblink, cdblink)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

return true

end

return true

end

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, "Esse pokemon não tem LIGHT.")

return true

end

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

if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then

return doPlayerSendCancel(cid,"Por Favor usar LIGHT em seu pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

doPlayerSendCancel(cid,"Por Favor espere alguns segundos para usar LIGHT denovo!")

return true

end

exhaustion.set(cid, exhautStorage, cd)

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use light!", 1)

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

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

doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)

return true

end

end

-----------------------------

 

-------- MOVE ---------

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

 

----------------------------------------

 

Gente to arrumando o system de m1 a m12 melhorado e queria a ajuda de você para me ajudar.

o m1 a m12 é em 2 scrips só funcionando 100 % a ajuda que eu quero é só adicionar os pokes da priguiça. e um script pra ajudar a fazer o comando !cd ta facil de fazer agora só que to com preguiça kkkk.

Link para o comentário
Compartilhar em outros sites

Ola Deivx.

 

Procure a linha 91 e em baixo dela coloque end se não der certo vai na linha 91 e retire o end e se não der certo denovo mude seu order pra esse eu testei em um monte de serve e agora ta 100%.

 

vai na pasta data/lib crie um aquivo e add isso aqui

 

 

 

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

 

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

 

function walkTo(cid, direction, finalpos, skill)

if not isCreature(cid) then return false end

--if getDistanceBetween(getThingPos(cid), finalpos) <= 1 and getDirectionTo(getThingPos(cid), finalpos) <= 3 and getThingPos(getCreatureMaster(cid)).x == finalpos.x and getThingPos(getCreatureMaster(cid)).y == finalpos.y and (skill == "ride" or skill == "fly") then

--doTeleportThing(cid, finalpos, true)

--return true

--end

if isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) and direction <= 3 then

doPushCreature(cid, direction, 1, 0)

return true

end

 

if direction >= 4 then

if direction == 4 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 2

end

else

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 3

end

end

elseif direction == 5 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 1

end

else

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 2

end

end

elseif direction == 6 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 3

end

else

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 0

end

end

elseif direction == 7 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 0

end

else

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 1

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

 

if direction <= 3 and not isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) then

if direction == 0 then

if getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 6

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 7

end

end

elseif direction == 1 then

if getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 7

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 5

end

end

elseif direction == 2 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 5

end

end

elseif direction == 3 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 6

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

doPushCreature(cid, direction, 1, 0)

end

 

 

function markPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 145, pos.x)

setPlayerStorageValue(sid, 146, pos.y)

setPlayerStorageValue(sid, 147, pos.z)

end

 

function getMarkedPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 145)

local yy = getPlayerStorageValue(sid, 146)

local zz = getPlayerStorageValue(sid, 147)

return {x = xx, y = yy, z = zz}

end

 

function getOwnerPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 148)

local yy = getPlayerStorageValue(sid, 149)

local zz = getPlayerStorageValue(sid, 150)

return {x = xx, y = yy, z = zz}

end

 

function markOwnerPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 148, pos.x)

setPlayerStorageValue(sid, 149, pos.y)

setPlayerStorageValue(sid, 150, pos.z)

end

 

function doFaceCreature(sid, pos)

if getDirectionTo(getThingPos(sid), pos) == 4 then

return doCreatureSetLookDir(sid, math.random(2, 3))

elseif getDirectionTo(getThingPos(sid), pos) == 5 then

return doCreatureSetLookDir(sid, math.random(1, 2))

elseif getDirectionTo(getThingPos(sid), pos) == 6 then

local dirs = {0, 3}

return doCreatureSetLookDir(sid, dirs[math.random(1, 2)])

elseif getDirectionTo(getThingPos(sid), pos) == 7 then

return doCreatureSetLookDir(sid, math.random(0, 1))

end

return doCreatureSetLookDir(sid, getDirectionTo(getThingPos(sid), pos))

end

 

 

function recheck(sid, skill, pos)

if not isCreature(sid) then return end

local cid = getCreatureMaster(sid)

 

if skill == "cut" then

 

local item = getTileItemById(pos, 2767)

doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 141)

doTransformItem(item.uid, 6216)

local function growBush()

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

end

addEvent(growBush, 5000)

 

elseif skill == "rock smash" then

 

local item = getTileItemById(pos, 1285)

doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 118)

doTransformItem(item.uid, 3610)

local function growRock()

doTransformItem(getTileItemById(pos, 3610).uid, 1285)

end

addEvent(growRock, 5000)

 

elseif skill == "dig" then

 

local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})

doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 3)

doTransformItem(item.uid, item.itemid+1)

local function closeHole()

doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid)

end

addEvent(closeHole, 5000)

 

 

elseif skill == "fly" or skill == "ride" then

 

if skill == "fly" then

 

local pokemon = flys[getCreatureName(getCreatureSummons(cid)[1])]

doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.")

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

if skill == "ride" then

 

local pokemon = rides[getCreatureName(getCreatureSummons(cid)[1])]

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

end

 

if not isCreature(sid) then return end

if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

addEvent(recheck, 120, sid)

end

 

function goThere(sid, thepos, skill, target)

if not isCreature(sid) then return true end

if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end

if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

if skill ~= "move" then

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then

if skill == "ride" or skill == "fly" then

 

if getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y then

recheck(sid, skill, thepos)

return true

end

 

if getThingPos(getCreatureMaster(sid)).x == thepos.x and getThingPos(getCreatureMaster(sid)).y == thepos.y then

 

if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

doTeleportThing(sid, thepos, true)

doChangeSpeed(sid, -getCreatureSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

else

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

else

 

markPos(sid, getThingPos(getCreatureMaster(sid)))

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

else

doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))))

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

return true

end

 

addEvent(recheck, 350, sid, skill, thepos)

return true

end

end

if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then

addEvent(recheck, 350, sid, skill, thepos)

return true

end

if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), 1, 0, 0) then

if isInArray({"Misdreavus", "Gengar", "Gastly", "Haunter"}, getCreatureName(sid)) then

doTeleportThing(sid, getMarkedPos(sid), true)

end

addEvent(recheck, 350, sid, skill, thepos)

doChangeSpeed(sid, - getCreatureSpeed(sid))

return true

end

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

 

 

dps em data/actions/script mude seu order por este

 

 

 

-- feito por brun123, editado por glugluguga

 

 

local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}

 

local direction = {'4', '5', '6', '7'}

-- ridefly

local ridefly = {'Elder Charizard', 'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh', 'Entei', 'Raikou', 'Suicune'}

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

local fly = {'Elder Charizard', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh'}

local flys = {

[294] = {295, 2200, 525}, -- Elder Charizard

[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

[535] = {535, 2300, 350}, -- lugia

[533] = {533, 2300, 350}, -- ho-oh

}

 

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

[536] = {536, 750, 380}, -- entei

[537] = {537, 420, 500}, -- raikou

[538] = {538, 420, 500}, -- suicune

}

local bolas = {'2222', '2223', '2224'}

local ultra = {'2220', '2221', '2227'}

local etudao = 9506

 

local mind = 9507

 

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

 

-- BLINK

local blink = {"Abra", "Kadabra", "Alakazam", "Porygon", "Mew", "Mewtwo", "MrMime"}

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

local systems = {

["rock smash"] = {"Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Poliwrath", "Hitmonlee", "Hitmonchan", "Aerodactyl", "Charizard", "Blastoise", "Typhlosion", "Feraligatr", "Furret", "Ledian", "Ampharos", "Politoed", "Quagsire", "Forretress", "Steelix", "Snubbull", "Granbull", "Sudowoodo", "Gligar", "Scizor", "Heracross", "Sneasel", "Ursaring", "Teddiursa", "Slugma", "Magcargo", "Piloswine", "Swinub", "Corsola", "Phanpy", "Donphan", "Tyrogue", "Hitmontop", "Miltank", "Blissey", "Tyranitar", "Pupitar"},

["cut"] = {"Charmander", "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", "Chikorita", "Bayleef", "Meganium", "Croconow", "Feraligatr", "Furret", "Bellossom", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Scizor", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Gligar", "Skarmory"},

["digholes"] = {"468", "481", "483"},

["dig"] = {"Raticate", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Eevee", "Dunsparce", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Vulpix", "Ninetales", "Nidorina", "Nidoqueen", "Nidorino", "Nidoking", "Persian", "Arcanine"},

["blink"] = {"Abra", "Kadabra", "Alakazam", "Porygon", "Porygon2", "Mew", "Mewtwo", "MrMime"}

}

 

-------- DITTO E CONTROL MIND ---------

 

function onUse(cid, item, frompos, item2, topos, item3)

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

return false

end

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

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "Você precisa de um pokemon para usar order.")

return true

end

if exhaustion.get(cid, mind) then

doPlayerSendCancel(cid, "Seu pokemon está exausto para usar Control MIND, Espere 2 minutos para usar esse move denovo.")

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

doPlayerSendCancel(cid, "Você só pode usar esse move em pokemons.")

return true

end

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

doPlayerSendCancel(cid, "Este pokemon não tem esse move.")

return true

end

 

if getCreatureName(item2.uid) == "Ditto" and isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, reverse transformation!", 1)

xd = doSummonCreature(getCreatureName(item2.uid), topos)

doCreatureAddHealth(xd, -getCreatureHealth(xd)+getCreatureHealth(getCreatureSummons(cid)[1]))

doTeleportThing(xd, getCreaturePosition(getCreatureSummons(cid)[1]), false)

doRemoveCreature(item2.uid)

doConvinceCreature(cid, xd)

return TRUE

end

 

if isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, Transformação ".. getCreatureName(item2.uid) .."!", 1)

doCreatureSay(cid, "Transform!", TALKTYPE_MONSTER)

doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 184)

doSetCreatureOutfit(getCreatureSummons(cid)[1], getCreatureOutfit(item2.uid), 18000)

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

 

-----------------------------

 

-------- RIDE ---------

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

 

-----------------------------

 

-------- FLY ---------

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, "Você não pode parar de voar na água!")

return true

end

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

setPlayerStorageValue(cid, 17000, 0)

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

if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then

doChangeSpeed(cid, 200*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)

doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))

return true

end

 

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

if getPlayerStorageValue(cid, 17000) <= 0 then

local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]

local function fly(params)

if isCreature(params.cid) then

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

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

doPlayerSendTextMessage(cid,27, "Tipo \"up\" ou \"h1\" para voar para cima e \"down\" ou \"h2\" para voar pra baixo." )

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])..", Vamo voar!", 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 isInArray(systems["rock smash"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", rock smash!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "rock smash", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

-------- CUT ----------------

if item2.itemid == 2767 and isInArray(systems["cut"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "cut", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

-------- DIG ----------------

if isInArray(systems["digholes"], item2.itemid) and isInArray(systems["dig"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "dig", isCreature(getCreatureTarget(cid)))

 

return true

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

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

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)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

exhaustion.set(cid, exhaustblink, cdblink)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

return true

end

return true

end

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, "Esse pokemon não tem LIGHT.")

return true

end

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

if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then

return doPlayerSendCancel(cid,"Por Favor usar LIGHT em seu pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

doPlayerSendCancel(cid,"Por Favor espere alguns segundos para usar LIGHT denovo!")

return true

end

exhaustion.set(cid, exhautStorage, cd)

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use light!", 1)

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

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

doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)

return true

end

end

-----------------------------

 

-------- MOVE ---------

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

 

----------------------------------------

 

Gente to arrumando o system de m1 a m12 melhorado e queria a ajuda de você para me ajudar.

o m1 a m12 é em 2 scrips só funcionando 100 % a ajuda que eu quero é só adicionar os pokes da priguiça. e um script pra ajudar a fazer o comando !cd ta facil de fazer agora só que to com preguiça kkkk.

 

 

uhm vlw cara vou testar aqui , e me responde uma coisa , como eu adiciono outros pokes no ride e fly ,tipo elite e outros que eu fiz ? vlw

 

 

cara eu testei aqui , e nao da erro , so que n acontece nada contina o order antigo, nao tem que remorer nada ?

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

Ola Deivx.

 

Procure a linha 91 e em baixo dela coloque end se não der certo vai na linha 91 e retire o end e se não der certo denovo mude seu order pra esse eu testei em um monte de serve e agora ta 100%.

 

vai na pasta data/lib crie um aquivo e add isso aqui

 

 

 

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

 

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

 

function walkTo(cid, direction, finalpos, skill)

if not isCreature(cid) then return false end

--if getDistanceBetween(getThingPos(cid), finalpos) <= 1 and getDirectionTo(getThingPos(cid), finalpos) <= 3 and getThingPos(getCreatureMaster(cid)).x == finalpos.x and getThingPos(getCreatureMaster(cid)).y == finalpos.y and (skill == "ride" or skill == "fly") then

--doTeleportThing(cid, finalpos, true)

--return true

--end

if isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) and direction <= 3 then

doPushCreature(cid, direction, 1, 0)

return true

end

 

if direction >= 4 then

if direction == 4 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 2

end

else

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 3

end

end

elseif direction == 5 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 1

end

else

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 2

end

end

elseif direction == 6 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 3

end

else

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 0

end

end

elseif direction == 7 then

if math.random(1,2) == 1 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 0

end

else

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 1

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

 

if direction <= 3 and not isWalkable(getPosByDir(getThingPos(cid), direction), 0, 0, 0) then

if direction == 0 then

if getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 6

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 7

end

end

elseif direction == 1 then

if getDirectionTo(getThingPos(cid), finalpos) == 7 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 7

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 5

end

end

elseif direction == 2 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 3), 0, 0, 0) then

newdir = 3

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 5 then

if isWalkable(getPosByDir(getThingPos(cid), 1), 0, 0, 0) then

newdir = 1

else

newdir = 5

end

end

elseif direction == 3 then

if getDirectionTo(getThingPos(cid), finalpos) == 4 then

if isWalkable(getPosByDir(getThingPos(cid), 2), 0, 0, 0) then

newdir = 2

else

newdir = 4

end

elseif getDirectionTo(getThingPos(cid), finalpos) == 6 then

if isWalkable(getPosByDir(getThingPos(cid), 0), 0, 0, 0) then

newdir = 0

else

newdir = 6

end

end

end

doPushCreature(cid, newdir, 1, 0)

return true

end

doPushCreature(cid, direction, 1, 0)

end

 

 

function markPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 145, pos.x)

setPlayerStorageValue(sid, 146, pos.y)

setPlayerStorageValue(sid, 147, pos.z)

end

 

function getMarkedPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 145)

local yy = getPlayerStorageValue(sid, 146)

local zz = getPlayerStorageValue(sid, 147)

return {x = xx, y = yy, z = zz}

end

 

function getOwnerPos(sid)

if not isCreature(sid) then return end

local xx = getPlayerStorageValue(sid, 148)

local yy = getPlayerStorageValue(sid, 149)

local zz = getPlayerStorageValue(sid, 150)

return {x = xx, y = yy, z = zz}

end

 

function markOwnerPos(sid, pos)

if not isCreature(sid) then return end

setPlayerStorageValue(sid, 148, pos.x)

setPlayerStorageValue(sid, 149, pos.y)

setPlayerStorageValue(sid, 150, pos.z)

end

 

function doFaceCreature(sid, pos)

if getDirectionTo(getThingPos(sid), pos) == 4 then

return doCreatureSetLookDir(sid, math.random(2, 3))

elseif getDirectionTo(getThingPos(sid), pos) == 5 then

return doCreatureSetLookDir(sid, math.random(1, 2))

elseif getDirectionTo(getThingPos(sid), pos) == 6 then

local dirs = {0, 3}

return doCreatureSetLookDir(sid, dirs[math.random(1, 2)])

elseif getDirectionTo(getThingPos(sid), pos) == 7 then

return doCreatureSetLookDir(sid, math.random(0, 1))

end

return doCreatureSetLookDir(sid, getDirectionTo(getThingPos(sid), pos))

end

 

 

function recheck(sid, skill, pos)

if not isCreature(sid) then return end

local cid = getCreatureMaster(sid)

 

if skill == "cut" then

 

local item = getTileItemById(pos, 2767)

doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 141)

doTransformItem(item.uid, 6216)

local function growBush()

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

end

addEvent(growBush, 5000)

 

elseif skill == "rock smash" then

 

local item = getTileItemById(pos, 1285)

doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 118)

doTransformItem(item.uid, 3610)

local function growRock()

doTransformItem(getTileItemById(pos, 3610).uid, 1285)

end

addEvent(growRock, 5000)

 

elseif skill == "dig" then

 

local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})

doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER)

markPos(sid, {x=1,y=1,z=7})

doFaceCreature(sid, pos)

doSendMagicEffect(getThingPos(item.uid), 3)

doTransformItem(item.uid, item.itemid+1)

local function closeHole()

doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid)

end

addEvent(closeHole, 5000)

 

 

elseif skill == "fly" or skill == "ride" then

 

if skill == "fly" then

 

local pokemon = flys[getCreatureName(getCreatureSummons(cid)[1])]

doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.")

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

if skill == "ride" then

 

local pokemon = rides[getCreatureName(getCreatureSummons(cid)[1])]

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, pokemon[2])

doSetCreatureOutfit(cid, {lookType = pokemon[1]}, -1)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))

doRemoveCreature(getCreatureSummons(cid)[1])

 

return true

end

 

end

 

if not isCreature(sid) then return end

if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

addEvent(recheck, 120, sid)

end

 

function goThere(sid, thepos, skill, target)

if not isCreature(sid) then return true end

if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end

if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

if skill ~= "move" then

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then

if skill == "ride" or skill == "fly" then

 

if getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y then

recheck(sid, skill, thepos)

return true

end

 

if getThingPos(getCreatureMaster(sid)).x == thepos.x and getThingPos(getCreatureMaster(sid)).y == thepos.y then

 

if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

doTeleportThing(sid, thepos, true)

doChangeSpeed(sid, -getCreatureSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

else

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, getThingPos(getCreatureMaster(sid)))

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

else

 

markPos(sid, getThingPos(getCreatureMaster(sid)))

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

else

doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))))

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

return true

end

 

addEvent(recheck, 350, sid, skill, thepos)

return true

end

end

if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then

addEvent(recheck, 350, sid, skill, thepos)

return true

end

if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then

doChangeSpeed(sid, -getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

markPos(sid, {x=1,y=1,z=7})

return true

end

doChangeSpeed(sid, - getCreatureSpeed(sid))

doChangeSpeed(sid, getCreatureBaseSpeed(sid))

if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), 1, 0, 0) then

if isInArray({"Misdreavus", "Gengar", "Gastly", "Haunter"}, getCreatureName(sid)) then

doTeleportThing(sid, getMarkedPos(sid), true)

end

addEvent(recheck, 350, sid, skill, thepos)

doChangeSpeed(sid, - getCreatureSpeed(sid))

return true

end

walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid))

doChangeSpeed(sid, - getCreatureSpeed(sid))

addEvent(goThere, 1030 - (2.2 * (getCreatureBaseSpeed(sid))), sid, getMarkedPos(sid), skill, target)

end

 

 

 

dps em data/actions/script mude seu order por este

 

 

 

-- feito por brun123, editado por glugluguga

 

 

local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}

 

local direction = {'4', '5', '6', '7'}

-- ridefly

local ridefly = {'Elder Charizard', 'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh', 'Entei', 'Raikou', 'Suicune'}

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

local fly = {'Elder Charizard', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Zapdos', 'Moltres', 'Articuno', 'Mew', 'Mewtwo', 'Lugia', 'Ho-Oh'}

local flys = {

[294] = {295, 2200, 525}, -- Elder Charizard

[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

[535] = {535, 2300, 350}, -- lugia

[533] = {533, 2300, 350}, -- ho-oh

}

 

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

[536] = {536, 750, 380}, -- entei

[537] = {537, 420, 500}, -- raikou

[538] = {538, 420, 500}, -- suicune

}

local bolas = {'2222', '2223', '2224'}

local ultra = {'2220', '2221', '2227'}

local etudao = 9506

 

local mind = 9507

 

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

 

-- BLINK

local blink = {"Abra", "Kadabra", "Alakazam", "Porygon", "Mew", "Mewtwo", "MrMime"}

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

local systems = {

["rock smash"] = {"Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Poliwrath", "Hitmonlee", "Hitmonchan", "Aerodactyl", "Charizard", "Blastoise", "Typhlosion", "Feraligatr", "Furret", "Ledian", "Ampharos", "Politoed", "Quagsire", "Forretress", "Steelix", "Snubbull", "Granbull", "Sudowoodo", "Gligar", "Scizor", "Heracross", "Sneasel", "Ursaring", "Teddiursa", "Slugma", "Magcargo", "Piloswine", "Swinub", "Corsola", "Phanpy", "Donphan", "Tyrogue", "Hitmontop", "Miltank", "Blissey", "Tyranitar", "Pupitar"},

["cut"] = {"Charmander", "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", "Chikorita", "Bayleef", "Meganium", "Croconow", "Feraligatr", "Furret", "Bellossom", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Scizor", "Heracross", "Sneasel", "Teddiursa", "Ursaring", "Gligar", "Skarmory"},

["digholes"] = {"468", "481", "483"},

["dig"] = {"Raticate", "Sandshrew", "Sandslash", "Diglett", "Dugtrio", "Primeape", "Machop", "Machoke", "Machamp", "Geodude", "Graveler", "Golem" , "Onix", "Cubone", "Marowak", "Rhyhorn", "Rhydon", "Kangaskhan", "Tauros", "Snorlax", "Eevee", "Dunsparce", "Flareon", "Jolteon", "Vaporeon", "Espeon", "Umbreon", "Vulpix", "Ninetales", "Nidorina", "Nidoqueen", "Nidorino", "Nidoking", "Persian", "Arcanine"},

["blink"] = {"Abra", "Kadabra", "Alakazam", "Porygon", "Porygon2", "Mew", "Mewtwo", "MrMime"}

}

 

-------- DITTO E CONTROL MIND ---------

 

function onUse(cid, item, frompos, item2, topos, item3)

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

return false

end

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

if #getCreatureSummons(cid) == 0 then

doPlayerSendCancel(cid, "Você precisa de um pokemon para usar order.")

return true

end

if exhaustion.get(cid, mind) then

doPlayerSendCancel(cid, "Seu pokemon está exausto para usar Control MIND, Espere 2 minutos para usar esse move denovo.")

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

doPlayerSendCancel(cid, "Você só pode usar esse move em pokemons.")

return true

end

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

doPlayerSendCancel(cid, "Este pokemon não tem esse move.")

return true

end

 

if getCreatureName(item2.uid) == "Ditto" and isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, reverse transformation!", 1)

xd = doSummonCreature(getCreatureName(item2.uid), topos)

doCreatureAddHealth(xd, -getCreatureHealth(xd)+getCreatureHealth(getCreatureSummons(cid)[1]))

doTeleportThing(xd, getCreaturePosition(getCreatureSummons(cid)[1]), false)

doRemoveCreature(item2.uid)

doConvinceCreature(cid, xd)

return TRUE

end

 

if isMonster(item2.uid) == TRUE and getCreatureName(getCreatureSummons(cid)[1]) == "Ditto" then

doCreatureSay(cid, "Ditto, Transformação ".. getCreatureName(item2.uid) .."!", 1)

doCreatureSay(cid, "Transform!", TALKTYPE_MONSTER)

doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 184)

doSetCreatureOutfit(getCreatureSummons(cid)[1], getCreatureOutfit(item2.uid), 18000)

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

 

-----------------------------

 

-------- RIDE ---------

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

 

-----------------------------

 

-------- FLY ---------

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, "Você não pode parar de voar na água!")

return true

end

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

setPlayerStorageValue(cid, 17000, 0)

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

if getPlayerGroupId(cid) >= 2 and getPlayerGroupId(cid) <= 7 then

doChangeSpeed(cid, 200*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

doCreatureSay(cid, "" .. getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball.")..", let me get down!", 1)

doSummonMonster(cid, getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."))

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

setCreatureMaxHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61209)))

doCreatureAddHealth(pk, (getPlayerStorageValue(cid, 61210))-(getPlayerStorageValue(cid, 61209)))

return true

end

 

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

if getPlayerStorageValue(cid, 17000) <= 0 then

local pokemon = flys[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]

local function fly(params)

if isCreature(params.cid) then

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

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

doPlayerSendTextMessage(cid,27, "Tipo \"up\" ou \"h1\" para voar para cima e \"down\" ou \"h2\" para voar pra baixo." )

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])..", Vamo voar!", 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 isInArray(systems["rock smash"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", rock smash!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "rock smash", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

-------- CUT ----------------

if item2.itemid == 2767 and isInArray(systems["cut"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "cut", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

-------- DIG ----------------

if isInArray(systems["digholes"], item2.itemid) and isInArray(systems["dig"], getCreatureName(getCreatureSummons(cid)[1])) then

 

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "dig", isCreature(getCreatureTarget(cid)))

 

return true

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

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos)

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

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

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)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

exhaustion.set(cid, exhaustblink, cdblink)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

return true

end

return true

end

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, "Esse pokemon não tem LIGHT.")

return true

end

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

if not isMonster(item2.uid) and getCreatureMaster(item2.uid) ~= cid then

return doPlayerSendCancel(cid,"Por Favor usar LIGHT em seu pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

doPlayerSendCancel(cid,"Por Favor espere alguns segundos para usar LIGHT denovo!")

return true

end

exhaustion.set(cid, exhautStorage, cd)

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use light!", 1)

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

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

doSetCreatureLight(getCreatureSummons(cid)[1], 8, 215, time*1000)

return true

end

end

-----------------------------

 

-------- MOVE ---------

if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then

return true

end

 

markPos(getCreatureSummons(cid)[1], topos)

markOwnerPos(getCreatureSummons(cid)[1], getThingPos(cid))

doPlayerSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", move!", 1)

addEvent(goThere, 500, getCreatureSummons(cid)[1], topos, "move", isCreature(getCreatureTarget(cid)))

 

return true

end

-----------------------------

 

 

 

----------------------------------------

 

Gente to arrumando o system de m1 a m12 melhorado e queria a ajuda de você para me ajudar.

o m1 a m12 é em 2 scrips só funcionando 100 % a ajuda que eu quero é só adicionar os pokes da priguiça. e um script pra ajudar a fazer o comando !cd ta facil de fazer agora só que to com preguiça kkkk.

 

 

uhm vlw cara vou testar aqui , e me responde uma coisa , como eu adiciono outros pokes no ride e fly ,tipo elite e outros que eu fiz ? vlw

 

 

cara eu testei aqui , e nao da erro , so que n acontece nada contina o order antigo, nao tem que remorer nada ?

 

Elite ou shihny você fais o seguinte.

 

na parte

 

local ridefly = {'Elder Charizard', 'Crystal Onix' .....}

local ride = {'Crystal Onix', 'Venusaur', 'Ninetales'.....}

local fly = {'Elder Charizard', 'Porygon', 'Aerodactyl' .....}

 

Você poe os nomes dos pokemons

 

local flys = {

[294] = {295, 2200, 525}, -- Elder Charizard

}

Nessa parte é onde tem o looktype a velocidade etc...

 

[294] = LookType do Elder Charizard

295 = LookType do ELder Charizard Voando

2200 = sinceramente não sei pra que serve acho que server pra nada

525 = é a velocidade do pokemon

 

local rides = {

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

}

 

È a mesma coisa que o fly só isso.

 

 

cara eu testei aqui , e nao da erro , so que n acontece nada contina o order antigo, nao tem que remorer nada ?

 

Não itendi hoje to meio burro.

se quis dizer q não tem nada de diferente do order antigo?

como disse to meio burro hoje.

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

×
×
  • Criar Novo...