Esse script define a dungeon na qual o jogador entrou e armazena essa informação na storage do player. Ele também teleporta o jogador para a posição inicial da dungeon.(Action 17003)
function onUse(player, item, fromPosition, target, toPosition) local dungeonId = 1 -- ID da dungeon, altere conforme a dungeon específica local dungeonEntryPosition = Position(100, 100, 7) -- Defina a posição da entrada da dungeon (x, y, z) -- Armazena o ID da dungeon no storage do player player:setStorageValue(12345, dungeonId) -- 12345 é o storage para a dungeon atual -- Teleporta o player para a posição inicial da dungeon player:teleportTo(dungeonEntryPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você entrou na Dungeon " .. dungeonId .. ".") return true end
Esse script verifica qual dungeon o jogador entrou, e com base nisso, ele spawna o boss correspondente à dungeon naquela sala, se ela estiver disponível. (Action 14400)
function onUse(player, item, fromPosition, target, toPosition) local dungeonId = player:getStorageValue(12345) -- Recupera o ID da dungeon do player local bossPosition = Position(105, 105, 7) -- Posição onde o boss vai ser spawnado (x, y, z) local playerBossRoomPosition = Position(110, 110, 7) -- Posição para onde o player será teleportado na sala do boss local bossId -- Verifica se o jogador tem um dungeonId válido if dungeonId == -1 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você não entrou em nenhuma dungeon.") return false end -- Define o boss de acordo com o ID da dungeon if dungeonId == 1 then bossId = "Boss1" -- Nome do Boss 1 elseif dungeonId == 2 then bossId = "Boss2" -- Nome do Boss 2 elseif dungeonId == 3 then bossId = "Boss3" -- Nome do Boss 3 else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Dungeon inválida.") return false end -- Checa se a sala do boss está disponível (sem criaturas) if not Tile(bossPosition):getTopCreature() then -- Spawna o boss na posição definida Game.createMonster(bossId, bossPosition) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, bossId .. " apareceu!") -- Teleporta o player para a sala do boss player:teleportTo(playerBossRoomPosition) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "A sala do boss já está ocupada.") end return true end
Explicação dos Scripts:
-
Entrada na Dungeon (17003):
-
Armazena o ID da dungeon na storage
12345do player. - Teleporta o player para a posição inicial da dungeon.
- Exibe uma mensagem informando que ele entrou na dungeon.
-
Armazena o ID da dungeon na storage
-
Entrada na sala do Boss (14400):
-
Verifica qual dungeon o jogador entrou usando o valor armazenado na storage
12345. - Com base no ID da dungeon, seleciona o boss correto e tenta spawná-lo na sala do boss.
- Se a sala estiver disponível (sem criaturas), spawna o boss e teleporta o jogador para a sala.
- Se a sala estiver ocupada, exibe uma mensagem de erro.
-
Verifica qual dungeon o jogador entrou usando o valor armazenado na storage
Modificações que você pode fazer:
- IDs de Dungeon e Boss: Altere os IDs das dungeons e os nomes dos bosses de acordo com o que você quiser.
- Posições: Ajuste as posições de entrada da dungeon, sala do boss, e local de teleporte para o que for necessário no seu mapa.
- Cooldown ou reset: Se precisar de um cooldown para respawnar o boss ou resetar a sala, esse sistema pode ser facilmente estendido.




info
Grupo: Artesão
Registrado: 28/02/17
Posts: 104
Reputação: 0
Gênero: Masculino
Char no Tibia: OWeen
Galera seguinte....
Estou usando uma action aqui para Dungeons, o sistema esta quase pronto, agora faltam só alguns detalhes, faltam terminar a relação da quantidade de Spawn na Dungeon e também a sala do Boss...
Para este tópico em especifico o principal e a sala do Boss, Basicamente o que eu busco é....
Quando o player entrar na Dungeon ele entra através da action na qual ativa a Dungeon, mas pra sala do Boss é uma outra action que ele ativa, o que eu busco é vincular as 2
Por Exemplo na Dungeon 1 o Player entra com a Action 17003, e para ir pra sala do Boss após derrotar todos os Poke da Dungeon ele entra pra sala do Boss com a Action 14400,
Sendo assim desse modo eu tenho que configurar varias salas diferentes com varias outras action, e o que eu busco é que quando ele chegar naquela alavanca fazer um Check do tipo de Dungeon que ele entrou pra criar um Boss especifico para aquela Dungeon.
Resumindo quando ele entrar na Dungeon 1 vai nascer o Boss 1
Entrou na Dungeon 2 vai nascer o Boss 2
Mas as salas poderão ser as mesmas se ela estiver disponível...
É possível isso?
Deixei as Scripts aqui.
BossCheck.lua Dungeons.lua