Criar Wormholes
O que são Wormholes?
As Wormholes são um tipo de sistema de teletransporte portal-a-portal altamente eficiente. Os portais são assinalados com efeitos visuais.
Mecânicas das Wormholes
As Wormholes podem fazer o seguinte:
- Atravessar um portal para chegar ao portal de destino, e ir do portal de destino de volta para o primeiro.
- Tocar um som quando os jogadores as atravessam
- Cegar temporariamente os jogadores ao atravessá-las para suavizar a transição
- Bloquear os jogadores do teletransporte até terem passado pelo menos 5 segundos e terem saído do raio de ativação do portal de destino, para evitar ficarem presos num ciclo de teletransporte
- Desativar automaticamente o modo de voo quando os jogadores se teletransportam
- Reproduzir efeitos visuais elaborados
- Exigir permissões para usar a wormhole
- Exigir o uso de moeda para usar a wormhole
- Notificar os jogadores e administradores quando o portal de destino não está disponível
Os jogadores só são verificados contra uma wormhole a cada 5 ticks (um quarto de segundo), e apenas enquanto estiverem a 30 blocos dela.
Criar uma Wormhole
As Wormholes são adicionadas como ficheiros de configuração à pasta wormholes. É possível criar subpastas, e é recomendado fazê-lo se estiveres a adicionar wormholes para masmorras específicas, no formato ` ~/plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml`.
Colocar uma wormhole no jogo
Em vez de escreveres as coordenadas à mão, podes ficar onde queres que o portal esteja e executar:
/em place wormhole <filename> <1/2>
1 define location1, 2 define location2. O comando exige a permissão elitemobs.place.admin, tem de ser executado por um jogador e escreve as novas coordenadas diretamente no ficheiro de configuração da wormhole. O portal fica ancorado um bloco (vezes sizeMultiplier) acima de onde estavas, por isso os jogadores que chegam por ele caem no bloco em que estavas.
Direção de chegada
O Yaw e o Pitch (os dois últimos números nas coordenadas) em location1 e location2 definem a direção para a qual o jogador fica virado ao chegar a esse lado da wormhole. Vejamos este exemplo:
location1: my_world,20,10,20,180,20
Com o Yaw definido como 180, o jogador seria ejetado virado para Norte, e com o Pitch definido como 20, ele também seria ejetado ligeiramente para cima. Se desejares que o jogador permaneça no mesmo bloco da wormhole ao ser ejetado, então é boa ideia definir o Pitch como negativo para garantir que os jogadores não escorregam do bloco.
Configuração da Wormhole
Segue-se um exemplo de uma configuração de Wormhole válida:
isEnabled: true
location1: em_primis,1288.5,19,452.5,135,-23
location2: em_primis,1288.5,-39,451.5,180,-1
isEnabled
Define se a wormhole está ativada.
| Key | Values | Default |
|---|---|---|
isEnabled | Boolean | true |
Exemplo
isEnabled: true
location1
Especifica a primeira localização da wormhole.
| Key | Values | Default |
|---|---|---|
location1 | String | nenhum |
Exemplo
location1: world_one,50,100,50,0,0
location2
Especifica a segunda localização da wormhole.
| Key | Values | Default |
|---|---|---|
location2 | String | nenhum |
Exemplo
location2: world_two,100,33,100,0,0
location1Text
Define o texto apresentado da primeira localização.
| Key | Values | Default |
|---|---|---|
location1Text | String | nenhum |
Exemplo
location1Text: Awesome Wormhole In World One

location2Text
Define o texto apresentado da segunda localização.
| Key | Values | Default |
|---|---|---|
location2Text | String | nenhum |
Exemplo
location2Text: Awesome Wormhole In World Two

permission
Define a permissão necessária para usar a wormhole.
| Key | Values | Default |
|---|---|---|
permission | String | nenhum |
Exemplo
permission: elitemobs.mypermission
coinCost
Define o custo, em elite coins, de usar a wormhole.
| Key | Values | Default |
|---|---|---|
coinCost | Double | 0 |
Exemplo
coinCost: 2.5
style
Define a forma visual da wormhole.
As partículas que compõem estas formas podem causar lag em determinados clientes. Para desligar as partículas, vai a Wormholes.yml e define noParticlesMode como true.
| Key | Values | Default |
|---|---|---|
style | NONE / CRYSTAL / ICOSAHEDRON / CUBE | CUBE |
Exemplo
style: CRYSTAL

particleColor
Define a cor das partículas usadas na definição style.
| Key | Values | Default |
|---|---|---|
particleColor | 0x seguido de um código hexadecimal | 0 |
Exemplo
particleColor: 0x9f5cdd

blindPlayer
Define se o portal cega o jogador para um teletransporte mais suave.
| Key | Values | Default |
|---|---|---|
blindPlayer | Boolean | false |
Exemplo
blindPlayer: true

sizeMultiplier
Multiplica o tamanho do portal e da forma definida por style. O sizeMultiplier também afeta o raio de ativação - os jogadores têm de estar a uma distância de 1.5 × sizeMultiplier blocos da wormhole para acionar o teletransporte.
| Key | Values | Default |
|---|---|---|
sizeMultiplier | Multiplier | 1 |
Exemplo
sizeMultiplier: 3
Tem em conta que terás de ajustar as coordenadas Y da wormhole depois de aplicar o multiplicador de tamanho.

customModel1
Define um modelo personalizado a usar para a exibição da wormhole na primeira localização. Usa uma string identificadora de modelo. Isto substitui a forma definida em style para a localização 1.
| Key | Values | Default |
|---|---|---|
customModel1 | String | nenhum |
Exemplo
customModel1: my_custom_wormhole_model
customModel2
Define um modelo personalizado a usar para a exibição da wormhole na segunda localização. Usa uma string identificadora de modelo. Isto substitui a forma definida em style para a localização 2.
| Key | Values | Default |
|---|---|---|
customModel2 | String | nenhum |
Exemplo
customModel2: my_custom_wormhole_model
Exemplo de Configuração de Wormhole
Neste exemplo vamos criar uma wormhole simples que nos leva de um mundo para outro. Não te esqueças de que as wormholes também podem simplesmente teletransportar os jogadores para uma localização diferente no mesmo mundo.
isEnabled: true #We enable the worm by setting this value to true
location1: my_world,1.5,11.0,1.5,108.0,5.0 #this is where the wormhole will appear in my_world
location2: my_other_world,766.5,29.0,517.5,-136.0,5.0 #this is where the wormhole will appear in my_other_world
location1Text: "&aGo to My World" #makes a nice display text above wormhole location1
location2Text: "&aGo to My Other World" #makes a nice display text above wormhole location2
permission: eliteperm.coolplayers #only players with this permission will be able to use the wormhole, both for location1 and location2
coinCost: 2 #the players will need to pay 2 elite coins to be able to use the wormhole
style: CRYSTAL #this wormhole will be in the shape of a crystal
particleColor: 0x00ff00 #this will set the wormhole particles to green
blindPlayer: true #the wormhole teleport will blind the player for a short duration to make the transition less jarring
sizeMultiplier: 1.0 #sets how big the shape of the wormhole should be
Problemas de Desempenho
As partículas da wormhole podem causar problemas de desempenho do cliente para jogadores que estão a usar bedrock. Podes configurar o desempenho das partículas em ~plugins\EliteMobs\Wormholes.yml:
reducedParticlesMode: true(predefinição) - Reduz para metade o número de pontos traçados ao longo da forma, para um melhor desempenhonoParticlesMode: false(predefinição) - Definir isto comotruedesativa completamente a forma e as partículas da wormhole
Enquanto qualquer uma dessas duas opções estiver ativa, os jogadores Bedrock ligados através de Geyser/Floodgate veem adicionalmente uma entidade marcadora simples no lugar da forma, escalada por sizeMultiplier e colorida com particleColor. Os jogadores Java nunca a veem.
Nota: As Wormholes só são renderizadas para jogadores que estejam a 30 blocos de distância, e apenas enquanto pelo menos um desses jogadores tiver linha de visão para o portal.
