Companion
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
minDistanceemaxDistanceblocos 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
- 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.
- 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.
- Coloque o JAR do Companion em
plugins/Typewriter/extensions/e reinicie o servidor.
Primeiros passos
Dê a cada jogador um companheiro que o segue:
- No painel web do TypeWriter, crie uma definição de NPC (ou uma definição do ModelEngine) para o companheiro: nome, skin ou modelo.
- Abra uma página de manifest e adicione uma entry Companion Invocation.
- Defina
definitioncom a definição de entidade que você criou. Deixeactivityvazio para usar o comportamento de repouso padrão, ou escolha uma activity de entidade se quiser algo personalizado. - Ajuste
minDistance(onde o companheiro para quando o jogador está parado) emaxDistance(a distância que ele mantém atrás quando o jogador anda). Os valores padrão são2.0e4.0. - 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. - 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.
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
- Companion Follow ModeToggle companion follow or wait mode
Eventos1
- Companion InteractTriggers when the player clicks their companion
Fatos1
- Companion ActiveNumber of active companions the player has
Audiências1
- Companion InvocationSpawn and manage the player's companion
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.