josegremista 2 Postado Novembro 18, 2012 Share Postado Novembro 18, 2012 Ae Galera estou com um error no ordem de meu poketibia que inves de ele dar ordem tipo da flyr, ride etc ele faz é duel Olhem o seguinte video : http://youtu.be/-NKC3vqZva4 se vcs poderem me ajudar agradeço! Link para o comentário https://xtibia.com/forum/topic/199206-encerrado-error-no-ordem-de-meu-poketibia-by-slicer-ele-da-duel-em-vez-de-da-ordem-para-o-poke/ Compartilhar em outros sites More sharing options...
LuckOake 400 Postado Novembro 18, 2012 Share Postado Novembro 18, 2012 Cara, essa não é a área pra pedir coisa de pokemon. Tópico movido. Link para o comentário https://xtibia.com/forum/topic/199206-encerrado-error-no-ordem-de-meu-poketibia-by-slicer-ele-da-duel-em-vez-de-da-ordem-para-o-poke/#findComment-1390239 Compartilhar em outros sites More sharing options...
josegremista 2 Postado Novembro 18, 2012 Autor Share Postado Novembro 18, 2012 Aki meu ordem.lua que está na pasta actions/scripts 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"}, --alterado v1.6 } function onUse(cid, item, frompos, item2, topos) local checkpos = topos checkpos.stackpos = 0 if 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) then if isInArray({460, 11675, 11676, 11677}, getTileInfo(getThingPos(cid)).itemid) then doPlayerSendCancel(cid, "You can\'t stop flying at this height!") return true end local 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 then doPlayerSendCancel(cid, "You can\'t stop flying above the water!") return true end doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then pk = doCreateMonster(pokemon, backupPos) if not isCreature(pk) then doPlayerSendCancel(cid, "You can't stop flying/riding here.") return true end doConvinceCreature(cid, pk) end doTeleportThing(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) if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) --alterado v1.5 end doRegainSpeed(cid) doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, -1) setPlayerStorageValue(cid, 17001, -1) return true end ----------------------------- -------- DUEL SYSTEM ------------------------ if isPlayer(item2.uid) and (item2.uid ~= cid or getRecorderPlayer(topos) ~= cid) and getPlayerStorageValue(item2.uid, 6598754) <= -1 then --- if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendTextMessage(cid, 20, "You already invited somebody to duel or already is dueling with somebody") end local storages = {17000, 63215, 17001, 13008, 5700} for s = 1, #storages do if getPlayerStorageValue(cid, storages) >= 1 then return doPlayerSendTextMessage(cid, 20, "You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!") end end if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then return doPlayerSendTextMessage(cid, 20, "You can't do that while in PVP zone!") end --- doPlayerSetVocation(cid, 8) openChannelDialog(cid) setPlayerStorageValue(cid, 52480, 1) setPlayerStorageValue(cid, 6598754, 5) --alterado v1.6 duel system setPlayerStorageValue(cid, 52482, getCreatureName(item2.uid)) setPlayerStorageValue(cid, 52483, 0) doPlayerSendTextMessage(item2.uid, 20, getCreatureName(cid).." is inviting you to a duel! Use order in him to accept it! You have 40segs to accept the invit.") doCreatureSetSkullType(cid, 2) addEvent(endInviting, 40000, cid) return true elseif isPlayer(item2.uid) and (item2.uid ~= cid or getRecorderPlayer(topos) ~= cid) and getPlayerStorageValue(item2.uid, 6598754) == 5 then --- if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendTextMessage(cid, 20, "You already invited somebody to duel or already is dueling with somebody") end local storages = {17000, 63215, 17001, 13008, 5700} for s = 1, #storages do if getPlayerStorageValue(cid, storages) >= 1 then return doPlayerSendTextMessage(cid, 20, "You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!") end end if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then return doPlayerSendTextMessage(cid, 20, "You can't do that while in PVP zone!") end --- local function begin(cid, pid, n) if not isCreature(cid) or not isCreature(pid) then return true end if n == 0 then setPlayerStorageValue(cid, 6598754, 10) setPlayerStorageValue(cid, 52482, getCreatureName(pid)) doSendAnimatedText(getThingPosWithDebug(cid), "START", 215) doSendAnimatedText(getThingPosWithDebug(pid), "START", 215) return true else doSendAnimatedText(getThingPosWithDebug(cid), ""..n.."!", 215) n = n-1 end addEvent(begin, 1000, cid, pid, n) end --- setPlayerStorageValue(cid, 52480, 1) setPlayerStorageValue(getRecorderPlayer(topos), 52483, 1) if getPlayerStorageValue(cid, 52481) <= -1 and getPlayerStorageValue(item2.uid, 52481) >= 0 then setPlayerStorageValue(cid, 52481, getPlayerStorageValue(item2.uid, 52481)) end doCreatureSetSkullType(cid, 1) doCreatureSetSkullType(item2.uid, 1) doSendAnimatedText(getThingPos(cid), "BATTLE", COLOR_ELECTRIC) begin(cid, item2.uid, 6) return true end ------------------------------------------------------------------------------------ if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "You need a pokemon to use order!") end if getCreatureNoMove(getCreatureSummons(cid)[1]) then return true end markLP(getCreatureSummons(cid)[1], -1) if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then return true end local unfix = {x = 1, y = 1, z = 1} local thisball = getPlayerSlotItem(cid, 8) local mysum = getCreatureSummons(cid)[1] local sid = mysum or cid local maxMoveDist = getDistanceBetween(getThingPos(sid), topos) * 2 + 1 markPos(mysum, topos) markOwnerPos(mysum, getThingPos(cid)) -------- ROCK SMASH --------- if item2.itemid == 1285 and isInArray(skills["rock smash"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["rock smash"][math.random(1, #txt["rock smash"])].."", 1) addEvent(goThere, 500, mysum, topos, "rock smash", isCreature(getCreatureTarget(cid))) return true end ----------------------------- -------- HEADBUTT ----------- if item2.itemid == 12591 and getPokemonLevel(mysum) >= 15 then --alterado v1.6 --id do item arvore normal doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["headbutt"][math.random(1, #txt["headbutt"])].."", 1) addEvent(goThere, 500, mysum, topos, "headbutt", isCreature(getCreatureTarget(cid))) return true end ----------------------------- -------- CUT ---------------- if item2.itemid == 2767 and isInArray(skills["cut"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["cut"][math.random(1, #txt["cut"])].."", 1) addEvent(goThere, 500, mysum, topos, "cut", isCreature(getCreatureTarget(cid))) return true end ----------------------------- -------- TRANSFORM ---------- if (getCreatureName(mysum) == "Ditto" or getCreatureName(mysum) == "Shiny Ditto") and isMonster(item2.uid) then if item2.uid == mysum then --edited if isTransformed(mysum) then deTransform(mysum, getItemAttribute(thisball.uid, "transTurn")) markPos(mysum, unfix) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["untransform"][math.random(1, #txt["untransform"])].."", 1) return true end doPlayerSendCancel(cid, "Your ditto is not transformed.") markPos(mysum, unfix) return true end if getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) == "Shiny Ditto" then --edited transform for shiny ditto doPlayerSendCancel(cid, "Your ditto can't transform into another ditto.") markPos(mysum, unfix) return true end if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then doPlayerSendCancel(cid, "Your ditto is already transformed into that pokemon.") markPos(mysum, unfix) return true end local cd = getCD(thisball.uid, "trans", 40) if cd > 0 then doPlayerSendCancel(cid, "Your pokemon is too tired to transform again. Cooldown: ("..getStringmytempo(cd)..")") return true end if getHappiness(mysum) <= 50 then doSendMagicEffect(getThingPos(mysum), happinessRate[1].effect) markPos(mysum, unfix) return true end local turn = getItemAttribute(thisball.uid, "transTurn") if not turn or turn > 10 then doItemSetAttribute(thisball.uid, "transTurn", 0) else doItemSetAttribute(thisball.uid, "transTurn", turn + 1) end local time = 140 + 2 * getPokemonLevel(mysum) turn = getItemAttribute(thisball.uid, "transTurn") markPos(mysum, unfix) setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid)) doSetCreatureOutfit(mysum, getCreatureOutfit(item2.uid), -1) addEvent(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", getCreatureOutfit(item2.uid).lookType) doSetItemAttribute(thisball.uid, "transName", getCreatureName(item2.uid)) doFaceCreature(mysum, getThingPos(item2.uid)) doPlayerSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", 1) if useKpdoDlls then doUpdateMoves(cid) --alterado v1.6 end if dittoCopiesStatusToo then setPlayerStorageValue(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)) / 100 setCreatureMaxHealth(mysum, ( vit * HPperVITsummon )) --alterado v1.6 doCreatureAddHealth(mysum, pct * vit * HPperVITsummon) end return true end ----------------------------- -------- LIGHT -------------- if isMonster(item2.uid) and getCreatureMaster(item2.uid) == cid then markPos(mysum, unfix) if not isInArray(skills["light"], getPokemonName(item2.uid)) then doPlayerSendCancel(cid, "Your pokemon can't use flash.") return true end local cd = getCD(thisball.uid, "light", 30) if cd > 0 then doPlayerSendCancel(cid, "Your pokemon is too tired to use flash. Cooldown: ("..getStringmytempo(cd)..")") return true end doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["light"][math.random(1, #txt["light"])].."", 1) doCreatureSay(mysum, "FLASH!", TALKTYPE_MONSTER) doSendMagicEffect(getThingPos(mysum), 28) local size = 5 size = size + math.floor(getSpecialAttack(mysum) / 60) size = size + math.ceil(getPokemonLevel(mysum) / 60) if size > 11 then size = 11 end doSetCreatureLight(mysum, size, 215, 600*1000) local delay = math.floor(30 - getPokemonLevel(mysum) / 4) if delay > 0 then setCD(thisball.uid, "light", delay) end return true end ----------------------------- -------- DIG ---------------- if isInArray(skills["digholes"], item2.itemid) and isInArray(skills["dig"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["dig"][math.random(1, #txt["dig"])].."", 1) addEvent(goThere, 500, mysum, topos, "dig", isCreature(getCreatureTarget(cid))) return true end ----------------------------- -------- BLINK / MOVE ------- if not isCreature(item2.uid) and isInArray(skills["blink"], getPokemonName(mysum)) then local cd = getCD(thisball.uid, "blink", 30) if getPlayerStorageValue(mysum, 2365487) == 1 then return true --alterado v1.4 end if cd > 0 or not canWalkOnPos(topos, false, false, true, true, true) then doPlayerSendCancel(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 true end local CD = isShinyName(getCreatureName(mysum)) and 20 or 30 --edited blink markPos(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 blink return true end ----------------------------- ----START FLYorRIDE --------- if (item2.uid == cid or getRecorderPlayer(topos) == cid) and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["ride"], getPokemonName(mysum))) then --if not isPremium(cid) then --doPlayerSendCancel(cid, "Only premium members are allowed to fly or ride.") --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, 5700) == 1 then doPlayerSendCancel(cid, "You can't do that while is mount in a bike!") --edited proteçao pra bike return true end if getPlayerStorageValue(cid, 22545) >= 1 and isInArray(skills["fly"], getPokemonName(mysum)) then --alterado v1.4 return doPlayerSendCancel(cid, "You can't do that while in the Golden Arena!") end local pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", 1 - pct) if isInArray(skills["fly"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["fly"][math.random(1, #txt["fly"])].."", 1) addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid))) else doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["ride"][math.random(1, #txt["ride"])].."", 1) addEvent(goThere, 500, mysum, topos, "ride", isCreature(getCreatureTarget(cid))) end return true end ----------------------------- ----------------------------------Control Mind-------------------------------------------- alterado v1.5 if isCreature(item2.uid) and ehMonstro(item2.uid) and isInArray(skills["control mind"], getCreatureName(mysum)) and item2.uid ~= mysum then if not isCreature(item2.uid) then return true end if isSleeping(mysum) then return doPlayerSendCancel(cid, "Your pokemon is sleeping...zZzZ") end if getTileInfo(getThingPos(cid)).protection or getTileInfo(getThingPos(getCreatureSummons(cid)[1])).protection then return doPlayerSendCancel(cid, "You or your pokemon are in Pz zone!") end if #getCreatureSummons(cid) == 2 then return doPlayerSendCancel(cid, "You only can control one Pokemon!") end local cd = getCD(thisball.uid, "control", 120) if cd > 0 then doPlayerSendCancel(cid, "You have to wait "..cd.." segs to use Control Mind again!") return true end if getPokemonLevel(item2.uid) >= getPokemonLevel(mysum) then return doPlayerSendCancel(cid, "Your pokemon can't control this mind!") end local cmed = item2.uid setCD(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 then doUpdateMoves(cid) end local function check(cid, controled, rod) if isCreature(cid) then ball2 = getPlayerSlotItem(cid, 8) if getPlayerStorageValue(cid, 888) <= 0 then return true end if not isCreature(controled) then setPlayerStorageValue(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, 0) cleanCMcds(item.uid) registerCreatureEvent(pk, "SummonDeath") --alterado v1.6 if useKpdoDlls then doUpdateMoves(cid) end return true end if rod <= 0 then --Pokemon controlado local 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 controlador local 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, 0) doCreatureSetLookDir(getCreatureSummons(cid)[1], 2) setPlayerStorageValue(cid, 212124, 0) cleanCMcds(ball2.uid) registerCreatureEvent(pk2, "SummonDeath") --alterado v1.6 if useKpdoDlls then doUpdateMoves(cid) end else if isInArray({"Haunter", "Gengar", "Shiny Gengar"}, cmname) then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 214) else doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220) end end end addEvent(check, 500, cid, controled, rod-1) end check(cid, cmed, 40) return true end --------------------------------------------------------------------- -------- MOVE / END --------- local onlyWater = false if isWater(getTileThingByPos(checkpos).itemid) then onlyWater = true for checkwater = 0, 7 do if not isWater(getTileThingByPos(getPosByDir(checkpos, checkwater)).itemid) then onlyWater = false end end end if onlyWater then doPlayerSendCancel(cid, "Destination is not reachable.") return true end doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1) if isCreature(getCreatureTarget(cid)) then goThere(mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) else addEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) end ----------------------------- return true end Agora esse é o Ordem.lua que está na pasta Lib 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 then local rand = (2*math.random(0,1))-1 local rand2 = math.random(-1,0) if direction == 0 then signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0} elseif direction == 1 then signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 2 then signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0} elseif direction == 3 then signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 4 then signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0} elseif direction == 5 then signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0} elseif direction == 6 then signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0} else signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0} end local pos = getThingPos(uid) nsig = #signal nvar = 0 repeat nvar = nvar+1 newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z} newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0} until getTileThingByPos(newtile).uid ~= 0 and hasProperty(getTileThingByPos(newtile).uid,3) == FALSE and canWalkOnPos(newtile, true, false, true, true, false) and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2) --alterado v1.5 if distance == nil or distance == 1 then doTeleportThing(uid,newpos,TRUE) else distance = distance-1 doTeleportThing(uid,newpos,TRUE) if time ~= nil then addEvent(doPushCreature,time,uid,direction,distance,time) else addEvent(doPushCreature,500,uid,direction,distance,500) end end end end function doComparePosition(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end function walkTo(cid, direction, finalp, useExtraMoveOrder) if not isCreature(cid) then return true end doChangeSpeed(cid, 5) local x = getThingPos(cid) local ratedelaywalk = 1 local finalpos = {x = finalp.x, y = finalp.y, z = finalp.z} if not canWalkOnPos(finalpos, false, false, true, true, true) then finalpos = getClosestFreeTile(cid, finalpos) end if not finalpos then return false end local dir = getDirectionToWalk(cid, finalpos, 2, 0, 0, false, true, 300) if dir and tonumber(dir) ~= nil and tonumber(dir) >= 0 and tonumber(dir) <= 7 then if dir >= 4 then ratedelaywalk = 0.4 end doPushCreature(cid, dir, 1, getNextStepDelay(cid, dir) * ratedelaywalk) return getNextStepDelay(cid, dir) * ratedelaywalk elseif useExtraMoveOrder then local random = math.random(1, 2) for ta = 1, 3 do for tb = 1, #dirpref[random][direction][ta] do local y = getPosByDir(getThingPos(cid), dirpref[random][direction][ta][tb]) local w = getCreatureLP(cid) local z = getDirectionTo(y, getThingPos(cid)) -- direção q vai marcar local j = getDirectionTo(getThingPos(cid), y) -- direção q ele vai if canWalkOnPos(y, true, false, true, true, true) and w ~= j then if dirpref[random][direction][ta][tb] >= 4 then ratedelaywalk = 0.5 end doPushCreature(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]) * ratedelaywalk end end end end return false end function getCreatureLP(cid) return getPlayerStorageValue(cid, 197) end function markLP(cid, dir) setPlayerStorageValue(cid, 197, dir) end function markPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 145, pos.x) setPlayerStorageValue(sid, 146, pos.y) setPlayerStorageValue(sid, 147, pos.z) end function markFlyingPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 33145, pos.x) setPlayerStorageValue(sid, 33146, pos.y) setPlayerStorageValue(sid, 33147, pos.z) end function getFlyingMarkedPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 33145) local yy = getPlayerStorageValue(sid, 33146) local zz = getPlayerStorageValue(sid, 33147) return {x = xx, y = yy, z = zz, stackpos = 0} end function getMarkedPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 145) local yy = getPlayerStorageValue(sid, 146) local zz = getPlayerStorageValue(sid, 147) return {x = xx, y = yy, z = zz} end function getOwnerPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 148) local yy = getPlayerStorageValue(sid, 149) local zz = getPlayerStorageValue(sid, 150) return {x = xx, y = yy, z = zz} end function markOwnerPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 148, pos.x) setPlayerStorageValue(sid, 149, pos.y) setPlayerStorageValue(sid, 150, pos.z) end function recheck(sid, skill, pos) if not isCreature(sid) or not isCreature(getCreatureMaster(sid)) then return end local cid = getCreatureMaster(sid) if skill == "cut" then local item = getTileItemById(pos, 2767) doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 141) doTransformItem(item.uid, 6216) local function growBush() doTransformItem(getTileItemById(pos, 6216).uid, 2767) end addEvent(growBush, intervalToRegrowBushAndStones * 1000) elseif skill == "rock smash" then local item = getTileItemById(pos, 1285) doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 118) doTransformItem(item.uid, 3610) local function growRock() doTransformItem(getTileItemById(pos, 3610).uid, 1285) end addEvent(growRock, intervalToRegrowBushAndStones * 1000) elseif skill == "headbutt" then --alterado v1.6 local master = getCreatureMaster(sid) local array = {} local lvl = {25, 40, 60, 80, 1000} --lvls for i = 1, #lvl do if getPlayerLevel(master) <= lvl then array = headbutt[lvl] break end end local rand = array[math.random(#array)] for j = 1, rand[2] do local poke = doCreateMonster(rand[1], getClosestFreeTile(sid, pos)) doSetMonsterPassive(poke) doWildAttackPlayer(poke, master) end local item = getTileItemById(pos, 12591) --id do item arvore normal doCreatureSay(sid, "HEADBUTT!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 118) doTransformItem(item.uid, 12592) --id do item arvore quebrada local function growHead() doTransformItem(getTileItemById(pos, 12592).uid, 12591) --id do item arvore quebrada, arvore normal end addEvent(growHead, choose(5, 10, 20, 30) * 60 * 1000) --o tempo pra arvore voltar ao normal varia de 5~30min elseif skill == "dig" then local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 3) doTransformItem(item.uid, item.itemid+1) local function closeHole() doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid) end addEvent(closeHole, intervalToRegrowBushAndStones * 1000) elseif skill == "fly" then --if not isPremium(cid) then --doPlayerSendCancel(cid, "Only premium members are allowed to fly.") --return true --end local pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])] doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.") doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 500 + PlayerSpeed/5 + getSpeed(sid) * 6 * speedRate doChangeSpeed(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 then markPosEff(cid, getThingPos(cid)) sendMovementEffect(cid, 136, getThingPos(cid)) --edited efeito quando anda com o porygon end return true elseif skill == "ride" then local pokemon = rides[getPokemonName(getCreatureSummons(cid)[1])] doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 150 + PlayerSpeed + getSpeed(sid) * 5 * speedRate doChangeSpeed(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) return true end if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then doRegainSpeed(sid) markPos(sid, {x=1,y=1,z=7}) return true end addEvent(recheck, 120, sid) end function goThere(sid, thepos, skill, target, rept) if not isCreature(sid) or not isCreature(getCreatureMaster(sid)) then return true end if getCreatureNoMove(sid) or isSleeping(sid) or isParalyze(sid) then return true end --alterado v1.6 if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false or (rept and rept <= 0) then doRegainSpeed(sid) markPos(sid, {x=1,y=1,z=7}) return true end if (skill == "ride" or skill == "fly") and getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then local 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) then recheck(sid, skill, thepos) return true end if currentPos.x == thepos.x and currentPos.y == thepos.y then if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then doRegainSpeed(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) else doChangeSpeed(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) end return true else markPos(sid, getThingPos(getCreatureMaster(sid))) doChangeSpeed(sid, - getCreatureSpeed(sid)) doRegainSpeed(sid) local ndelay = getNextStepDelay(sid, 0) if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then local x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly") else doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid)))) end doChangeSpeed(sid, - getCreatureSpeed(sid)) addEvent(goThere, x and x or ndelay, sid, getMarkedPos(sid), skill, target) return true end addEvent(recheck, 350, sid, skill, thepos) return true end if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then if isCreature(getCreatureTarget(sid)) then doFaceCreature(sid, getThingPos(getCreatureTarget(sid))) end if skill == "blink" then doChangeSpeed(sid, - getCreatureSpeed(sid)) --edited blink end addEvent(recheck, 350, sid, skill, thepos) return true end if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then doRegainSpeed(sid) markPos(sid, {x=1,y=1,z=7}) return true end doRegainSpeed(sid) local holeid = thepos holeid.stackpos = 0 holeid = getTileThingByPos(holeid).itemid if 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)) then if isGhostPokemon(sid) and getPlayerStorageValue(getCreatureMaster(sid), 990) <= 0 then local todir = getDirectionTo(getThingPos(sid), getMarkedPos(sid)) if todir <= 3 then doTeleportThing(sid, getMarkedPos(sid), true) else local 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 true end end doFaceCreature(sid, getMarkedPos(sid)) addEvent(recheck, 180, sid, skill, thepos) doChangeSpeed(sid, - getCreatureSpeed(sid)) return true end local ret = 0 if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then ret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or isGhostPokemon(sid)) if not tonumber(ret) then doFaceCreature(sid, getMarkedPos(sid)) addEvent(recheck, 180, sid, skill, thepos) doChangeSpeed(sid, - getCreatureSpeed(sid)) return true end else --alterado ret = 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))) end if not tonumber(ret) then doPlayerSendCancel(getCreatureMaster(sid), "Destination is not reachable.") markPos(sid, {x=1,y=1,z=7}) return true end doChangeSpeed(sid, - getCreatureSpeed(sid)) addEvent(goThere, tonumber(ret), sid, getMarkedPos(sid), skill, target, rept and rept - 1 or 22) end Se esse tipico estiver na area incorreta peço que movam para area correta A Ah eu não fiz nenhum pedido só estou com uma duvida no meu ordem que está errado em vez de mandar o poke fazer algo , manda é duelo Link para o comentário https://xtibia.com/forum/topic/199206-encerrado-error-no-ordem-de-meu-poketibia-by-slicer-ele-da-duel-em-vez-de-da-ordem-para-o-poke/#findComment-1390240 Compartilhar em outros sites More sharing options...
Stigal 585 Postado Abril 20, 2018 Share Postado Abril 20, 2018 A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. + 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. Link para o comentário https://xtibia.com/forum/topic/199206-encerrado-error-no-ordem-de-meu-poketibia-by-slicer-ele-da-duel-em-vez-de-da-ordem-para-o-poke/#findComment-1732759 Compartilhar em outros sites More sharing options...
Posts Recomendados