Olá, Gostaria de saber se alguém poderia me ajudar a colocar meu sistema de teleport apenas para players vip e o sistema de fly para free accounts
[Encerrado] tp para vip e fly para free

Poderia postar seu sistema de teleport e fly, por favor?
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
Poderia postar seu sistema de teleport e fly, por favor?
não sei colocar spoiler :X
tp:
local poke = {'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Porygon2', "Shiny Abra",
"Shiny Alakazam", "Shiny Jynx", "Jynx", "Wobbuffet", "Misdreavus", "Shiny Hypno", "Xatu"}local etele = 9499local cdtele = 300local config = {premium = false, -- se precisa ser premium account (true or false)battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas}--[[local places = {[1] = {name = "Saffron", id = 1, sto = 897530},[2] = {name = "Cerulean", id = 2, sto = 897531}, -- Alterado Teleport, adicionar as storage das city para poder teleporta.[3] = {name = "Lavender", id = 3, sto = 897532},[4] = {name = "Fuchsia", id = 4, sto = 897533},[5] = {name = "Celadon", id = 5, sto = 897534},[6] = {name = "Viridian", id = 6, sto = 897535},[7] = {name = "Vermilion", id = 7, sto = 897536},[8] = {name = "Pewter", id = 8, sto = 897537},[9] = {name = "Pallet", id = 9, sto = 897538},[10] = {name = "Cinnabar", id = 10, sto = 897539},[11] = {name = "Snow", id = 11, sto = 897540},[12] = {name = "Golden", id = 12, sto = 897541},[13] = {name = "Outland South", id = 27, sto = 897542},[14] = {name = "Outland Main", id = 28, sto = 897543},[15] = {name = "Outland North", id = 30, sto = 897544},} ]]local places = {[1] = {name = "Saffron", id = 1, sto = 897530},[2] = {name = "Cerulean", id = 2, sto = 897531}, -- Alterado Teleport, adicionar as storage das city para poder teleporta.[3] = {name = "Lavender", id = 3, sto = 897532},[4] = {name = "Fuchsia", id = 4, sto = 897533},[5] = {name = "Celadon", id = 5, sto = 897534},[6] = {name = "Viridian", id = 6, sto = 897535},[7] = {name = "Vermilion", id = 7, sto = 897536},[8] = {name = "Pewter", id = 8, sto = 897537},[9] = {name = "Pallet", id = 9, sto = 897538},[10] = {name = "Cinnabar", id = 10, sto = 897539},[11] = {name = "Snow", id = 11, sto = 897540},[12] = {name = "Golden", id = 12, sto = 897541},[13] = {name = "Outland South", id = 27, sto = 897542},[14] = {name = "Outland Main", id = 28, sto = 897543},[15] = {name = "Outland North", id = 30, sto = 897544},[16] = {name = "Quest", id = 19, sto = 897545},}function onSay(cid, words, param)if #getCreatureSummons(cid) == 0 thendoPlayerSendCancel(cid, "You need a pokemon to use teleport.")return trueendif not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) thenreturn 0endif getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9doPlayerSendCancel(cid, "You can't do that here!")return trueendif getPlayerStorageValue(cid, 22545) == 1 then --golden arenadoPlayerSendCancel(cid, "You can't do that while the golden arena!")return trueendif getPlayerStorageValue(cid, 121213) == 1 then --golden arenadoPlayerSendCancel(cid, "You can't do that while the Master Quest!")return trueendif getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!")endif getPlayerStorageValue(cid, 52480) >= 1 thenreturn doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6endif getPlayerStorageValue(cid, 98796) >= 1 thenreturn doPlayerSendCancel(cid, "You can't do it in SaffariZone!") --alterado v1.6endif getCreatureOutfit(cid).lookType == 1034 thenreturn doPlayerSendCancel(cid, "You can't do it while diving!") --alterado v1.6endif getCreatureOutfit(cid).lookType == 1035 thenreturn doPlayerSendCancel(cid, "You can't do it while diving!") --alterado v1.6endif exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 thenlocal tempo = tonumber(exhaustion.get(cid, etele)) or 0local min = math.floor(tempo)doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.")return trueendif config.premium and not isPremium(cid) thendoPlayerSendCancel(cid, "Sorry,You need diamond account for use teleport.")return trueendif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) thendoPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.")return trueendif (param == '') thenlocal str = ""str = str .. "Places to go :\n\nHouse\n"for a = 1, #places dostr = str..""..places[a].name.."\n"enddoShowTextDialog(cid, 7416, str)return trueendlocal item = getPlayerSlotItem(cid, 8)local nome = getPokeballName(item.uid)local summon = getCreatureSummons(cid)[1]local lastppos = getThingPos(cid)local lastspos = getThingPos(summon)local telepos = {}local myplace = ""local townid = 0local citySto = 0 --alterado teleportif string.lower(param) == "house" thenif not getHouseByPlayerGUID(getPlayerGUID(cid)) thendoPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.")return trueendtelepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))myplace = "our home"elsefor x = 1, #places doif string.find(string.lower(places[x].name), string.lower(param)) thentownid = places[x].idmyplace = places[x].namecitySto = places[x].sto --alterado teleportendendif myplace == "" thendoPlayerSendCancel(cid, "That place doesn't exist.")return trueendendif myplace ~= "" and townid > 0 thentelepos = getTownTemplePosition(townid)endif getDistanceBetween(getThingPos(cid), telepos) <= 15 thendoPlayerSendCancel(cid, "You are too near to the place you want to go!")return trueenddoSendMagicEffect(getThingPos(summon), 29)doSendMagicEffect(getThingPos(cid), 29)doTeleportThing(cid, telepos, false)local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH))doTeleportThing(summon, pos2, false)doSendMagicEffect(getThingPos(cid), 29)doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1)doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos)doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER)doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos)doCreatureSetLookDir(cid, SOUTH)doCreatureSetLookDir(summon, SOUTH)doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT)exhaustion.set(cid, etele, cdtele)return trueend
o fly se eu não me engano fica junto com o order ele ta aqui:
local skills = specialabilities
local surfborders = {4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663}local txt = {["rock smash"] = {"break that rock!", "smash that rock!", "destroy that rock!", "smash it!", "break it!", "destroy it!"},["cut"] = {"cut that bush!", "cut it down!", "cut it off!", "cut off that bush!", "cut down that bush!", "cut that bush down!"},["move"] = {"move!", "move there!", "go there!", "walk there!"},["light"] = {"flash!", "light!", "flash this place!", "light up this place!"},["dig"] = {"open that hole!", "dig that hole!", "open it!", "dig it!"},["blink"] = {"teleport there!", "blink there!", "blink!", "teleport!"},["ride"] = {"let me ride you!", "let's ride!", "let me mount you!", "let me get on you!"},["fly"] = {"let's fly!", "let me get on you!"} ,["untransform"] = {"go back to normal!", "transform into yourself again!", "stop transformation!"},["headbutt"] = {"headbutt on three", "headbutt that three!", "headbutt it off"},["levitate_fly"] = {"let's levitate!", "let me get on you!", "let's scary someone!"}, --alterado v1.8}function onUse(cid, item, frompos, item2, topos)local checkpos = toposcheckpos.stackpos = 0if getPlayerStorageValue(cid, 75846) >= 1 then return true end --alterado v1.9if getTileThingByPos(checkpos).uid <= 0 then return true end--------END FLY/RIDE --------if getCreatureCondition(cid, CONDITION_OUTFIT) and (item2.uid == cid or getRecorderPlayer(topos) == cid) and (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1) thenif isInArray({460, 11675, 11676, 11677}, getTileInfo(getThingPos(cid)).itemid) thendoPlayerSendCancel(cid, "You can\'t stop flying at this height!")return trueendlocal item = getPlayerSlotItem(cid, 8)local pokemon = getItemAttribute(item.uid, "poke")local x = pokes[pokemon]if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 thendoPlayerSendCancel(cid, "You can\'t stop flying above the water!")return trueenddoSummonMonster(cid, pokemon)local pk = getCreatureSummons(cid)[1]if not isCreature(pk) thenpk = doCreateMonster(pokemon, backupPos)if not isCreature(pk) thendoPlayerSendCancel(cid, "You can't stop flying/riding here.")return trueenddoConvinceCreature(cid, pk)enddoTeleportThing(pk, getThingPos(cid), false)doCreatureSetLookDir(pk, getCreatureLookDir(cid))adjustStatus(pk, item.uid, true, false, true)doPlayerSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", let me get down!", 1)doRegainSpeed(cid)doRemoveCondition(cid, CONDITION_OUTFIT)setPlayerStorageValue(cid, 17000, -1)setPlayerStorageValue(cid, 17001, -1)setPlayerStorageValue(cid, 42368, -1)if useOTClient thendoPlayerSendCancel(cid, '12//,show') --alterado v1.8endreturn trueend-------- DUEL SYSTEM ------------------------if isPlayer(item2.uid) and (item2.uid ~= cid or getRecorderPlayer(topos) ~= cid) and getPlayerStorageValue(item2.uid, 6598754) <= -1 and getPlayerStorageValue(item2.uid, 52480) <= -1 and getCreatureOutfit(item2.uid).lookType ~= 814 then---if getPlayerStorageValue(cid, 52480) >= 1 then --alterado v1.6.1return doPlayerSendTextMessage(cid, 20, "You already invited somebody to duel or already is dueling with somebody")endlocal storages = {17000, 63215, 17001, 13008, 5700, 22545}for s = 1, #storages doif getPlayerStorageValue(cid, storages) >= 1 thenreturn doPlayerSendTextMessage(cid, 20, "You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!")endendif getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendTextMessage(cid, 20, "You can't do that while in PVP zone!")end---local player = getRecorderPlayer(topos) --alterado v1.6.1doPlayerSetVocation(cid, 8)openChannelDialog(cid)setPlayerStorageValue(cid, 52480, 1)setPlayerStorageValue(cid, 6598754, 5)setPlayerStorageValue(cid, 52482, getCreatureName(player)) --alterado v1.6.1setPlayerStorageValue(cid, 52483, 0)doCreatureSetSkullType(cid, 2)return trueelseif isPlayer(item2.uid) and (item2.uid ~= cid or getRecorderPlayer(topos) ~= cid) and getPlayerStorageValue(item2.uid, 6598754) == 5 and getCreatureOutfit(item2.uid).lookType ~= 814 then---if getPlayerStorageValue(cid, 52481) <= -1 thenreturn true --alterado v1.6.1endif getPlayerStorageValue(cid, 52480) >= 1 thenreturn doPlayerSendTextMessage(cid, 20, "You already invited somebody to duel or already is dueling with somebody")endlocal storages = {17000, 63215, 17001, 13008, 5700}for s = 1, #storages doif getPlayerStorageValue(cid, storages) >= 1 thenreturn doPlayerSendTextMessage(cid, 20, "You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!")endendif getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendTextMessage(cid, 20, "You can't do that while in PVP zone!")end--- --alterado v1.6.1 funçao agora em lib/some function.lualocal player = getRecorderPlayer(topos) --alterado v1.6.1setPlayerStorageValue(cid, 52480, 1)setPlayerStorageValue(player, 52483, 1) --alterado v1.6.1doCreatureSetSkullType(cid, 1)doCreatureSetSkullType(player, 1) --alterado v1.6.1doSendAnimatedText(getThingPos(cid), "BATTLE", COLOR_ELECTRIC)beginDuel(cid, player, 6) --alterado v1.6.1return trueend-----------------------------if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "You need a pokemon to use order!") endif getCreatureNoMove(getCreatureSummons(cid)[1]) then return true endmarkLP(getCreatureSummons(cid)[1], -1)local marked = getMarkedPos(getCreatureSummons(cid)[1]) --alterado v1.8 \/if type(marked) == "table" and marked.x == topos.x and marked.y == topos.y thenreturn trueendlocal unfix = {x = 1, y = 1, z = 1}local thisball = getPlayerSlotItem(cid, 8)local mysum = getCreatureSummons(cid)[1]local sid = mysum or cidlocal maxMoveDist = getDistanceBetween(getThingPos(sid), topos) * 2 + 1markPos(mysum, topos)markOwnerPos(mysum, getThingPos(cid))-------- ROCK SMASH ---------if item2.itemid == 1285 and isInArray(skills["rock smash"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["rock smash"][math.random(1, #txt["rock smash"])].."", 1)addEvent(goThere, 500, mysum, topos, "rock smash", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- HEADBUTT -----------if item2.itemid == 12672 and getPokemonLevel(mysum) >= 15 then --alterado v1.6--id do item arvore normaldoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["headbutt"][math.random(1, #txt["headbutt"])].."", 1)addEvent(goThere, 500, mysum, topos, "headbutt", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- CUT ----------------if item2.itemid == 2767 and isInArray(skills["cut"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["cut"][math.random(1, #txt["cut"])].."", 1)addEvent(goThere, 500, mysum, topos, "cut", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- TRANSFORM ---------- --alterado v1.7if (getCreatureName(mysum) == "Ditto" or getCreatureName(mysum) == "Shiny Ditto") and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] thenif item2.uid == mysum then --editedif isTransformed(mysum) thendeTransform(mysum, getItemAttribute(thisball.uid, "transTurn"))markPos(mysum, unfix)doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["untransform"][math.random(1, #txt["untransform"])].."", 1)return trueenddoPlayerSendCancel(cid, "Your ditto is not transformed.")markPos(mysum, unfix)return trueendif getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) == "Shiny Ditto" then --edited transform for shiny dittodoPlayerSendCancel(cid, "Your ditto can't transform into another ditto.")markPos(mysum, unfix)return trueendif getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) thendoPlayerSendCancel(cid, "Your ditto is already transformed into that pokemon.")markPos(mysum, unfix)return trueendlocal cd = getCD(thisball.uid, "trans", 40)if cd > 0 thendoPlayerSendCancel(cid, "Your pokemon is too tired to transform again. Cooldown: ("..getStringmytempo(cd)..")")return trueendif getHappiness(mysum) <= 50 thendoSendMagicEffect(getThingPos(mysum), happinessRate[1].effect)markPos(mysum, unfix)return trueendlocal turn = getItemAttribute(thisball.uid, "transTurn")if not turn or turn > 10 thendoItemSetAttribute(thisball.uid, "transTurn", 0)elsedoItemSetAttribute(thisball.uid, "transTurn", turn + 1)endlocal time = 900 + 2 * getPokemonLevel(mysum)turn = getItemAttribute(thisball.uid, "transTurn")markPos(mysum, unfix)setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid))doSetCreatureOutfit(mysum, {lookType = getPokemonXMLOutfit(getCreatureName(item2.uid))}, -1) --alterado v1.8addEvent(deTransform, time * 1000, mysum, turn)doSendMagicEffect(getThingPos(mysum), 184)doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER)local name = getCreatureName(item2.uid)setCD(thisball.uid, "trans", 40)doItemSetAttribute(thisball.uid, "transBegin", os.clock())doSetItemAttribute(thisball.uid, "transLeft", time)doSetItemAttribute(thisball.uid, "transOutfit", getPokemonXMLOutfit(getCreatureName(item2.uid))) --alterado v1.8doSetItemAttribute(thisball.uid, "transName", getCreatureName(item2.uid))doFaceCreature(mysum, getThingPos(item2.uid))doPlayerSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", 1)if useKpdoDlls thendoUpdateMoves(cid) --alterado v1.6endif dittoCopiesStatusToo thensetPlayerStorageValue(mysum, 1001, dittoBonus*getOffense(item2.uid))setPlayerStorageValue(mysum, 1002, dittoBonus*getDefense(item2.uid))setPlayerStorageValue(mysum, 1003, getSpeed(item2.uid))setPlayerStorageValue(mysum, 1004, dittoBonus*getVitality(item2.uid))setPlayerStorageValue(mysum, 1005, dittoBonus*getSpecialAttack(item2.uid))------------------local pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum)local vit = (getVitality(mysum) * getMasterLevel(mysum)) / 100setCreatureMaxHealth(mysum, ( vit * HPperVITsummon )) --alterado v1.6doCreatureAddHealth(mysum, pct * vit * HPperVITsummon)endreturn trueend------------------------------------- LIGHT --------------if isMonster(item2.uid) and getCreatureMaster(item2.uid) == cid thenmarkPos(mysum, unfix)if not isInArray(skills["light"], getPokemonName(item2.uid)) thendoPlayerSendCancel(cid, "Your pokemon can't use flash.")return trueendlocal cd = getCD(thisball.uid, "light", 30)if cd > 0 thendoPlayerSendCancel(cid, "Your pokemon is too tired to use flash. Cooldown: ("..getStringmytempo(cd)..")")return trueenddoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["light"][math.random(1, #txt["light"])].."", 1)doCreatureSay(mysum, "FLASH!", TALKTYPE_MONSTER)doSendMagicEffect(getThingPos(mysum), 28)local size = 5size = size + math.floor(getSpecialAttack(mysum) / 60)size = size + math.ceil(getPokemonLevel(mysum) / 60)if size > 11 thensize = 11enddoSetCreatureLight(mysum, size, 215, 600*1000)local delay = math.floor(30 - getPokemonLevel(mysum) / 4)if delay > 0 thensetCD(thisball.uid, "light", delay)endreturn trueend------------------------------------- DIG ----------------if isInArray(skills["digholes"], item2.itemid) and isInArray(skills["dig"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["dig"][math.random(1, #txt["dig"])].."", 1)addEvent(goThere, 500, mysum, topos, "dig", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- BLINK / MOVE -------if not isCreature(item2.uid) and isInArray(skills["blink"], getPokemonName(mysum)) thenlocal cd = getCD(thisball.uid, "blink", 30)if getPlayerStorageValue(mysum, 2365487) == 1 thenreturn true --alterado v1.4endif cd > 0 or not canWalkOnPos(topos, false, false, true, true, true) thendoPlayerSendCancel(cid, "Blink cooldown: ("..getStringmytempo(cd)..")")doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1)addEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist)return trueendlocal CD = isShinyName(getCreatureName(mysum)) and 20 or 30 --edited blinkmarkPos(mysum, topos)markOwnerPos(mysum, getThingPos(cid))setCD(thisball.uid, "blink", CD)doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["blink"][math.random(1, #txt["blink"])].."", 1)doSendDistanceShoot(getThingPos(mysum), topos, 39)doSendMagicEffect(getThingPos(mysum), 211)doTeleportThing(mysum, topos, false)doSendMagicEffect(topos, 134)doCreatureSay(mysum, "BLINK!", TALKTYPE_MONSTER)goThere(mysum, topos, "blink", isCreature(getCreatureTarget(cid))) --edited blinkreturn trueend---------------------------------START FLY or RIDE or LEVITATE ---------if (item2.uid == cid or getRecorderPlayer(topos) == cid) and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["ride"], getPokemonName(mysum)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) then--alterado v1.8 >>if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7endif getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!")endif getPlayerStorageValue(cid, 52480) >= 1 thenreturn doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6endif getPlayerStorageValue(cid, 5700) == 1 thendoPlayerSendCancel(cid, "You can't do that while is mount in a bike!") --edited proteçao pra bikereturn trueendif getPlayerStorageValue(cid, 22545) >= 1 and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) thenreturn doPlayerSendCancel(cid, "You can't do that while in the Golden Arena!") --alterado v1.8endlocal pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum)doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", 1 - pct)if isInArray(skills["fly"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["fly"][math.random(1, #txt["fly"])].."", 1)addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid)))elseif isInArray(skills["levitate_fly"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["levitate_fly"][math.random(1, #txt["levitate_fly"])].."", 1) --alterado v1.8addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid)))elsedoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["ride"][math.random(1, #txt["ride"])].."", 1)addEvent(goThere, 500, mysum, topos, "ride", isCreature(getCreatureTarget(cid)))endreturn trueend---------------------------------------------------------------Control Mind-------------------------------------------- alterado v1.5if isCreature(item2.uid) and ehMonstro(item2.uid) and isInArray(skills["control mind"], getCreatureName(mysum)) and item2.uid ~= mysum thenif not isCreature(item2.uid) thenreturn trueendif isSleeping(mysum) thenreturn doPlayerSendCancel(cid, "Your pokemon is sleeping...zZzZ")endif getTileInfo(getThingPos(cid)).protection or getTileInfo(getThingPos(getCreatureSummons(cid)[1])).protection thenreturn doPlayerSendCancel(cid, "You or your pokemon are in Pz zone!")endif #getCreatureSummons(cid) == 2 thenreturn doPlayerSendCancel(cid, "You only can control one Pokemon!")endlocal cd = getCD(thisball.uid, "control", 120)if cd > 0 thendoPlayerSendCancel(cid, "You have to wait "..cd.." segs to use Control Mind again!")return trueendif getPokemonLevel(item2.uid) >= getPokemonLevel(mysum) thenreturn doPlayerSendCancel(cid, "Your pokemon can't control this mind!")endif getPlayerStorageValue(cid, 22545) >= 1 then --alterado v1.7return doPlayerSendCancel(cid, "You can't do that while in the Golden Arena!")endlocal cmed = item2.uidsetCD(thisball.uid, "control", 120)local gender = getPokemonGender(cmed)doSendDistanceShoot(getThingPos(mysum), getThingPos(cmed), 39)--------------setPlayerStorageValue(cid, 212124, 1)doConvinceCreature(cid, cmed)setPlayerStorageValue(cmed, 212123, 1)doCreatureSay(cid, ""..getCreatureName(mysum)..", control "..string.lower(getCreatureName(cmed)).."'s mind!", 1)local cmname = getCreatureName(mysum)local cmpos = getThingPos(mysum)local pokelife = (getCreatureHealth(mysum) / getCreatureMaxHealth(mysum))doItemSetAttribute(thisball.uid, "hp", pokelife)doRemoveCreature(mysum)local cmzao = doSummonCreature(""..cmname.." cm", cmpos)doConvinceCreature(cid, cmzao)setPlayerStorageValue(cid, 888, 1)if useKpdoDlls thendoUpdateMoves(cid)endlocal function check(cid, controled, rod)if isCreature(cid) thenball2 = getPlayerSlotItem(cid, 8)if getPlayerStorageValue(cid, 888) <= 0 thenreturn trueendif not isCreature(controled) thensetPlayerStorageValue(cid, 212124, 0)local sum = isCreature(getCreatureSummons(cid)[1]) and getCreatureSummons(cid)[1] or getCreatureSummons(cid)[2]local pkcmpos = getThingPos(sum)doRemoveCreature(sum)local item = getPlayerSlotItem(cid, 8)local pk = doSummonCreature(getItemAttribute(item.uid, "poke"), pkcmpos)doConvinceCreature(cid, pk)doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)addEvent(doAdjustWithDelay, 100, cid, pk, true, true, false)setPlayerStorageValue(cid, 888, -1) --alterado v1.7cleanCMcds(item.uid)registerCreatureEvent(pk, "SummonDeath") --alterado v1.6if useKpdoDlls thendoUpdateMoves(cid)endreturn trueendif rod <= 0 then--Pokemon controladolocal cmed2 = getCreatureSummons(cid)[1]local poscmed = getThingPos(cmed2)local cmeddir = getCreatureLookDir(cmed2)local namecmed = getCreatureName(cmed2)local gender = getPokemonGender(cmed2)local hp, maxHp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1])doRemoveCreature(getCreatureSummons(cid)[1])local back = doCreateMonster(namecmed, poscmed)addEvent(doCreatureSetSkullType, 150, back, gender)doWildAttackPlayer(back, cid)doCreatureSetLookDir(back, cmeddir)addEvent(doCreatureAddHealth, 100, back, hp-maxHp)-- pokemon controladorlocal mynewpos = getThingPos(getCreatureSummons(cid)[1])doRemoveCreature(getCreatureSummons(cid)[1])local pk2 = doSummonCreature(getItemAttribute(ball2.uid, "poke"), mynewpos)doConvinceCreature(cid, pk2)addEvent(doAdjustWithDelay, 100, cid, pk2, true, true, false)setPlayerStorageValue(cid, 888, -1) --alterado v1.7doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)setPlayerStorageValue(cid, 212124, 0)cleanCMcds(ball2.uid)registerCreatureEvent(pk2, "SummonDeath") --alterado v1.6if useKpdoDlls thendoUpdateMoves(cid)endelseif isInArray({"Haunter", "Gengar", "Shiny Gengar"}, cmname) thendoSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 214)elsedoSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220)endendendaddEvent(check, 500, cid, controled, rod-1)endcheck(cid, cmed, 40)return trueend----------------------------------------------------------------------------- MOVE / END ---------local onlyWater = falseif isWater(getTileThingByPos(checkpos).itemid) thenonlyWater = truefor checkwater = 0, 7 doif not isWater(getTileThingByPos(getPosByDir(checkpos, checkwater)).itemid) thenonlyWater = falseendendendif onlyWater thendoPlayerSendCancel(cid, "Destination is not reachable.")return trueenddoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1)if isCreature(getCreatureTarget(cid)) thengoThere(mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist)elseaddEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist)end-----------------------------return trueend
O fly, se for mesmo pelo order, já está configurado para free, já que não há nenhuma proteção para não poder voar quem não é vip.
O teleport, é só ir na configuração inicial, no caso, esta:
local config = { premium = false, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas }
E trocar por esta:
local config = { premium = true, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas }
OU
Trocar seu tele.lua por este:
local poke = {'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Porygon2', "Shiny Abra", "Shiny Alakazam", "Shiny Jynx", "Jynx", "Wobbuffet", "Misdreavus", "Shiny Hypno", "Xatu"} local etele = 9499 local cdtele = 300 local config = { premium = false, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas } --[[local places = { [1] = {name = "Saffron", id = 1, sto = 897530}, [2] = {name = "Cerulean", id = 2, sto = 897531}, -- Alterado Teleport, adicionar as storage das city para poder teleporta. [3] = {name = "Lavender", id = 3, sto = 897532}, [4] = {name = "Fuchsia", id = 4, sto = 897533}, [5] = {name = "Celadon", id = 5, sto = 897534}, [6] = {name = "Viridian", id = 6, sto = 897535}, [7] = {name = "Vermilion", id = 7, sto = 897536}, [8] = {name = "Pewter", id = 8, sto = 897537}, [9] = {name = "Pallet", id = 9, sto = 897538}, [10] = {name = "Cinnabar", id = 10, sto = 897539}, [11] = {name = "Snow", id = 11, sto = 897540}, [12] = {name = "Golden", id = 12, sto = 897541}, [13] = {name = "Outland South", id = 27, sto = 897542}, [14] = {name = "Outland Main", id = 28, sto = 897543}, [15] = {name = "Outland North", id = 30, sto = 897544}, } ]] local places = { [1] = {name = "Saffron", id = 1, sto = 897530}, [2] = {name = "Cerulean", id = 2, sto = 897531}, -- Alterado Teleport, adicionar as storage das city para poder teleporta. [3] = {name = "Lavender", id = 3, sto = 897532}, [4] = {name = "Fuchsia", id = 4, sto = 897533}, [5] = {name = "Celadon", id = 5, sto = 897534}, [6] = {name = "Viridian", id = 6, sto = 897535}, [7] = {name = "Vermilion", id = 7, sto = 897536}, [8] = {name = "Pewter", id = 8, sto = 897537}, [9] = {name = "Pallet", id = 9, sto = 897538}, [10] = {name = "Cinnabar", id = 10, sto = 897539}, [11] = {name = "Snow", id = 11, sto = 897540}, [12] = {name = "Golden", id = 12, sto = 897541}, [13] = {name = "Outland South", id = 27, sto = 897542}, [14] = {name = "Outland Main", id = 28, sto = 897543}, [15] = {name = "Outland North", id = 30, sto = 897544}, [16] = {name = "Quest", id = 19, sto = 897545}, } function onSay(cid, words, param) if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use teleport.") return true end if not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) then return 0 end if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9 doPlayerSendCancel(cid, "You can't do that here!") return true end if getPlayerStorageValue(cid, 22545) == 1 then --golden arena doPlayerSendCancel(cid, "You can't do that while the golden arena!") return true end if getPlayerStorageValue(cid, 121213) == 1 then --golden arena doPlayerSendCancel(cid, "You can't do that while the Master Quest!") return true end if getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6 return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!") end if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6 end if getPlayerStorageValue(cid, 98796) >= 1 then return doPlayerSendCancel(cid, "You can't do it in SaffariZone!") --alterado v1.6 end if getCreatureOutfit(cid).lookType == 1034 then return doPlayerSendCancel(cid, "You can't do it while diving!") --alterado v1.6 end if getCreatureOutfit(cid).lookType == 1035 then return doPlayerSendCancel(cid, "You can't do it while diving!") --alterado v1.6 end if exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 then local tempo = tonumber(exhaustion.get(cid, etele)) or 0 local min = math.floor(tempo) doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.") return true end if not isPremium(cid) then doPlayerSendCancel(cid, "Sorry,You need diamond account for use teleport.") return true end if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.") return true end if (param == '') then local str = "" str = str .. "Places to go :\n\nHouse\n" for a = 1, #places do str = str..""..places[a].name.."\n" end doShowTextDialog(cid, 7416, str) return true end local item = getPlayerSlotItem(cid, 8) local nome = getPokeballName(item.uid) local summon = getCreatureSummons(cid)[1] local lastppos = getThingPos(cid) local lastspos = getThingPos(summon) local telepos = {} local myplace = "" local townid = 0 local citySto = 0 --alterado teleport if string.lower(param) == "house" then if not getHouseByPlayerGUID(getPlayerGUID(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.") return true end telepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) myplace = "our home" else for x = 1, #places do if string.find(string.lower(places[x].name), string.lower(param)) then townid = places[x].id myplace = places[x].name citySto = places[x].sto --alterado teleport end end if myplace == "" then doPlayerSendCancel(cid, "That place doesn't exist.") return true end end if myplace ~= "" and townid > 0 then telepos = getTownTemplePosition(townid) end if getDistanceBetween(getThingPos(cid), telepos) <= 15 then doPlayerSendCancel(cid, "You are too near to the place you want to go!") return true end doSendMagicEffect(getThingPos(summon), 29) doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, telepos, false) local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH)) doTeleportThing(summon, pos2, false) doSendMagicEffect(getThingPos(cid), 29) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos) doCreatureSetLookDir(cid, SOUTH) doCreatureSetLookDir(summon, SOUTH) doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT) exhaustion.set(cid, etele, cdtele) return true end
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
O fly, se for mesmo pelo order, já está configurado para free, já que não há nenhuma proteção para não poder voar quem não é vip.
O teleport, é só ir na configuração inicial, no caso, esta:
local config = { premium = false, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas }E trocar por esta:
local config = { premium = true, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas }OU
Trocar seu tele.lua por este:
local poke = {'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Porygon2', "Shiny Abra", "Shiny Alakazam", "Shiny Jynx", "Jynx", "Wobbuffet", "Misdreavus", "Shiny Hypno", "Xatu"} local etele = 9499 local cdtele = 300 local config = { premium = false, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas } --[[local places = { [1] = {name = "Saffron", id = 1, sto = 897530}, [2] = {name = "Cerulean", id = 2, sto = 897531}, -- Alterado Teleport, adicionar as storage das city para poder teleporta. [3] = {name = "Lavender", id = 3, sto = 897532}, [4] = {name = "Fuchsia", id = 4, sto = 897533}, [5] = {name = "Celadon", id = 5, sto = 897534}, [6] = {name = "Viridian", id = 6, sto = 897535}, [7] = {name = "Vermilion", id = 7, sto = 897536}, [8] = {name = "Pewter", id = 8, sto = 897537}, [9] = {name = "Pallet", id = 9, sto = 897538}, [10] = {name = "Cinnabar", id = 10, sto = 897539}, [11] = {name = "Snow", id = 11, sto = 897540}, [12] = {name = "Golden", id = 12, sto = 897541}, [13] = {name = "Outland South", id = 27, sto = 897542}, [14] = {name = "Outland Main", id = 28, sto = 897543}, [15] = {name = "Outland North", id = 30, sto = 897544}, } ]] local places = { [1] = {name = "Saffron", id = 1, sto = 897530}, [2] = {name = "Cerulean", id = 2, sto = 897531}, -- Alterado Teleport, adicionar as storage das city para poder teleporta. [3] = {name = "Lavender", id = 3, sto = 897532}, [4] = {name = "Fuchsia", id = 4, sto = 897533}, [5] = {name = "Celadon", id = 5, sto = 897534}, [6] = {name = "Viridian", id = 6, sto = 897535}, [7] = {name = "Vermilion", id = 7, sto = 897536}, [8] = {name = "Pewter", id = 8, sto = 897537}, [9] = {name = "Pallet", id = 9, sto = 897538}, [10] = {name = "Cinnabar", id = 10, sto = 897539}, [11] = {name = "Snow", id = 11, sto = 897540}, [12] = {name = "Golden", id = 12, sto = 897541}, [13] = {name = "Outland South", id = 27, sto = 897542}, [14] = {name = "Outland Main", id = 28, sto = 897543}, [15] = {name = "Outland North", id = 30, sto = 897544}, [16] = {name = "Quest", id = 19, sto = 897545}, } function onSay(cid, words, param) if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use teleport.") return true end if not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) then return 0 end if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9 doPlayerSendCancel(cid, "You can't do that here!") return true end if getPlayerStorageValue(cid, 22545) == 1 then --golden arena doPlayerSendCancel(cid, "You can't do that while the golden arena!") return true end if getPlayerStorageValue(cid, 121213) == 1 then --golden arena doPlayerSendCancel(cid, "You can't do that while the Master Quest!") return true end if getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6 return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!") end if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6 end if getPlayerStorageValue(cid, 98796) >= 1 then return doPlayerSendCancel(cid, "You can't do it in SaffariZone!") --alterado v1.6 end if getCreatureOutfit(cid).lookType == 1034 then return doPlayerSendCancel(cid, "You can't do it while diving!") --alterado v1.6 end if getCreatureOutfit(cid).lookType == 1035 then return doPlayerSendCancel(cid, "You can't do it while diving!") --alterado v1.6 end if exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 then local tempo = tonumber(exhaustion.get(cid, etele)) or 0 local min = math.floor(tempo) doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.") return true end if not isPremium(cid) then doPlayerSendCancel(cid, "Sorry,You need diamond account for use teleport.") return true end if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.") return true end if (param == '') then local str = "" str = str .. "Places to go :\n\nHouse\n" for a = 1, #places do str = str..""..places[a].name.."\n" end doShowTextDialog(cid, 7416, str) return true end local item = getPlayerSlotItem(cid, 8) local nome = getPokeballName(item.uid) local summon = getCreatureSummons(cid)[1] local lastppos = getThingPos(cid) local lastspos = getThingPos(summon) local telepos = {} local myplace = "" local townid = 0 local citySto = 0 --alterado teleport if string.lower(param) == "house" then if not getHouseByPlayerGUID(getPlayerGUID(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.") return true end telepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) myplace = "our home" else for x = 1, #places do if string.find(string.lower(places[x].name), string.lower(param)) then townid = places[x].id myplace = places[x].name citySto = places[x].sto --alterado teleport end end if myplace == "" then doPlayerSendCancel(cid, "That place doesn't exist.") return true end end if myplace ~= "" and townid > 0 then telepos = getTownTemplePosition(townid) end if getDistanceBetween(getThingPos(cid), telepos) <= 15 then doPlayerSendCancel(cid, "You are too near to the place you want to go!") return true end doSendMagicEffect(getThingPos(summon), 29) doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, telepos, false) local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH)) doTeleportThing(summon, pos2, false) doSendMagicEffect(getThingPos(cid), 29) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos) doCreatureSetLookDir(cid, SOUTH) doCreatureSetLookDir(summon, SOUTH) doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT) exhaustion.set(cid, etele, cdtele) return true end
a parte do tp foi preguiça minha desculpa ASUHAhusHUAS, mas o fly é vip sim, acho que envolve mais alguma script :X
Suponho que seja em fly.lua, localizado em data/movements/scripts.
Poderia postar seu fly.lua, para confirmar se é mesmo lá?
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
aqui esta:
local del = {'460', '1022', '1023', '1024'}
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)position.stackpos = 0if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TVif getPlayerStorageValue(cid, 17000) <= 0 thendoTeleportThing(cid, fromPosition, false)doRemoveItem(getTileThingByPos(position).uid, 1)doPlayerSendCancel(cid, "You can't fly.")return trueenddoAreaCombatHealth(cid, FLYSYSTEMDAMAGE, getThingPos(cid), splash, 0, 0, 255)local pos = getThingPos(cid)if pos.z == 7 then return true endpos.z = pos.z + 1for i = 0, 255 dopos.stackpos = ilocal tile = getTileThingByPos(pos)if tile.itemid ~= 0 and not isCreature(tile.uid) thenif hasProperty(tile.uid, 3) or hasProperty(tile.uid, 7) or tile.itemid == 919 thendoTransformItem(item.uid, 11677)endendendreturn trueendfunction onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TVlocal effect = 2if toPosition.z == fromPosition.z and getCreatureOutfit(cid).lookType ~= 316 and getCreatureOutfit(cid).lookType ~= 648 thendoSendMagicEffect(fromPosition, effect)endlocal oldtpos = fromPositionoldtpos.stackpos = STACKPOS_GROUNDif getTileThingByPos(oldtpos).itemid >= 1 thendoRemoveItem(getTileThingByPos(oldtpos).uid, 1)endreturn trueend
obrigado desde já!
EDIT: Poste seu order.lua, localizado em DATA/LIB.
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
function doPushCreatureTo(uid, direction, distance, speed) --//doPushCreature(creature,getPlayerLookDir(cid))
-- Desenvolvido por Dokmos 30/01/2009-- Apoio Dinastiaslocal pos = getThingPos(uid)local PARAM = {{1}, {500}}local DIRECTION = {{{0,0},{6,7},{1,3}}, {{1,1},{5,7},{0,2}}, {{2,2},{4,5},{1,3}}, {{3,3},{4,6},{0,2}},{{4,4},{2,3}}, {{5,5}, {1,2}}, {{6,6},{0,1}}, {{7,7},{0,3}}}table.insert(PARAM[1], distance)table.insert(PARAM[2], speed)for dvar = 1, #DIRECTION[direction+1] dorand = math.random(2)d = DIRECTION[direction+1][dvar][rand]dir = {x = (math.fmod(d,2)*(-(d-2))+math.floor(d/4)*math.fmod(d,2)*d-math.floor(d/4)), y = (((d-1)*(d-1-(d-1)*math.abs(d-2))*(1-math.floor(d/4)))-(math.floor(d/4)*(math.floor(d/6)*2-1)))}newtile = {x = (pos.x+dir.x), y = (pos.y+dir.y), z = pos.z}if (getTileThingByPos(newtile).uid ~= 0) and (hasProperty(getTileThingByPos(newtile).uid,3) == FALSE) and (queryTileAddThing(uid,newtile) == 1) then break endrand = (math.fmod(rand,2)+1)d = DIRECTION[direction+1][dvar][rand]dir = {x = (math.fmod(d,2)*(-(d-2))+math.floor(d/4)*math.fmod(d,2)*d-math.floor(d/4)), y = (((d-1)*(d-1-(d-1)*math.abs(d-2))*(1-math.floor(d/4)))-(math.floor(d/4)*(math.floor(d/6)*2-1)))}newtile = {x = (pos.x+dir.x), y = (pos.y+dir.y), z = pos.z}if (getTileThingByPos(newtile).uid ~= 0) and (hasProperty(getTileThingByPos(newtile).uid,3) == FALSE) and (queryTileAddThing(uid,newtile) == 1) then break endif (dvar == #DIRECTION[direction+1]) thennewtile = posendenddoTeleportThing(uid, newtile, true)if (PARAM[1][#PARAM[1]] > 1) thenaddEvent(doPushCreature, PARAM[2][#PARAM[2]], uid, direction, (distance-1), speed)endend--///////////////////////////////////////////////////////////////////////////////////////////////////////--local dirpref = {[1] = {[NORTH] = {[1] = {NORTH}, [2] = {EAST, WEST}, [3] = {NORTHEAST, NORTHWEST}},[EAST] = {[1] = {EAST}, [2] = {NORTH, SOUTH}, [3] = {NORTHEAST, SOUTHEAST}},[sOUTH] = {[1] = {SOUTH}, [2] = {EAST, WEST}, [3] = {SOUTHEAST, SOUTHWEST}},[WEST] = {[1] = {WEST}, [2] = {SOUTH, NORTH}, [3] = {NORTHWEST, SOUTHWEST}},[NORTHEAST] = {[1] = {NORTH, EAST}, [2] = {NORTHEAST}, [3] = {SOUTH, WEST}},[sOUTHEAST] = {[1] = {SOUTH, EAST}, [2] = {SOUTHEAST}, [3] = {NORTH, WEST}},[sOUTHWEST] = {[1] = {SOUTH, WEST}, [2] = {SOUTHWEST}, [3] = {NORTH, EAST}},[NORTHWEST] = {[1] = {NORTH, WEST}, [2] = {NORTHWEST}, [3] = {EAST, SOUTH}}},[2] = {[NORTH] = {[1] = {NORTH}, [2] = {WEST, EAST}, [3] = {NORTHWEST, NORTHEAST}},[EAST] = {[1] = {EAST}, [2] = {SOUTH, NORTH}, [3] = {SOUTHEAST, NORTHEAST}},[sOUTH] = {[1] = {SOUTH}, [2] = {WEST, EAST}, [3] = {SOUTHWEST, SOUTHEAST}},[WEST] = {[1] = {WEST}, [2] = {NORTH, SOUTH}, [3] = {SOUTHWEST, NORTHWEST}},[NORTHEAST] = {[1] = {EAST, NORTH}, [2] = {NORTHEAST}, [3] = {WEST, SOUTH}},[sOUTHEAST] = {[1] = {EAST, SOUTH}, [2] = {SOUTHEAST}, [3] = {WEST, NORTH}},[sOUTHWEST] = {[1] = {WEST, SOUTH}, [2] = {SOUTHWEST}, [3] = {EAST, NORTH}},[NORTHWEST] = {[1] = {WEST, NORTH}, [2] = {NORTHWEST}, [3] = {SOUTH, EAST}}},}function doPushCreature(uid,direction,distance,time)if isCreature(uid) == TRUE thenlocal rand = (2*math.random(0,1))-1local rand2 = math.random(-1,0)if direction == 0 thensignal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0}elseif direction == 1 thensignal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0}elseif direction == 2 thensignal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0}elseif direction == 3 thensignal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0}elseif direction == 4 thensignal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0}elseif direction == 5 thensignal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0}elseif direction == 6 thensignal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0}elsesignal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0}endlocal pos = getThingPos(uid)nsig = #signalnvar = 0repeatnvar = nvar+1newpos = {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 canWalkOnPos(newtile, true, false, true, true, false) and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2)--alterado v1.5if distance == nil or distance == 1 thendoTeleportThing(uid,newpos,TRUE)elsedistance = distance-1doTeleportThing(uid,newpos,TRUE)if time ~= nil thenaddEvent(doPushCreature,time,uid,direction,distance,time)elseaddEvent(doPushCreature,500,uid,direction,distance,500)endendendendfunction doComparePosition(pos1, pos2)if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z thenreturn trueendreturn falseendfunction walkTo(cid, direction, finalp, useExtraMoveOrder)if not isCreature(cid) then return true enddoChangeSpeed(cid, 5)local x = getThingPos(cid)local ratedelaywalk = 1local finalpos = {x = finalp.x, y = finalp.y, z = finalp.z}if not canWalkOnPos(finalpos, false, false, true, true, true) thenfinalpos = getClosestFreeTile(cid, finalpos)endif not finalpos thenreturn falseendlocal dir = getDirectionToWalk(cid, finalpos, 2, 0, 0, false, true, 300)if dir and tonumber(dir) ~= nil and tonumber(dir) >= 0 and tonumber(dir) <= 7 thenif dir >= 4 thenratedelaywalk = 0.4enddoPushCreature(cid, dir, 1, getNextStepDelay(cid, dir) * ratedelaywalk)return getNextStepDelay(cid, dir) * ratedelaywalkelseif useExtraMoveOrder thenlocal random = math.random(1, 2)for ta = 1, 3 dofor tb = 1, #dirpref[random][direction][ta] dolocal y = getPosByDir(getThingPos(cid), dirpref[random][direction][ta][tb])local w = getCreatureLP(cid)local z = getDirectionTo(y, getThingPos(cid)) -- direção q vai marcarlocal j = getDirectionTo(getThingPos(cid), y) -- direção q ele vaiif canWalkOnPos(y, true, false, true, true, true) and w ~= j thenif dirpref[random][direction][ta][tb] >= 4 thenratedelaywalk = 0.5enddoPushCreature(cid, dirpref[random][direction][ta][tb], 1, getNextStepDelay(cid, dirpref[random][direction][ta][tb]) * ratedelaywalk)markLP(cid, z)return getNextStepDelay(cid, dirpref[random][direction][ta][tb]) * ratedelaywalkendendendendreturn falseendfunction getCreatureLP(cid)return getPlayerStorageValue(cid, 197)endfunction markLP(cid, dir)setPlayerStorageValue(cid, 197, dir)endfunction markPos(sid, pos)if not isCreature(sid) then return endsetPlayerStorageValue(sid, 145, pos.x)setPlayerStorageValue(sid, 146, pos.y)setPlayerStorageValue(sid, 147, pos.z)endfunction markFlyingPos(sid, pos)if not isCreature(sid) then return endsetPlayerStorageValue(sid, 33145, pos.x)setPlayerStorageValue(sid, 33146, pos.y)setPlayerStorageValue(sid, 33147, pos.z)endfunction getFlyingMarkedPos(sid)if not isCreature(sid) then return endlocal xx = getPlayerStorageValue(sid, 33145)local yy = getPlayerStorageValue(sid, 33146)local zz = getPlayerStorageValue(sid, 33147)return {x = xx, y = yy, z = zz, stackpos = 0}endfunction getMarkedPos(sid)if not isCreature(sid) then return endlocal xx = getPlayerStorageValue(sid, 145)local yy = getPlayerStorageValue(sid, 146)local zz = getPlayerStorageValue(sid, 147)return {x = xx, y = yy, z = zz}endfunction getOwnerPos(sid)if not isCreature(sid) then return endlocal xx = getPlayerStorageValue(sid, 148)local yy = getPlayerStorageValue(sid, 149)local zz = getPlayerStorageValue(sid, 150)return {x = xx, y = yy, z = zz}endfunction markOwnerPos(sid, pos)if not isCreature(sid) then return endsetPlayerStorageValue(sid, 148, pos.x)setPlayerStorageValue(sid, 149, pos.y)setPlayerStorageValue(sid, 150, pos.z)endfunction recheck(sid, skill, pos)if not isCreature(sid) or not isCreature(getCreatureMaster(sid)) then return endlocal cid = getCreatureMaster(sid)if skill == "cut" thenlocal 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)endaddEvent(growBush, intervalToRegrowBushAndStones * 1000)elseif skill == "rock smash" thenlocal 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)endaddEvent(growRock, intervalToRegrowBushAndStones * 1000)elseif skill == "headbutt" then --alterado v1.6local master = getCreatureMaster(sid)local array = {}local lvl = {25, 40, 60, 80, 1000} --lvlsfor i = 1, #lvl doif getPlayerLevel(master) <= lvl thenarray = headbutt[lvl]breakendendlocal rand = array[math.random(#array)]for j = 1, rand[2] dolocal poke = doCreateMonster(rand[1], getClosestFreeTile(sid, pos))doSetMonsterPassive(poke)doWildAttackPlayer(poke, master)endlocal item = getTileItemById(pos, 12672) --id do item arvore normaldoCreatureSay(sid, "HEADBUTT!", TALKTYPE_MONSTER)markPos(sid, {x=1,y=1,z=7})doFaceCreature(sid, pos)doSendMagicEffect(getThingPos(item.uid), 118)doTransformItem(item.uid, 12671) --id do item arvore quebradalocal function growHead()doTransformItem(getTileItemById(pos, 12671).uid, 12672) --id do item arvore quebrada, arvore normalendaddEvent(growHead, choose(1, 3, 5, 10) * 60 * 1000) --o tempo pra arvore voltar ao normal varia de 1~10minelseif skill == "dig" thenlocal 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)endaddEvent(closeHole, intervalToRegrowBushAndStones * 1000)elseif skill == "fly" then--if not isPremium(cid) then--doPlayerSendCancel(cid, "Only premium members are allowed to fly.")--return true--endlocal pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])]doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly/levitate higher and \"down\" or \"h2\" to fly/levitate lower.") --alterado v1.8doChangeSpeed(cid, -getCreatureSpeed(cid))local speed = 500 + PlayerSpeed/5 + getSpeed(sid) * speedRatedoChangeSpeed(cid, speed)setPlayerStorageValue(cid, 54844, speed)doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1)doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))doRemoveCreature(getCreatureSummons(cid)[1])setPlayerStorageValue(cid, 17000, 1)if getCreatureOutfit(cid).lookType == 667 or getCreatureOutfit(cid).lookType == 999 thenmarkPosEff(cid, getThingPos(cid))sendMovementEffect(cid, 136, getThingPos(cid)) --edited efeito quando anda com o porygonendlocal item = getPlayerSlotItem(cid, 8)if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) <= 0 thensendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8endif useOTClient thendoPlayerSendCancel(cid, '12//,hide') --alterado v1.8endreturn trueelseif skill == "ride" thenlocal pokemon = rides[getPokemonName(getCreatureSummons(cid)[1])]doChangeSpeed(cid, -getCreatureSpeed(cid))local speed = 150 + PlayerSpeed + getSpeed(sid) * speedRatedoChangeSpeed(cid, speed)setPlayerStorageValue(cid, 54844, speed)doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1)doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1]))doRemoveCreature(getCreatureSummons(cid)[1])setPlayerStorageValue(cid, 17001, 1)local item = getPlayerSlotItem(cid, 8)if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) <= 0 thensendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8endif useOTClient thendoPlayerSendCancel(cid, '12//,hide') --alterado v1.8endreturn trueendif getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) thendoRegainSpeed(sid)markPos(sid, {x=1,y=1,z=7})return trueendaddEvent(recheck, 120, sid)endfunction goThere(sid, thepos, skill, target, rept)if not isCreature(sid) or not isCreature(getCreatureMaster(sid)) then return true endif getCreatureNoMove(sid) or isSleeping(sid) or isParalyze(sid) then return true end --alterado v1.6if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true endif isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false or (rept and rept <= 0) thendoRegainSpeed(sid)markPos(sid, {x=1,y=1,z=7})return trueendif (skill == "ride" or skill == "fly") and getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 thenlocal currentPos = getThingPos(getCreatureMaster(sid))local summonPos = getThingPos(sid)local masterPos = getCreatureLastPosition(sid)if (getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y) or (currentPos.x == masterPos.x and currentPos.y == masterPos.y) thenrecheck(sid, skill, thepos)return trueendif currentPos.x == thepos.x and currentPos.y == thepos.y thenif getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 thendoRegainSpeed(sid)local ndelay = getNextStepDelay(sid, 0)doTeleportThing(sid, thepos, true)doChangeSpeed(sid, -getCreatureSpeed(sid))markPos(sid, getThingPos(getCreatureMaster(sid)))addEvent(goThere, ndelay, sid, getMarkedPos(sid), skill, target)elsedoChangeSpeed(sid, - getCreatureSpeed(sid))doRegainSpeed(sid)markPos(sid, getThingPos(getCreatureMaster(sid)))local x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly")doChangeSpeed(sid, - getCreatureSpeed(sid))addEvent(goThere, x, sid, getMarkedPos(sid), skill, target)endreturn trueelsemarkPos(sid, getThingPos(getCreatureMaster(sid)))doChangeSpeed(sid, - getCreatureSpeed(sid))doRegainSpeed(sid)local ndelay = getNextStepDelay(sid, 0)if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 thenlocal x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly")elsedoTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))))enddoChangeSpeed(sid, - getCreatureSpeed(sid))addEvent(goThere, x and x or ndelay, sid, getMarkedPos(sid), skill, target)return trueendaddEvent(recheck, 350, sid, skill, thepos)return trueendif getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y thenif isCreature(getCreatureTarget(sid)) thendoFaceCreature(sid, getThingPos(getCreatureTarget(sid)))endif skill == "blink" thendoChangeSpeed(sid, - getCreatureSpeed(sid)) --edited blinkendaddEvent(recheck, 350, sid, skill, thepos)return trueendif (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" thendoRegainSpeed(sid)markPos(sid, {x=1,y=1,z=7})return trueenddoRegainSpeed(sid)local holeid = theposholeid.stackpos = 0holeid = getTileThingByPos(holeid).itemidif getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and (not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), true, false, false, true) or isInArray(specialabilities["digholes"], holeid)) thenif isGhostPokemon(sid) and getPlayerStorageValue(getCreatureMaster(sid), 990) <= 0 thenlocal todir = getDirectionTo(getThingPos(sid), getMarkedPos(sid))if todir <= 3 thendoTeleportThing(sid, getMarkedPos(sid), true)elselocal gotopos = getPosByDir(getThingPos(sid), dirpref[math.random(1, 2)][todir][1][math.random(1, 2)])doTeleportThing(sid, gotopos, true)addEvent(goThere, getNextStepDelay(sid, 0), sid, getMarkedPos(sid), skill, target)return trueendenddoFaceCreature(sid, getMarkedPos(sid))addEvent(recheck, 180, sid, skill, thepos)doChangeSpeed(sid, - getCreatureSpeed(sid))return trueendlocal ret = 0if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 thenret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or isGhostPokemon(sid))if not tonumber(ret) thendoFaceCreature(sid, getMarkedPos(sid))addEvent(recheck, 180, sid, skill, thepos)doChangeSpeed(sid, - getCreatureSpeed(sid))return trueendelse --alteradoret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or not isGhostPokemon(sid))-- and isSightClear(getThingPos(sid), getMarkedPos(sid), false)))endif not tonumber(ret) thendoPlayerSendCancel(getCreatureMaster(sid), "Destination is not reachable.")markPos(sid, {x=1,y=1,z=7})return trueenddoChangeSpeed(sid, - getCreatureSpeed(sid))addEvent(goThere, tonumber(ret), sid, getMarkedPos(sid), skill, target, rept and rept - 1 or 22)end
function doPushCreatureTo(uid, direction, distance, speed) --//doPushCreature(creature,getPlayerLookDir(cid))
end
Agora sim, tem que ser free o fly, já que TODOS os arquivos dele (pelo menos, eu acho) estão agora configurados para ser free.
Qual a base de seu servidor? Pokémon Dash? PDA?
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
pda, obrigado, rep +
De nada \o
Reportado para moverem p/ Pedidos e Dúvidas resolvidos - Servidores Derivados.
Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.
+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
"O fracasso é a oportunidade de se começar de novo inteligentemente"