Saltar para o conteúdo principal

Criar Spawns

webapp_banner.jpg

O que são Spawns Personalizados?​

Os Spawns Personalizados são usados por Eventos e reforços globais para definir como, onde e quando um evento deve fazer aparecer o boss desse evento.

Os Eventos e reforços globais definem qual spawn estão a usar escrevendo o seu nome de ficheiro.

Criar Spawns Personalizados

Os Spawns Personalizados ficam na pasta customspawns. Um Spawn Personalizado pode ser usado por vários eventos ao mesmo tempo, por isso não precisas de criar um por evento.

Aqui está um exemplo de Spawn Personalizado:

isEnabled: true
validWorldEnvironments:
- NORMAL
- CUSTOM
bypassWorldGuard: false
isSurfaceSpawn: true

Criar um Spawn em Qualquer Lugar​

Para criar um spawn que pode ocorrer em qualquer lugar, a tua configuração deve assemelhar-se ao seguinte:

isEnabled: true
canSpawnInLight: true

Isto elimina a restrição de luz e não acrescenta filtros próprios de mundo, hora ou lua. Continuam a aplicar-se a lista de mundos ativados, os limites Y predefinidos, os jogadores próximos elegíveis, os chunks carregados, as flags de proteção e as verificações de localização abaixo.

Se estás interessado em criar um spawn mais personalizado, continua a ler abaixo.

Valores​


isEnabled​

Define se o spawn está ativado.

KeyValuesDefault
isEnabledBooleantrue
Exemplo
isEnabled: true

lowestYLevel​

Define o nível Y mínimo. A predefinição 0 exclui grutas com Y negativo; usa um valor como -64 para permitir uma pesquisa subterrânea mais profunda. Isto não altera a escolha aleatória inicial de Y nem o limite interno da pesquisa ascendente.

KeyValuesDefault
lowestYLevelInteger0
Exemplo
lowestYLevel: 0

highestYLevel​

Define o nível y mais alto (altura do mapa) utilizado.

KeyValuesDefault
highestYLevelInteger320
Exemplo
highestYLevel: 320

validWorlds​

Filtra os mundos na seleção normal de jogadores, incluindo eventos temporizados. Omite esta definição para não acrescentar um filtro próprio; ValidWorlds.yml e as outras verificações continuam a aplicar-se. Os reforços globais escolhem jogadores diretamente do mundo do invocador e ignoram este filtro.

KeyValuesDefault
validWorldsString Listnenhum
Exemplo
validWorlds:
- WORLD
- FUN_LAND

Se quiseres que todos os teus mundos sejam válidos, podes simplesmente não usar a definição ou formatá-la assim:

validWorlds: []

validWorldEnvironments​

Filtra os ambientes de mundo na seleção normal de jogadores. Omite esta definição para não acrescentar restrições de ambiente. Os reforços globais escolhem jogadores diretamente do mundo do invocador e ignoram este filtro.

KeyValuesDefault
validWorldEnvironmentsEnvironment Listnenhum
Exemplo
validWorldEnvironments:
- NORMAL
- NETHER

Se quiseres que todos os ambientes sejam válidos, podes simplesmente não usar a definição ou formatá-la assim:

validWorldEnvironments: []

validBiomesV2​

Define os biomas onde o spawn personalizado pode acontecer. Omite-a, ou usa uma lista vazia, para não acrescentar nenhuma restrição de bioma. Esta definição costumava chamar-se validBiomes em versões mais antigas do EM.

Cada entrada é uma chave de bioma. Um nome sem namespace, como plains ou DEEP_OCEAN, é lido como minecraft:<name>, e as maiúsculas e minúsculas não importam. Se alguma entrada não for um bioma registado, o EliteMobs regista um aviso e desativa todo o ficheiro de spawn, pelo que os eventos e os reforços globais que o usam não conseguem spawnar.

O bioma é lido no ponto candidato sorteado aleatoriamente, antes de o EliteMobs determinar o nível Y final. Consulta Como é escolhida a localização de um spawn.

KeyValuesDefault
validBiomesV2Biome Listnenhum
Exemplo
validBiomesV2:
- minecraft:plains
- desert

earliestTime​

Define a hora mínima do jogo para o spawn. Ambos os limites são inclusivos. O intervalo não pode atravessar a meia-noite: se earliestTime for maior do que latestTime, o spawn não acontece.

Depois de encontrar uma localização, o EliteMobs verifica earliestTime, latestTime e moonPhase a cada tick e espera ali até as condições coincidirem. Após a espera, não volta a verificar a distância aos jogadores, a luz, o carregamento do chunk ou o WorldGuard. A verificação final do zombie e do estandarte de paz continua a ocorrer antes de colocar o boss.

KeyValuesDefault
earliestTimeLong0
Exemplo
earliestTime: 0

latestTime​

Define a hora máxima do jogo para o spawn, inclusive. Mantém-na maior ou igual a earliestTime.

KeyValuesDefault
latestTimeLong24000
Exemplo
latestTime: 24000

moonPhase​

Define a fase lunar necessária para que o spawn personalizado ocorra.

KeyValuesDefault
moonPhaseEspecial [1]nenhum
Exemplo
moonPhase: FULL_MOON

Especial [1]

Expandir Tabela
Moon PhasePreview
NEW_MOON🌑
WAXING_CRESCENT🌒
FIRST_QUARTER🌓
WAXING_GIBBOUS🌔
FULL_MOON🌕
WANING_GIBBOUS🌖
WANING_CRESCENT🌘
LAST_QUARTER🌗

bypassWorldGuard​

Pretendia fazer o spawn personalizado contornar sistemas de proteção como o WorldGuard.

Esta definição atualmente não faz nada. O EliteMobs lê a chave do teu ficheiro de spawn mas nunca age sobre ela, por isso as flags do WorldGuard são sempre verificadas, independentemente do que definires aqui. Para permitir que um spawn aconteça dentro de uma região protegida, define antes as flags relevantes do WorldGuard nessa região.

ChaveValoresPredefinição
bypassWorldGuardBooleanfalse

canSpawnInLight​

Controla a verificação de luz na escolha da localização. Com false, o nível de luz combinado do bloco, incluindo a luz do céu, tem de ser 8 ou menos. Com true, esta verificação é ignorada.

KeyValuesDefault
canSpawnInLightBooleanfalse
Exemplo
canSpawnInLight: false

isSurfaceSpawn​

Define se o spawn personalizado só pode acontecer à superfície de um mundo.

KeyValuesDefault
isSurfaceSpawnBooleanfalse
Exemplo
isSurfaceSpawn: false

isUndergroundSpawn​

Define se o spawn personalizado só pode acontecer no subsolo.

KeyValuesDefault
isUndergroundSpawnBooleanfalse
Exemplo
isUndergroundSpawn: false

Como é escolhida a localização de um spawn​

O EliteMobs não varre o mundo à procura de um sítio. Ele escolhe um jogador online aleatório e desloca-se a partir dele:

  1. Escolhe aleatoriamente um jogador elegível. Ignora-o se os seus dados EliteMobs não estiverem carregados, se o mundo não estiver em ValidWorlds.yml, se estiver numa região de instância de masmorra, arena ou prova de classe, se o mundo proibir o spawn de mobs ou se validWorlds / validWorldEnvironments o excluírem. Eventos temporizados também excluem jogadores em mundos de masmorra EliteMobs. O modo de jogo não exclui jogadores.
  2. O candidato usa deslocamentos de 24 a 127 blocos em X e Z, com sinal independente para cada eixo. Chunks não carregados são rejeitados; a pesquisa não carrega chunks.
  3. Y é determinado por isSurfaceSpawn, isUndergroundSpawn ou, se nenhum estiver ativo, por uma pesquisa ascendente de dois blocos de ar sobre um bloco não atravessável.
  4. O candidato passa então pelas validações abaixo.

Os reforços globais usam todos os jogadores do mundo do invocador em vez da lista filtrada do passo 1. Ignoram as verificações desse passo relativas a dados carregados, mundo, ambiente, instância e regra de spawn de mobs. Os candidatos continuam sujeitos às verificações de bioma, altura, proximidade, luz e WorldGuard.

São tentados até 100 candidatos, um por tick. Se nenhum servir, o EliteMobs espera um minuto e repete. A Y inicial é escolhida entre 0 e 255. A pesquisa ascendente genérica começa nessa amostra e termina em highestYLevel ou dois blocos abaixo do limite de construção do mundo, o que for mais baixo. A pesquisa subterrânea descendente termina em Y=-63 mesmo com lowestYLevel inferior. Os modos de superfície e subterrâneo têm pesquisas próprias; a superfície prevalece se ambos estiverem ativos.

Comportamento de Validação de Spawn​

O EliteMobs verifica os candidatos durante a pesquisa. Quando a hora e a lua permitem o spawn, executa a verificação final do zombie e do estandarte de paz:

  • Proximidade do jogador: Rejeita candidatos a menos de 24 blocos de qualquer jogador, usando a distância tridimensional
  • Teto do Nether: Os spawns acima de Y=127 são bloqueados na dimensão Nether
  • Segurança dos blocos: A pesquisa subterrânea exige solo sólido; a ascendente genérica exige um bloco não atravessável. Ambas exigem dois blocos de ar acima. O modo de superfície usa o bloco mais alto da coluna mais um, sem as mesmas verificações de espaço livre.
  • Nível Y: A localização final tem de estar entre lowestYLevel e highestYLevel
  • Regras do jogo: A seleção normal de jogadores respeita a regra de spawn de mobs do mundo (spawnMobs desde Minecraft 1.21.11, doMobSpawning antes). Os reforços globais ignoram esta verificação de seleção.
  • Flags do WorldGuard: Verifica elitemobs-events, elitemob-spawning e a flag mob-spawning do próprio WorldGuard
  • Estandartes de paz: Com suppressEvents ativo em PeaceBanner.yml, como por predefinição, uma localização protegida cancela esta tentativa. Um evento temporizado agenda o seu próximo evento; esta verificação não inicia outra pesquisa para a tentativa atual.
  • Spawn de verificação final: Imediatamente antes do boss, o EliteMobs cria e remove um zombie vanilla na localização. Se outro plugin de proteção bloquear esse zombie, a localização é descartada e a pesquisa recomeça.

Estas verificações são automáticas. A luz e o estandarte de paz têm as opções descritas acima; bypassWorldGuard não desativa as verificações do WorldGuard.