Ir para conteúdo
DESCRIÇÃO
Anuncie aqui neste countdown e dê maior visibilidade ao seu lançamento | Full Global • Custom Quests • Custom Outfits • Lottery System • Version 15x
Inicia em: --
Participar

Featured Replies

Postado

Iae galera do TibiaKing, estou precisando de uma script de teleport por alavanca com intervalo de 20horas, no caso eu queria que ela só funcionasse com 5 player nos tiles... 

Meu TFS e 1.3

 

 

 

 

Editado por Bruno Asap (veja o histórico de edições)

Resolvido por Dwarfer

Ir para solução
  • Respostas 14
  • Visualizações 3.6k
  • Created
  • Última resposta

Top Posters In This Topic

Posted Images

Postado
  • Solução

Como você não detalhou se o intervalo de 20 horas é para todos os players ou para os players que foram teleportados, assumi que fosse para os players que foram teleportados.

Não tive como testar, fiz aqui rapidão.

 

Em data/actions/scripts crie um arquivo.lua e cole isto dentro:

 

Spoiler

local t = {
    players = { -- posições que os players devem ficar ao puxar a alavanca
        [1] = Position(1,1,1),
        [2] = Position(1,1,1),
        [3] = Position(1,1,1),
        [4] = Position(1,1,1),
        [5] = Position(1,1,1)
    },
    
    boss = {name = "Dwarf Guard", create_pos = Position(1,1,1)},
  
    destination = Position(1,1,1), -- posição para qual os players serão teleportados
    
    cooldown = {20, "hour"}, -- tempo para ser teleportado novamente. Ex.: {2, "sec"}, {5, "min"}, {10, "hour"}, {3, "day"}
    
    storage = 56482 -- storage não utilizado no seu servidor
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    local players, tab = {}, t.players
    for i = 1, #tab do
        local tile = Tile(tab[i])
        if tile then
            local p = Player(tile:getTopCreature())
            if p then
                if p:getStorageValue(t.storage) <= os.time() then
                    players[#players + 1] = p:getId()
                end
            end
        end
    end
    if #players < #tab then
        player:sendCancelMessage("No enough players or someone did not wait " .. getStrTime(t.cooldown) .. " to go again.")
        toPosition:sendMagicEffect(CONST_ME_POFF)
        return true
    end
    for i = 1, #tab do
        local playerTile = Tile(tab[i])
        local playerToGo = Player(playerTile:getTopCreature())
        if playerToGo then
            playerToGo:setStorageValue(t.storage, mathtime(t.cooldown) + os.time())
            playerTile:relocateTo(t.destination)
            tab[i]:sendMagicEffect(CONST_ME_POFF)
        end
    end
    t.destination:sendMagicEffect(CONST_ME_TELEPORT)
    Game.createMonster(t.boss.name, t.boss.create_pos)
    item:transform(item.itemid == 1945 and 1946 or 1945)
    return true
end

function mathtime(table) -- by dwarfer
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1)
end
end
return error("Bad declaration in mathtime function.")
end

function getStrTime(table) -- by dwarfer
local unit = {["sec"] = "second",["min"] = "minute",["hour"] = "hour",["day"] = "day"}
return tostring(table[1].." "..unit[table[2]]..(table[1] > 1 and "s" or ""))
end

 

 

No actions.xml adicione a tag e edite o actionid que ficará na alavanca: 

<action actionid="ACTIONID_DA_ALAVANCA" script="NOMEDOARQUIVO.lua"/>

 

Contato:

 

Postado
  • Autor

Funcionou perfeitamente do jeito que eu queria meu amigo, teria como aprimorar ela?

 

tipo adicionar a função de quando puxar a alavanca nascer um x monstro no mesmo destino da alavanca ?

 

nao precisa ser o mesmo sqm da alavanca mais algum sqm proximo, essa escript estou usando numa sala de boss.

Editado por Bruno Asap
faltou conteudo (veja o histórico de edições)

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.1k
  • Posts 512.4k

Informação Importante

Confirmação de Termo