Ir para conteúdo
  • 0

[Resolvido] !fly para PDA!


falasque

Pergunta

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?

Editado por Jose98
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
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.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

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+

Editado por Jose98
Link para o comentário
Compartilhar em outros sites

  • 0

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.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
  • Administrador
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.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...