[Resolvido] !fly para PDA!

falasque
em Resolvidos

falasque

Falasque
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/01/09Posts: 20

Gostaria de pedir o sistema de !fly igual pxg pra PDA! Valeu.

O sistema consiste em quando estiver no fly e falar !fly o player ande sozinho até falar !fly denovo.

 

Aproveitando o tópico... Já acharam alguma maneira de abrir o novo cliente da PXG?

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino
local configuration = {
    storage = 918311,
    fly_storage = 17000,    --Storage do Fly no seu servidor.
}
local a = 0
function isWalkable(pos)-- by Nord / editado por Omega
    if isCreature(getTopCreature(pos).uid) then
        return false
    elseif getTileInfo(pos).protection then
        return false
    else
        if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid ~= 0 then 
            if hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then
                return false
            end
        end
    end
    return true
end
function autoWalk(cid, id)
    if not isCreature(cid) then 
        if id then
            return db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = 918311 AND player_id = "..id)
        end
    elseif getPlayerStorageValue(cid, configuration.storage) < 1 then
        return true
    end
    local tab = {
        [0] = {x = getThingPos(cid).x, y = getThingPos(cid).y - 1, z = getThingPos(cid).z},
        [1] = {x = getThingPos(cid).x + 1, y = getThingPos(cid).y, z = getThingPos(cid).z},
        [2] = {x = getThingPos(cid).x, y = getThingPos(cid).y + 1, z = getThingPos(cid).z},
        [3] = {x = getThingPos(cid).x - 1, y = getThingPos(cid).y, z = getThingPos(cid).z},
    }
    local lookdir = getCreatureLookDir(cid)
    local topos = tab[lookdir]
    if getPlayerStorageValue(cid, configuration.storage) < 1 or getPlayerStorageValue(cid, configuration.fly_storage) < 1 then
        if getPlayerStorageValue(cid, configuration.fly_storage) < 1 then
            setPlayerStorageValue(cid, configuration.storage, -1)
        end
        return true
    elseif isWalkable(topos) then
        if getTileThingByPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 0}).itemid == 0 then
            doCombatAreaHealth(cid, 0, topos, 0, 0, 0, CONST_ME_NONE)
            doCreateItem(11676, 1, topos)
        end
        doTeleportThing(cid, topos)
        a = a + 1
    else
        setPlayerStorageValue(cid, configuration.storage, -1)
        doPlayerSendTextMessage(cid, 27, "Há algum objeto à sua frente impedindo a passagem.")
        return true
    end
    addEvent(autoWalk, 500, cid, id)
end
function onSay(cid, words)
    if getPlayerStorageValue(cid, configuration.fly_storage) < 1 then
        return doPlayerSendCancel(cid, "Para usar este comando, você deve estar em Fly.")
    elseif getPlayerStorageValue(cid, configuration.storage) >= 1 then
        return setPlayerStorageValue(cid, configuration.storage, -1) and doPlayerSendTextMessage(cid, 27, "Comando !fly desativado.")
    else
        doPlayerSendTextMessage(cid, 27, "Comando !fly ativado.")
        setPlayerStorageValue(cid, configuration.storage, 1)
        autoWalk(cid, getPlayerGUID(cid))
    end
    return true
end

E pelo que sei, não.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

falasque

Falasque
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/01/09Posts: 20

Zipter, o sistema em si funcionou, valeu!

Mas pelo que eu testei aqui, ele ta andando com tipo de um exaust, ou seja, ele anda travando... Se tiver como tirar isso eu agradeço! E outra, depois que ativa, você pode sair do fly que o char continua andando, se tiver como adicionar pra quando sair do fly o comando parar de funcionar eu agradeço em dobro! Mas por enquanto valeu. Já ganhou REP+

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

O quê acontece é que o jogador é "movido" para a frente a cada 500 milésimos. Se quiser que o processo seja mais rápido, basta alterar o tempo nesta linha (em milésimos):

addEvent(autoWalk, 500, cid, id)   --Onde 500 é o intervalo de tempo.

Sobre o segundo problema, não tinha pensado nisso. Logo altero o código do meu comentário anterior com a correção.

#EDIT: Pronto, alterado.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

falasque

Falasque
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/01/09Posts: 20

Valeu! Pode fechar o tópico. Funcionou perfeitamente.

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Tópico movido para a seção de dúvidas e pedidos resolvidos.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

Frenvius

~ Fairy Tail Online ~
avatar
Administrador
Administrador

INFOS

Grupo: AdministradorRegistrado: 26/02/07Posts: 254Gênero: MasculinoChar no Tibia: Frenvius
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.

Utilize botão @UP, no topo de seu tópico, para atualizar o destaque em "Tópicos Recentes" na página inicial do fórum, fará com que mais pessoas o vejam.

 

aJEhRjZ.png


Te ajudei? +REP (: