Criar Spawns
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.
| Key | Values | Default |
|---|---|---|
isEnabled | Boolean | true |
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.
| Key | Values | Default |
|---|---|---|
lowestYLevel | Integer | 0 |
Exemplo
lowestYLevel: 0
highestYLevel
Define o nível y mais alto (altura do mapa) utilizado.
| Key | Values | Default |
|---|---|---|
highestYLevel | Integer | 320 |
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.
| Key | Values | Default |
|---|---|---|
validWorlds | String List | nenhum |
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.
| Key | Values | Default |
|---|---|---|
validWorldEnvironments | Environment List | nenhum |
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.
| Key | Values | Default |
|---|---|---|
validBiomesV2 | Biome List | nenhum |
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.
| Key | Values | Default |
|---|---|---|
earliestTime | Long | 0 |
Exemplo
earliestTime: 0
latestTime
Define a hora máxima do jogo para o spawn, inclusive. Mantém-na maior ou igual a earliestTime.
| Key | Values | Default |
|---|---|---|
latestTime | Long | 24000 |
Exemplo
latestTime: 24000
moonPhase
Define a fase lunar necessária para que o spawn personalizado ocorra.
| Key | Values | Default |
|---|---|---|
moonPhase | Especial [1] | nenhum |
Exemplo
moonPhase: FULL_MOON
Especial [1]
Expandir Tabela
| Moon Phase | Preview |
|---|---|
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.
| Chave | Valores | Predefinição |
|---|---|---|
bypassWorldGuard | Boolean | false |
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.
| Key | Values | Default |
|---|---|---|
canSpawnInLight | Boolean | false |
Exemplo
canSpawnInLight: false
isSurfaceSpawn
Define se o spawn personalizado só pode acontecer à superfície de um mundo.
| Key | Values | Default |
|---|---|---|
isSurfaceSpawn | Boolean | false |
Exemplo
isSurfaceSpawn: false
isUndergroundSpawn
Define se o spawn personalizado só pode acontecer no subsolo.
| Key | Values | Default |
|---|---|---|
isUndergroundSpawn | Boolean | false |
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:
- 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 sevalidWorlds/validWorldEnvironmentso excluírem. Eventos temporizados também excluem jogadores em mundos de masmorra EliteMobs. O modo de jogo não exclui jogadores. - 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.
- Y é determinado por
isSurfaceSpawn,isUndergroundSpawnou, se nenhum estiver ativo, por uma pesquisa ascendente de dois blocos de ar sobre um bloco não atravessável. - 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
lowestYLevelehighestYLevel - Regras do jogo: A seleção normal de jogadores respeita a regra de spawn de mobs do mundo (
spawnMobsdesde Minecraft 1.21.11,doMobSpawningantes). Os reforços globais ignoram esta verificação de seleção. - Flags do WorldGuard: Verifica
elitemobs-events,elitemob-spawninge a flagmob-spawningdo próprio WorldGuard - Estandartes de paz: Com
suppressEventsativo emPeaceBanner.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.
