From 44fad5a04191a1e696533efb391341c0aa1bf0e5 Mon Sep 17 00:00:00 2001 From: Sylvania Date: Sat, 5 Sep 2026 18:29:43 +0200 Subject: [PATCH] Tanaan : deux scenes WoD cassaient la fin de l intro Signalements joueur du 05/09. Scenes 953 / 986 (bateau) : rendre "La derniere ligne droite" faisait planter le client. La scene est ecrite pour se jouer sur un transport en mouvement, alors que PlaySceneByPackageId l envoie ancree sur la position du joueur, TransportGUID vide et SceneID nul. On fait desormais directement le teleport et le succes que son declencheur "Teleport" produisait. Scenes 961 / 962 (marques de Tanaan) : cliquer une des deux pierres de la quete 34392 envoyait le joueur sous la map. Rien d autre sur ce chemin ne deplace le joueur (le sort du goober est un simple KILL_CREDIT, aucun hook de scene mal filtre, les marques sont au niveau du sol), et l ecart entre ancrer sur l objet ou sur le joueur est de deux metres : c est la scene elle-meme. Elle est decorative, le credit de quete est donne avant. --- .../Draenor/TanaanIntro/tanaan_intro_finale.cpp | 16 ++++++++++++++-- .../Draenor/TanaanIntro/tanaan_intro_portal.cpp | 6 ++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_finale.cpp b/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_finale.cpp index babafcf..5b52150 100644 --- a/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_finale.cpp +++ b/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_finale.cpp @@ -108,10 +108,22 @@ public: { player->GetSceneMgr().CancelSceneByPackageId(TanaanSceneObjects::SceneFinaleIronBastion); + /// Les scenes du bateau (986 / 953) font planter le client : elles sont ecrites pour + /// se jouer sur un transport en mouvement, alors que PlaySceneByPackageId les envoie + /// ancrees sur la position du joueur, avec un TransportGUID vide et un SceneID nul. + /// On fait donc directement ce que leur declencheur "Teleport" faisait, cf. + /// playerScript_tanaan_scene_boat plus bas (ses hooks restent en place au cas ou la + /// scene serait rejouee a la main). if (player->GetTeamId() == TEAM_ALLIANCE) - player->GetSceneMgr().PlaySceneByPackageId(TanaanSceneObjects::SceneAllianceBoat); + { + player->TeleportTo(TanaanZones::MapDraenor, 2308.9621f, 454.9409f, 6.0f, player->GetOrientation()); + player->CompletedAchievement(TanaanAchievements::AchievementWelcomeToDreanorA); + } else - player->GetSceneMgr().PlaySceneByPackageId(TanaanSceneObjects::SceneHordeBoat); + { + player->TeleportTo(TanaanZones::MapDraenor, 5538.213379f, 5015.2690f, 13.0f, player->GetOrientation()); + player->CompletedAchievement(TanaanAchievements::AchievementWelcomeToDreanorH); + } } } diff --git a/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_portal.cpp b/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_portal.cpp index 993109f..6337130 100644 --- a/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_portal.cpp +++ b/src/server/scripts/Draenor/TanaanIntro/tanaan_intro_portal.cpp @@ -317,7 +317,9 @@ public: return true; player->KilledMonsterCredit(TanaanKillCredits::CreditNorthernSpireDisabled); - player->GetSceneMgr().PlaySceneByPackageId(TanaanSceneObjects::SceneChoGallsFreedom); + /// Scenes 961 / 962 desactivees : jouees par PlaySceneByPackageId (SceneID nul, + /// ancrees sur la position du joueur), elles envoient le joueur sous la map. + /// Purement decoratif : le credit de quete est deja donne juste au-dessus. } /// Bleeding Hollow Gob (Teron'Gor) else if (gameObject->GetEntry() == TanaanGameObjects::GobMarkOfBleedingHollow) @@ -328,7 +330,7 @@ public: return true; player->KilledMonsterCredit(TanaanKillCredits::CreditSouthernSpireDisabled); - player->GetSceneMgr().PlaySceneByPackageId(TanaanSceneObjects::SceneTeronGorsFreedom); + /// Scene 962 desactivee, cf. le commentaire sur la marque des Ombrelune. } } return true;