Companion
Vue d'ensemble
Companion offre à chaque joueur un suiveur personnel : un familier, un guide, un drone ou une mascotte qui marche derrière lui où qu'il aille. Le compagnon est un PNJ (ou un modèle ModelEngine) que seul son propriétaire voit : chaque joueur peut donc avoir le sien sans qu'aucune entité ne soit ajoutée au monde réel.
Vous décrivez le compagnon avec une définition d'entité que vous utilisez déjà dans TypeWriter, puis vous l'attachez à une audience. Chaque joueur qui entre dans l'audience reçoit un compagnon ; quand il en sort, le compagnon disparaît. Un joueur peut avoir plusieurs compagnons à la fois, un par définition d'entité.
Fonctionnalités
- Compagnons personnels — chaque compagnon est une entité par paquets visible uniquement par son propriétaire.
- PNJ ou ModelEngine — la définition peut être une définition de PNJ ou de modèle ModelEngine.
- Comportement de suivi — le compagnon reste entre
minDistanceetmaxDistanceblocs du joueur, franchit les petits obstacles et reste au sol. - Rattrapage automatique — il se téléporte vers le joueur après un changement de monde, une téléportation, ou lorsqu'il prend beaucoup de retard.
- Animations de marche et d'attente — sur les modèles ModelEngine, les animations d'attente et de marche alternent selon le mouvement du compagnon.
- Suivre ou attendre — une action bascule un compagnon entre suivre et rester immobile.
- Déclencheur au clic — un événement se déclenche lorsque le joueur fait un clic droit sur l'un de ses compagnons.
- Plusieurs à la fois — un joueur peut posséder un compagnon par définition d'entité ; invoquer à nouveau la même définition remplace l'ancien.
- Nombre actif — un fact indique combien de compagnons le joueur possède actuellement.
Installation
- Installez les extensions TypeWriter Entity, Quest, Basic et RoadNetwork depuis l'onglet Extensions du panel web, si elles ne sont pas déjà installées (voir la documentation TypeWriter). Companion est construit pour ces quatre extensions officielles.
- Facultatif : installez l'extension ModelEngine de TypeWriter et le plugin ModelEngine si vous voulez des modèles 3D à la place des PNJ. Companion fonctionne sans eux.
- Placez le JAR de Companion dans
plugins/Typewriter/extensions/et redémarrez le serveur.
Premiers pas
Donnez à chaque joueur un compagnon qui le suit :
- Dans le panel web TypeWriter, créez une définition de PNJ (ou une définition ModelEngine) pour le compagnon : son nom, son skin ou son modèle.
- Ouvrez une page manifest et ajoutez une entrée Companion Invocation.
- Définissez
definitionsur la définition d'entité que vous avez créée. Laissezactivityvide pour utiliser le comportement d'attente par défaut, ou choisissez une activité d'entité si vous en voulez une personnalisée. - Ajustez
minDistance(là où le compagnon s'arrête quand le joueur est immobile) etmaxDistance(la distance qu'il garde derrière le joueur quand celui-ci marche). Les valeurs par défaut sont2.0et4.0. - Pour limiter le compagnon à certains joueurs, ajoutez des
criteria, par exemple une vérification de fact pour un familier acheté. Laissez vide pour en donner un à tout le monde dans l'audience. - Publiez. Le compagnon apparaît derrière le joueur.
Pour permettre au joueur d'arrêter ou de reprendre son compagnon, utilisez une action Companion Follow Mode. Pour réagir aux clics, ajoutez un événement Companion Interact et reliez les entrées qu'il doit déclencher, comme un dialogue ou un menu.
Companion Follow Mode possède ses propres minDistance et maxDistance. Lorsque l'action s'exécute, elle écrase les distances du compagnon. Conservez les mêmes valeurs que dans l'invocation, sauf si vous voulez les changer.
Fonctionnement
Quand le joueur entre dans l'audience, le compagnon apparaît derrière lui, à maxDistance blocs. Il se déplace ensuite à chaque tick : il garde minDistance quand le joueur est immobile et maxDistance quand il se déplace, et accélère lorsqu'il est loin derrière. Il se téléporte à côté du joueur lorsque le monde change, après une téléportation, lorsqu'il est à plus de huit fois maxDistance, ou lorsqu'il est bloqué à plus de quatre fois maxDistance.
Le compagnon est retiré lorsque le joueur quitte l'audience ou se déconnecte. Après un changement de monde, le compagnon est retiré puis invoqué à nouveau. Les compagnons ne sont pas sauvegardés : ils sont recréés à partir de l'audience à chaque connexion du joueur.
Entrées
4 entrées, générées depuis la source de l'extension.
Actions1
- Companion Follow ModeToggle companion follow or wait mode
Événements1
- Companion InteractTriggers when the player clicks their companion
Faits1
- Companion ActiveNumber of active companions the player has
Audiences1
- Companion InvocationSpawn and manage the player's companion
Dépannage
Le compagnon n'apparaît jamais. L'entrée a besoin d'une definition valide : si elle est vide ou supprimée, rien n'est invoqué. La définition doit être une définition de PNJ ou ModelEngine (le champ n'en propose pas d'autres). Vérifiez aussi que le joueur correspond aux criteria et à l'audience dont fait partie l'invocation.
Le compagnon est un simple PNJ au lieu de mon modèle. La prise en charge de ModelEngine est facultative et détectée à l'exécution. Assurez-vous que l'extension ModelEngine est installée et que la définition est une définition ModelEngine. Les animations sont recherchées à partir des noms d'animation d'attente et de marche de cette définition.
Le compagnon ne bouge pas. Le mode de suivi est basculé par chaque action Companion Follow Mode. Si l'action s'est exécutée une fois, le compagnon attend ; exécutez-la à nouveau pour qu'il reprenne. Sans definition dans l'action, elle bascule tous les compagnons du joueur.
Cliquer sur le compagnon ne fait rien. Companion Interact ne réagit qu'à un clic droit avec la main principale, sur le compagnon du joueur lui-même. Vérifiez que ses triggers sont reliés et que ses criteria correspondent.
Le compagnon saccade ou flotte à des endroits étranges. Il marche sur le sol sous sa position et ne monte que d'un ou deux blocs. Dans des espaces très étroits ou irréguliers, il peut rester coincé ; dès qu'il est assez loin du joueur, il se téléporte automatiquement.
Extensions associées
- Dialog Menu — ouvre un écran de dialogue lorsque le joueur clique sur le compagnon.