Aller au contenu principal

MythicMobs

Faites apparaître des mobs MythicMobs, lancez des compétences, créez des objectifs de kill et des spawners par région depuis TypeWriter.

Gratuitesv0.12Intégrations
NécessiteTypeWriter0.9Quest (TypeWriter extension)MythicMobsPacketEventsfacultatif

Vue d'ensemble​

MythicMobs connecte le plugin MythicMobs à TypeWriter. Les mobs et les skills restent définis dans MythicMobs ; TypeWriter décide quand et pour qui ils apparaissent. Vous pouvez faire apparaître ou disparaître un mob depuis une séquence, lancer un skill, réagir lorsqu'un joueur tue un mob ou interagit avec lui, compter les kills comme objectif de quête, ou laisser une région faire apparaître des mobs tant que des joueurs sont à proximité.

Les mobs peuvent être privés. Un mob invoqué avec onlyVisibleForPlayer ou un visibilityGroup n'est montré qu'au joueur ou au groupe, ne peut être blessé, ciblé ni cliqué par personne d'autre, et ses sons et particules sont masqués aux autres joueurs. C'est ce qui rend possibles les combats de boss personnels et les mobs de quête propres à chaque joueur sur un serveur partagé.

Depuis la 0.12, la visibilité peut aussi suivre des facts TypeWriter : avec visibilityCriteria, un mob n'est vu, ciblé et blessé que par les joueurs qui remplissent les criteria, réévalués en continu. Une arène privée pilotée par des facts n'a pas besoin de groupe.

L'extension fonctionne sur Paper et Folia et nécessite l'extension TypeWriter Quest pour l'objectif de kills. Le véritable dépôt source est Typewriter-MythicMobs.

Fonctionnalités​

  • Apparition et disparition — faites apparaître un mob à une position avec un niveau, ou retirez tous les mobs actifs d'un type.
  • Lancement de skills — exécutez un skill MythicMobs en tant que joueur, depuis une action ou un segment de cinématique.
  • Événements de mobs — démarrez des séquences lorsqu'un joueur tue un mob, est tué par un mob, ou fait un clic droit sur un mob.
  • Objectif de kills — un objectif de quête qui compte les kills MythicMobs par nom ou par expression régulière, et compte les kills par projectiles et familiers apprivoisés.
  • Spawner de région — fait apparaître des mobs dans une ou plusieurs boîtes lorsque des joueurs sont proches, avec un plafond, un délai de recharge et un temps de chauffe. Un group optionnel la réserve aux membres d'un groupe, chaque groupe ayant son propre cycle.
  • Mobs privés — visibilité restreinte à un joueur, à un groupe ou aux joueurs qui remplissent des criteria (facts), y compris dégâts, ciblage, interaction, sons et particules.
  • Mobs de cinématique — fait apparaître un mob pendant une cinématique, masqué à tous les autres joueurs, et lance des skills sur une timeline.
  • Fact de nombre de mobs — combien de mobs d'un type sont actuellement actifs, pour les dialogues et les conditions.

Installation​

  1. Installez MythicMobs sur le serveur.
  2. Installez l'extension officielle TypeWriter Quest.
  3. Recommandé : installez PacketEvents. Il sert à masquer les sons et les particules des mobs privés. Sans lui, l'extension journalise PacketEvents not loaded — sound isolation disabled et les mobs privés restent visuellement privés mais pas silencieux.
  4. Placez le JAR de l'extension MythicMobs dans plugins/Typewriter/extensions/.
  5. Redémarrez le serveur.

Premiers pas​

Faites apparaître un boss uniquement pour le joueur qui a accepté une quête, et terminez un objectif à sa mort :

  1. Dans MythicMobs, créez le mob, par exemple CryptKing.
  2. Dans le panel web TypeWriter, ouvrez une page sequence et ajoutez une action Spawn Mob.
  3. Définissez mobName sur CryptKing, level sur 1, spawnLocation sur l'endroit voulu (capturez la position en jeu), et activez onlyVisibleForPlayer.
  4. Reliez un trigger ou un critère pour que l'action s'exécute au démarrage de la quête.
  5. Ouvrez la page de la quête et ajoutez un MythicMob Kill Objective. Reliez la quest, un fact (un fact cachable qui stocke la progression), définissez mythicMobName sur CryptKing, amount sur 1 et rédigez le texte display.
  6. Facultatif : définissez onComplete sur une séquence qui donne la récompense.
  7. Publiez et testez : les autres joueurs ne peuvent ni voir, ni frapper, ni entendre le boss.
Réagir à un kill sans quête

Utilisez Mob Death Event avec un mobName et reliez des triggers à la séquence à exécuter. Il se déclenche lorsqu'un joueur est le tueur du mob.

Combat visible seulement par certains joueurs​

Une arène privée : seuls les joueurs qui remplissent certains facts voient le mob, sont ciblés par lui et peuvent le combattre.

  1. Créez un fact (par exemple in_arena) et définissez-le pour les joueurs qui entrent dans l'arène.
  2. Ajoutez une action Spawn Mob et renseignez visibilityCriteria avec ce fact. Les criteria sont réévalués toutes les visibilityRefreshInterval (1 seconde par défaut) : un joueur qui quitte l'arène perd aussitôt le mob, et le mob lâche sa cible.
  3. Démarrez le combat depuis le trigger de votre choix.
  4. Terminez-le avec une action Despawn Mob dont scope vaut VISIBLE_TO_PLAYER (elle ne retire que les mobs que le joueur voit), ou laissez le mob partir seul avec abandonRange (supérieur à 0) et abandonDelay : il est retiré si aucun joueur autorisé ne reste à portée pendant le délai. L'éditeur web préremplit les nouvelles durées à 1 seconde : vérifiez abandonDelay.
  5. Facultatif : définissez collidable sur false pour supprimer collision et poussée. Cela vaut alors pour tout le monde.

Tous les dégâts liés à un mob restreint (corps à corps, projectiles, skills MythicMobs, feu) sont bloqués envers les joueurs non autorisés, et inversement. Les projectiles traversent.

Les skills sans dégâts (potion, projection...) ne peuvent pas être rattachés à un joueur. Ajoutez-leur la condition de cible MythicMobs typewritervisible (alias twvisible) : elle n'est vraie que si la cible a le droit de voir le lanceur.

En ligne, comme condition du targeter. Gardez les deux espaces après [ et celui avant ], MythicMobs en a besoin :

Skills:
- potion{type=SLOW;duration=100} @PlayersInRadius{r=10;conditions=[ - twvisible true ]} ~onTimer:40

N'écrivez pas ?twvisible en fin de ligne : MythicMobs vérifie ces conditions sur le mob, pas sur les joueurs qu'il cible.

Ou dans un metaskill. Ses propres lignes n'ont pas de targeter : elles s'exécutent sur chaque cible ayant passé la condition.

# Fichier des mobs
Skills:
- skill{s=ArenaBossSlow} @PlayersInRadius{r=10} ~onTimer:40

# Fichier des skills
ArenaBossSlow:
TargetConditions:
- twvisible
Skills:
- potion{type=SLOW;duration=100}

twvisible false dans le targeter est l'inverse : uniquement les joueurs qui n'ont pas le droit de voir le mob.

remarque

MythicMobs lit ses fichiers avant le chargement de Typewriter. Quand twvisible y apparaît, l'extension exécute /mm reload une fois au démarrage du serveur, vous n'avez donc rien à faire. La condition continue de fonctionner après un rechargement de Typewriter. Si Typewriter est arrêté, elle laisse passer tous les joueurs et journalise un avertissement demandant un /mm reload.

Limites. La collision est tout ou rien. Les skills sans dégâts ne sont pas filtrés sans twvisible. Les sons et particules joués loin du mob ne sont pas masqués. Un mob dont l'entrée source est supprimée reste masqué à tous. Après un redémarrage du serveur, un mob avec abandonRange est retiré si aucun joueur autorisé ne s'approche pendant abandonDelay.

Fonctionnement​

Configuration​

La plupart des paramètres sont des champs d'entrées. Deux comportements méritent d'être connus :

  • Isolation automatique. Dans le fichier de mob MythicMobs, définissez Options.VisibilityGroup: nearby pour qu'un mob ne soit visible que du joueur le plus proche (dans un rayon de 100 blocs) lorsqu'il apparaît. Les mobs qui apparaissent avec les raisons NATURAL, RANDOM ou RANDOM_SPAWN reçoivent le même traitement, même sans l'option. Les mobs déjà restreints par une entrée TypeWriter ne sont pas modifiés.

  • Correspondance des mobs. Les champs mobName des événements sont des expressions régulières comparées au nom interne MythicMobs, insensibles à la casse dans Mob Death Event et MythicMob Interact Event. Utilisez .* pour correspondre à n'importe quel mob.

  • Format d'affichage de l'objectif. La ligne du MythicMob Kill Objective dans le suivi de quêtes n'est pas figée dans le code. Elle est lue depuis deux snippets TypeWriter, modifiés dans plugins/Typewriter/snippets.yml : advancedQuest.display (en cours, par défaut <display> (<current>/<required>) dans des tons de gris) et advancedQuest.completed (quantité atteinte, par défaut ✔ puis le <display> barré et la progression). Placeholders : <display> (le champ display de l'objectif), <current> et <required> ; les placeholders PlaceholderAPI sont aussi interprétés. Les deux clés sont partagées avec les autres extensions d'objectifs BTC : une seule modification restyle tous les objectifs de comptage.

Entrées​

14 entrées, générées depuis la source de l'extension.

Actions3
Événements3
Objectifs1
Faits4
Cinématiques2
Définitions1
Facts provisoires

MythicMob Faction, MythicMob Level et MythicMob Stance renvoient toujours 0 dans la version actuelle. Ils sont réservés à une version ultérieure : ne construisez pas de conditions dessus.

Dépannage​

Rien n'apparaît. mobName doit être le nom interne MythicMobs d'un mob existant. Si le mob est inconnu, Spawn Mob ne fait silencieusement rien. Comparez-le avec le nom du fichier du mob dans MythicMobs.

Erreur « Skill ... not found » dans le journal. Execute Skill et Skill Cinematic lèvent cette erreur lorsque skillName n'est pas un skill MythicMobs. Si le journal indique que le skill « is not usable at this time », il est en recharge ou ses conditions ont échoué.

Un spawner n'invoque jamais rien. Le joueur doit se trouver à moins de defaultActivationRange (24 blocs par défaut, mesurés jusqu'au centre de la région) d'une région. Le spawner est vérifié une fois par seconde et démarre environ cinq secondes après le démarrage du serveur. Vérifiez aussi criteria, que warmup s'est écoulé, que le délai de recharge (defaultCooldown, en ticks) est passé et que le nombre de mobs à portée est inférieur à defaultMaxMobs. Définissez correctement le mobType : sinon le journal indique Cannot find MythicMob ....

D'autres joueurs voient encore un mob privé. La visibilité ne s'applique qu'aux mobs invoqués par des entrées TypeWriter, par l'option nearby ou par des apparitions naturelles. Les autres mobs restent publics. L'action d'apparition a aussi besoin d'un joueur : avec visibilityGroup défini mais un joueur sans groupe, le mob se rabat sur le seul joueur déclencheur.

L'objectif de kills ne compte pas. L'objectif ne compte que lorsque la quest est active pour le joueur et que le joueur (ou son projectile ou son familier apprivoisé) porte le coup fatal. Si mobs n'est pas vide, mythicMobName est ignoré. Vérifiez que le fact est une entrée de fact cachable.

L'événement de kill d'un joueur ne se déclenche jamais. MythicMob Kill Player Event compare mythicMobType comme une expression régulière sensible à la casse au nom interne du mob qui a causé la mort. Laissez-le vide pour correspondre à n'importe quel MythicMob.

Extensions associées​

  • MythicMobs NPC — utilisez des mobs MythicMobs comme PNJ interactifs.