Ir para conteúdo
  • Cadastre-se

Sistema Dungeon TFS 1.2


Posts Recomendados

Eae gente, venho disponibilizar o meu primeiro sistema DUNGEON, testei apenas no tfs 1.2

 

O sistema é o seguinte o player precisa de gold para puxar a alavanca e o item que da acesso a entrada da dungeon. ele sera teleportado para o mapa da dungeon onde vai ter monstros e bosses da dungeon no caso este script contem o boss do horestis.

 

Essa dungeon seria do horestis mas vocês podem editar!

 

Para ficar 100% preciso da ajuda de vocês.

Adicionar um sistema de tempo no script exemplo 30 minutos, o player que ficar la mais de 30 minutos seria teleportado para o templo.

Adicionar um sistema onde de 1 ate 4 players possam ir, pois neste sistema é obrigatório ir 4 players.

 

 

Seque abaixo o script do sistema

 

PARTE 1

 

Abra actions.xml e coloque isto o id 17367 seria a alavanca para puxar.

Citar

<action actionid="17367" script="horestishardcore.lua" />

Na pasta data/actions/scripts

crie um arquivo horestishardcore.lua

Citar

local config = {
    requiredLevel = 8,
    daily = false,
    centerDemonRoomPosition = Position(31681, 31797, 15),
    playerPositions = {
        Position(31805, 31846, 7),
        Position(31805, 31847, 7),
        Position(31805, 31848, 7),
        Position(31805, 31849, 7)
    },
    newPositions = {
        Position(31746, 31840, 15),
        Position(31747, 31840, 15),
        Position(31748, 31840, 15),
        Position(31749, 31840, 15)
    },
    horestisPositions = {
        Position(31554, 31864, 15)
    },
    horestisePositions = {
        Position(31788, 31773, 15),
        Position(31860, 31813, 15),
        Position(31678, 31877, 15),
        Position(31634, 31896, 15),
        Position(31564, 31809, 15),
        Position(31694, 31781, 15)
    },
    gravePositions = {
        Position(31780, 31851, 15),
        Position(31826, 31843, 15),
        Position(31825, 31829, 15),
        Position(31838, 31833, 15),
        Position(31805, 31816, 15),
        Position(31837, 31816, 15),
        Position(31855, 31813, 15),
        Position(31860, 31822, 15),
        Position(31789, 31806, 15),
        Position(31782, 31800, 15),
        Position(31768, 31800, 15),
        Position(31791, 31791, 15),
        Position(31783, 31786, 15),
        Position(31768, 31781, 15),
        Position(31783, 31776, 15),
        Position(31783, 31774, 15),
        Position(31817, 31801, 15),
        Position(31818, 31804, 15),
        Position(31838, 31799, 15),
        Position(31855, 31801, 15),
        Position(31806, 31765, 15),
        Position(31801, 31759, 15),
        Position(31800, 31758, 15),
        Position(31799, 31759, 15),
        Position(31694, 31741, 15),
        Position(31691, 31741, 15),
        Position(31690, 31753, 15),
        Position(31683, 31754, 15),
        Position(31678, 31746, 15),
        Position(31686, 31757, 15),
        Position(31694, 31765, 15),
        Position(31687, 31767, 15),
        Position(31686, 31767, 15),
        Position(31678, 31778, 15),
        Position(31662, 31779, 15),
        Position(31643, 31769, 15),
        Position(31642, 31772, 15),
        Position(31689, 31783, 15),
        Position(31688, 31785, 15),
        Position(31662, 31766, 15),
        Position(31660, 31766, 15),
        Position(31653, 31789, 15),
        Position(31660, 31793, 15),
        Position(31631, 31789, 15),
        Position(31625, 31789, 15),
        Position(31644, 31794, 15),
        Position(31641, 31797, 15),
        Position(31671, 31791, 15),
        Position(31678, 31793, 15),
        Position(31683, 31795, 15),
        Position(31659, 31802, 15),
        Position(31661, 31802, 15),
        Position(31680, 31811, 15),
        Position(31681, 31811, 15),
        Position(31684, 31811, 15),
        Position(31682, 31812, 15),
        Position(31665, 31817, 15),
        Position(31691, 31818, 15),
        Position(31671, 31828, 15),
        Position(31696, 31828, 15),
        Position(31664, 31840, 15),
        Position(31683, 31841, 15),
        Position(31688, 31846, 15),
        Position(31678, 31852, 15),
        Position(31633, 31841, 15),
        Position(31622, 31839, 15),
        Position(31622, 31846, 15),
        Position(31634, 31844, 15),
        Position(31633, 31866, 15),
        Position(31646, 31844, 15),
        Position(31655, 31849, 15),
        Position(31653, 31862, 15),
        Position(31657, 31858, 15),
        Position(31670, 31852, 15),
        Position(31671, 31860, 15),
        Position(31678, 31861, 15),
        Position(31695, 31861, 15),
        Position(31694, 31861, 15),
        Position(31692, 31861, 15),
        Position(31675, 31869, 15),
        Position(31673, 31869, 15),
        Position(31672, 31877, 15),
        Position(31675, 31877, 15),
        Position(31657, 31881, 15),
        Position(31654, 31882, 15),
        Position(31636, 31890, 15),
        Position(31636, 31895, 15),
        Position(31633, 31893, 15),
        Position(31615, 31789, 15),
        Position(31604, 31790, 15),
        Position(31600, 31791, 15),
        Position(31584, 31797, 15),
        Position(31576, 31797, 15),
        Position(31625, 31808, 15),
        Position(31606, 31808, 15),
        Position(31606, 31813, 15),
        Position(31617, 31826, 15),
        Position(31603, 31836, 15),
        Position(31606, 31841, 15),
        Position(31595, 31828, 15),
        Position(31592, 31826, 15),
        Position(31596, 31823, 15),
        Position(31583, 31826, 15),
        Position(31583, 31822, 15),
        Position(31562, 31795, 15),
        Position(31564, 31808, 15),
        Position(31553, 31797, 15),
        Position(31558, 31784, 15),
        Position(31554, 31786, 15),
        Position(31542, 31784, 15),
        Position(31540, 31794, 15),
        Position(31555, 31807, 15),
        Position(31545, 31801, 15),
        Position(31524, 31805, 15),
        Position(31522, 31803, 15),
        Position(31505, 31811, 15),
        Position(31500, 31809, 15),
        Position(31521, 31817, 15),
        Position(31525, 31821, 15),
        Position(31540, 31829, 15),
        Position(31545, 31827, 15),
        Position(31544, 31832, 15),
        Position(31546, 31833, 15),
        Position(31550, 31826, 15),
        Position(31549, 31832, 15),
        Position(31559, 31830, 15),
        Position(31550, 31855, 15),
        Position(31558, 31855, 15),
        Position(31551, 31863, 15),
        Position(31558, 31864, 15)
    },
    scarabPositions = {
        Position(31775, 31850, 15),
        Position(31792, 31839, 15),
        Position(31808, 31835, 15),
        Position(31808, 31830, 15),
        Position(31824, 31840, 15),
        Position(31823, 31812, 15),
        Position(31826, 31820, 15),
        Position(31829, 31816, 15),
        Position(31854, 31821, 15),
        Position(31692, 31736, 15),
        Position(31688, 31739, 15),
        Position(31695, 31742, 15),
        Position(31696, 31740, 15),
        Position(31695, 31736, 15),
        Position(31677, 31744, 15),
        Position(31679, 31747, 15),
        Position(31687, 31766, 15),
        Position(31683, 31769, 15),
        Position(31676, 31781, 15),
        Position(31660, 31780, 15),
        Position(31663, 31761, 15),
        Position(31656, 31765, 15),
        Position(31662, 31765, 15),
        Position(31644, 31775, 15),
        Position(31646, 31772, 15),
        Position(31646, 31766, 15),
        Position(31621, 31791, 15),
        Position(31617, 31790, 15),
        Position(31613, 31791, 15),
        Position(31616, 31793, 15),
        Position(31601, 31793, 15),
        Position(31596, 31799, 15),
        Position(31590, 31799, 15),
        Position(31579, 31798, 15),
        Position(31565, 31773, 15),
        Position(31567, 31777, 15),
        Position(31563, 31776, 15),
        Position(31539, 31791, 15),
        Position(31540, 31800, 15),
        Position(31552, 31803, 15),
        Position(31555, 31798, 15),
        Position(31557, 31805, 15),
        Position(31535, 31806, 15),
        Position(31535, 31808, 15),
        Position(31520, 31818, 15),
        Position(31518, 31821, 15),
        Position(31557, 31827, 15),
        Position(31560, 31832, 15),
        Position(31542, 31833, 15),
        Position(31548, 31833, 15),
        Position(31548, 31826, 15),
        Position(31549, 31856, 15),
        Position(31553, 31858, 15),
        Position(31558, 31858, 15),
        Position(31554, 31863, 15),
        Position(31555, 31854, 15),
        Position(31595, 31825, 15),
        Position(31592, 31828, 15),
        Position(31582, 31823, 15),
        Position(31581, 31828, 15),
        Position(31601, 31836, 15),
        Position(31609, 31837, 15),
        Position(31623, 31843, 15),
        Position(31620, 31841, 15),
        Position(31617, 31844, 15),
        Position(31629, 31860, 15),
        Position(31635, 31861, 15),
        Position(31630, 31865, 15),
        Position(31634, 31865, 15),
        Position(31650, 31876, 15),
        Position(31653, 31877, 15),
        Position(31648, 31881, 15),
        Position(31636, 31885, 15),
        Position(31634, 31883, 15),
        Position(31636, 31830, 15),
        Position(31636, 31819, 15),
        Position(31639, 31822, 15),
        Position(31642, 31830, 15),
        Position(31656, 31862, 15),
        Position(31651, 31860, 15),
        Position(31657, 31830, 15),
        Position(31662, 31832, 15),
        Position(31673, 31855, 15),
        Position(31675, 31851, 15),
        Position(31674, 31860, 15),
        Position(31671, 31874, 15),
        Position(31678, 31874, 15),
        Position(31641, 31808, 15),
        Position(31655, 31794, 15),
        Position(31687, 31779, 15),
        Position(31691, 31785, 15)
    },
    skeletonPositions = {
        Position(31763, 31840, 15),
        Position(31839, 31812, 15),
        Position(31837, 31821, 15),
        Position(31842, 31821, 15),
        Position(31768, 31776, 15),
        Position(31763, 31778, 15),
        Position(31762, 31781, 15),
        Position(31784, 31771, 15),
        Position(31787, 31774, 15),
        Position(31786, 31777, 15),
        Position(31824, 31802, 15),
        Position(31827, 31799, 15),
        Position(31827, 31804, 15),
        Position(31834, 31799, 15),
        Position(31838, 31799, 15),
        Position(31837, 31803, 15),
        Position(31834, 31804, 15),
        Position(31843, 31802, 15),
        Position(31845, 31800, 15),
        Position(31846, 31804, 15),
        Position(31661, 31760, 15)
    },
    ghoulPositions = {
        Position(31764, 31839, 15),
        Position(31822, 31842, 15),
        Position(31822, 31821, 15),
        Position(31821, 31814, 15),
        Position(31837, 31833, 15),
        Position(31861, 31820, 15),
        Position(31861, 31816, 15),
        Position(31859, 31813, 15),
        Position(31845, 31819, 15),
        Position(31845, 31815, 15),
        Position(31825, 31830, 15),
        Position(31855, 31805, 15),
        Position(31853, 31804, 15),
        Position(31853, 31799, 15),
        Position(31817, 31804, 15),
        Position(31817, 31800, 15),
        Position(31777, 31827, 15),
        Position(31779, 31821, 15),
        Position(31837, 31828, 15),
        Position(31790, 31795, 15),
        Position(31789, 31790, 15),
        Position(31767, 31782, 15),
        Position(31765, 31778, 15),
        Position(31801, 31775, 15),
        Position(31807, 31773, 15),
        Position(31807, 31765, 15),
        Position(31801, 31765, 15),
        Position(31803, 31755, 15),
        Position(31796, 31754, 15),
        Position(31826, 31841, 15)
    },
    mummyPositions = {
        Position(31764, 31844, 15),
        Position(31763, 31838, 15),
        Position(31769, 31840, 15),
        Position(31764, 31844, 15),
        Position(31786, 31838, 15),
        Position(31791, 31843, 15),
        Position(31834, 31831, 15),
        Position(31834, 31821, 15),
        Position(31778, 31824, 15),
        Position(31776, 31823, 15),
        Position(31807, 31818, 15),
        Position(31852, 31817, 15),
        Position(31854, 31813, 15),
        Position(31828, 31801, 15),
        Position(31853, 31801, 15),
        Position(31809, 31787, 15),
        Position(31807, 31785, 15),
        Position(31783, 31801, 15),
        Position(31788, 31807, 15),
        Position(31774, 31779, 15),
        Position(31697, 31738, 15),
        Position(31693, 31741, 15),
        Position(31675, 31744, 15),
        Position(31679, 31744, 15),
        Position(31693, 31763, 15),
        Position(31696, 31766, 15),
        Position(31568, 31775, 15),
        Position(31563, 31774, 15),
        Position(31572, 31787, 15),
        Position(31551, 31800, 15),
        Position(31552, 31806, 15),
        Position(31500, 31811, 15),
        Position(31504, 31808, 15),
        Position(31555, 31834, 15),
        Position(31553, 31825, 15),
        Position(31558, 31831, 15),
        Position(31558, 31861, 15),
        Position(31549, 31862, 15),
        Position(31640, 31791, 15),
        Position(31642, 31794, 15),
        Position(31652, 31787, 15),
        Position(31669, 31788, 15),
        Position(31657, 31805, 15),
        Position(31661, 31808, 15),
        Position(31616, 31822, 15),
        Position(31616, 31827, 15),
        Position(31612, 31826, 15),
        Position(31593, 31822, 15),
        Position(31596, 31826, 15),
        Position(31590, 31826, 15),
        Position(31595, 31829, 15),
        Position(31602, 31839, 15),
        Position(31608, 31838, 15),
        Position(31622, 31840, 15),
        Position(31620, 31845, 15),
        Position(31636, 31864, 15),
        Position(31637, 31894, 15),
        Position(31634, 31892, 15),
        Position(31632, 31894, 15),
        Position(31656, 31875, 15),
        Position(31658, 31881, 15),
        Position(31655, 31885, 15),
        Position(31669, 31859, 15),
        Position(31678, 31858, 15),
        Position(31691, 31866, 15),
        Position(31697, 31861, 15)
    }
}


function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if item.itemid == 9825 then
        local storePlayers, playerTile = {}

        for i = 1, #config.playerPositions do
            playerTile = Tile(config.playerPositions):getTopCreature()
            if not playerTile or not playerTile:isPlayer() then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Fique no piso Amarelo.")
                return true
            end

            if playerTile:getLevel() < config.requiredLevel then
                player:sendTextMessage(MESSAGE_STATUS_SMALL, "All the players need to be level ".. config.requiredLevel .." or higher.")
                return true
            end

            storePlayers[#storePlayers + 1] = playerTile
        end

        local specs, spec = Game.getSpectators(config.centerDemonRoomPosition, false, false, 250, 250, 200, 200)
        for i = 1, #specs do
            spec = specs
            if spec:isPlayer() then
                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Ja tem players dentro do calabouço.")
                return true
            end
    if player:getItemCount(2160, 100) < 1 then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Deixe um monte exato com 100 moedas crystais (1kk) para poder usar a alavanca.")
                return true
            end

            spec:remove()
        end

        for i = 1, #config.horestisPositions do
            Game.createMonster("Horestis Hardcore", config.horestisPositions)
        end

        for i = 1, #config.horestisePositions do
            Game.createMonster("Horestis Enfraquecido Hardcore", config.horestisePositions)
        end

        for i = 1, #config.mummyPositions do
            Game.createMonster("Elder Mummy Hardcore", config.mummyPositions)
        end

        for i = 1, #config.ghoulPositions do
            Game.createMonster("Ghoul Hardcore", config.ghoulPositions)
        end

        for i = 1, #config.skeletonPositions do
            Game.createMonster("Demon Skeleton Hardcore", config.skeletonPositions)
        end

        for i = 1, #config.scarabPositions do
            Game.createMonster("Ancient Scarab Hardcore", config.scarabPositions)
        end

        for i = 1, #config.gravePositions do
            Game.createMonster("Grave Guard Hardcore", config.gravePositions)
        end

        local players
        for i = 1, #storePlayers do
            players = storePlayers
            config.playerPositions:sendMagicEffect(CONST_ME_POFF)
            players:teleportTo(config.newPositions)
            config.newPositions:sendMagicEffect(CONST_ME_ENERGYAREA)
            players:setDirection(DIRECTION_EAST)
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Bem vindo a Piramide de Horestis.")
        player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED)
        player:removeItem(2160, 100)    
    else
        player:getPosition():sendMagicEffect(CONST_ME_POFF)
        player:sendCancelMessage("You dont have enought money.")
                return true
            end
        end
    elseif item.itemid == 9825 then
        if config.daily then
            player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_NOTPOSSIBLE))
            return true
        end
    end

    item:transform(item.itemid == 9826 and 9825 or 9826)
    return true
end

Essa parte é onde configura os monstros EXEMPLO

Citar

for i = 1, #config.horestisPositions do
            Game.createMonster("Horestis Hardcore", config.horestisPositions)   ( Horestis Hardcore Seria o monstro que criei para a dungeon)
        end

 

 if player:getItemCount(2160, 100) < 1 then  ( essa função verifica o dinheiro para poder puxar)

player:removeItem(2160, 100)   ( essa parte é para remover o dinheiro)

 local specs, spec = Game.getSpectators(config.centerDemonRoomPosition, false, false, 250, 250, 200, 200) ( função que verifica se tem alguém na dungeon)

 

PARTE 2

Abra movements.xml e coloque isto o uniqueid 17362 seria o teleporte que ele passa para ter acesso a dungeon, isto ira tirar o item da entrada da dungeon do player

 

  

Citar

<movevent event="StepIn" uniqueid="17362" script="entradahorestis.lua" />

 

Na pasta data/movements/scripts

crie um arquivo entradahorestis.lua

Citar

local destinations = {
    [17362] = Position(31756, 31840, 15)
}

function onStepIn(creature, item, position, fromPosition)
    local player = creature:getPlayer()
    if not player then
        return false
    end
    if player:getItemCount(26382) < 1 then
            player:sendCancelMessage('Você não tem a entrada "A Piramide De Horestis"')
        player:teleportTo(fromPosition)
        return true
    end
            player:removeItem(26382, 1)
    player:teleportTo(destinations[item.uid])
    player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
    return true
end

 

26382 = id do item da entrada.

 

playerPositions = onde os players estão antes de puxar a alavanca

 

newPositions = para onde os players irão após puxar a alavanca

 

horestisPositions = Ultimo boss da dungeon

 

horestisePositions = seria os mini boss (nesta dungeon fiz todos iguais)

 

gravePositions = monstros da dungeon

 

scarabPositions = monstros da dungeon

 

skeletonPositions = monstros da dungeon

 

ghoulPositions = monstros da dungeon

 

mummyPositions = monstros da dungeon

 

Todas as coordenadas são de onde os monstros vão nascer após puxar a alavanca, por isso não adianta eu postar o mapa aqui pois irão ter que mudar todas as coordenadas.

 

Qualquer duvida é só perguntar!

Espero que gostem!

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo