Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nefarian Stage 3 #23046

Open
Lucascn21 opened this issue Feb 13, 2019 · 3 comments
Open

Nefarian Stage 3 #23046

Lucascn21 opened this issue Feb 13, 2019 · 3 comments

Comments

@Lucascn21
Copy link

Lucascn21 commented Feb 13, 2019

Description:
The adds on phase 3 do not ever come back to life and attack the players.

Current behaviour:
On phase 3, corpses from the mobs we killed during phase 1, do not come back to life as skeletal constructs.

Expected behaviour:
The corpses of the mobs we killed during phase 1 should revive as full hp skeletal constructs on phase 3.

Steps to reproduce the problem:

  1. Head to Nefarian (.tele bwl)
  2. Start the encounter
  3. Kill the adds until Nefarian takes his dragon form
  4. Get him below 20% hp
  5. Nefarian does the SAY_RAISE_SKELETONS as scripted. Nothing else happens.

Branch(es):
3.3.5
(TDB 335.64)

TC rev. hash/commit:
59682bb

Operating system:
#W10

Notes
I've managed to fix most of this phase but i dont know how to make a Pull Request yet, i will get to it in a few hours.

@ghost
Copy link

ghost commented Feb 15, 2019

Feel free to ask for help if you are having trouble creating the PR.
You also have the option to ask in IRC: #Trinity @ irc.rizon.net

@LEO33SoFo
Copy link

This problem stills exists as of 9d95912.

And when Nefarian has 5% HP, he should say

ENOUGH! Now you vermin shall feel the force of my birthright: The Fury of the Earth itself!

, according to Wowpedia, which he does not.

@ghost
Copy link

ghost commented Oct 9, 2020

(link to the script file)
https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp

The OP issue seems to deal mostly with the following part of the script:

// Phase3 begins when health below 20 pct
if (!Phase3 && HealthBelowPct(20))
{
std::list<Creature*> constructList;
me->GetCreatureListWithEntryInGrid(constructList, NPC_BONE_CONSTRUCT, 500.0f);
for (std::list<Creature*>::const_iterator itr = constructList.begin(); itr != constructList.end(); ++itr)
if ((*itr) && !(*itr)->IsAlive())
{
(*itr)->Respawn();
DoZoneInCombat((*itr));
(*itr)->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
(*itr)->SetReactState(REACT_AGGRESSIVE);
(*itr)->SetStandState(UNIT_STAND_STATE_STAND);
}
Phase3 = true;
Talk(SAY_RAISE_SKELETONS);
}

Is there something wrong with if ((*itr) && !(*itr)->IsAlive()) that makes the script skip the Respawn() section completely?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants