Pular para o conteúdo principal

Dungeon Packager

webapp_banner.jpg

O que são dungeons?

Você pode encontrar informações sobre dungeons, incluindo informações sobre dungeons pré-fabricadas aqui.


O que é o dungeon packager?

O dungeon packager permite que os administradores não apenas criem e empacotem dungeons, mas também empacotem qualquer tipo de conteúdo do EliteMobs. Isso inclui coisas como pacotes de eventos, pacotes de modelos, arenas, pacotes de npcs, pacotes de itens e assim por diante.

Por que usar pacotes de dungeons?
  • Dungeons instanciadas! Dungeons instanciadas só podem ser criadas através do sistema de pacotes de dungeons.
  • Backups seguros de Minidungeons! Se você criar um Pacote de Dungeon, poderá implantá-lo e reimplantá-lo em qualquer servidor que desejar, a qualquer momento e por qualquer motivo.
  • Fácil de desativar e ativar! Você sempre pode fazer /em setup e desativar e ativar Pacotes de Dungeons temporariamente ou permanentemente.
  • Fácil de compartilhar! Se você deseja compartilhar suas criações, os Pacotes de Dungeons podem simplesmente ser compactados e enviados para outras pessoas. Há uma sala no Discord dedicada a criações da comunidade se você estiver interessado!
  • Teleportes! Os pacotes de dungeons criam automaticamente locais de teletransporte que podem ser acessados na página de Teleportes do menu /em, o que pode ser muito útil em muitas configurações.

Criando Dungeons

As seguintes configurações são usadas para criar um arquivo de configuração que deve ir para a pasta content_packages. Essas configurações são usadas para criar dungeons especificamente, e não são necessárias se você apenas deseja usar o dungeon packager para distribuir conteúdo que não seja dungeon, como um pacote de itens ou eventos.

Plugins necessários

Para usar o Dungeon Packager, você precisará do seguinte plugin:

WorldGuard - protege a Minidungeon

Criando uma dungeon, passo a passo

O EliteMobs costumava ter dois tipos principais de dungeons: baseadas em mundo e baseadas em schematic.

As dungeons baseadas em schematic estavam associadas a uma construção schematic. Elas agora foram descontinuadas e não são mais suportadas.

Todas as dungeons do EliteMobs agora são baseadas em mundo.

Arquivo pack.meta necessário

Seu pacote de dungeon deve incluir um arquivo pack.meta, que é simplesmente um arquivo .txt renomeado com uma extensão .meta. Este arquivo deve conter apenas uma palavra, indicando para qual plugin o pacote é (por exemplo, "elitemobs", escrito em minúsculas). O arquivo pack.meta deve estar localizado no diretório raiz do seu pacote, ao lado de todas as outras pastas.


Valores globais

Os seguintes valores se aplicam a todas as dungeons

isEnabled

Define se o pacote de dungeon está ativado.

KeyValuesDefaultMandatory
isEnabledBooleanfalse
Exemplo
isEnabled: true

name

Define o nome do conteúdo. Suporta Color Codes.

KeyValuesDefaultMandatory
nameStringfalse
Exemplo
name: '&c[lvl 999] &aThe Green Dungeon'

create_packager_name.jpg


dungeonLocationType

Define o tipo de localização que a dungeon usa.

KeyValuesDefaultMandatory
dungeonLocationTypeWORLD / INSTANCEDnone
Exemplo
dungeonLocationType: WORLD

contentType

Define o tipo de dungeon.

KeyValuesDefaultMandatory
contentTypeOPEN_DUNGEON / INSTANCED_DUNGEON / DYNAMIC_DUNGEONS / HUBnone
Exemplo
contentType: INSTANCED_DUNGEON

customInfo

Define as informações adicionais que aparecerão na tela /em setup. Apenas para fins informativos. Suporta Color Codes.

KeyValuesDefaultMandatory
customInfoString Listnone
Exemplo
customInfo:
- '&aThe best dungeon.'
- '&aMade by: CoolPlayer'

create_packager_custominfo.jpg


Define o link de download quando o conteúdo não está baixado. Apenas para fins informativos.

KeyValuesDefaultMandatory
downloadLinkStringnone
Exemplo
downloadLink: http://www.example.org

create_packager_downloadlink.jpg


dungeonSizeCategory

Define a categoria de tamanho do pacote de dungeon. Apenas para fins informativos.

KeyValuesDefaultMandatory
dungeonSizeCategorySpecial [1]none
Exemplo
dungeonSizeCategory: MINIDUNGEON

create_packager_size.jpg

Special [1]

Expandir Tabela
KeyDescription
LAIRLairs são um tipo de dungeon pequena que se concentra em uma grande luta de boss.
SANCTUMSanctums são o equivalente de Lairs instanciadas. Isso significa que eles se concentram em uma enorme luta de boss.
MINIDUNGEONMinidungeons são um tipo de dungeon de tamanho médio que geralmente contém de 3 a 15 minibosses e um grande boss, bem como muitos mobs "trash" que devem ser "farmados" para moedas e equipamentos pelos jogadores.
DUNGEONDungeons são o equivalente de Minidungeons instanciadas. Este é o tipo mais tradicional de dungeon MMORPG, onde os jogadores se agrupam e passam por uma série de mobs trash e minibosses para lutar contra um boss final.
RAIDEm breve!
ADVENTUREAdventures são mapas de aventura completos. Eles incluem linhas de quests, npcs, grandes quantidades de minibosses e bosses e podem até conter suas próprias arenas ou dungeons dentro deles.
ARENAArenas são áreas de sobrevivência baseadas em ondas nas quais os jogadores são recompensados por derrotar ondas.
OTHERQualquer outra coisa que não se enquadre nas categorias anteriores.

Para descrições mais detalhadas, consulte Dungeons


protect

Define se o pacote de dungeon deve ser protegido pelo WorldGuard.

KeyValuesDefaultMandatory
protectBooleantrue
Exemplo
protect: true

dungeonVersion

Define a versão do pacote de dungeon.

KeyValuesDefaultMandatory
dungeonVersionIntegernone
Exemplo
dungeonVersion: 1

playerInfo

Define as informações que aparecem no menu. Suporta Color Codes.

Funciona apenas quando o /em está definido para o modo livro usando /em alt.

KeyValuesDefaultMandatory
playerInfoStringnone
Exemplo
playerInfo: 'Difficulty: &a1-man easy content!'

create_packager_playerinfo.jpg


regionEnterMessage

Define a mensagem que aparece quando um jogador entra na zona da dungeon. Suporta Color Codes.

KeyValuesDefaultMandatory
regionEnterMessageStringnone
Exemplo
regionEnterMessage: '&aYou have entered the dungeon!'

create_packager_enter.jpg


regionLeaveMessage

Define a mensagem que aparece quando um jogador sai da zona da dungeon. Suporta Color Codes.

KeyValuesDefaultMandatory
regionLeaveMessageStringnone
Exemplo
regionLeaveMessage: '&aYou have left the dungeon!'

create_packager_leave.jpg


hasCustomModels

Define se o pacote de dungeon possui modelos customizados (para ModelEngine ou FreeMinecraftModels).

KeyValuesDefaultMandatory
hasCustomModelsBooleannone
Exemplo
hasCustomModels: false

dungeonConfigFolderName

Define o nome das pastas usadas para arquivos associados a esta dungeon.

Obrigatório para dungeons instanciadas!.

KeyValuesDefaultMandatory
dungeonConfigFolderNameStringnone
Exemplo
dungeonConfigFolderName: my_dungeon_folder

contentLevel

Define o nível de conteúdo que a dungeon deve exibir no menu EM.

KeyValuesDefaultMandatory
contentLevelIntegernone
Exemplo
contentLevel: 20

enchantmentChallenge

Define se a dungeon deve ser uma dungeon Enchantment Challenge.

KeyValuesDefaultMandatory
enchantmentChallengeBooleanfalse
Exemplo
enchantmentChallenge: false

song

Define se a dungeon deve ter uma trilha sonora.

KeyValuesDefaultMandatory
songStringnone

name= É aqui que você define qual arquivo do resource pack deve ser reproduzido. length= A duração da trilha sonora em milissegundos.

Exemplo
song: name=elitemobs:dark_cathedral.ambient length=93830

dungeonLockoutMinutes

Define um tempo de bloqueio de dungeon após o boss da dungeon ter sido morto. O valor especificado é em minutos.

KeyValuesDefaultMandatory
dungeonLockoutMinutesIntegernone
Exemplo
dungeonLockoutMinutes: 1440

Pacotes de dungeons baseadas em mundo

Os seguintes valores se aplicam apenas a dungeons baseadas em mundo.


worldName

Define o nome do mundo que deve ser empacotado.

KeyValuesDefaultMandatory
worldNameStringnone
Exemplo
worldName: my_minecraft_world

womholeWorldName

Esta função define o nome do mundo wormhole, que serve como um mundo secundário vinculado ao mundo principal. É utilizado para recursos como hubs de teletransporte ou câmaras de boss exclusivas.

KeyValuesDefaultMandatory
womholeWorldNameStringnone
Exemplo
womholeWorldName: my_minecraft_world_wormhole

environment

Define o ambiente do mundo.

KeyValuesDefaultMandatory
environmentEnvironmentnone
Exemplo
environment: NORMAL

teleportLocation

Define a localização de teletransporte do pacote de dungeon. É para aqui que os jogadores serão teletransportados ao entrar na dungeon.

KeyValuesDefaultMandatory
teleportLocationStringnone
Exemplo
teleportLocation: my_minecraft_world,-1.5,68,0.5,0.0,0.0

allowExplosionBlockDamage

Permite ou impede que explosões danifiquem blocos em uma dungeon. As explosões são consideradas explosões elite, portanto, qualquer dano aos blocos será regenerado dentro de 2 minutos.

KeyValuesDefaultMandatory
allowExplosionBlockDamageBooleanfalse
Exemplo
allowExplosionBlockDamage: true

Dungeons instanciadas

Dungeons instanciadas criam um novo mundo cada vez que um grupo de jogadores deseja completar uma dungeon e o exclui quando terminar. Para que isso funcione corretamente, você deve colocar uma pasta seguindo o dungeonConfigFolderName na pasta de configuração world_blueprints do EliteMobs.

Em seguida, você coloca o mundo que usará dentro da pasta que criou, certificando-se de que o arquivo session.lock do mundo seja excluído.

Os seguintes valores se aplicam apenas a dungeons instanciadas. Observe que todas as dungeons instanciadas são dungeons de mundo, portanto, também usam os valores das dungeons de mundo.


startLocation

Define a localização de teletransporte do ponto de partida da dungeon instanciada. É para aqui que os jogadores serão teletransportados ao iniciar a dungeon instanciada com /em start.

KeyValuesDefaultMandatory
startLocationStringnone
Exemplo
startLocation: my_minecraft_world,10.5,70,10.5,0.0,0.0

permission

Define a permissão necessária para entrar na instância da dungeon.

KeyValuesDefaultMandatory
permissionStringnone
Exemplo
permission: elitedungeon.mypermission

minPlayerCount

Define a contagem mínima de jogadores necessária para iniciar uma dungeon.

KeyValuesDefaultMandatory
minPlayerCountInteger1
Exemplo
minPlayerCount: 1

maxPlayerCount

Define a contagem máxima de jogadores necessária para iniciar uma dungeon.

KeyValuesDefaultMandatory
maxPlayerCountInteger5
Exemplo
maxPlayerCount: 5

dungeonObjectives

Define a lista de objetivos de dungeon necessários para que a dungeon seja considerada concluída.

KeyValuesDefaultMandatory
dungeonObjectivesString Listnone
Exemplos

Atualmente, existem dois tipos de objetivos de dungeon:

  • Matar alvo: filename=boss.yml:amount=X
  • Matar porcentagem de dungeon: clearpercentage=X.Y
dungeonObjectives:
- filename=dungeon_final_boss.yml
- filename=dungeon_miniboss_one.yml
- filename=dungeon_miniboss_two.yml
dungeonObjectives:
- clearpercentage=0.8

difficulties

Define a lista de dificuldades na dungeon instanciada.

Obrigatório para dungeons instanciadas!

KeyValuesDefaultMandatory
difficultiesSpecial [1]none
Exemplos
difficulties:
- levelSync: 25
id: 0
name: normal
- levelSync: 20
id: 1
name: hard
- levelSync: 15
id: 2
name: mythic

create_packager_difficulty.jpg

Special [1]

Expandir Tabela

Definir dificuldades de dungeon instanciada criará automaticamente diferentes opções de dificuldade ao entrar na dungeon.

Os nomes de dificuldade definidos aqui serão os usados na pasta de bosses customizados, onde você pode definir quais poderes os bosses têm com base na dificuldade.

As dificuldades estão em formato de lista que possuem os seguintes campos:

KeyDescriptionValuesMandatory
nameNome da dificuldade para os jogadores.String
idID da dificuldade, usado em bosses customizados e itens customizados para o recurso baseado em dificuldade.String
levelSyncDefine o nível do level sync, se houver. O level sync faz com que todo o equipamento do jogador seja limitado ao valor definido, tornando impossível que os jogadores tenham um nível muito alto para uma dungeon e mantendo-a relevante para execuções posteriores. Baseado no sistema de level sync do Final Fantasy 14.Integer

Dynamic dungeons

Dynamic dungeons são uma extensão de dungeons instanciadas, mas com uma diferença importante: elas permitem que o conteúdo da dungeon seja dimensionado para o nível de dificuldade escolhido pelo jogador. As opções de nível disponíveis para o jogador são determinadas pelo nível de Guild desbloqueado do jogador.

Ao projetar bosses e mobs para uma dynamic dungeon, use a configuração level: dynamic. Qualquer loot em dynamic dungeons deve ser definido com scalability: scalable.

Os seguintes valores são necessários para dynamic dungeons. Como todas as dynamic dungeons também são dungeons instanciadas, elas também usam todos os valores e configurações de dungeons instanciadas.


contentType

Define o tipo de dungeon. Isso deve ser definido como DYNAMIC_DUNGEON.

KeyValuesDefaultMandatory
contentTypeOPEN_DUNGEON / INSTANCED_DUNGEON / DYNAMIC_DUNGEON / HUBnone
Exemplo
contentType: DYNAMIC_DUNGEON

contentLevel

Define o nível de conteúdo que a dungeon deve exibir no menu EM. Isso precisa ser definido como o valor de -1 para que a dungeon seja exibida como uma dynamic dungeon.

KeyValuesDefaultMandatory
contentLevelIntegernone
Exemplo
contentLevel: -1

difficulties

Define a lista disponível de dificuldades e level sync na dynamic dungeon.

Obrigatório para dungeons instanciadas!

KeyValuesDefaultMandatory
difficultiesSpecial [1]none
Exemplos
difficulties:
- levelSync: '+5'
name: normal
id: 0
- levelSync: '+0'
name: hard
id: 1
- levelSync: '-5'
name: mythic
id: 2

create_packager_difficulty.jpg

Special [1]

Expandir Tabela

Definir dificuldades de dungeon instanciada criará automaticamente diferentes opções de dificuldade ao entrar na dungeon.

Os nomes de dificuldade definidos aqui serão os usados na pasta de bosses customizados, onde você pode definir quais poderes os bosses têm com base na dificuldade.

Definir valores de levelSync para números positivos ou negativos entre aspas controla como o equipamento do jogador é sincronizado dentro da dungeon. Esses valores não afetam o nível da própria dungeon—o conteúdo da dungeon sempre sincroniza diretamente com a escolha de nível do jogador na entrada.

Por exemplo, se levelSync for definido como "+0", o equipamento do jogador será sincronizado para corresponder exatamente ao nível de conteúdo da dungeon. Se definido como "+5", o equipamento do jogador será sincronizado 5 níveis acima do conteúdo da dungeon. Se definido como "-5", seu equipamento será sincronizado 5 níveis abaixo do conteúdo da dungeon.

As dificuldades estão em formato de lista que possuem os seguintes campos:

KeyDescriptionValuesMandatory
nameNome da dificuldade para os jogadores.String
idID da dificuldade, usado em bosses customizados e itens customizados para o recurso baseado em dificuldade.String
levelSyncDefine o nível para escalonamento de equipamento do jogador. Isso determina como o nível de equipamento de um jogador é ajustado em relação ao conteúdo da dungeon, permitindo que o equipamento esteja até alguns níveis acima ou abaixo da dificuldade de dungeon escolhida. Baseado no sistema de level sync do Final Fantasy 14.
Integer

Usando o arquivo de pacote de dungeon meta_pack.yml para grandes dungeons.

Às vezes, você pode estar trabalhando em uma grande dungeon que inclui outras dungeons menores dentro dela, permitindo que os jogadores viajem entre elas através do mundo da dungeon principal. Um ótimo exemplo disso é a Adventure Dungeon Primis do EliteMobs.

Primis apresenta um vasto mundo onde os jogadores podem explorar e completar quests, mas também inclui duas dungeons instanciadas dentro de seu mundo—uma das quais serve como a luta do boss final. Em casos como este, haverá vários arquivos de pacote de dungeon, embora todos pertençam à mesma dungeon abrangente.

Para gerenciar isso, usamos um arquivo de pacote de dungeon meta. Este arquivo atua como um diretório central, especificando a dungeon primária e listando todo o conteúdo de dungeon adicional associado a ela.

Vamos dar uma olhada mais de perto em como o pacote de dungeon meta Primis está estruturado:

isEnabled: true
name: '&2[000-020] The Primis Adventure!'
customInfo:
- The tutorial adventure for players
- new to EliteMobs!
downloadLinkV2: https://discord.gg/9f5QSka
dungeonSizeCategory: LAIR
environment: NORMAL
protect: true
contentType: META_PACKAGE
containedPackages:
- primis_adventure.yml
- primis_blood_temple_sanctum.yml
- primis_gladius_invasion_dungeon.yml
setupMenuDescription:
- '&2A soft tutorial adventure for players between levels 0-20!'
- '&2Adventures are massive maps with quests,'
- '&2many bosses and npcs, among other things!'
- '&2Also has custom models!'
dungeonVersion: 21 #added dungeon meta package file

Como você pode ver, o arquivo de pacote de dungeon meta é muito semelhante a um pacote de dungeon regular, com algumas diferenças importantes. O contentType: é definido como META_PACKAGE, e há uma configuração adicional chamada containedPackages:. Esta configuração lista todos os outros pacotes de dungeon que fazem parte da dungeon maior.

Ao criar seu meta package, certifique-se de incluir a configuração containedPackages: e listar cada pacote de dungeon que faz parte de sua dungeon maior. Isso garante que tudo esteja adequadamente vinculado e organizado dentro da estrutura abrangente.

Ao versionar sua dungeon, todo o versionamento deve ser gerenciado através do meta package. Isso ocorre porque o meta package serve como o pacote primário que determina a versão de toda a dungeon e também é o pacote usado para exibir informações no menu /em setup.

Tenha em mente que dungeons individuais listadas no meta package ainda podem aparecer no menu /em teleport. Para evitar isso, você precisará desabilitar manualmente as opções de teletransporte para cada uma dessas dungeons em seus respectivos arquivos de configuração.

Por exemplo, no caso da dungeon Primis:

Desabilite as entradas de teletransporte no menu para primis_blood_temple_sanctum.yml e primis_gladius_invasion_dungeon.yml. Deixe as opções de teletransporte habilitadas para primis_adventure.yml, pois isso serve como o hub principal onde os jogadores começam sua jornada e acessam as outras dungeons. Esta configuração garante uma experiência tranquila para os jogadores, mantendo a estrutura adequada e a funcionalidade para o sistema de dungeon.

Ao nomear o arquivo, recomendamos a seguinte convenção de nomenclatura:

your_dungeon_name_meta_pack.yml


Valores Recomendados de Boss

Criando um mob de dungeon médio

Recomendamos deixar a configuração normalizedCombat definida como true. Esta configuração normaliza todos os mobs para escalar igualmente com saúde e dano, independentemente de seu tipo de entidade.

normalizedCombat: true
healthMultiplier: 1.0 #4 hits to slay
damageMultiplier: 1.0 #1.5 hearts of dmg

Certamente, aqui está a versão revisada com clareza e formatação mantidas:

Nota: Dado que 1.0 é o valor padrão para saúde e dano, você pode simplesmente omitir a definição de healthMultiplier ou damageMultiplier e definir normalizedCombat como true.

Criando trash packs

Trash packs são numerosos, mas não muito perigosos:

normalizedCombat: true
healthMultiplier: 0.7 #3 hits to slay
damageMultiplier: 0.5 #0.5 hearts of dmg

Criando reforços

Os reforços devem morrer muito facilmente, mas representam um perigo em termos de dano (esses valores são recomendados para 4+ entidades corpo a corpo, o uso real pode variar):

normalizedCombat: true
healthMultiplier: 0.25 #1 hit to slay
damageMultiplier: 0.6 #1 heart of dmg

Criando minibosses

Minibosses devem se manter firmes e representar um desafio mecânico para os jogadores. Deve ser um teste de habilidade que dura um pouco, mas não algo extremamente mortal:

normalizedCombat: true
healthMultiplier: 3.0 #10 hits to slay
damageMultiplier: 1.2 #2 hearts of dmg

Criando bosses

Bosses são um verdadeiro desafio, a conclusão de um acúmulo em uma dungeon e um verdadeiro teste de habilidade com tudo em jogo. Os encontros devem ser longos e a morte deve ser uma ameaça presente.

normalizedCombat: true
healthMultiplier: 7.0 #23 hits to slay
damageMultiplier: 1.4 #2.5 hearts of dmg

Esses valores recomendados são apenas estimativas aproximadas, e os valores finais devem ser ajustados de acordo com os encontros específicos.

Isso é particularmente crucial para bosses finais de dungeons; você pode querer exceder significativamente o valor recomendado de 7.0 para healthMultiplier para dar à última luta aquela sensação épica.


Empacotando conteúdo do EliteMobs para distribuição

Finalmente, você provavelmente desejará empacotar sua dungeon para armazenamento ou distribuição.

O EliteMobs possui um sistema de importação que permite que administradores importem, instalem e desinstalem conteúdo rapidamente. Você pode ver como funciona aqui.

Distribuindo Resource Packs de Dungeon

A partir do EliteMobs 9.6.0, as dungeons podem ser empacotadas e distribuídas com seus próprios resource packs! Isso permite que você faça coisas legais, como usar texturas ou modelos customizados para loot que cai na dungeon, ou adicionar sons customizados—como fizemos em nossa dungeon The Hallowed Haunt.

Para distribuir um resource pack com sua dungeon, crie-o como qualquer resource pack padrão. Se você quiser um modelo, pode referenciar o resource pack padrão do EliteMobs. O resource pack deve ser distribuído descompactado, então crie uma pasta com o nome da sua dungeon, por exemplo: my_cool_dungeon_rsp. Coloque todos os arquivos do resource pack que normalmente iriam para o zip dentro desta pasta. Em seguida, coloque esta pasta dentro de uma nova pasta chamada resource_pack—esta é a mesma pasta que o EliteMobs usa para armazenar seu resource pack padrão.

Depois de organizar seus arquivos, a estrutura de diretório deve se parecer com isto:

resource_pack
└── my_cool_dungeon_rsp
└── [resource pack files]

Uma vez concluído, seu resource pack de dungeon deve ser importado com sucesso quando a dungeon for instalada.

Aparando Mundos

Às vezes, você pode precisar reduzir o tamanho do seu mundo Minecraft para torná-lo mais leve e, consequentemente, mais fácil de distribuir. Isso pode ser alcançado através do uso do plugin WorldBorder. Apesar de o plugin estar listado como suportando apenas o MineCraft até a versão 1.19, ele funciona perfeitamente na versão mais recente do MineCraft em 25 de janeiro de 2024.

Details

Dica Se você está fazendo isso pela primeira vez, pode ser uma boa ideia criar um backup do seu mundo, caso algo dê errado.

Depois que o plugin estiver instalado, navegue até o meio do mundo ou da área específica que deseja aparar. Em seguida, execute o comando /wb set x, onde x representa o tamanho aproximado do raio que você deseja para sua área.

Details

Dica Se /wb não estiver funcionando para você, tente /worldborder:wb.

Depois de executar este comando, voe até as bordas do seu mundo para verificar se a borda do mundo foi definida corretamente e cobre o tamanho pretendido. Você reconhecerá ter alcançado a borda do mundo quando for empurrado para trás, acompanhado por uma mensagem no chat.

trim_pic_1.jpg

Na imagem acima, pretendemos aparar o mundo ao redor dos blocos roxos, deixando apenas alguns chunks ao redor deles. Para conseguir isso, ficamos no meio da área roxa nos quadrados vermelhos e executamos /wb set 50, definindo a borda do mundo logo além da área roxa.

Em seguida, usamos o comando /wb trim [freq] [pad], com a frequência definida para 200 e o pad para 20. O pad determina quantos chunks devem ser deixados ao redor da borda do mundo (a área roxa), e a frequência determina quantos chunks devem ser processados por segundo. Depois de executar /wb trim 200 20, seremos solicitados a confirmar executando /wb trim confirm. Confirmamos a ação e, após algum tempo, nosso mundo será aparado, reduzindo seu tamanho e tornando-o mais conveniente para distribuição.

Agora você pode remover a borda do mundo usando /wb clear all ou simplesmente deixá-la se desejar.

Aparando a pasta do mundo

Existem vários arquivos e pastas localizados na pasta do seu mundo que podemos descartar, pois os plugins não usam todos eles. Isso reduzirá o tamanho do seu mundo e facilitará a distribuição.

Para um ambiente de mundo NORMAL:

Para preparar seu mundo, mantenha os seguintes arquivos e pastas:

  1. Pasta region
  2. raids.dat de dentro da pasta data (certifique-se de que esteja dentro da pasta data ao copiar)
  3. Arquivo level.dat

Você pode excluir com segurança todos os outros arquivos e pastas localizados na pasta do mundo. Isso configurará seu mundo corretamente para o ambiente NORMAL.

Para ambientes de mundo NETHER e THE_END:

Para preparar seu mundo, mantenha os seguintes arquivos e pastas:

  1. Pasta region dentro da pasta DIM-1 (certifique-se de que esteja dentro da pasta DIM-1 ao copiar)
  2. raids.dat de dentro da pasta data (certifique-se de que esteja dentro da pasta data ao copiar)
  3. Arquivo level.dat

Você pode excluir com segurança todos os outros arquivos e pastas localizados na pasta do mundo. Isso configurará seu mundo corretamente para os ambientes NETHER e THE_END.

Executando o comando package

O EliteMobs possui o comando /em package <dungeonName> <version>. Este comando percorre todas as pastas de configuração do EliteMobs e empacota automaticamente todo o conteúdo em pastas que correspondem ao dungeonName em um arquivo compactado e uma pasta normal na pasta exports do EliteMobs.

Por este motivo, é altamente recomendável que você mantenha o conteúdo que deseja empacotar em pastas com o mesmo nome do nome do seu pacote. Caso contrário, você terá que reunir e empacotar manualmente os arquivos na estrutura de arquivo para distribuição.

Adicionando o arquivo de pacote de dungeon

Se você estiver criando uma dungeon, precisará adicionar manualmente o arquivo de pacote de dungeon na pasta recém-gerada na pasta exports. Seu arquivo de configuração de pacote de dungeon deve seguir o formato descrito acima e ser colocado em uma pasta chamada content_packages. Verifique a estrutura de arquivo para mais informações..

Certifique-se de compactar sua dungeon quando terminar!

Estrutura de arquivo

Se você fez tudo corretamente, a estrutura de arquivo deve ser semelhante a este exemplo, onde chamamos a dungeon de my_cool_dungeon:

Exemplo de Estrutura de Arquivo my_cool_dungeon
  • my_cool_dungeon.zip
    • content_packages
      • my_cool_dungeon.yml <- É aqui que seu arquivo de configuração de pacote de dungeon vai
    • worldcontainer
      • [Suas pastas de mundo vão aqui]
    • wormholes
      • my_cool_dungeon
        • [Seus wormholes vão aqui]
    • npcs
      • my_cool_dungeon
        • [Seus NPCs vão aqui]
    • customtreasurechests
      • my_cool_dungeon
        • [Seus baús de tesouro vão aqui]
    • customquests
      • my_cool_dungeon
        • [Suas quests vão aqui]
    • customitems
      • my_cool_dungeon
        • [Seus itens customizados vão aqui]
    • custombosses
      • my_cool_dungeon
        • [Seus bosses customizados vão aqui]
    • customarenas
      • my_cool_dungeon
        • [Suas arenas customizadas vão aqui]
    • powers
      • my_cool_dungeon
        • [Seus poderes customizados vão aqui]
    • world_blueprints
      • my_cool_dungeon
        • [Sua pasta de mundo vai aqui, usada para dungeons instanciadas]
    • customevents
      • my_cool_dungeon
        • [Seus eventos customizados vão aqui]
    • customspawns
      • my_cool_dungeon
        • [Seus spawns customizados vão aqui]
    • models
      • [Seus modelos de formato bbmodel do ModelEngine vão aqui, aceita pastas]

Isso permite que a maioria dos usuários arraste e solte arquivos diretamente em seu servidor e os tenha funcionando imediatamente.

Importante: ao empacotar para distribuição, certifique-se de DESINSTALAR A MINIDUNGEON PRIMEIRO! Você não quer distribuir minidungeons instaladas, você quer que administradores as configurem em seus servidores!

Compartilhando Pacotes de Dungeon que você criou com a comunidade

O Discord contém uma seção #community_dungeons onde as pessoas podem compartilhar suas criações de Minidungeon. Sinta-se à vontade para contribuir!