Postado Fevereiro 28, 2018 7 anos 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!
Postado Fevereiro 28, 2018 7 anos 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. Mostrar conteúdo oculto 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. ➥ Regras | Seções OTServ | Seções BOT
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.