Scripts/Ulduar: Fixed Hodir's Rare Cache of Winter
Signed-off-by: click <[email protected]>
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user