Sagesse de Mari : « Lessiver » ne balayait pas, le parametre force manquait

Signale en jeu apres le correctif de ligne de vue : le sort restait fige
au lieu de balayer la salle.

Unit::SetFacingTo abandonne en silence quand la creature nest pas a
larret :
    if (!force && !IsStopped()) return;
Or la phase 2 lance MovePoint vers la position de depart juste avant :
elle EST en deplacement, la rotation ne partait donc jamais. Et le
SetOrientation qui precede ne met a jour que la valeur serveur, sans
prevenir les clients.

Seuls les deux appels de la phase 2 recoivent force = true. Le troisieme,
celui de lHydrolance en phase 1, est laisse tel quel : elle est a larret
a ce moment-la et il fonctionne.

Sondes retirees : la sonde a montre que la mecanique du combat est saine
— quatre fontaines trouvees, un elementaire invoque a chaque appel
(compteur 0 puis 1, 2, 3) et bouclier retire a foutainCount=4. Le seul
defaut etait la ligne de vue, corrigee au commit precedent. Le blocage
signale par le joueur — « les elementaires sont coinces, on ne peut pas
les buter, du coup le boss garde son bouclier » — sexplique entierement
par la : il ne pouvait frapper personne.
This commit is contained in:
SylvaniaCore deploy
2026-08-24 12:08:45 +02:00
parent c880268e8c
commit 673bad73b3
@@ -362,7 +362,17 @@ class boss_wase_mari : public CreatureScript
//me->UpdatePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), facing);
me->SetOrientation(facing);
me->SetFacingTo(facing);
// SylvaniaCore : le parametre `force` manquait.
// Unit::SetFacingTo abandonne en silence quand la
// creature n'est pas a l'arret :
// if (!force && !IsStopped()) return;
// Or on vient de lancer MovePoint vers la position de
// depart : elle EST en deplacement, la rotation ne
// partait donc jamais. Et le SetOrientation qui precede
// ne met a jour que la valeur serveur, sans prevenir les
// clients. Resultat signale en jeu : « Lessiver » restait
// fige au lieu de balayer la salle.
me->SetFacingTo(facing, true);
me->CastSpell(me, SPELL_WASH_AWAY, true);
events.ScheduleEvent(EVENT_WASH_AWAY, TIMER_WASH_AWAY);
break;
@@ -380,7 +390,17 @@ class boss_wase_mari : public CreatureScript
facing -= float(M_PI) *2;
me->SetOrientation(facing);
me->SetFacingTo(facing);
// SylvaniaCore : le parametre `force` manquait.
// Unit::SetFacingTo abandonne en silence quand la
// creature n'est pas a l'arret :
// if (!force && !IsStopped()) return;
// Or on vient de lancer MovePoint vers la position de
// depart : elle EST en deplacement, la rotation ne
// partait donc jamais. Et le SetOrientation qui precede
// ne met a jour que la valeur serveur, sans prevenir les
// clients. Resultat signale en jeu : « Lessiver » restait
// fige au lieu de balayer la salle.
me->SetFacingTo(facing, true);
events.ScheduleEvent(EVENT_WASH_AWAY, TIMER_WASH_AWAY);
break;