mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-02 10:33:46 +00:00
fix(Core/Spells): Multi-Shot should not be affected by Glyph of Aimed… (#9897)
* fix(Core/Spells): Multi-Shot should not be affected by Glyph of Aimed Shot. Fixes #9707 * Update.
This commit is contained in:
@@ -10274,7 +10274,7 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
|
||||
// category spells
|
||||
if (cat && catrec > 0)
|
||||
{
|
||||
_AddSpellCooldown(spellInfo->Id, cat, itemId, useSpellCooldown? recTime : catrecTime, true, true);
|
||||
_AddSpellCooldown(spellInfo->Id, cat, itemId, useSpellCooldown ? recTime : catrecTime, true, true);
|
||||
if (needsCooldownPacket)
|
||||
{
|
||||
WorldPacket data;
|
||||
@@ -10282,6 +10282,8 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
|
||||
SendDirectMessage(&data);
|
||||
}
|
||||
|
||||
PacketCooldowns forcedCategoryCooldowns;
|
||||
|
||||
SpellCategoryStore::const_iterator i_scstore = sSpellsByCategoryStore.find(cat);
|
||||
if (i_scstore != sSpellsByCategoryStore.end())
|
||||
{
|
||||
@@ -10306,8 +10308,20 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
|
||||
}
|
||||
|
||||
_AddSpellCooldown(i_scset->second, cat, itemId, catrecTime, !spellInfo->IsCooldownStartedOnEvent() && catrec && rec && catrec != rec);
|
||||
|
||||
if (spellInfo->HasAttribute(SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS))
|
||||
{
|
||||
forcedCategoryCooldowns[i_scset->second] = catrecTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!forcedCategoryCooldowns.empty())
|
||||
{
|
||||
WorldPacket data;
|
||||
BuildCooldownPacket(data, SPELL_COOLDOWN_FLAG_NONE, forcedCategoryCooldowns);
|
||||
SendDirectMessage(&data);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -201,7 +201,7 @@ enum SpellCustomAttributes
|
||||
SPELL_ATTR0_CU_POSITIVE_EFF0 = 0x02000000,
|
||||
SPELL_ATTR0_CU_POSITIVE_EFF1 = 0x04000000,
|
||||
SPELL_ATTR0_CU_POSITIVE_EFF2 = 0x08000000,
|
||||
// unused = 0x10000000,
|
||||
SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS = 0x10000000,
|
||||
SPELL_ATTR0_CU_FORCE_AURA_SAVING = 0x20000800,
|
||||
SPELL_ATTR0_CU_ENCOUNTER_REWARD = 0x40000000, // pussywizard
|
||||
|
||||
|
||||
@@ -3058,7 +3058,14 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
case SPELLFAMILY_HUNTER:
|
||||
// Aspects
|
||||
if (spellInfo->GetCategory() == 47)
|
||||
{
|
||||
spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_INITIAL_THREAT;
|
||||
}
|
||||
// Aimed Shot
|
||||
if (spellInfo->SpellFamilyFlags[0] & 0x00020000)
|
||||
{
|
||||
spellInfo->AttributesCu |= SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -7581,6 +7588,14 @@ void SpellMgr::LoadDbcDataCorrections()
|
||||
if (spellInfo->SpellIconID == 2721 && spellInfo->SpellFamilyFlags[0] & 0x2)
|
||||
spellInfo->SpellFamilyFlags[0] |= 0x40;
|
||||
break;
|
||||
case SPELLFAMILY_HUNTER:
|
||||
// Aimed Shot not affected by category cooldown modifiers
|
||||
if (spellInfo->SpellFamilyFlags[0] & 0x00020000)
|
||||
{
|
||||
spellInfo->AttributesEx6 |= SPELL_ATTR6_NO_CATEGORY_COOLDOWN_MODS;
|
||||
spellInfo->RecoveryTime = 10 * IN_MILLISECONDS;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Recklessness/Shield Wall/Retaliation
|
||||
|
||||
Reference in New Issue
Block a user