aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2013-06-26 15:38:19 -0230
committerMalcrom <malcromdev@gmail.com>2013-06-26 15:38:19 -0230
commit651a966e92e720fd794cfbeb6f6998aa1fb9b1c3 (patch)
tree444127e5b6919952297ff69c22ee05954ffa7d5d /src
parent4761590c4a03933910447da766aa70823362f16f (diff)
Core/Scripting: More BRS updates. Emberseer is still buggy if player resets. Working on it.
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h47
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp44
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp170
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp21
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp3
5 files changed, 147 insertions, 138 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
index 020c81a92e1..ccd96ef81d2 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
@@ -18,35 +18,35 @@
#ifndef DEF_BLACKROCK_SPIRE_H
#define DEF_BLACKROCK_SPIRE_H
-uint32 const EncounterCount = 23;
+uint32 const EncounterCount = 22;
#define BRSScriptName "instance_blackrock_spire"
enum DataTypes
{
- DATA_OMOKK = 1,
- DATA_SHADOW_HUNTER_VOSHGAJIN = 2,
- DATA_WARMASTER_VOONE = 3,
- DATA_MOTHER_SMOLDERWEB = 4,
- DATA_UROK_DOOMHOWL = 5, // not scripted
- DATA_QUARTERMASTER_ZIGRIS = 6,
- DATA_GIZRUL_THE_SLAVENER = 7, // not scripted
- DATA_HALYCON = 8,
- DATA_OVERLORD_WYRMTHALAK = 9,
- DATA_PYROGAURD_EMBERSEER = 10,
- DATA_WARCHIEF_REND_BLACKHAND = 11,
- DATA_GYTH = 12,
- DATA_THE_BEAST = 13,
- DATA_GENERAL_DRAKKISATH = 14,
+ DATA_OMOKK = 0,
+ DATA_SHADOW_HUNTER_VOSHGAJIN = 1,
+ DATA_WARMASTER_VOONE = 2,
+ DATA_MOTHER_SMOLDERWEB = 3,
+ DATA_UROK_DOOMHOWL = 4, // not scripted
+ DATA_QUARTERMASTER_ZIGRIS = 5,
+ DATA_GIZRUL_THE_SLAVENER = 6, // not scripted
+ DATA_HALYCON = 7,
+ DATA_OVERLORD_WYRMTHALAK = 8,
+ DATA_PYROGAURD_EMBERSEER = 9,
+ DATA_WARCHIEF_REND_BLACKHAND = 10,
+ DATA_GYTH = 11,
+ DATA_THE_BEAST = 12,
+ DATA_GENERAL_DRAKKISATH = 13,
// Extra
- DATA_DRAGONSPIRE_ROOM = 15,
- DATA_HALL_RUNE_1 = 16,
- DATA_HALL_RUNE_2 = 17,
- DATA_HALL_RUNE_3 = 18,
- DATA_HALL_RUNE_4 = 19,
- DATA_HALL_RUNE_5 = 20,
- DATA_HALL_RUNE_6 = 21,
- DATA_HALL_RUNE_7 = 22
+ DATA_DRAGONSPIRE_ROOM = 14,
+ DATA_HALL_RUNE_1 = 15,
+ DATA_HALL_RUNE_2 = 16,
+ DATA_HALL_RUNE_3 = 17,
+ DATA_HALL_RUNE_4 = 18,
+ DATA_HALL_RUNE_5 = 19,
+ DATA_HALL_RUNE_6 = 20,
+ DATA_HALL_RUNE_7 = 21
};
enum CreaturesIds
@@ -94,7 +94,6 @@ enum GameObjectsIds
GO_GYTH_EXIT_DOOR = 175186,
GO_DRAKKISATH_DOOR_1 = 175946,
GO_DRAKKISATH_DOOR_2 = 175947,
- GO_BLACKROCK_ALTAR = 175706, // Altar used to start Pyroguard Emberseer event
// Runes in dragonspire hall
GO_HALL_RUNE_1 = 175197,
GO_HALL_RUNE_2 = 175199,
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
index e0023995cb3..75e9ad6a140 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_gyth.cpp
@@ -22,10 +22,10 @@
enum Spells
{
SPELL_REND_MOUNTS = 16167, // Change model
- SPELL_FREEZE = 16350, // Combat
- SPELL_KNOCK_AWAY = 10101, // Combat
- SPELL_FLAMEBREATH = 16390, // Combat (Self cast)
SPELL_CORROSIVE_ACID = 16359, // Combat (self cast)
+ SPELL_FLAMEBREATH = 16390, // Combat (Self cast)
+ SPELL_FREEZE = 16350, // Combat (Self cast)
+ SPELL_KNOCK_AWAY = 10101, // Combat
SPELL_SUMMON_REND = 16328 // Summons Rend near death
};
@@ -34,7 +34,8 @@ enum Events
EVENT_CORROSIVE_ACID = 1,
EVENT_FREEZE = 2,
EVENT_FLAME_BREATH = 3,
- EVENT_SUMMONED = 4,
+ EVENT_KNOCK_AWAY = 4,
+ EVENT_SUMMONED = 5,
};
class boss_gyth : public CreatureScript
@@ -52,15 +53,21 @@ public:
{
_Reset();
SummonedRend = false;
+ if (instance->GetBossState(DATA_GYTH) == IN_PROGRESS)
+ {
+ instance->SetBossState(DATA_GYTH, DONE);
+ me->DespawnOrUnsummon();
+ }
}
void EnterCombat(Unit* /*who*/)
{
_EnterCombat();
- events.ScheduleEvent(EVENT_CORROSIVE_ACID, 18000);
- events.ScheduleEvent(EVENT_FREEZE, 20000);
- events.ScheduleEvent(EVENT_FLAME_BREATH, 16000);
+ events.ScheduleEvent(EVENT_CORROSIVE_ACID, urand(8000, 16000));
+ events.ScheduleEvent(EVENT_FREEZE, urand(8000, 16000));
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand(8000, 16000));
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand(12000, 18000));
}
void JustDied(Unit* /*killer*/)
@@ -80,16 +87,13 @@ public:
if (!SummonedRend && HealthBelowPct(5))
{
- DoCast(me, SPELL_REND_MOUNTS);
+ DoCast(me, SPELL_SUMMON_REND);
me->RemoveAura(SPELL_REND_MOUNTS);
SummonedRend = true;
}
events.Update(diff);
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
while (uint32 eventId = events.ExecuteEvent())
{
switch (eventId)
@@ -99,16 +103,22 @@ public:
// Load Path
break;
case EVENT_CORROSIVE_ACID:
- DoCastVictim(SPELL_CORROSIVE_ACID);
- events.ScheduleEvent(EVENT_CORROSIVE_ACID, 20000);
+ DoCast(me, SPELL_CORROSIVE_ACID);
+ events.ScheduleEvent(EVENT_CORROSIVE_ACID, urand(10000, 16000));
break;
case EVENT_FREEZE:
- DoCastVictim(SPELL_FREEZE);
- events.ScheduleEvent(EVENT_FREEZE, 16000);
+ DoCast(me, SPELL_FREEZE);
+ events.ScheduleEvent(EVENT_FREEZE, urand(10000, 16000));
break;
case EVENT_FLAME_BREATH:
- DoCastVictim(SPELL_FLAMEBREATH);
- events.ScheduleEvent(EVENT_FLAME_BREATH, 10000);
+ DoCast(me, SPELL_FLAMEBREATH);
+ events.ScheduleEvent(EVENT_FLAME_BREATH, urand(10000, 16000));
+ break;
+ case EVENT_KNOCK_AWAY:
+ DoCastVictim(SPELL_KNOCK_AWAY);
+ events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(14000, 20000));
+ break;
+ default:
break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
index 15fbf90e766..24a1fbad457 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
@@ -61,12 +61,11 @@ enum Events
EVENT_FIRENOVA = 4,
EVENT_FLAMEBUFFET = 5,
EVENT_PYROBLAST = 6,
- // Reset
- EVENT_RESET_ALTAR = 7,
// Hack due to trigger spell not in dbc
- EVENT_FIRE_SHIELD = 8,
+ EVENT_FIRE_SHIELD = 7,
// Make sure all players have aura from altar
- EVENT_PLAYER_CHECK = 9
+ EVENT_PLAYER_CHECK = 8,
+ EVENT_ENTER_COMBAT = 9
};
class boss_pyroguard_emberseer : public CreatureScript
@@ -82,46 +81,46 @@ public:
{
if (instance)
{
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
-
+ me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+ events.Reset();
// Apply auras on spawn and reset
// DoCast(me, SPELL_FIRE_SHIELD_TRIGGER); // Need to find this in old DBC if possible
- // Open doors on reset
- if (instance->GetBossState(DATA_PYROGAURD_EMBERSEER) == IN_PROGRESS)
- OpenDoors(false); // Opens 2 entrance doors
-
instance->SetBossState(DATA_PYROGAURD_EMBERSEER, NOT_STARTED);
-
+ me->RemoveAura(SPELL_EMBERSEER_FULL_STRENGTH);
+ me->RemoveAura(SPELL_EMBERSEER_GROWING);
+ me->RemoveAura(SPELL_EMBERSEER_GROWING_TRIGGER);
+ events.ScheduleEvent(EVENT_RESPAWN, 1000);
// Hack for missing trigger spell
events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
- }
- }
- void JustReachedHome()
- {
- if (instance)
- {
- // respawn any dead Blackhand Incarcerators & reset Altar
- events.ScheduleEvent(EVENT_RESPAWN, 1000);
- events.ScheduleEvent(EVENT_RESET_ALTAR, 6000);
+ // Open doors on reset
+ if (instance->GetBossState(DATA_PYROGAURD_EMBERSEER) == IN_PROGRESS)
+ OpenDoors(false); // Opens 2 entrance doors
}
}
- void SetData(uint32 type, uint32 data)
+ void SetData(uint32 /*type*/, uint32 data)
{
- if (instance && type == 1 && data == 1)
- events.ScheduleEvent(EVENT_PLAYER_CHECK, 5000);
-
- if (instance && type == 1 && data == 2)
+ switch (data)
{
- // Close these two doors on Blackhand Incarcerators aggro
- if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN)))
- if (door1->GetGoState() == GO_STATE_ACTIVE)
- door1->SetGoState(GO_STATE_READY);
- if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS)))
- if (door2->GetGoState() == GO_STATE_ACTIVE)
- door2->SetGoState(GO_STATE_READY);
+ case 1:
+ events.ScheduleEvent(EVENT_PLAYER_CHECK, 5000);
+ break;
+ case 2:
+ // Close these two doors on Blackhand Incarcerators aggro
+ if (GameObject* door1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_IN)))
+ if (door1->GetGoState() == GO_STATE_ACTIVE)
+ door1->SetGoState(GO_STATE_READY);
+ if (GameObject* door2 = me->GetMap()->GetGameObject(instance->GetData64(GO_DOORS)))
+ if (door2->GetGoState() == GO_STATE_ACTIVE)
+ door2->SetGoState(GO_STATE_READY);
+ break;
+ case 3:
+ Reset();
+ break;
+ default:
+ break;
}
}
@@ -138,24 +137,10 @@ public:
if (instance)
{
// Activate all the runes
- if (GameObject* rune1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_1)))
- rune1->SetGoState(GO_STATE_READY);
- if (GameObject* rune2 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_2)))
- rune2->SetGoState(GO_STATE_READY);
- if (GameObject* rune3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_3)))
- rune3->SetGoState(GO_STATE_READY);
- if (GameObject* rune4 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_4)))
- rune4->SetGoState(GO_STATE_READY);
- if (GameObject* rune5 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_5)))
- rune5->SetGoState(GO_STATE_READY);
- if (GameObject* rune6 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_6)))
- rune6->SetGoState(GO_STATE_READY);
- if (GameObject* rune7 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_7)))
- rune7->SetGoState(GO_STATE_READY);
-
+ UpdateRunes(GO_STATE_READY);
// Opens all 3 doors
OpenDoors(true);
-
+ // Complete encounter
instance->SetBossState(DATA_PYROGAURD_EMBERSEER, DONE);
}
}
@@ -180,8 +165,8 @@ public:
me->CastSpell(me, SPELL_EMBERSEER_FULL_STRENGTH);
Talk(EMOTE_FREE_OF_BONDS);
Talk(YELL_FREE_OF_BONDS);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC|UNIT_FLAG_NOT_SELECTABLE);
- AttackStart(me->SelectNearestPlayer(30.0f));
+ me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
+ events.ScheduleEvent(EVENT_ENTER_COMBAT, 2000);
}
}
}
@@ -200,6 +185,28 @@ public:
door3->SetGoState(GO_STATE_ACTIVE);
}
+ void UpdateRunes(GOState state)
+ {
+ if (instance)
+ {
+ // update all runes
+ if (GameObject* rune1 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_1)))
+ rune1->SetGoState(state);
+ if (GameObject* rune2 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_2)))
+ rune2->SetGoState(state);
+ if (GameObject* rune3 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_3)))
+ rune3->SetGoState(state);
+ if (GameObject* rune4 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_4)))
+ rune4->SetGoState(state);
+ if (GameObject* rune5 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_5)))
+ rune5->SetGoState(state);
+ if (GameObject* rune6 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_6)))
+ rune6->SetGoState(state);
+ if (GameObject* rune7 = me->GetMap()->GetGameObject(instance->GetData64(GO_EMBERSEER_RUNE_7)))
+ rune7->SetGoState(state);
+ }
+ }
+
void UpdateAI(uint32 diff)
{
events.Update(diff);
@@ -215,8 +222,13 @@ public:
GetCreatureListWithEntryInGrid(creatureList, me, NPC_BLACKHAND_INCARCERATOR, 35.0f);
for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
if (Creature* creatureList = *itr)
+ {
if (!creatureList->IsAlive())
+ {
creatureList->Respawn();
+ }
+ creatureList->AI()->SetData(1, 2);
+ }
break;
}
case EVENT_PRE_FIGHT_1:
@@ -225,12 +237,10 @@ public:
std::list<Creature*> creatureList;
GetCreatureListWithEntryInGrid(creatureList, me, NPC_BLACKHAND_INCARCERATOR, 35.0f);
for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
+ {
if (Creature* creatureList = *itr)
creatureList->AI()->SetData(1, 1);
-
- // Lock Blackrock Altar
- if (GameObject* altar = me->GetMap()->GetGameObject(instance->GetData64(GO_BLACKROCK_ALTAR)))
- altar->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
+ }
events.ScheduleEvent(EVENT_PRE_FIGHT_2, 32000);
break;
}
@@ -239,14 +249,10 @@ public:
me->CastSpell(me, SPELL_EMBERSEER_GROWING);
Talk(EMOTE_ONE_STACK);
break;
- case EVENT_RESET_ALTAR:
- if (GameObject* altar = me->GetMap()->GetGameObject(instance->GetData64(GO_BLACKROCK_ALTAR)))
- altar->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
- break;
case EVENT_FIRE_SHIELD:
// #### Spell isn't doing any damage ??? ####
- DoCast(SPELL_FIRE_SHIELD);
- events.ScheduleEvent(SPELL_FIRE_SHIELD, 3000);
+ DoCast(me, SPELL_FIRE_SHIELD);
+ events.ScheduleEvent(EVENT_FIRE_SHIELD, 3000);
break;
case EVENT_PLAYER_CHECK:
{
@@ -265,30 +271,32 @@ public:
}
break;
}
- default:
+ case EVENT_ENTER_COMBAT:
+ AttackStart(me->SelectNearestPlayer(30.0f));
break;
- }
- }
-
- if (!UpdateVictim())
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
case EVENT_FIRENOVA:
- DoCast(me, SPELL_FIRENOVA);
+ if (UpdateVictim())
+ {
+ DoCast(me, SPELL_FIRENOVA);
events.ScheduleEvent(EVENT_FIRENOVA, 6000);
+ }
break;
case EVENT_FLAMEBUFFET:
- DoCast(me, SPELL_FLAMEBUFFET);
+ if (UpdateVictim())
+ {
+ DoCast(me, SPELL_FLAMEBUFFET);
events.ScheduleEvent(EVENT_FLAMEBUFFET, 14000);
+ }
break;
case EVENT_PYROBLAST:
- if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- DoCast(target, SPELL_PYROBLAST);
+ if (UpdateVictim())
+ {
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
+ DoCast(target, SPELL_PYROBLAST);
events.ScheduleEvent(EVENT_PYROBLAST, 15000);
+ }
+ break;
+ default:
break;
}
}
@@ -327,7 +335,8 @@ public:
void Reset()
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
- _events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 1000);
+ if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
+ Emberseer->AI()->SetData(1, 3);
}
void JustDied(Unit* /*killer*/)
@@ -343,6 +352,11 @@ public:
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
_events.CancelEvent(EVENT_ENCAGED_EMBERSEER);
}
+
+ if (data == 1 && value == 2)
+ {
+ _events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 5000);
+ }
}
void EnterCombat(Unit* /*who*/)
@@ -350,9 +364,10 @@ public:
// Used to close doors
if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
Emberseer->AI()->SetData(1, 2);
-
+ me->CallForHelp(60.0f);
_events.ScheduleEvent(EVENT_STRIKE, urand(8000, 16000));
_events.ScheduleEvent(EVENT_ENCAGE, urand(10000, 20000));
+ me->CallForHelp(60.0f); // double call because not all are aggroing on first call.
}
void UpdateAI(uint32 diff)
@@ -370,7 +385,6 @@ public:
if(!me->HasAura(SPELL_ENCAGE_EMBERSEER))
if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
DoCast(Emberseer, SPELL_ENCAGE_EMBERSEER);
- _events.ScheduleEvent(EVENT_ENCAGED_EMBERSEER, 5000);
break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
index 6eff7f7a430..7b80f75255a 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
@@ -66,16 +66,6 @@ public:
go_blackrockaltar = 0;
}
- bool IsEncounterInProgress() const
- {
- for (uint8 i = 0; i < EncounterCount; ++i)
- {
- if (encounter[i] == IN_PROGRESS)
- return true;
- }
- return false;
- }
-
void OnCreatureCreate(Creature* creature)
{
switch (creature->GetEntry())
@@ -153,11 +143,6 @@ public:
if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
HandleGameObject(0, true, go);
break;
- case GO_BLACKROCK_ALTAR:
- go_blackrockaltar = go->GetGUID();
- if (GetBossState(DATA_PYROGAURD_EMBERSEER) == DONE)
- go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);
- break;
case GO_HALL_RUNE_1:
go_roomrunes[0] = go->GetGUID();
if (GetBossState(DATA_HALL_RUNE_1) == DONE)
@@ -347,9 +332,6 @@ public:
case GO_EMBERSEER_OUT:
return go_emberseerout;
break;
- case GO_BLACKROCK_ALTAR:
- return go_blackrockaltar;
- break;
case GO_HALL_RUNE_1:
return go_roomrunes[0];
break;
@@ -544,8 +526,11 @@ public:
loadStream >> tmpState;
if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
tmpState = NOT_STARTED;
+ SetBossState(i, EncounterState(tmpState));
}
}
+ else
+ OUT_LOAD_INST_DATA_FAIL;
OUT_LOAD_INST_DATA_COMPLETE;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
index d8be67777e4..fde21c63840 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
@@ -64,6 +64,7 @@ enum Says
enum Gossip
{
GOSSIP_ID = 21332,
+ GOSSIP_OPTION_ID = 0
};
enum Creatures
@@ -269,7 +270,7 @@ public:
void sGossipSelect(Player* player, uint32 sender, uint32 action)
{
- if (sender == GOSSIP_ID && action == 0)
+ if (sender == GOSSIP_ID && action == GOSSIP_OPTION_ID)
{
player->CLOSE_GOSSIP_MENU();
Talk(SAY_GAMESBEGIN_1);