aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp28
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp2
3 files changed, 30 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 3ee0719e912..87cff6f2c37 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -22138,6 +22138,34 @@ void Player::SendCooldownEvent(SpellInfo const* spellInfo, uint32 itemId /*= 0*/
data << uint32(spellInfo->Id);
data << uint64(GetGUID());
SendDirectMessage(&data);
+
+ uint32 cat = spellInfo->GetCategory();
+ if (cat && spellInfo->CategoryRecoveryTime)
+ {
+ SpellCategoryStore::const_iterator ct = sSpellsByCategoryStore.find(cat);
+ if (ct != sSpellsByCategoryStore.end())
+ {
+ SpellCategorySet const& catSet = ct->second;
+ for (SpellCooldowns::const_iterator i = m_spellCooldowns.begin(); i != m_spellCooldowns.end(); ++i)
+ {
+ if (i->first == spellInfo->Id) // skip main spell, already handled above
+ continue;
+
+ SpellInfo const* spellInfo2 = sSpellMgr->GetSpellInfo(i->first);
+ if (!spellInfo2 || !spellInfo2->IsCooldownStartedOnEvent())
+ continue;
+
+ if (catSet.find(i->first) != catSet.end())
+ {
+ // Send activate cooldown timer (possible 0) at client side
+ WorldPacket data(SMSG_COOLDOWN_EVENT, 4 + 8);
+ data << uint32(i->first);
+ data << uint64(GetGUID());
+ SendDirectMessage(&data);
+ }
+ }
+ }
+ }
}
void Player::UpdatePotionCooldown(Spell* spell)
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 3db0e1092fd..326360428d2 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -174,7 +174,7 @@ public:
anchor->GetContactPoint(me, anchorX, anchorY, z, 1.0f);
playerGUID = target->GetGUID();
- Talk(SAY_EVENT_START);
+ Talk(SAY_EVENT_START, target);
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
index 898e3f9a2cb..ecfd705cf4d 100644
--- a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp
@@ -92,7 +92,7 @@ public:
me->SetWalk(false);
break;
case 115:
- player->AreaExploredOrEventHappens(QUEST_MISSING_IN_ACTION);
+ player->GroupEventHappens(QUEST_MISSING_IN_ACTION, me);
timer = 2000;
phase = 4;
break;