Rivage brise 1460 : les demons etaient hors de la phase du joueur
Signale en jeu : « les ennemis sont bien affiches en rouge mais mon curseur ne m indique pas qu ils sont attaquables ; en revanche eux peuvent m attaquer ». scenario_broken_shore_intro::OnPlayerEnter place chaque joueur en phase 169 (PhasingHandler::AddPhase). Le script porte son propre avertissement, ecrit par qui l a redige : « Toute invocation doit partager la phase des joueurs, sinon elle est invisible/intangible : cible de quete introuvable, vague intuable. » C est pourquoi FinalizeSummon ajoute la phase 169 a tout ce qu il invoque. Or les 757 placements importes etaient en phase 0. Le script n en attendait AUCUN : il invoquait la totalite de ses acteurs. En important le decor statique, on a introduit des creatures qui ne partagent pas la phase du joueur -- visibles, mais intangibles. VERIFIE avant de conclure : la reference donne bien PhaseId vide pour les 757 lignes, la conversion en 0 etait donc fidele. Le decalage vient de notre script, pas de la transposition. CHOIX : aligner les placements sur la convention du script plutot que de retirer le phasage. Retirer la phase 169 du joueur obligerait a la retirer aussi de toutes les invocations -- bien plus de code touche pour le meme resultat. Les 101 objets sont inclus : les Fleches de la Detresse doivent etre actionnables, sans quoi le critere des 3 fleches reste bloque. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
-- =====================================================================
|
||||
-- Rivage brisé (carte 1460) — alignement des phases
|
||||
--
|
||||
-- Signalé en jeu : « les ennemis sont bien affichés en rouge mais mon
|
||||
-- curseur ne m'indique pas qu'ils sont attaquables ; en revanche eux
|
||||
-- peuvent m'attaquer ».
|
||||
--
|
||||
-- LA CAUSE
|
||||
-- `scenario_broken_shore_intro::OnPlayerEnter` place chaque joueur en
|
||||
-- phase 169 :
|
||||
--
|
||||
-- PhasingHandler::AddPhase(player, PHASE_NORMAL, true);
|
||||
--
|
||||
-- Le script porte d'ailleurs son propre avertissement, écrit par qui l'a
|
||||
-- rédigé : « Toute invocation doit partager la phase des joueurs
|
||||
-- (OnPlayerEnter les met en 169), sinon elle est invisible/intangible :
|
||||
-- cible de quête introuvable, vague intuable. » C'est pourquoi
|
||||
-- `FinalizeSummon` ajoute la phase 169 à tout ce qu'il invoque.
|
||||
--
|
||||
-- Or les 757 placements importés sont en phase 0. Le script n'en
|
||||
-- attendait aucun : il invoquait la totalité de ses acteurs. En
|
||||
-- important le décor statique, on a introduit des créatures qui ne
|
||||
-- partagent pas la phase du joueur.
|
||||
--
|
||||
-- Vérifié : la référence donne bien `PhaseId` vide pour les 757 lignes,
|
||||
-- la conversion en 0 était donc fidèle. Le décalage vient de notre
|
||||
-- script, pas de la transposition.
|
||||
--
|
||||
-- LE CHOIX
|
||||
-- On aligne les placements sur la convention du script plutôt que de
|
||||
-- retirer le phasage. Retirer la phase 169 du joueur obligerait aussi à
|
||||
-- la retirer de toutes les invocations, soit bien plus de code touché
|
||||
-- pour le même résultat.
|
||||
--
|
||||
-- Les objets sont inclus : les Flèches de la Détresse doivent être
|
||||
-- actionnables, sans quoi le critère des 3 flèches reste bloqué.
|
||||
--
|
||||
-- ⚠️ Nécessite un redémarrage : les placements sont lus au démarrage.
|
||||
-- =====================================================================
|
||||
|
||||
UPDATE `creature`
|
||||
SET `PhaseId` = 169
|
||||
WHERE `map` = 1460;
|
||||
|
||||
UPDATE `gameobject`
|
||||
SET `PhaseId` = 169
|
||||
WHERE `map` = 1460;
|
||||
Reference in New Issue
Block a user