Postado Outubro 11, 2019 5 anos ENTÃO GENTE O ORDER ESTA FUNCIONANDO, POREM SE EU ESTIVER ATACANDO UM POKEMON E QUEIRA USAR O ORDER PARA QUE MEU POKEMON FIQUE DE FRENTE PARA USAR UMA HABILIDADE QUE QUE SO DE DANO EM LINHA RETA ELE NÃO SE MOVE SE EU TENTAR MANDAR PRA LONGE TAMBÉM ELE NÃO SE MOVEDE TODO MODO SE EU COLOCAR PRA ATACAR O ORDER DEIXA DE FUNCIONAR SE EU QUIZER MOVER TENHO QUE TIRAR O ATACK POR GENTILEZA ME AJUDEM COM ISSO, EXISTEM 2 ARQUIVOS COM NOME ORDER VOU POSTA-LOSLIB/ORDER Mostrar conteúdo oculto function doPushCreatureTo(uid, direction, distance, speed) --//doPushCreature(creature,getPlayerLookDir(cid)) -- Desenvolvido por Dokmos 30/01/2009 -- Apoio Dinastias local 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] do rand = 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 end rand = (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 end if (dvar == #DIRECTION[direction+1]) then newtile = pos end end doTeleportThing(uid, newtile, true) if (PARAM[1][#PARAM[1]] > 1) then addEvent(doPushCreature, PARAM[2][#PARAM[2]], uid, direction, (distance-1), speed) end end --///////////////////////////////////////////////////////////////////////////////////////////////////////-- 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 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 ACTIONS/ORDER Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, frompos, item2, topos) if getCreatureCondition(cid, CONDITION_EXHAUST) or isWatchingTv(cid) then return true end doAddCondition(cid, ordercondition) local pPos = getThingPos(cid) pPos.stackpos = 0 local pos = getThingFromPos(pPos) if isSurf(cid) or isInArray(11756, item2.itemid) or item2.itemid == 11756 or isInArray(11756, pos.itemid) or pos.itemid == 11756 or isInArray({11756, 11675, 11676, 460}, pos.itemid) then return doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL) end if item2.uid == cid then -- demound poke if isPlayer(item2.uid) and isInDuel(item2.uid) then return doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL) end if isRiderOrFlyOrSurf(cid) then local ball = getPlayerSlotItem(cid, ? doGoPokemonInOrder(cid, ball, false) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSay(cid, getCreatureNick(getCreatureSummons(cid)[1]) .. orderTalks["downability"].talks[math.random(#orderTalks["downability"].talks)]) doRegainSpeed(cid) setPlayerStorageValue(cid, orderTalks["ride"].storage, -1) setPlayerStorageValue(cid, orderTalks["fly"].storage, -1) doPlayerSendCancel(cid, '12//,show') return true end end --- ride/fly retirada if isRiderOrFlyOrSurf(cid) then return doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL) end if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Você precisa de um pokemon para usar o order.") end local poke = getCreatureSummons(cid)[1] local pokeName = getCreatureNick(poke) local habilidades = getPokemonSkills(getCreatureName(poke)) if item2.uid == cid then if isFight(cid) then -- Edição pra ficar igual pxg.. nao dar fly ou ride com fight setMoveSummon(cid, false) addEvent(doMovePokeToPos, 5, poke, getThingPos(cid)) return true end if isMega(poke) then return doPlayerSendCancel(cid, "Pokemons megas não tem habilidades de fly/ride.") end local pb = getPlayerSlotItem(cid, 8).uid if flyAdd then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute (pb, "addon")}, -1) end elseif rideAdd then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute (pb, "addon")}, -1) end end if isPlayer(item2.uid) and (isInDuel(item2.uid) or getCreatureSkullType(item2.uid) == SKULL_WHITE or getCreatureSkullType(item2.uid) == 1 or getCreatureSkullType(item2.uid) == 2) then return doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL) end if not (getThingPos(poke) or getThingPos(item2.uid)) then -- correção de um erro. return true end local dist = getDistanceBetween(getThingPos(poke), getThingPos(item2.uid)) --- ride if string.find(habilidades, "ride") then doPlayerSay(cid, pokeName..orderTalks["ride"].talks[math.random(#orderTalks["ride"].talks)]) if dist == 1 then doUp(cid, poke, "ride") return true end setMoveSummon(cid, false) addEvent(doMovePokeToPos, 200, poke, topos) setPlayerStorageValue(poke, orderTalks["ride"].storage, 1) elseif string.find(habilidades, "fly") or string.find(habilidades, "levitate") then if string.find(habilidades, "levitate") then doPlayerSay(cid, pokeName..orderTalks["levitate"].talks[math.random(#orderTalks["levitate"].talks)]) else doPlayerSay(cid, pokeName..orderTalks["fly"].talks[math.random(#orderTalks["fly"].talks)]) end if dist == 1 then doUp(cid, poke, "fly") return true end setMoveSummon(cid, false) addEvent(doMovePokeToPos, 200, poke, topos) setPlayerStorageValue(poke, orderTalks["fly"].storage, 1) end ----------------- Ditto ----------------- elseif isMonster(item2.uid) and isInArray({"Shiny Ditto", "Ditto"}, getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")) then local listaproibidos = {"Mew", "Mewtwo"} if isInArray(listaproibidos, getCreatureName(item2.uid)) then doSendMsg(cid, "Seu ditto não pode se transformar nesse pokemon.") return true end if isPlayer(item2.uid) and isInDuel(item2.uid) then return doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL) end local listaproibidos = {"Mew", "Mewtwo", "groudon", "suicune", "raiko", "entei", "moltres", "articuno", "zapdos", "rayquaza"} if isInArray(listaproibidos, getCreatureName(item2.uid)) then doSendMsg(cid, "Seu ditto não pode se transformar nesse pokemon.") return true end if isPlayerSummon(cid, item2.uid) and isInArray({"Shiny Ditto", "Ditto"}, getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")) and not isInArray({"Shiny Ditto", "Ditto"}, getItemAttribute(getPlayerSlotItem(cid, 8).uid, "copyName")) then doCopyPokemon(poke, getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke"), true) doPlayerSay(cid, getCreatureNick(getCreatureSummons(cid)[1])..", reverta-se.") return true elseif not isPlayerSummon(cid, item2.uid) and getPokeName(item2.uid) ~= getPokeName(poke) then if isSummon(item2.uid) then if getPlayerSlotItem(getCreatureMaster(item2.uid), 8).uid ~= 0 and isInArray({"Shiny Ditto", "Ditto"}, getItemAttribute(getPlayerSlotItem(getCreatureMaster(item2.uid), 8).uid, "poke")) then doSendMsg(cid, "Você não pode fazer uma copia de um outro ditto.") return true end end local thingName = doCorrectString(getCreatureName(item2.uid)) if pokes[thingName].level > getPlayerLevel(cid) then doSendMsg(cid, "Você não tem level para copiar este pokémon.") return true end doCopyPokemon(poke, thingName, true) return true end ----------------- Mover ----------------- elseif not isCreature(item2.uid) then setMoveSummon(cid, false) doEreaseUsingOrder(poke) local oldTopos = getThingPos(item2.uid) local oldTopos_2 = topos local x, y = 0, 0 if (topos.x - getThingPos(poke).x) > 0 then topos.x = topos.x +1 elseif (topos.x - getThingPos(poke).x) < 0 then topos.x = topos.x -1 end if (topos.y - getThingPos(poke).y) > 0 then topos.y = topos.y +1 elseif (topos.y - getThingPos(poke).y) < 0 then topos.y = topos.y -1 end setPlayerStorageValue(poke, 505, getThingPos(cid).x) setPlayerStorageValue(poke, 506, getThingPos(cid).y) addEvent(doMovePokeToPos, 5, poke, topos) doWalkAgain(poke) ----- Edições dig/cut/rock smash/headbutt/blink local buracos = {468, 481, 483} local arvores = {2767, 2768} local pedras = {1285, 3634, 3632, 3667} local headbutt = {2707} if item2.uid == 0 then return true end local pos = getThingPos(item2.uid) local dist = getDistanceBetween(getThingPos(poke), getThingPos(item2.uid)) if isInArray(buracos, item2.itemid) then ----------------------- DIG if not string.find(habilidades, "dig") then return doPlayerSendCancel(cid, "Esse pokemon não tem a habilidade de cavar.") end doMarkedPos(poke, getThingPos(item2.uid)) doEreaseUsingOrder(cid) setPlayerStorageValue(poke, orderTalks["dig"].storage, 1) setMoveSummon(cid, false) if dist == 1 then recheck(poke, "cut", getThingPos(item2.uid)) else addEvent(doMovePokeToPos, 200, poke, topos) end doPlayerSay(cid, getCreatureNick(poke)..orderTalks["dig"].talks[math.random(#orderTalks["dig"].talks)]) return true elseif isInArray(arvores, item2.itemid) then ----------------------- CUT if not string.find(habilidades, "cut") then return doPlayerSendCancel(cid, "Esse pokemon não tem a habilidade de cortar.") end doMarkedPos(poke, getThingPos(item2.uid)) doEreaseUsingOrder(cid) setPlayerStorageValue(poke, orderTalks["cut"].storage, 1) setMoveSummon(cid, false) if dist == 1 then addEvent(recheck, (1000 - (2.3*getCreatureSpeed(poke))) * dist, poke, "cut", getThingPos(item2.uid)) else addEvent(doMovePokeToPos, 200, poke, topos) end doPlayerSay(cid, getCreatureNick(poke)..orderTalks["cut"].talks[math.random(#orderTalks["cut"].talks)]) return true elseif isInArray(pedras, item2.itemid) then ----------------------- ROCK if not string.find(habilidades, "rock smash") then return doPlayerSendCancel(cid, "Esse pokemon não tem a habilidade de quebrar.") end local pos = getThingPos(item2.uid) doMarkedPos(poke, getThingPos(item2.uid)) doEreaseUsingOrder(cid) setPlayerStorageValue(poke, orderTalks["rock"].storage, 1) setMoveSummon(cid, false) if dist == 1 then addEvent(recheck, (1000 - (2.3*getCreatureSpeed(poke))) * dist, poke, "rock", getThingPos(item2.uid)) else addEvent(doMovePokeToPos, 200, poke, topos) end doPlayerSay(cid, getCreatureNick(poke)..orderTalks["rock"].talks[math.random(#orderTalks["rock"].talks)]) return true elseif isInArray(headbutt, item2.itemid) then ----------------------- HEAD if not string.find(habilidades, "headbutt") then return doPlayerSendCancel(cid, "Esse pokemon nao tem a habilidade de balancar Arvores.") end local pos = getThingPos(item2.uid) doMarkedPos(poke, getThingPos(item2.uid)) doEreaseUsingOrder(cid) setPlayerStorageValue(poke, orderTalks["headbutt"].storage, 1) setMoveSummon(cid, false) if dist <= 1 then addEvent(recheck, (1000 - (2.3*getCreatureSpeed(poke))) * dist, poke, "headbutt", getThingPos(item2.uid)) else addEvent(doMovePokeToPos, 200, poke, topos) end doPlayerSay(cid, getCreatureNick(poke)..orderTalks["headbutt"].talks[math.random(#orderTalks["headbutt"].talks)]) return true end if string.find(habilidades, "blink") then if os.time() < getPlayerStorageValue(poke, storages.blink) and not isGod(cid) then doPlayerSay(cid, getCreatureNick(poke)..orderTalks["move"].talks[math.random(#orderTalks["move"].talks)]) return true elseif (getCreatureSkullType(cid) == SKULL_WHITE or isInDuel(cid)) and getTileInfo(getThingPos(item2.uid)).protection then doSendMsg(cid, "Você não pode usar blink em protection zone quando está em duelo.") return true end setPlayerStorageValue(poke, storages.blink, os.time()+7) doSendMagicEffect(getThingPos(poke), 134) doTeleportThing(poke, getThingPos(item2.uid), false) doSendMagicEffect(getThingPos(poke), 134) doPlayerSay(cid, getCreatureNick(poke)..orderTalks["blink"].talks[math.random(#orderTalks["blink"].talks)]) return true end doPlayerSay(cid, getCreatureNick(poke)..orderTalks["move"].talks[math.random(#orderTalks["move"].talks)]) end return true end function isGhost(cid) local hab = getPokemonSkills(string.lower(getPokeName(cid))) if string.find(hab, "ghost") then return true end return false end
Postado Outubro 19, 2019 5 anos Autor Em 13/10/2019 em 10:24, Rayo disse: Qual base/distro você está utilizando? DxP? 3,6 Pokémon Mythology (V3.1) aparentemente é sim a mesma source do DXP Editado Outubro 19, 2019 5 anos por wevertonvrb (veja o histórico de edições)
Postado Outubro 22, 2019 5 anos Autor @Vodkart poderia dar uma força aqui por favor sei q n é sua area mas pra quem sabe n deve ser algo difícil obg desde ja
Postado Outubro 22, 2019 5 anos Em 22/10/2019 em 05:38, wevertonvrb disse: @Vodkart poderia dar uma força aqui por favor sei q n é sua area mas pra quem sabe n deve ser algo difícil obg desde ja Alguma coisa da source foi editada, quando é bug chato assim é melhor procurar outra source, muita gente edita essas coisas e posta só de sacanagem. Deve ser alguma função de Summon Atk Ou talvez alguém tentou colocar a função follow attack e ficou pelas metades (Seguir o alvo ao atacar)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.