Tyranna : fiabilise le credit trouvez le chemin vers le bas (quete 38728)
Complement de c25c1305. Le credit 101760 netait accorde que dans
DamageTaken, au coup fatal, aux seuls joueurs figurant a cet instant dans
la liste de menace de Tyranna. Dans un combat ou quatre PNJ compagnons
frappent aux cotes du joueur, cette conjonction rate - constate en jeu :
le joueur tuait bien Tyranna, ramassait la Cle de voute (qui ne tombe que
sur son cadavre), et restait bloque sur ce seul objectif.
La cause exacte de lechec na pas pu etre determinee apres coup : trois
conditions doivent etre reunies simultanement (instance de degats letale,
liste de menace non vide, quete en cours) et rien dans les donnees ne dit
laquelle a manque. Do le choix de supprimer la dependance plutot que de
la diagnostiquer.
Le credit est desormais aussi accorde dans JustDied, par proximite (100 m)
et sans condition de menace, sur le modele du script de lInquisiteur
Baleful. Lancienne voie est conservee : les deux sont idempotentes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1516,6 +1516,19 @@ public:
|
|||||||
|
|
||||||
void JustDied(Unit* /*killer*/) override
|
void JustDied(Unit* /*killer*/) override
|
||||||
{
|
{
|
||||||
|
// Objectif « Find the way downstairs » de la quete 38728.
|
||||||
|
// Il etait accorde uniquement dans DamageTaken, au coup fatal, et
|
||||||
|
// seulement aux joueurs figurant alors dans la liste de menace.
|
||||||
|
// Dans un combat ou quatre PNJ compagnons frappent avec le joueur,
|
||||||
|
// cette conjonction rate : constate en jeu, le joueur tuait bien
|
||||||
|
// Tyranna, ramassait la cle, et restait bloque sur cet objectif.
|
||||||
|
// On le redonne ici par proximite, sans condition de menace.
|
||||||
|
std::list<Player*> nearbyPlayers;
|
||||||
|
me->GetPlayerListInGrid(nearbyPlayers, 100.0f);
|
||||||
|
for (Player* player : nearbyPlayers)
|
||||||
|
if (player->GetQuestStatus(QUEST_THE_KEYSTONE) == QUEST_STATUS_INCOMPLETE)
|
||||||
|
player->KilledMonsterCredit(NPC_KEYSTONE_DOWNSTAIRS_CREDIT);
|
||||||
|
|
||||||
std::list<Creature*> summonedSwarm;
|
std::list<Creature*> summonedSwarm;
|
||||||
me->GetCreatureListWithEntryInGrid(summonedSwarm, NPC_TYRANNA_SPAWN, me->GetVisibilityRange());
|
me->GetCreatureListWithEntryInGrid(summonedSwarm, NPC_TYRANNA_SPAWN, me->GetVisibilityRange());
|
||||||
for (std::list<Creature*>::const_iterator itr = summonedSwarm.begin(); itr != summonedSwarm.end(); ++itr)
|
for (std::list<Creature*>::const_iterator itr = summonedSwarm.begin(); itr != summonedSwarm.end(); ++itr)
|
||||||
|
|||||||
Reference in New Issue
Block a user