Saltar para o conteúdo principal

Criar wormholes

webapp_banner.jpg

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 o teletransporte até terem passado mais de 5 segundos e o jogador se ter afastado mais de 1.5 × sizeMultiplier + 2 blocos do portal de destino, para evitar ciclos
  • 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 a cada 5 ticks, um quarto de segundo, e dentro de um raio de 30 blocos da wormhole.

Mudar de mundo conta como sair do raio do portal de destino, pelo que, depois de uma mudança de mundo, só resta o requisito dos 5 segundos. Voltar a ligar ao servidor elimina o tempo de espera.

Criar uma wormhole

Adiciona os ficheiros de configuração a plugins/EliteMobs/wormholes. São permitidas subpastas, por exemplo 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 Yaw a 180, o jogador chega virado para norte. O Pitch segue a convenção do Minecraft: valores positivos fazem olhar para baixo e negativos para cima. Um Pitch de 20 faz o jogador chegar a olhar ligeiramente para baixo.

A wormhole não empurra o jogador. O destino são as coordenadas do outro portal, incluindo yaw e pitch.

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.

KeyValuesDefault
isEnabledBooleantrue
Exemplo
isEnabled: true

location1​

Especifica a primeira localização da wormhole. Ambos os campos aceitam world,x,y,z,yaw,pitch ou o nome de ficheiro de um pacote de masmorra, como adventurers_guild_hub.yml. A referência ao pacote usa a localização de teletransporte configurada. Instala o pacote e carrega o seu mundo antes de usares o portal. O teletransporte verifica a localização resolvida e o mundo carregado, sem exigir separadamente o indicador de instalação do pacote. Não cria uma nova instância da masmorra.

KeyValuesDefault
location1Stringnenhum
Exemplo
location1: world_one,50,100,50,0,0

location2​

Especifica a segunda localização da wormhole.

KeyValuesDefault
location2Stringnenhum
Exemplo
location2: world_two,100,33,100,0,0

location1Text​

Define o texto apresentado da primeira localização.

KeyValuesDefault
location1TextStringnenhum
Exemplo
location1Text: Awesome Wormhole In World One

create_wormhole_location1text.jpg


location2Text​

Define o texto apresentado da segunda localização.

KeyValuesDefault
location2TextStringnenhum
Exemplo
location2Text: Awesome Wormhole In World Two

create_wormhole_location2text.jpg


permission​

Define a permissão necessária para usar a wormhole nos dois sentidos. Os jogadores com /em quest bypass ativo ignoram esta verificação, mas continuam sujeitos ao custo e ao tempo de espera.

KeyValuesDefault
permissionStringnenhum
Exemplo
permission: elitemobs.mypermission

coinCost​

Define o custo de usar a wormhole. Usa elite coins ou a moeda do servidor quando a integração económica com Vault está ativa.

O custo só é cobrado depois de passarem as verificações de permissão, tempo de espera e destino, e o mesmo custo aplica-se nos dois sentidos. Um jogador que não consegue pagar recebe insufficientCurrencyForWormholeMessage de Wormholes.yml e não é teletransportado. Se o teletransporte for cancelado ou não chegar ao destino, o valor é devolvido.

Se a economia não conseguir confirmar uma cobrança ou uma devolução, o EliteMobs diz ao jogador para contactar um administrador, regista o montante para reconciliação manual e impede esse jogador de usar qualquer wormhole até o servidor reiniciar. Um coinCost negativo ou não finito regista um aviso, e a wormhole não teletransporta ninguém.

KeyValuesDefault
coinCostDouble0
Exemplo
coinCost: 0

style​

Define a forma visual da wormhole.

A forma é uma estrutura de linhas giratória feita de entidades de exibição de blocos, com partículas adicionais a cada 5 ticks. style: NONE omite essa forma.

Estes efeitos podem causar lag em alguns clientes. Define noParticlesMode: true em Wormholes.yml para desativar a estrutura e as suas partículas. O texto, os modelos personalizados e o marcador independente de Bedrock mantêm-se.

KeyValuesDefault
styleNONE / CRYSTAL / ICOSAHEDRON / CUBECUBE
Exemplo
style: CRYSTAL

create_wormhole_style.jpg


particleColor​

Define a cor das partículas usadas em style. A estrutura de linhas não usa a cor exata. O EliteMobs escolhe o bloco de betão com a cor mais próxima.

A predefinição 0 é preto, por isso convém escolher a cor em cada wormhole que criares.

KeyValuesDefault
particleColor0x seguido de um código hexadecimal0
Exemplo
particleColor: 0x9f5cdd

create_wormhole_particlecolor.jpg


blindPlayer​

Define se o portal aplica cegueira durante 40 ticks, cerca de 2 segundos, ao teletransportar.

KeyValuesDefault
blindPlayerBooleanfalse
Exemplo
blindPlayer: true

create_wormhole_blind.jpg


sizeMultiplier​

Multiplica a forma definida por style e altera o raio de ativação para 1.5 × sizeMultiplier blocos. A distância inclui a altura, e a pesquisa separada de jogadores a 30 blocos continua a limitar a ativação. Usa um número positivo e finito. Também afeta a altura de colocação e do texto, mas não redimensiona um modelo de FreeMinecraftModels.

KeyValuesDefault
sizeMultiplierMultiplier1
Exemplo
sizeMultiplier: 3

Tem em conta que terás de ajustar as coordenadas Y da wormhole depois de aplicar o multiplicador de tamanho.

create_wormhole_size.jpg


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.

Os modelos de wormholes só funcionam com FreeMinecraftModels. O modelo tem de existir, caso contrário o portal usa a estrutura definida por style. O modelo é decorativo e não reage a cliques. O teletransporte continua a depender da proximidade.

KeyValuesDefault
customModel1Stringnenhum
Exemplo
customModel1: my_custom_wormhole_model

customModel2​

Define um modelo personalizado para a segunda localização, através do seu identificador. Substitui a forma de style nessa localização. Aplica-se o mesmo requisito de FreeMinecraftModels indicado em customModel1.

KeyValuesDefault
customModel2Stringnenhum
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: 0 #free to use; a positive value charges elite coins, or Vault currency when Vault is enabled
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​

Os efeitos podem causar problemas de desempenho em clientes Bedrock. Podes configurá-los em plugins/EliteMobs/Wormholes.yml:

  • reducedParticlesMode: true (predefinição) - Reduz o número de pontos traçados ao longo da forma
  • noParticlesMode: false (predefinição) - Definir isto como true desativa completamente a forma e as partículas da wormhole

Com qualquer uma destas opções ativa, os jogadores Bedrock também podem ver um marcador simples quando a ligação do servidor a entidades personalizadas Bedrock está disponível. Usa particleColor e uma escala mínima de 0.5. Um modelo personalizado carregado com sucesso substitui o marcador. Os jogadores Java nunca o veem.

A estrutura de linhas só é atualizada enquanto um jogador num raio de 30 blocos tem linha de visão para o portal. Desaparece após cerca de 5 segundos sem linha de visão, ou quando já não há jogadores próximos. Isto não desativa o teletransporte por proximidade nem a exibição separada do modelo personalizado.