Ir para conteúdo

Tredfg

Campones
  • Total de itens

    77
  • Registro em

  • Última visita

Posts postados por Tredfg

  1. Paresse ser bom depois eu abaixo,arrume uns erros de português e poem algumas prints,e cade o dowload no topico arrume,assim mesmo obrigado por posta-lo no xtibia!

  2. Idade: 13
    Cargo: Programador e Mapper.
    *Skype: Se quiser falar comigo manda mp,depois passo skype.
    Horas Que Pode Ser Dedicado ao Projeto:
    5 horas por dia de 13:00 as 18:00

    *Experiencia em OtServ: Média
    Algum Trabalho Feito (Se Tiver):Tenho vários

    *Porque Quer Entrar na Equipe: Muito tempo sem mecher em otserver,então dicidir precura uma equipe

  3. post-374593-0-28122300-1395599023.jpg

    Olá estou aqui formando uma equipe para beyblade começar do 0 não sera um servidor para posta-lo e sim para ficar online

     

    Equipe formando:

    Progamador:Vaga 1

    Mapper:Daniel e Eu

    Scripter:Eu e 1 vaga

    Spriter Daniel

    Webmaster:1 vaga

    Design:1 vaga

     

    Novidades (Atualizado 24-03-14)

    (Começando Fazer as spriter Primeiro personagens)

     

    Ginka-post-374593-0-61158400-1395700474.jpgpost-374593-0-61158400-1395700474.jpg

     

  4. Olá,Hoje estou pedindo alguem que poderia me fala um servidor de poketibia 854,Pode ser pda,Que contem (Limite De Sprites) Que pode add varias sprites o Servidor pode ser antigo com sistemas velho,mais que seja editado os pokemon no configuration.lua.

     

    Irei dar rep pra quem me ajuda.

  5. Cria uma arquivo no action com o nome da quest e poem isso

     

    local starterpokes = {
    ["Nome do poke"] = {x = 53, y = 70, z = 7},( ea position)
    }
    local level = Aqui o level que ele vem se o teu server tive level.
    local extrastr = 1.5
    local btype = "Qual ball vc quer que venha"
    function onUse(cid, item, frompos, item2, topos)
    if getPlayerLevel(cid) > 5 then
    return true
    end
    local pokemon = ""
    for a, b in pairs (starterpokes) do
    if isPosEqualPos(topos, b) then
    pokemon = a
    end
    end
    if pokemon == "" then return true end
    addPokeToPlayer(cid, pokemon, level, extrastr, nil, 0, btype, true)
    doPlayerAddItem(cid, 2394, 10)
    doPlayerSendTextMessage(cid, 27, " Texto aqui.")
    doPlayerSendTextMessage(cid, 27, "Texto aqui!")
    doSendMagicEffect(getThingPos(cid), 29)
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
    doSendMagicEffect(getThingPos(cid), 27)
    doSendMagicEffect(getThingPos(cid), 29)
    return TRUE
    end
  6. Ata obg zipter então tenta esse qui cara

     

     

    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 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/levitate higher and \"down\" or \"h2\" to fly/levitate lower.") --alterado v1.8
    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
    local item = getPlayerSlotItem(cid, 8)
    if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) <= 0 then
    sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8
    end
    if useOTClient then
    doPlayerSendCancel(cid, '12//,hide') --alterado v1.8
    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)
    local item = getPlayerSlotItem(cid, 8)
    if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) <= 0 then
    sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8
    end
    if useOTClient then
    doPlayerSendCancel(cid, '12//,hide') --alterado v1.8
    end
    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

  7. Tente trocar por esse

     

     

    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 storages = {17000, 63215, 17001, 13008, 5700} --alterado v2.9 \/
    local unfix = {x = 1, y = 1, z = 1}
    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 v2.6
    ["levitate_fly"] = {"let's levitate!", "let me get on you!", "let's scary someone!"}, --alterado v2.8
    }
    function onUse(cid, item, frompos, item2, topos)
    local checkpos = topos
    checkpos.stackpos = 0
    if getPlayerStorageValue(cid, 75846) >= 1 then return true end --alterado v2.9
    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)
    doRegainSpeed(cid) --alterado v2.7
    doRemoveCondition(cid, CONDITION_OUTFIT)
    setPlayerStorageValue(cid, 17000, -1)
    setPlayerStorageValue(cid, 17001, -1)
    if useOTClient then
    doUpdateMoves(cid)
    doPlayerSendCancel(cid, '12//,show')--alterado v2.9
    end
    return true
    end
    -----------------------------
    local player = getRecorderPlayer(topos) --alterado v2.8 \/
    -------- DUEL SYSTEM ------------------------
    if isPlayer(player) and player ~= cid and getPlayerStorageValue(player, 6598754) <= -1 and getPlayerStorageValue(player, 52480) <= -1 then
    if getPlayerStorageValue(cid, 52480) <= -1 or (getPlayerStorageValue(cid, 52481) >= 1 and getPlayerStorageValue(cid, 52482) ~= -1) then
    ---
    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
    if #getCreatureSummons(cid) < 1 then
    return doPlayerSendTextMessage(cid, 20, "You need a pokemon to invit someone to duel!")
    end
    ---
    if getPlayerStorageValue(cid, 52480) <= -1 then
    doPlayerSetVocation(cid, 7)
    openChannelDialog(cid)
    setPlayerStorageValue(cid, 52480, 1)
    setPlayerStorageValue(cid, 6598754, 5)
    setPlayerStorageValue(cid, 52482, getCreatureName(cid)..",")
    setPlayerStorageValue(cid, 52483, getCreatureName(player)..",")
    doCreatureSetSkullType(cid, 2)
    doSendAnimatedText(getThingPosWithDebug(cid), "FIRST TEAM", 215)
    return true
    elseif getPlayerStorageValue(cid, 52481) >= 1 and getPlayerStorageValue(cid, 52482) ~= -1 then
    local t1 = string.explode(getPlayerStorageValue(cid, 52482), ",")
    local t2 = string.explode(getPlayerStorageValue(cid, 52483), ",")
    if (#t1 >= getPlayerStorageValue(cid, 52480) and #t2 >= getPlayerStorageValue(cid, 52480)) or (isInArray(t1, getCreatureName(player)) or isInArray(t2, getCreatureName(player))) then
    return true
    end
    local sto2, sto3, name = getPlayerStorageValue(cid, 52482), getPlayerStorageValue(cid, 52483), getCreatureName(player)
    if getPlayerStorageValue(cid, 52480) == 2 then
    setPlayerStorageValue(cid, 52483, sto3.. name..",") --time adversario
    doSendAnimatedText(getThingPosWithDebug(player), "SECOND TEAM", 215)
    elseif getPlayerStorageValue(cid, 52480) == 3 and #t1 < 3 then
    setPlayerStorageValue(cid, 52482, sto2.. name..",") --time aliado
    doSendAnimatedText(getThingPosWithDebug(player), "FIRST TEAM", 215)
    elseif getPlayerStorageValue(cid, 52480) == 3 and #t1 >= 3 then
    setPlayerStorageValue(cid, 52483, sto3.. name..",") --time adversario
    doSendAnimatedText(getThingPosWithDebug(player), "SECOND TEAM", 215)
    end
    setPlayerStorageValue(player, 52481, getPlayerStorageValue(cid, 52481))
    setPlayerStorageValue(player, 52485, getCreatureName(cid))
    local players, pokes = getPlayerStorageValue(cid, 52480), getPlayerStorageValue(cid, 52481) --alterado v1.9 \/
    local str = {}
    table.insert(str, getCreatureName(cid).." is inviting you to a duel! Use order in him to accept it!\n")
    table.insert(str, "Info Battle: Duel "..players.."x"..players.." - "..pokes.." pokes.")
    doPlayerSendTextMessage(player, 20, table.concat(str))
    return true
    end
    end
    ---
    elseif isPlayer(player) and player ~= cid and getPlayerStorageValue(player, 6598754) == 5 and getPlayerStorageValue(player, 52481) >= 1 then
    local t1 = string.explode(getPlayerStorageValue(player, 52482), ",")
    local t2 = string.explode(getPlayerStorageValue(player, 52483), ",")
    ---
    if not isInArray(t1, getCreatureName(cid)) and not isInArray(t2, getCreatureName(cid)) then
    return true
    end
    ---
    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 pokes = getLivePokeballs(cid, getPlayerSlotItem(cid, 3).uid, true)
    if #pokes < getPlayerStorageValue(player, 52481) then
    return doPlayerSendTextMessage(cid, 20, "You need atleast ".. getPlayerStorageValue(player, 52481).." pokemons to duel with this person!")
    end
    if getPlayerStorageValue(cid, 52482) ~= -1 then
    return doPlayerSendTextMessage(cid, 20, "You already invit someone to duel!")
    end
    if #getCreatureSummons(cid) < 1 then
    return doPlayerSendTextMessage(cid, 20, "You need a pokemon to accept a duel!")
    end
    ---
    setPlayerStorageValue(cid, 52480, getPlayerStorageValue(player, 52480))
    setPlayerStorageValue(player, 52484, getPlayerStorageValue(player, 52484)-1)
    if getPlayerStorageValue(player, 52484) == 0 then
    for a = 1, #t1 do
    local pid, sid = getPlayerByName(t1[a]), getPlayerByName(t2[a])
    if not isCreature(pid) or getPlayerStorageValue(pid, 52480) <= -1 then
    removeFromTableDuel(player, t1[a])
    else
    doCreatureSetSkullType(pid, 1)
    end
    if not isCreature(sid) or getPlayerStorageValue(sid, 52480) <= -1 then
    removeFromTableDuel(player, t2[a])
    else
    doCreatureSetSkullType(sid, 1)
    end
    end
    beginDuel(player, 6)
    else
    doCreatureSetSkullType(cid, 2)
    end
    doSendAnimatedText(getThingPos(cid), "BATTLE", COLOR_ELECTRIC)
    return true
    elseif isPlayer(player) and player == cid and getPlayerStorageValue(player, 52480) >= 1 then
    doEndDuel(cid, true)
    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 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 v2.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" and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] then --alterado v2.7
    if item2.uid == mysum then
    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)
    if useKpdoDlls then
    doUpdateMoves(cid) --alterado v2.9
    end
    return true
    end
    doPlayerSendCancel(cid, "Your ditto is not transformed.")
    markPos(mysum, unfix)
    return true
    end
    if getCreatureName(item2.uid) == "Ditto" then
    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, {lookType = getPokemonXMLOutfit(getCreatureName(item2.uid))}, -1) --alterado v2.8
    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", getPokemonXMLOutfit(getCreatureName(item2.uid))) --alterado v2.8
    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 v2.6
    end
    if dittoCopiesStatusToo then
    doSetItemAttribute(thisball.uid, "boffense", dittoBonus * getOffense(item2.uid))
    doSetItemAttribute(thisball.uid, "bdefense", dittoBonus * getDefense(item2.uid))
    doSetItemAttribute(thisball.uid, "bsattack", dittoBonus * getSpecialAttack(item2.uid))
    doSetItemAttribute(thisball.uid, "bagility", dittoBonus * getSpeed(item2.uid))
    adjustStatus(mysum, thisball.uid)
    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 v2.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)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) then
    if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then
    return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v2.7
    end
    if getPlayerStorageValue(cid, 212124) >= 1 then --alterado v2.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!")
    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)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) then
    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)))
    elseif isInArray(skills["levitate_fly"], getPokemonName(mysum)) then
    doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["levitate_fly"][math.random(1, #txt["levitate_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--------------------------------------------
    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
    if getPlayerStorageValue(cid, 22545) >= 1 then --alterado v2.7
    return doPlayerSendCancel(cid, "You can't do that while in the Golden Arena!")
    end
    local cmed = item2.uid
    setCD(thisball.uid, "control", 120)
    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, -1)
    cleanCMcds(item.uid)
    registerCreatureEvent(pk, "SummonDeath")
    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 level = getWildPokemonLevel(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)
    addEvent(setWildPokemonLevel, 150, back, level)
    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, -1) --alterado v2.7
    doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)
    setPlayerStorageValue(cid, 212124, 0)
    cleanCMcds(ball2.uid)
    registerCreatureEvent(pk2, "SummonDeath")
    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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...