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 /src/server/scripts/Northrend | |
| parent | 3078866968e60df15cd1a5bc3a1f4d13e2d1001f (diff) | |
Scripts/Ulduar: Fixed Hodir's Rare Cache of Winter
Signed-off-by: click <clickvd@gonnamakeyou.com>
Diffstat (limited to 'src/server/scripts/Northrend')
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,  | 
