Jump to content
  • 0

Sala Boss!


wenderotpoke

Question

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

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

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:

  1. Entrada na Dungeon (17003):

    • Armazena o ID da dungeon na storage 12345 do player.
    • Teleporta o player para a posição inicial da dungeon.
    • Exibe uma mensagem informando que ele entrou na dungeon.
  2. 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.

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.

 

Link to comment
Share on other sites

  • 0
Posted (edited)

Valeeeeeu, adaptei a maior parte só com o que eu precisei mesmo, mas a base pro código já me ajudou, TY

Edited by wenderotpoke
Eu mesmo adaptei o script para o que eu precisava.
Link to comment
Share on other sites

×
×
  • Create New...