diff options
author | Lopin <davca.hr@seznam.cz> | 2011-06-02 13:31:21 +0200 |
---|---|---|
committer | click <clickvd@gonnamakeyou.com> | 2011-06-02 13:31:21 +0200 |
commit | d70fd93e41294e8206b8d2d27100138ab79f0bcd (patch) | |
tree | d5aeb8e9c2d641767aec23b8bd184bf25497597b | |
parent | 3078866968e60df15cd1a5bc3a1f4d13e2d1001f (diff) |
Scripts/Ulduar: Fixed Hodir's Rare Cache of Winter
Signed-off-by: click <clickvd@gonnamakeyou.com>
3 files changed, 27 insertions, 3 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_hodir.cpp index 97f5670e787..d83d3d022c7 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_hodir.cpp @@ -347,8 +347,9 @@ class boss_hodir : public CreatureScript if (damage >= me->GetHealth()) { damage = 0; - _JustDied(); DoScriptText(SAY_DEATH, me); + if (iCouldSayThatThisCacheWasRare) + instance->SetData(DATA_HODIR_RARE_CACHE, 1); me->RemoveAllAuras(); me->RemoveAllAttackers(); @@ -364,6 +365,8 @@ class boss_hodir : public CreatureScript me->setFaction(35); me->DespawnOrUnsummon(10000); + + _JustDied(); } } diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp index 4cd4d374872..ad8f95c0556 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp @@ -71,12 +71,14 @@ public: uint64 KologarnBridgeGUID; uint64 KologarnDoorGUID; uint64 ThorimChestGUID; + uint64 HodirRareCacheGUID; uint64 HodirChestGUID; uint64 FreyaChestGUID; uint64 HodirDoorGUID; uint64 HodirIceDoorGUID; uint32 TeamInInstance; + uint32 HodirRareCacheData; std::set<uint64> mRubbleSpawns; @@ -104,6 +106,7 @@ public: KologarnBridgeGUID = 0; KologarnChestGUID = 0; ThorimChestGUID = 0; + HodirRareCacheGUID = 0; HodirChestGUID = 0; FreyaChestGUID = 0; LeviathanGateGUID = 0; @@ -111,6 +114,7 @@ public: HodirDoorGUID = 0; HodirIceDoorGUID = 0; TeamInInstance = 0; + HodirRareCacheData = 0; memset(Encounter, 0, sizeof(Encounter)); memset(AssemblyGUIDs, 0, sizeof(AssemblyGUIDs)); @@ -297,6 +301,9 @@ public: case GO_THORIM_CHEST: ThorimChestGUID = gameObject->GetGUID(); break; + case GO_HODIR_RARE_CACHE_OF_WINTER: + HodirRareCacheGUID = gameObject->GetGUID(); + break; case GO_HODIR_CHEST_HERO: case GO_HODIR_CHEST: HodirChestGUID = gameObject->GetGUID(); @@ -415,8 +422,11 @@ public: case BOSS_HODIR: if (state == DONE) { - if (GameObject* gameObject = instance->GetGameObject(HodirChestGUID)) - gameObject->SetRespawnTime(gameObject->GetRespawnDelay()); + if (GameObject* HodirRareCache = instance->GetGameObject(HodirRareCacheGUID)) + if (GetData(DATA_HODIR_RARE_CACHE) == 1) + HodirRareCache->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + if (GameObject* HodirChest = instance->GetGameObject(HodirChestGUID)) + HodirChest->SetRespawnTime(HodirChest->GetRespawnDelay()); HandleGameObject(HodirDoorGUID, true); HandleGameObject(HodirIceDoorGUID, true); } @@ -451,6 +461,9 @@ public: SaveToDB(); } break; + case DATA_HODIR_RARE_CACHE: + HodirRareCacheData = data; + break; default: break; } @@ -544,6 +557,10 @@ public: { case TYPE_COLOSSUS: return Encounter[type]; + break; + case DATA_HODIR_RARE_CACHE: + return HodirRareCacheData; + break; } return 0; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h index 637126c4642..b503b1f63a3 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h @@ -54,6 +54,9 @@ enum UlduarBosses // Kologarn DATA_LEFT_ARM, DATA_RIGHT_ARM, + + // Hodir + DATA_HODIR_RARE_CACHE, }; enum UlduarNPCs @@ -119,6 +122,7 @@ enum UlduarGameObjects GO_KOLOGARN_DOOR = 194553, GO_THORIM_CHEST_HERO = 194315, GO_THORIM_CHEST = 194314, + GO_HODIR_RARE_CACHE_OF_WINTER = 194200, GO_HODIR_CHEST_HERO = 194308, GO_HODIR_CHEST = 194307, GO_FREYA_CHEST_HERO = 194325, |