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

Signed-off-by: click <clickvd@gonnamakeyou.com>
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

View File

@@ -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();
}
}

View File

@@ -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;

View File

@@ -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,