Ir para conteúdo

Pedido Script Pokemon


Lanternaverde

Posts Recomendados

Queria um Script , que funcionasse o DITTO e o SURF , pelo ORDER.

 

E ainda ajeita-se os Bugs no Control Mind

 

 

Meu Order :

 

 

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

 

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

-- ridefly

local ridefly = {'Crystal Onix', 'Venusaur', 'Ninetales', 'Arcanine', 'Ponyta', 'Rapidash', 'Doduo', 'Dodrio', 'Onix', 'Rhyhorn', 'Tauros', 'Porygon', 'Aerodactyl', 'Dragonite', 'Charizard', 'Pidgeot', 'Fearow', 'Moltres', 'Zapdos', 'Articuno', 'Mew', 'Mewtwo'}

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

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

local flys = {

[265] = {229, 2300, 350}, -- moltres

[283] = {230, 2100, 350}, -- artic

[199] = {224, 2600, 350}, -- zapdos

[9] = {232, 2200, 525}, -- 1000

[34] = {233, 2200, 525},-- two

[210] = {221, 1300, 410},-- nite

[80] = {222, 900, 375}, -- geot

[17] = {226, 800, 400}, -- fearow

[10] = {227, 1100, 410}, -- aero

[67] = {216, 1000, 410}, -- chari

[97] = {316, 600, 440}, -- porygon

}

 

local rides = {

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

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

[220] = {130, 800, 395}, -- rapid

[16] = {131, 410, 500}, -- ponyta

[77] = {132, 400, 510}, -- rhyhorn

[88] = {12, 900, 390}, -- arcan

[493] = {492, 1000, 360}, -- shiny arca

[496] = {494, 420, 420}, -- shiny vneu

[292] = {293, 480, 430}, -- cristal onix

[248] = {126, 450, 450}, -- onix

[22] = {134, 390, 450}, -- venu

[120] = {133, 750, 380}, -- dodrio

[26] = {135, 420, 500}, -- doduo

}

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

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

local etudao = 9506

 

local mind = 9507

 

-- ROCK SMASH

local rocksmash = {'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax', 'Poliwrath'}

local erockmash = 9502

local cdrocksmash = 5

-- ROCK SMASH

 

-- DIG

local digholes = {'468', '481', '483'}

local dig = {'Raticate', 'Sandshrew', 'Sandslash', 'Diglett', 'Dugtrio', 'Primeape', 'Machop', 'Machoke', 'Machamp', 'Geodude', 'Graveler', 'Golem' , 'Onix', 'Cubone', 'Marowak', 'Rhyhorn', 'Rhydon', 'Kangaskhan', 'Tauros', 'Snorlax'}

local edig = 9504

local cddig = 5

-- DIG

 

-- CUT

local cut = {'Raticate', 'Bulbasaur', 'Ivysaur', 'Venusaur', 'Charmeleon', 'Sandshrew', 'Sandslash', 'Gloom', 'Vileplume', 'Paras', 'Parasect', 'Meowth', 'Persian', 'Bellsprout', 'Weepinbell', 'Victreebel', 'Farfetchd', 'Krabby', 'Kingler', 'Exeggutor', 'Cubone', 'Marowak', 'Tangela', 'Scyther', 'Pinsir'}

local ecut = 9503

local cdcut = 5

-- CUT

 

-- BLINK

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

local exhaustblink = 9501

local cdblink = 50

-- BLINK

 

-- LIGHT

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

local exhautStorage = 9500

local time = 600

local cd = 17

-- LIGHT

 

-- CONTROL

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

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

return false

end

if exhaustion.get(cid, etudao) then

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

return true

end

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

if #getCreatureSummons(cid) == 0 then

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

return true

end

if exhaustion.get(cid, mind) then

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

return true

end

if isPlayer(getCreatureMaster(item2.uid)) then

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

return true

end

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

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

return true

end

exhaustion.set(cid, mind, 240)

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

doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(item2.uid), 39)

registerCreatureEvent(item2.uid, "Controled")

doSendMagicEffect(getThingPos(item2.uid), 136)

doSendMagicEffect(getThingPos(item2.uid), 134)

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

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

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

doConvinceCreature(cid, item2.uid)

if getCreatureSpeed(item2.uid) == 0 then

doChangeSpeed(item2.uid, 180)

end

doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", control "..string.lower(getCreatureName(item2.uid)).."'s mind!", 1)

local cmed = item2.uid

local cmname = getCreatureName(getCreatureSummons(cid)[1])

local cmpos = getThingPos(getCreatureSummons(cid)[1])

doRemoveCreature(getCreatureSummons(cid)[1])

local cmzao = doSummonCreature(""..cmname.." cm", cmpos)

doConvinceCreature(cid, cmzao)

setPlayerStorageValue(cid, 888, 1)

local function check(params)

if isCreature(params.cid) then

if getPlayerStorageValue(params.cid, 888) <= 0 then

return true

end

-- CONTROL

 

if not isCreature(cmed) then

local pkcmpos = getThingPos(getCreatureSummons(cid)[1])

doRemoveCreature(getCreatureSummons(cid)[1])

local item = getPlayerSlotItem(cid, 8)

local pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), pkcmpos)

doConvinceCreature(cid, pk)

doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

registerCreatureEvent(cid, "PlayerPokeDeath")

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

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

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

setPlayerStorageValue(cid, 888, 0)

end

if params.rod == 20 then

local lifecmed = getCreatureMaxHealth(cmed) - getCreatureHealth(cmed)

local poscmed = getThingPos(cmed)

local cmeddir = getCreatureLookDir(cmed)

local namecmed = getCreatureName(cmed)

doRemoveCreature(getCreatureSummons(cid)[1])

local back = doSummonCreature(""..namecmed.." s", poscmed)

if getCreatureSpeed(back) == 0 then

doChangeSpeed(back, 180)

end

doCreatureSetLookDir(back, cmeddir)

doCreatureAddHealth(back, -lifecmed)

local item = getPlayerSlotItem(cid, 8)

local mynewpos = getThingPos(getCreatureSummons(cid)[1])

doRemoveCreature(getCreatureSummons(cid)[1])

pk = doSummonCreature(getItemAttribute(item.uid, "poke"):match("This is (.-)'s pokeball."), mynewpos)

doConvinceCreature(cid, pk)

doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)

registerCreatureEvent(pk, "DiePoke")

registerCreatureEvent(pk, "Exp")

registerCreatureEvent(cid, "PlayerPokeDeath")

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

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

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

setPlayerStorageValue(cid, 888, 0)

else

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

end

end

end

for rod = 1, 20 do

addEvent(check, rod*500, {cid = cid, rod = rod})

end

return true

end

 

if item2.uid == cid then

if getPlayerStorageValue(cid, 888) >= 1 then

doPlayerSendCancel(cid, "You cant fly neither ride pokemons being controled.")

return true

end

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

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

return true

end

 

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

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

return true

end

 

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

return true

end

 

 

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

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

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

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

end

local function ride(params)

if isCreature(params.cid) then

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

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

doChangeSpeed(cid, -250)

doChangeSpeed(cid, pokemon[2])

exhaustion.set(cid, etudao, 4)

setPlayerStorageValue(cid, 17001, 1)

doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)

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

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

doRemoveCreature(getCreatureSummons(cid)[1])

else

dirh = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))

if dirh == NORTHWEST then

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

dirh = NORTH

else

dirh = WEST

end

elseif dirh == SOUTHWEST then

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

dirh = SOUTH

else

dirh = WEST

end

elseif dirh == SOUTHEAST then

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

dirh = SOUTH

else

dirh = EAST

end

elseif dirh == NORTHEAST then

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

dirh = NORTH

else

dirh = EAST

end

end

local dirh = dirh

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

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

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

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

else

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

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

end

end

end

end

end

 

local function speed(params)

if isCreature(params.cid) then

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

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

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

end

end

end

end

doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", let me ride you!", 1)

exhaustion.set(cid, etudao, 4)

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

distanc = 1

else

distanc = 0

end

local distance = distanc

for i=1,12 do

addEvent(ride, pokemon[3]*i, {cid = cid, d = distance})

addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})

end

return true

end

 

if getPlayerStorageValue(cid, 17001) >= 1 then

setPlayerStorageValue(cid, 17001, 0)

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

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

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

doChangeSpeed(cid, 400*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

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

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

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

if isInArray(bolas, item.itemid) then

registerCreatureEvent(pk, "DiePoke")

elseif isInArray(ultra, item.itemid) then

registerCreatureEvent(pk, "DiePoke2")

end

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 getTileInfo(getThingPos(cid)).itemid == 460 or getTileInfo(getThingPos(cid)).itemid == 1023 or getTileInfo(getThingPos(cid)).itemid == 1022 then

doPlayerSendCancel(cid, "You can\'t stop flying at this height!")

return true

end

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

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

return true

end

if getPlayerGroupId(cid) ~= 6 then

setPlayerGroupId(cid, 8)

end

doCreatureSetLookDir(cid, 2)

setPlayerStorageValue(cid, 17000, 0)

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

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

doChangeSpeed(cid, 200*getPlayerGroupId(cid))

else

doChangeSpeed(cid, 250)

end

doRemoveCondition(cid, CONDITION_OUTFIT)

local item = getPlayerSlotItem(cid, 8)

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

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

local pk = getCreatureSummons(cid)[1]

registerCreatureEvent(cid, "PlayerPokeDeath")

if isInArray(bolas, item.itemid) then

registerCreatureEvent(pk, "DiePoke")

elseif isInArray(ultra, item.itemid) then

registerCreatureEvent(pk, "DiePoke2")

end

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

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

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

return true

end

 

if not isPremium(cid) then

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

return true

end

 

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

if getPlayerStorageValue(cid, 17000) <= 0 then

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

local function fly(params)

if isCreature(params.cid) then

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

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

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

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

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

setPlayerStorageValue(cid, 17000, 1)

registerCreatureEvent(cid, "Flying")

doChangeSpeed(cid, -250)

doChangeSpeed(cid, pokemon[2])

exhaustion.set(cid, etudao, 4)

doSetCreatureOutfit(cid, {lookType = pokemon[1], lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, -1)

doRemoveCreature(getCreatureSummons(cid)[1])

else

dir = getDirectionTo(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(params.cid))

if dir == NORTHWEST then

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

dir = NORTH

else

dir = WEST

end

elseif dir == SOUTHWEST then

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

dir = SOUTH

else

dir = WEST

end

elseif dir == SOUTHEAST then

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

dir = SOUTH

else

dir = EAST

end

elseif dir == NORTHEAST then

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

dir = NORTH

else

dir = EAST

end

end

local dir = dir

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

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

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

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

else

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

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

end

end

end

end

end

 

local function speed(params)

if isCreature(params.cid) then

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

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

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

end

end

end

end

 

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

exhaustion.set(cid, etudao, 4)

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

distancc = 1

else

distancc = 0

end

local distancee = distancc

for i=1,12 do

addEvent(fly, pokemon[3]*i, {cid = cid, dd = distancee})

addEvent(speed, ((pokemon[3]*12)+100), {cid = cid})

end

return true

end

return true

end

end

-- ROCK SMASH

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

if #getCreatureSummons(cid) == 0 then

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

return true

end

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

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

return true

end

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

if exhaustion.get(cid, erocksmash) then

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

return true

end

 

 

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

return true

end

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

local function tocut(params)

if isCreature(params.cid) then

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

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

return true

end

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

return true

end

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

doSendMagicEffect(topos, 118)

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

exhaustion.set(cid, erocksmash, cdrocksmash)

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

local function detrans(params)

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

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

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

end

end

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

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

local function nmr(params)

if isCreature(params.cid) then

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

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

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

end

end

end

end

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

else

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

if badire == NORTHWEST then

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

badire = NORTH

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

badire = NORTH

else

badire = WEST

end

else

badire = WEST

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

badire = WEST

else

badire = NORTH

end

end

elseif badire == SOUTHWEST then

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

badire = SOUTH

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

badire = SOUTH

else

badire = WEST

end

else

badire = WEST

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

badire = WEST

else

badire = SOUTH

end

end

elseif badire == SOUTHEAST then

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

badire = SOUTH

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

badire = SOUTH

else

badire = EAST

end

else

badire = EAST

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

badire = EAST

else

badire = SOUTH

end

end

elseif badire == NORTHEAST then

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

badire = NORTH

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

badire = NORTH

else

badire = EAST

end

else

badire = EAST

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

badire = EAST

else

badire = NORTH

end

end

end

local badire = badire

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

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

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

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

else

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

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

end

end

end

end

end

 

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

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

local temk = 1000 -(2.3 * speed)

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

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

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

end

return true

end

end

-- ROCK SMASH END

 

-- CUT

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

if #getCreatureSummons(cid) == 0 then

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

return true

end

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

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

return true

end

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

if exhaustion.get(cid, ecut) then

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

return true

end

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

return true

end

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

local function tocut(params)

if isCreature(params.cid) then

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

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

return true

end

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

return true

end

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

doSendMagicEffect(topos, 141)

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

exhaustion.set(cid, ecut, cdcut)

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

local function detrans(params)

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

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

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

end

end

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

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

local function nmr(params)

if isCreature(params.cid) then

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

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

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

end

end

end

end

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

else

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

if adire == NORTHWEST then

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

adire = NORTH

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

adire = NORTH

else

adire = WEST

end

else

adire = WEST

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

adire = WEST

else

adire = NORTH

end

end

elseif adire == SOUTHWEST then

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

adire = SOUTH

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

adire = SOUTH

else

adire = WEST

end

else

adire = WEST

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

adire = WEST

else

adire = SOUTH

end

end

elseif adire == SOUTHEAST then

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

adire = SOUTH

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

adire = SOUTH

else

adire = EAST

end

else

adire = EAST

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

adire = EAST

else

adire = SOUTH

end

end

elseif adire == NORTHEAST then

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

adire = NORTH

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

adire = NORTH

else

adire = EAST

end

else

adire = EAST

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

adire = EAST

else

adire = NORTH

end

end

end

local adire = adire

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

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

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

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

else

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

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

end

end

end

end

end

 

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

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

temk = 1000 -(2.3 * speed)

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

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

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

end

 

return true

end

end

-- CUT END

 

-- DIG

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

if #getCreatureSummons(cid) == 0 then

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

return true

end

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

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

return true

end

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

if exhaustion.get(cid, edig) then

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

return true

end

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

return true

end

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

local function tocut(params)

if isCreature(params.cid) then

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

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

return true

end

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

return true

end

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

doSendMagicEffect(topos, 3)

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

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

exhaustion.set(cid, edig, cddig)

local function detrans(params)

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

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

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

end

end

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

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

local function nmr(params)

if isCreature(params.cid) then

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

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

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

end

end

end

end

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

else

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

if cdire == NORTHWEST then

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

cdire = NORTH

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

cdire = NORTH

else

cdire = WEST

end

else

cdire = WEST

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

cdire = WEST

else

cdire = NORTH

end

end

elseif cdire == SOUTHWEST then

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

cdire = SOUTH

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

cdire = SOUTH

else

cdire = WEST

end

else

cdire = WEST

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

cdire = WEST

else

cdire = SOUTH

end

end

elseif cdire == SOUTHEAST then

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

cdire = SOUTH

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

cdire = SOUTH

else

cdire = EAST

end

else

cdire = EAST

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

cdire = EAST

else

cdire = SOUTH

end

end

elseif cdire == NORTHEAST then

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

cdire = NORTH

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

cdire = NORTH

else

cdire = EAST

end

else

cdire = EAST

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

cdire = EAST

else

cdire = NORTH

end

end

end

local cdire = cdire

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

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

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

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

else

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

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

end

end

end

end

end

 

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

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

temk = 1000 -(2.3 * speed)

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

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

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

end

return true

end

end

-- DIG END

 

-- BLINK

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

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

return true

end

if not isMonster(item2.uid) and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 then

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

if exhaustion.get(cid, exhaustblink) then

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

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

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

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

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

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

doSendMagicEffect(topos, 134)

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

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

exhaustion.set(cid, exhaustblink, cdblink)

return true

end

return true

end

end

--- BLINK END

 

-- LIGHT --

if isCreature(item2.uid) and getCreatureMaster(item2.uid) == cid and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 17000) <= 0 and item2.uid ~= cid then

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

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

return true

end

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

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

return doPlayerSendCancel(cid,"Please use flash on your pokemon.")

end

if exhaustion.get(cid, exhautStorage) then

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

return true

end

exhaustion.set(cid, exhautStorage, cd)

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

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

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

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

return true

end

end

-- LIGHT END --

if #getCreatureSummons(cid) == 0 then

return true

end

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

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

return true

end

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

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

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

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

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

return true

end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...