From 723b200dbeececbe80aa8a4442499be232301f2d Mon Sep 17 00:00:00 2001 From: SylvaniaCore deploy Date: Tue, 18 Aug 2026 01:25:53 +0200 Subject: [PATCH] Quete 39515 (A moi la vengeance) : les 5 PNJ ne reagissaient pas Signale en jeu : cliquer sur loption de dialogue dAllari, Cyana, Kayn, Korvas ou Mannethrel ne produisait rien. Cry Havoc existe en DEUX versions strictement jumelles - memes cinq objectifs, meme donneur (Kayn 93127) - une par specialisation : 39516 Semer la devastation (Devastation) 39515 A moi la vengeance ! (Vengeance) Le script ne testait que 39516, en six endroits. Pour un joueur ayant choisi Vengeance, HasQuest renvoyait faux et chaque handler sortait immediatement. Le script de la Vigie brisee gere pourtant bien ses propres variantes (_HA/_HH/_VA/_VH, _H/_V, _DMG_SPEC/_TANK_SPEC) : loubli est propre a Mardum. Verification systematique faite : en croisant toutes les quetes codees en dur dans les deux scripts DH avec la liste des quetes partageant une signature dobjectifs identique, Cry Havoc est la SEULE de Mardum a avoir une jumelle non geree. Co-Authored-By: Claude Opus 4.8 --- .../DemonHunterZones/zone_mardum.cpp | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/server/scripts/BrokenIsles/DemonHunterZones/zone_mardum.cpp b/src/server/scripts/BrokenIsles/DemonHunterZones/zone_mardum.cpp index f978192..35ed3c1 100644 --- a/src/server/scripts/BrokenIsles/DemonHunterZones/zone_mardum.cpp +++ b/src/server/scripts/BrokenIsles/DemonHunterZones/zone_mardum.cpp @@ -45,7 +45,15 @@ enum MardumQuests QUEST_HIDDEN_NO_MORE = 39495, QUEST_ON_FELBAT_WINGS = 39663, QUEST_THE_KEYSTONE = 38728, + // Cry Havoc existe en DEUX versions strictement jumelles - memes cinq + // objectifs, meme donneur (Kayn 93127) - une par specialisation : + // 39516 Semer la devastation (Devastation) + // 39515 A moi la vengeance ! (Vengeance) + // Le script ne connaissait que la premiere : pour un joueur Vengeance, + // aucun des cinq PNJ ne reagissait au dialogue. Le script de la Vigie + // brisee, lui, gere bien ses variantes (_H/_V, _DMG_SPEC/_TANK_SPEC). QUEST_CRY_HAVOC = 39516, + QUEST_CRY_HAVOC_VENGEANCE = 39515, QUEST_THEIR_NUMBERS_ARE_LEGION = 38819 }; @@ -961,7 +969,7 @@ public: bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) { - if (quest->GetQuestId() == QUEST_CRY_HAVOC) + if ((quest->GetQuestId() == QUEST_CRY_HAVOC || quest->GetQuestId() == QUEST_CRY_HAVOC_VENGEANCE)) creature->AI()->Talk(SAY_KAYN_SUNFURY_TEXT_1); if (quest->GetQuestId() == QUEST_ON_FELBAT_WINGS) @@ -978,7 +986,7 @@ public: if (creature->IsQuestGiver()) player->PrepareQuestMenu(creature->GetGUID()); - if (player->GetQuestStatus(QUEST_CRY_HAVOC) == QUEST_STATUS_INCOMPLETE) + if ((player->GetQuestStatus(QUEST_CRY_HAVOC) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_CRY_HAVOC_VENGEANCE) == QUEST_STATUS_INCOMPLETE)) { AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Kayn, I'll show you what I've learned about demonic mysteries.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID()); @@ -1015,7 +1023,7 @@ struct npc_allari : public ScriptedAI void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) { - if (player->HasQuest(QUEST_CRY_HAVOC)) + if ((player->HasQuest(QUEST_CRY_HAVOC) || player->HasQuest(QUEST_CRY_HAVOC_VENGEANCE))) { if (gossipListId == 0) { @@ -1034,7 +1042,7 @@ struct npc_cyana : public ScriptedAI void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) { - if (player->HasQuest(QUEST_CRY_HAVOC)) + if ((player->HasQuest(QUEST_CRY_HAVOC) || player->HasQuest(QUEST_CRY_HAVOC_VENGEANCE))) { if (gossipListId == 0) { @@ -1053,7 +1061,7 @@ struct npc_korvas : public ScriptedAI void sGossipSelect(Player* player, uint32 menuId, uint32 gossipListId) { - if (player->HasQuest(QUEST_CRY_HAVOC)) + if ((player->HasQuest(QUEST_CRY_HAVOC) || player->HasQuest(QUEST_CRY_HAVOC_VENGEANCE))) { if (gossipListId == 0) { @@ -1076,7 +1084,7 @@ public: if (creature->IsQuestGiver()) player->PrepareQuestMenu(creature->GetGUID()); - if (player->GetQuestStatus(QUEST_CRY_HAVOC) == QUEST_STATUS_INCOMPLETE) + if ((player->GetQuestStatus(QUEST_CRY_HAVOC) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(QUEST_CRY_HAVOC_VENGEANCE) == QUEST_STATUS_INCOMPLETE)) { AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Get Ready, Mannethrel. I'm going to fill you with the power of the Legion's secrets.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());