Pular para o conteúdo principal

Companion

Companheiros pessoais que seguem cada jogador como NPCs ou modelos do ModelEngine, com seguir/esperar e gatilhos de clique.

Gratuitasv0.10Entidades e modelos
RequerTypeWriter0.9Entity extensionQuest extensionBasic extensionRoadNetwork extensionModelEngineopcional

Visão geral​

O Companion dá a cada jogador um seguidor pessoal: um pet, um guia, um drone ou um mascote que anda atrás dele para onde quer que vá. O companheiro é um NPC (ou um modelo do ModelEngine) que apenas o dono enxerga, então cada jogador pode ter o seu sem que nenhuma entidade seja adicionada ao mundo real.

Você descreve o companheiro com uma definição de entidade que já usa no TypeWriter e a associa a uma audience. Cada jogador que entra na audience recebe um companheiro; quando sai dela, o companheiro desaparece. Um jogador pode ter vários companheiros ao mesmo tempo, um por definição de entidade.

Recursos​

  • Companheiros pessoais — cada companheiro é uma entidade de pacote exibida apenas ao seu dono.
  • NPC ou ModelEngine — a definição pode ser de um NPC ou de um modelo do ModelEngine.
  • Comportamento de seguir — o companheiro permanece entre minDistance e maxDistance blocos do jogador, sobe pequenos obstáculos e se mantém no chão.
  • Alcance automático — ele se teletransporta até o jogador após uma troca de mundo, um teleporte ou quando fica muito para trás.
  • Animações de andar e de repouso — em modelos do ModelEngine, as animações de repouso e de caminhada alternam conforme o movimento do companheiro.
  • Seguir ou esperar — uma action alterna o companheiro entre seguir e ficar parado.
  • Gatilho de clique — um evento é disparado quando o jogador clica com o botão direito em um de seus companheiros.
  • Vários ao mesmo tempo — um jogador pode ter um companheiro por definição de entidade; invocar a mesma definição de novo substitui o antigo.
  • Contagem de ativos — um fact informa quantos companheiros o jogador possui no momento.

Instalação​

  1. Instale as extensões TypeWriter Entity, Quest, Basic e RoadNetwork na aba Extensions do painel web, caso ainda não estejam instaladas (veja a documentação do TypeWriter). O Companion é compilado contra essas quatro extensões oficiais.
  2. Opcional: instale a extensão ModelEngine do TypeWriter e o plugin ModelEngine se quiser modelos 3D em vez de NPCs. O Companion funciona sem eles.
  3. Coloque o JAR do Companion em plugins/Typewriter/extensions/ e reinicie o servidor.

Primeiros passos​

Dê a cada jogador um companheiro que o segue:

  1. No painel web do TypeWriter, crie uma definição de NPC (ou uma definição do ModelEngine) para o companheiro: nome, skin ou modelo.
  2. Abra uma página de manifest e adicione uma entry Companion Invocation.
  3. Defina definition com a definição de entidade que você criou. Deixe activity vazio para usar o comportamento de repouso padrão, ou escolha uma activity de entidade se quiser algo personalizado.
  4. Ajuste minDistance (onde o companheiro para quando o jogador está parado) e maxDistance (a distância que ele mantém atrás quando o jogador anda). Os valores padrão são 2.0 e 4.0.
  5. Para restringir o companheiro a alguns jogadores, adicione criteria, por exemplo uma verificação de fact para um pet comprado. Deixe vazio para dar um companheiro a todos na audience.
  6. Publique. O companheiro aparece atrás do jogador.

Para que o jogador possa parar ou retomar o seu companheiro, use uma action Companion Follow Mode. Para reagir a cliques, adicione um evento Companion Interact e vincule as entries que ele deve disparar, como um diálogo ou um menu.

dica

O Companion Follow Mode tem seus próprios minDistance e maxDistance. Quando a action é executada, ela sobrescreve as distâncias do companheiro. Mantenha os mesmos valores da invocation, a menos que queira alterá-los.

Como funciona​

Quando o jogador entra na audience, o companheiro surge atrás dele, a maxDistance blocos. Em seguida, ele se move a cada tick: mantém minDistance quando o jogador está parado e maxDistance quando o jogador se move, e acelera quando está muito atrás. Ele se teletransporta para perto do jogador quando o mundo muda, após um teleporte, quando está a mais de oito vezes maxDistance de distância, ou quando está preso a mais de quatro vezes maxDistance.

O companheiro é removido quando o jogador sai da audience ou se desconecta. Após uma troca de mundo, o companheiro é removido e invocado novamente. Os companheiros não são salvos: eles são recriados a partir da audience sempre que o jogador entra.

Entries​

4 entradas, geradas a partir do código-fonte da extensão.

Ações1
Eventos1
Fatos1
Audiências1

Solução de problemas​

O companheiro nunca aparece. A entry precisa de uma definition válida: se estiver vazia ou tiver sido excluída, nada é invocado. A definição deve ser de um NPC ou de um modelo do ModelEngine (o campo só oferece essas opções). Verifique também se o jogador atende aos criteria e à audience à qual a invocation pertence.

O companheiro é um NPC comum em vez do meu modelo. O suporte ao ModelEngine é opcional e detectado em tempo de execução. Confirme que a extensão ModelEngine está instalada e que a definição é uma definição do ModelEngine. As animações são buscadas a partir dos nomes das animações de repouso e de caminhada dessa definição.

O companheiro não se move. O modo de seguir é alternado a cada action Companion Follow Mode. Se a action foi executada uma vez, o companheiro espera; execute-a de novo para retomar. Sem uma definition na action, ela alterna todos os companheiros do jogador.

Clicar no companheiro não faz nada. O Companion Interact só reage a um clique direito com a mão principal, no companheiro do próprio jogador. Verifique se seus triggers estão vinculados e se seus criteria são atendidos.

O companheiro trava ou flutua em lugares estranhos. Ele anda no chão abaixo de sua posição e só sobe um ou dois blocos. Em espaços muito apertados ou irregulares, pode ficar preso; quando estiver longe o suficiente do jogador, ele se teletransporta de volta automaticamente.

Extensões relacionadas​

  • Dialog Menu — abra uma tela de diálogo quando o jogador clicar no companheiro.