Scripts/Ulduar: Fixed Hodir's Rare Cache of Winter

Signed-off-by: click <[email protected]>
This commit is contained in:
Lopin
2011-06-02 13:31:21 +02:00
committed by click
parent 3078866968
commit d70fd93e41
3 changed files with 27 additions and 3 deletions
@@ -347,8 +347,9 @@ class boss_hodir : public CreatureScript
if (damage >= me->GetHealth()) if (damage >= me->GetHealth())
{ {
damage = 0; damage = 0;
_JustDied();
DoScriptText(SAY_DEATH, me); DoScriptText(SAY_DEATH, me);
if (iCouldSayThatThisCacheWasRare)
instance->SetData(DATA_HODIR_RARE_CACHE, 1);
me->RemoveAllAuras(); me->RemoveAllAuras();
me->RemoveAllAttackers(); me->RemoveAllAttackers();
@@ -364,6 +365,8 @@ class boss_hodir : public CreatureScript
me->setFaction(35); me->setFaction(35);
me->DespawnOrUnsummon(10000); me->DespawnOrUnsummon(10000);
_JustDied();
} }
} }
@@ -71,12 +71,14 @@ public:
uint64 KologarnBridgeGUID; uint64 KologarnBridgeGUID;
uint64 KologarnDoorGUID; uint64 KologarnDoorGUID;
uint64 ThorimChestGUID; uint64 ThorimChestGUID;
uint64 HodirRareCacheGUID;
uint64 HodirChestGUID; uint64 HodirChestGUID;
uint64 FreyaChestGUID; uint64 FreyaChestGUID;
uint64 HodirDoorGUID; uint64 HodirDoorGUID;
uint64 HodirIceDoorGUID; uint64 HodirIceDoorGUID;
uint32 TeamInInstance; uint32 TeamInInstance;
uint32 HodirRareCacheData;
std::set<uint64> mRubbleSpawns; std::set<uint64> mRubbleSpawns;
@@ -104,6 +106,7 @@ public:
KologarnBridgeGUID = 0; KologarnBridgeGUID = 0;
KologarnChestGUID = 0; KologarnChestGUID = 0;
ThorimChestGUID = 0; ThorimChestGUID = 0;
HodirRareCacheGUID = 0;
HodirChestGUID = 0; HodirChestGUID = 0;
FreyaChestGUID = 0; FreyaChestGUID = 0;
LeviathanGateGUID = 0; LeviathanGateGUID = 0;
@@ -111,6 +114,7 @@ public:
HodirDoorGUID = 0; HodirDoorGUID = 0;
HodirIceDoorGUID = 0; HodirIceDoorGUID = 0;
TeamInInstance = 0; TeamInInstance = 0;
HodirRareCacheData = 0;
memset(Encounter, 0, sizeof(Encounter)); memset(Encounter, 0, sizeof(Encounter));
memset(AssemblyGUIDs, 0, sizeof(AssemblyGUIDs)); memset(AssemblyGUIDs, 0, sizeof(AssemblyGUIDs));
@@ -297,6 +301,9 @@ public:
case GO_THORIM_CHEST: case GO_THORIM_CHEST:
ThorimChestGUID = gameObject->GetGUID(); ThorimChestGUID = gameObject->GetGUID();
break; break;
case GO_HODIR_RARE_CACHE_OF_WINTER:
HodirRareCacheGUID = gameObject->GetGUID();
break;
case GO_HODIR_CHEST_HERO: case GO_HODIR_CHEST_HERO:
case GO_HODIR_CHEST: case GO_HODIR_CHEST:
HodirChestGUID = gameObject->GetGUID(); HodirChestGUID = gameObject->GetGUID();
@@ -415,8 +422,11 @@ public:
case BOSS_HODIR: case BOSS_HODIR:
if (state == DONE) if (state == DONE)
{ {
if (GameObject* gameObject = instance->GetGameObject(HodirChestGUID)) if (GameObject* HodirRareCache = instance->GetGameObject(HodirRareCacheGUID))
gameObject->SetRespawnTime(gameObject->GetRespawnDelay()); 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(HodirDoorGUID, true);
HandleGameObject(HodirIceDoorGUID, true); HandleGameObject(HodirIceDoorGUID, true);
} }
@@ -451,6 +461,9 @@ public:
SaveToDB(); SaveToDB();
} }
break; break;
case DATA_HODIR_RARE_CACHE:
HodirRareCacheData = data;
break;
default: default:
break; break;
} }
@@ -544,6 +557,10 @@ public:
{ {
case TYPE_COLOSSUS: case TYPE_COLOSSUS:
return Encounter[type]; return Encounter[type];
break;
case DATA_HODIR_RARE_CACHE:
return HodirRareCacheData;
break;
} }
return 0; return 0;
@@ -54,6 +54,9 @@ enum UlduarBosses
// Kologarn // Kologarn
DATA_LEFT_ARM, DATA_LEFT_ARM,
DATA_RIGHT_ARM, DATA_RIGHT_ARM,
// Hodir
DATA_HODIR_RARE_CACHE,
}; };
enum UlduarNPCs enum UlduarNPCs
@@ -119,6 +122,7 @@ enum UlduarGameObjects
GO_KOLOGARN_DOOR = 194553, GO_KOLOGARN_DOOR = 194553,
GO_THORIM_CHEST_HERO = 194315, GO_THORIM_CHEST_HERO = 194315,
GO_THORIM_CHEST = 194314, GO_THORIM_CHEST = 194314,
GO_HODIR_RARE_CACHE_OF_WINTER = 194200,
GO_HODIR_CHEST_HERO = 194308, GO_HODIR_CHEST_HERO = 194308,
GO_HODIR_CHEST = 194307, GO_HODIR_CHEST = 194307,
GO_FREYA_CHEST_HERO = 194325, GO_FREYA_CHEST_HERO = 194325,