Lilatha (q9212): gossip relance escorte si quete deja acceptee

Quete Escape from the Catacombs : si l escorte est interrompue
(deco / redemarrage serveur / sortie de portee), npc_escortAI ne
fait FailQuest qu a la mort -> la quete reste INCOMPLETE et l escorte,
ne demarrant qu a OnQuestAccept, ne pouvait plus repartir (blocage
definitif). Ajout OnGossipHello + StartEscortIfNeeded : reparler a
Lilatha avec la quete en cours relance l escorte.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Sylvania
2026-06-23 22:43:08 +00:00
parent b96242db3b
commit 48dff69fc1
@@ -128,8 +128,31 @@ public:
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_READY);
}
// Relance l escorte si le joueur a deja la quete mais qu elle a ete interrompue
// (deconnexion / redemarrage serveur / sortie de portee) -> evite un blocage definitif
void StartEscortIfNeeded(Player* player)
{
if (HasEscortState(STATE_ESCORT_ESCORTING))
return;
me->setFaction(FACTION_QUEST_ESCAPE);
Start(true, false, player->GetGUID());
}
};
bool OnGossipHello(Player* player, Creature* creature) override
{
// Si le joueur a la quete en cours, (re)lancer l escorte au lieu d un dialogue vide
if (player->GetQuestStatus(QUEST_ESCAPE_FROM_THE_CATACOMBS) == QUEST_STATUS_INCOMPLETE)
{
if (npc_ranger_lilathaAI* escortAI = CAST_AI(npc_ranger_lilatha::npc_ranger_lilathaAI, creature->AI()))
escortAI->StartEscortIfNeeded(player);
return true;
}
return false;
}
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) override
{
if (quest->GetQuestId() == QUEST_ESCAPE_FROM_THE_CATACOMBS)