aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLopin <davca.hr@seznam.cz>2011-06-02 13:31:21 +0200
committerclick <clickvd@gonnamakeyou.com>2011-06-02 13:31:21 +0200
commitd70fd93e41294e8206b8d2d27100138ab79f0bcd (patch)
treed5aeb8e9c2d641767aec23b8bd184bf25497597b
parent3078866968e60df15cd1a5bc3a1f4d13e2d1001f (diff)
Scripts/Ulduar: Fixed Hodir's Rare Cache of Winter
Signed-off-by: click <clickvd@gonnamakeyou.com>
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_hodir.cpp5
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp21
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h4
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,