http://www.wowhead.com/npc=10339/gyth
rev. a513abc02c65
If Gyth is killed without reaching 5% hp Rend will not spawm and the encounter will stuck.
the problem is here: https://github.com/TrinityCore/TrinityCore/blob/60159297f2cb9b493da8577292daa6a6d2afa5be/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp#L82
Should Gyth stay alive a bit at 1 HP?
Not sure, but this can fix the problem.
Looking at the online player comments, this issue existed on Blizzard's live servers in 2008, 2009, 2010:
http://www.wowhead.com/npc=10339/gyth#comments:id=537074
By Smadronia (11,311 – 1·20·91) on 2008/12/30 (Patch 3.0.3)
Be careful when you kill this guy, if you kill him too quickly, Rend won't spawn, and the gates won't open.
This is also mentioned in comments from patch 3.3.2 and 3.3.5.
By the way, Gyth was removed in 6.0.2, so this would be a 3.3.5-specific issue (if it is an issue).
Personally, I don't think this is a bug. This is a gating mechanism Blizzard used to keep people from burning through the encounter.
From my past experiences on retail, you had to fight through the waves of trash and wait until Rend spawned where you then had one tank grab Rend and another grab Gyth. The raid would finish off Gyth and then focus down Rend.
Without this the encounter becomes trivial because you can burn Gyth down, skipping all the trash.
Similar issue where it is too easy to kill an elite 60+ dragon as a level 70+ well geared player:
"the ancient drake" Emberstrife, found in the Wyrmbog in Dustwallow Marsh:
http://www.wowhead.com/npc=10321/emberstrife#comments:id=74518
http://www.wowhead.com/npc=10321/emberstrife#comments:id=180633
http://www.wowhead.com/quest=4743/seal-of-ascension
In 2009 I accidentally killed Emberstrife 2 times in a row while trying to complete "Seal of Ascension".
This is a bug but its blizzlike bug - it also applies to 6.x version too (the npcs have different names but encounter is pretty much the same - starts mounted and dismounts at certain % health, I personally managed to bug this out on retail by killing the mount too quick http://www.wowhead.com/npc=79912/commander-tharbek *there is a comment stating that he respawns but that was not the case for me, had to leave the dungone)
so closing? :D
We can just add invincibility on 5% on spawn, once amount of hp reached summon the boss and remove the invincibility.
bump :facepunch:
@Killyana : I sort of agree with your suggestion, but I think it is a "workaround" more than a bugfix
(ref. Shauren's comment about this bug being blizzlike).
more proof for this http://de.wowhead.com/npc=10339/gyth#comments:id=537074
i would close this issue
With the new guids system this bug is still valid?
according to http://www.wowhead.com/npc=10339/gyth#comments:id=537074 we will close this, because it's a blizzlike issue
By Smadronia (13,773 – 1·21·117) on 2008/12/30 (Patch 3.0.3)
Be careful when you kill this guy, if you kill him too quickly, Rend won't spawn, and the gates won't open.
So why you fixed it here: https://github.com/dalaranwow/dalaran-wow/issues/90 ?
Also this issue make players to be trapped inside the arena.
ugly arrives @Rushor
Just change his invincibility on Reset()
and remove invincibility after SummonedRend = true;
@offl help,no't work(
why this change?It's work correctly,killed boss locked door
Check how invincibility works for SAI. https://github.com/TrinityCore/TrinityCore/blob/7d00ae40458fe4399ca414c79a9b0a88b863267a/src/server/game/AI/SmartScripts/SmartAI.cpp#L626-L635
@offl what for? I do not understand
@Laintime my comment above was for Ba4ka :)
About your question:
why this change?It's work correctly,killed boss locked door
If Gyth is killed without reaching 5% hp Rend will not spawn and the encounter will stuck.
no is valid, rend spawned,one problems closing door
Dead creatures don't cast spells - since the default spawning method is by spell, it can fail when you overshoot the 5% trigger. But even if you control your damage, it sometimes fail.
Blackrockspire has dozens of other issues \ missing stuff \ non blizzlike functionality and the arena encounter is so broken that its laughable to just fix this little "blizzlike problem". As @Killyana mentioned, players get stucked in the arena when this fails. We did the following to make this encounter more or less failsafe for players :
void JustDied(Unit* /*killer*/) override
{
if (!SummonedRend)
{
// Enforcing a Rend spawn even when Gyth is killed in one attack
me->SummonCreature(NPC_WARCHIEF_REND_BLACKHAND, me->GetPosition(), TEMPSUMMON_DEAD_DESPAWN); // Rend Blackhand
SummonedRend = true;
}
instance->SetBossState(DATA_GYTH, DONE);
}
Anyway - there are other problems following. If you kill Rend too far away from where Nefarius stands, the gates wont open since Nefarius script is controlling them (what might be right or wrong in general, idk).
Therefore, people can take that snippet as a workaround but a lot of Blackrockspire needs a overhaul/rework.
Might be a good candidate for #24029
Bosses should also be converted to SAI?
no.
Ive talked to my co-admin yesterday.
Apparently he wouldnt do it the same way again since trinity has a better option with
if (!SummonedRend && HealthBelowPctDamage(5))
instead of
if (!SummonedRend && HealthBelowPct(5))
custom but this solves all issues:
void JustDied(Unit* /*killer*/) override
{
if (!SummonedRend)
{
// Enforcing a Rend spawn even when Gyth is killed in one attack
me->SummonCreature(NPC_WARCHIEF_REND_BLACKHAND, me->GetPosition(), TEMPSUMMON_DEAD_DESPAWN); // Rend Blackhand
SummonedRend = true;
}
instance->SetBossState(DATA_GYTH, DONE);
if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetGuidData(GO_PORTCULLIS_ACTIVE)))
gate->SetGoState(GO_STATE_ACTIVE);
if(GameObject* gateboss = me->GetMap()->GetGameObject(instance->GetGuidData(GO_PORTCULLIS_TOBOSSROOMS)))
gateboss->SetGoState(GO_STATE_ACTIVE);
}
This will open the gates when Gyth is killed, but it must be done when Rend is killed
The issue still exists as of 9d959123e68020a83c780f53a967b3589cb70786.
Any progress yet?
Most helpful comment
Just change his invincibility on
Reset()
and remove invincibility afterSummonedRend = true;