Postado Maio 12, 2019 6 anos 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 Maio 12, 2019 6 anos por Bruno Asap (veja o histórico de edições)
Postado Maio 13, 2019 6 anos 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"/>
Postado Maio 16, 2019 6 anos 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 Maio 16, 2019 6 anos por Bruno Asap faltou conteudo (veja o histórico de edições)
Postado Maio 18, 2019 6 anos @Bruno Asap Tente sempre falar o que deseja de uma vez só e de forma detalhada. Editei lá com a informação do boss. É só configurar o nome e a posição na qual ele será criado.
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.