Murloc Cult

Retour aux archives

Le mage incante enfin : un pivot de trop cassait chaque Boule de feu

Morvane restait bloqué en « recharge globale » : chaque Boule de feu démarrait puis s'interrompait aussitôt, car le cerveau faisait pivoter le personnage vers sa cible juste avant d'incanter, et un pivot est une petite spline de mouvement. Le cerveau ne pivote plus que si la cible n'est pas devant, et n'incante jamais en mouvement. Morvane enchaîne désormais quêtes et victimes. Nouveau aussi : la pierre de foyer est liée à l'auberge du camp où l'on s'installe.

Commit
97ac71f
Build
Build réussi (1 min) · Cible worldserver

L'enquête

  1. Liste des sorts connus à la connexion : Morvane connaît bien Armure de givre, Intelligence des arcanes et Boule de feu.
  2. Traces des refus silencieux : toutes les tentatives sont rejetées pour recharge globale, en continu.
  3. Lecture du core (Spell::TriggerGlobalCooldown / CancelGlobalCooldown, GlobalCooldownMgr) : la recharge globale est posée au début de l'incantation et n'est annulée que dans certains cas d'interruption.
  4. Cause : SetFacingToObject appelé à chaque tentative lance une spline de rotation ; le personnage « bouge », l'incantation est interrompue, la recharge reste. Toutes les 1,5 s, la même scène.

Correctifs

  • Pivoter seulement si la cible n'est pas dans un arc de 60° devant soi ; dans ce cas, on incantera à la décision suivante.
  • Ne jamais lancer un sort à temps d'incantation tant qu'une spline de mouvement n'est pas terminée.
  • En mode débogage, les refus renvoyés par le serveur (SMSG_CAST_FAILED, SMSG_SPELL_FAILURE) sont tracés avec leur raison.

Pierre de foyer

Arrivé à plus de 800 m de son point de retour et près d'une auberge, le personnage parle à l'aubergiste (CMSG_BINDER_ACTIVATE) : en cas de blocage, la pierre de foyer le ramène au camp actuel plutôt qu'à sa zone de départ.