MythicMobs NPC
Visão geral
O MythicMobs NPC transforma um mob do MythicMobs em um NPC do TypeWriter. Você continua projetando o mob, seu modelo e suas skills no MythicMobs e depois o coloca no mundo pelo painel web como uma NPC definition (o que o NPC é) e uma NPC instance (onde ele fica e quem o vê).
Um NPC pode exibir um nome acima da cabeça, mostrar marcadores de quest, iniciar um diálogo quando um jogador clica nele com o botão direito, ser ocultado ou exibido por uma action, tocar animações e aparecer em cinematics. Modelos do BetterModel ou do ModelEngine são suportados.
A extensão roda no Paper. Por padrão, cada jogador recebe sua própria cópia do NPC (ticking desativado), então a cinematic ou a action de ocultar de um jogador nunca afeta os outros. Ative ticking para obter um mob real do lado do servidor que pode andar por aí.
Recursos
- NPC definition e instance — defina um NPC MythicMob uma única vez e coloque-o quantas vezes quiser, com uma audience compartilhada, por jogador ou por grupo.
- Name tag e marcadores de quest — um nome flutuante e um marcador
❗,❓ou💬quando o NPC tem um objective ou um diálogo para o jogador. - Eventos de interação — inicie diálogos com um clique direito, filtrados por agachar, além de um evento para golpes em qualquer direção.
- Objectives de quest — interaja com um NPC, saqueie itens de mobs do MythicMobs ou conte interações com um mob.
- Facts e variáveis — presença, distância, visibilidade, vida, tabela de ameaças, animações, nível, poder, facção, stance e qualquer variável do MythicMobs.
- Mostrar, ocultar e animar — actions para mostrar ou ocultar um NPC e para tocar ou parar uma animação do ModelEngine ou do BetterModel.
- Cinematics — câmera de foco em NPC, câmera presa a um bone do modelo, NPC conduzido por uma gravação e skills do MythicMobs lançadas em uma posição.
- Bounds de câmera e de olhar — force o jogador a olhar para um NPC ou para o mob mais próximo de um tipo durante uma interação.
- Stances — stances de repouso e caminhada de dia e de noite, além de stances de interação, ataque e outras, por meio do ModelEngine ou do BetterModel.
Instalação
- Instale o MythicMobs e o PacketEvents no servidor.
- No TypeWriter, confirme que as extensões oficiais Entity, Basic, Quest e Road Network estão instaladas. A build declara Quest e Road Network como dependências e usa as extensões Entity e Basic em tempo de execução.
- Opcional: instale o BetterModel ou o ModelEngine para modelos 3D. O BetterModel é verificado primeiro e o ModelEngine é usado quando o BetterModel está ausente. Instale o Geyser se jogadores do Bedrock precisarem ver a bone camera.
- Obtenha a extensão nas lojas (veja os botões no painel de resumo acima) e coloque o JAR em
plugins/Typewriter/extensions/. - Reinicie o servidor. O console imprime
MythicmobsNPCExtension has been successfully initialized. - Crie seus mobs no MythicMobs (e associe o modelo deles lá). A extensão os invoca e os exibe, mas não cria nem altera o modelo.
Primeiros passos
Coloque um ferreiro que inicia um diálogo quando um jogador clica nele com o botão direito:
- No MythicMobs, crie um mob com o nome interno
Blacksmith(com seu modelo, se usar um) e recarregue o MythicMobs. - No painel web do TypeWriter, abra uma página static e adicione uma MythicMob NPC Definition. Defina
displayNamecom o nome exibido acima da cabeça emobTypecomoBlacksmith. - Adicione uma MythicMob NPC Instance. Vincule
definitionà definition e definaspawnLocation(com rotação) com o local onde o NPC fica. - Adicione um MythicMob NPC Interact Event. Vincule
definitionà mesma definition e mantenhashiftTypeemANY. - Em seus
triggers, vincule uma entry de diálogo (por exemplo, um spoken dialogue) a partir de uma página de sequence. - Publique e clique com o botão direito no NPC. Um marcador
💬aparece acima do NPC para os jogadores que podem conversar com ele.
Para torná-lo alvo de uma quest, adicione um Interact MythicMob NPC Objective com entity definido como a definition: o marcador passa a ser ❓ (ou ❗ quando a quest está sendo acompanhada) e um rastro de caminho leva até o NPC.
Deixe ticking desativado para NPCs estáticos: cada jogador vê sua própria cópia, que é o que as cinematics e a visibilidade por jogador exigem. Ative-o apenas quando o mob precisar se mover ou lutar no servidor e defina clientSideRadius acima de 0 para que sua IA continue ativada.
Como funciona
A definition guarda o que o NPC é: tipo de mob, nome, opções da name tag, modo ticking e os dados de entidade que se aplicam a todas as instances. A instance guarda onde ele fica, seus próprios dados de entidade, uma activity opcional (por exemplo, um caminho de road network) e um group.
Facts, variáveis, actions de mostrar e ocultar e as entries de câmera se referem a uma instance. Elas encontram o mob ativo do tipo de mob da definition que esteja dentro de um raio de busca do ponto de spawn da instance (5 blocos por padrão, definido por radius no alvo).
Configuração
Os textos e deslocamentos que não são campos de entries são snippets do TypeWriter. Edite-os em plugins/Typewriter/snippets.
| Snippet | Padrão | Finalidade |
|---|---|---|
objective.entity.indicator.tracked | <gold><b>❗ | Marcador quando o NPC é o alvo da quest acompanhada. |
objective.entity.indicator.normal | <blue><b>❓ | Marcador quando o NPC é o alvo de um objective ativo. |
objective.entity.indicator.dialogue | <white><b>💬 | Marcador quando o NPC tem uma interação disponível. |
entity.nameplate | <other> e depois <reset><display_name> | Layout da name tag. <other> são as linhas dos dados da entidade. |
entity.name.color | #40000000 | Cor de fundo da name tag e do marcador. |
quest.objective.interact_mythicmob_npc | Interact with <entity> | Texto padrão do objective de interação. |
advancedQuest.display | <display> (<current>/<required>), em tons de cinza | Linha dos objetivos de contagem (loot, skill) enquanto em andamento. Placeholders: <display> (o texto display do objetivo), <current>, <required>. A chave é compartilhada com as outras extensões de objetivos da BTC, então uma edição muda o estilo de todas. |
advancedQuest.completed | ✔ e depois o <display> riscado e (<current>/<required>) | A mesma linha quando amount é atingido. Os mesmos placeholders. |
mythicmob_npc_look_at_interaction_bound.look_back_delay | 500 | Milissegundos que o jogador pode desviar o olhar antes que o bound de olhar o vire de volta. |
mythicmob_type_look_at_interaction_bound.look_back_delay | 500 | O mesmo, para o bound de olhar por tipo de mob. |
Entries
38 entradas, geradas a partir do código-fonte da extensão.
Ações4
- Mythicmob NPC HideHide a MythicMob NPC
- Mythicmob NPC Play AnimationPlays a ModelEngine animation on a MythicMob NPC
- Mythicmob NPC ShowShow a MythicMob NPC
- Mythicmob NPC Stop AnimationStops a ModelEngine animation on a MythicMob NPC
Eventos3
- Mythicmob NPC HitWhen a MythicMob NPC is hit or hits a player
- Mythicmob NPC InteractWhen the player clicks on a MythicMob NPC
- On Mythic Mob LootWhen a player loots an item from a MythicMob
Objetivos3
- Interact Mythicmob NPC ObjectiveInteract with a MythicMob NPC
- Mythicmob Loot ObjectiveAn objective to loot specific items from MythicMobs mobs
- Mythicmob Skill ObjectiveMythicMob Skill Objective
Fatos6
- Mythicmob NPC Animation Playing FactReturns 1 when the specified ModelEngine animation is playing
- Mythicmob NPC Distance FactReturns the distance between the player and the MythicMobs NPC
- Mythicmob NPC Health Percentage FactReturns the NPC's current health percentage
- Mythicmob NPC Presence FactReturns 1 when the MythicMobs NPC is currently spawned
- Mythicmob NPC Threat Table Size FactReturns the size of the MythicMobs threat table
- Mythicmob NPC Visibility FactReturns 1 if the player can currently see the MythicMobs NPC
Cinemáticas4
- Mythicmob NPC Bone Camera CinematicAttach the cinematic camera to a bone of a MythicMob NPC's model
- Mythicmob NPC Camera CinematicFocus on a MythicMob NPC during a cinematic
- Mythicmob NPC Entity CinematicUse an animated MythicMob NPC in a cinematic
- Mythicmob NPC Skill CinematicTrigger a MythicSkill at a specific position during a cinematic
Entidades2
- Mythicmob NPC DefinitionA MythicMob that can be used as an NPC
- Mythicmob NPC InstanceAn instance of a MythicMob NPC
Dados de entidade4
- Modelengine Stance DataModelEngine stance configuration for day/night animations
- Mythicmob NPC AttachmentReplace a bone of a MythicMob NPC model with one from another model
- Mythicmob NPC Bone VisibilityControl MythicMob NPC bone visibility with criteria
- Mythicmob Speed DataChange the walking speed of a MythicMob
Limites de interação3
- Mythicmob Look at Interaction BoundAn interaction which forces the player to look at the nearest MythicMob of a specific type
- Mythicmob NPC Camera BoundA camera bound that focuses on a MythicMob NPC with custom focus offset
- Mythicmob NPC Look at Interaction BoundAn interaction which forces the player to look at a MythicMob NPC
Variáveis9
- Mythicmob NPC Active Animations VariableReturns the active ModelEngine animations for the MythicMobs NPC
- Mythicmob NPC Faction VariableReturns the MythicMobs NPC faction
- Mythicmob NPC Health Percentage VariableReturns the current health percentage of the MythicMobs NPC
- Mythicmob NPC Health VariableReturns the current health of the MythicMobs NPC
- Mythicmob NPC Level VariableReturns the MythicMobs NPC level
- Mythicmob NPC Max Health VariableReturns the maximum health of the MythicMobs NPC
- Mythicmob NPC Power VariableReturns the MythicMobs NPC power
- Mythicmob NPC Stance VariableReturns the current stance applied to the MythicMobs NPC
- Mythicmob NPC VariableReads a MythicMobs variable from the active NPC
Solução de problemas
O NPC nunca aparece. O console imprime Could not spawn MythicMob NPC '<type>' at <location> quando mobType não é o nome de um mob do MythicMobs ou a invocação falha. mobType é o nome interno do mob, com as mesmas maiúsculas e minúsculas do MythicMobs. Verifique se o MythicMobs carregou o mob e se o chunk de spawnLocation consegue ser carregado.
A extensão avisa que o MythicMobs está ausente. Na inicialização, o log diz MythicMobs plugin not found! This extension requires MythicMobs to function properly. Instale o MythicMobs e reinicie.
Facts e variáveis sempre retornam o valor padrão. Eles resolvem o mob ativo perto do ponto de spawn da instance. Se o NPC se moveu para além de radius (padrão de 5 blocos), ou o tipo de mob for diferente, nada corresponde e o fact retorna 0. Aumente radius no target.
O diálogo não inicia ao clicar. O evento de interação só reage a um NPC colocado por uma MythicMob NPC Instance, e definition deve ser a definition da instance. interactionType escolhe o clique: RIGHT_CLICK, LEFT_CLICK ou ALL. Antes da versão 4.9.1, apenas cliques direitos eram tratados, e no Paper 26.x nem mesmo estes: atualize a extensão.
Os jogadores não compartilham o NPC. Com ticking desativado e sem group na instance, cada jogador recebe sua própria cópia, então a action de ocultar ou a cinematic de um jogador não afeta os outros. Defina um group na instance para compartilhar o NPC dentro de uma party ou guilda.
Um bone não é ocultado ou anexado. Bone Visibility Data e Attachment Data são aplicados ao modelo assim que ele existe e após cada respawn, com ticking ligado ou desligado. Um nome de bone ou de modelo que o modelo não conhece é ignorado e o console o registra: confira os nomes com o modelo.
A bone camera não mostra nada ou o jogador mantém a visão normal. boneName deve existir no modelo, e o mob deve estar invocado para aquele jogador. Com uma Entity Cinematic, use entityCinematic para que a câmera siga exatamente aquele mob. A câmera começa nos olhos do jogador e se prende ao bone assim que o modelo é encontrado.
O modelo pisca quando o jogador ou a câmera está perto do NPC. É o culling do ModelEngine: o ModelEngine avalia, a partir dos pés do modelo, se ele está atrás do jogador (backcull) ou atrás de blocos (blockedcull) e, de perto, esconde o modelo por engano e depois o mostra de novo. A partir da versão 4.9.1, a extensão desativa os dois culls em cada NPC assim que o modelo do ModelEngine é detectado, então não há nada para configurar. Se o modelo continuar piscando, procure no console o aviso ModelEngine exposes no back/blocked cull setter: ele indica que a sua versão do ModelEngine não permite que a extensão altere essas configurações. Nesse caso, adicione cullconfig{backcull=false;blockedcull=false} @self ~onSpawn às skills do mob do MythicMobs, depois da mecânica model, e faça o NPC aparecer novamente. Modelos do BetterModel não são afetados.
Extensões relacionadas
- MythicMobs — entries de invocar, skill e abate para mobs comuns do MythicMobs.
- BetterModel — modelos do BetterModel como NPCs, com a mesma abordagem de cinematics.