diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.h | 2 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 10 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 272 |
3 files changed, 145 insertions, 139 deletions
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 2cfd919ddbf..6371124aad9 100755 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -385,7 +385,7 @@ enum TriggerCastFlags TRIGGERED_NONE = 0x00000000, //! Not triggered TRIGGERED_IGNORE_GCD = 0x00000001, //! Will ignore GCD TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD = 0x00000002, //! Will ignore Spell and Category cooldowns - TRIGGERED_IGNORE_POWER_AND_REAGENT_COST = 0x00000004, //! Will ignore power and reagent cost + TRIGGERED_IGNORE_POWER_AND_REAGENT_COST = 0x00000004, //! Will ignore power and reagent cost TRIGGERED_IGNORE_CAST_ITEM = 0x00000008, //! Will not take away cast item or update related achievement criteria TRIGGERED_IGNORE_AURA_SCALING = 0x00000010, //! Will ignore aura scaling TRIGGERED_IGNORE_CAST_IN_PROGRESS = 0x00000020, //! Will not check if a current cast is in progress diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 104f786c99b..f92830b720f 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -1473,13 +1473,19 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask, bool if (m_originalCaster) { + bool refresh = false; m_spellAura = Aura::TryRefreshStackOrCreate(aurSpellInfo, effectMask, unit, - m_originalCaster, (aurSpellInfo == m_spellInfo)? &m_spellValue->EffectBasePoints[0] : &basePoints[0], m_CastItem); + m_originalCaster, (aurSpellInfo == m_spellInfo)? &m_spellValue->EffectBasePoints[0] : &basePoints[0], m_CastItem, 0, &refresh, int32(m_spellValue->AuraStackAmount)); if (m_spellAura) { // Set aura stack amount to desired value if (m_spellValue->AuraStackAmount > 1) - m_spellAura->SetStackAmount(m_spellValue->AuraStackAmount); + { + if (!refresh) + m_spellAura->SetStackAmount(m_spellValue->AuraStackAmount); + else + m_spellAura->ModStackAmount(m_spellValue->AuraStackAmount); + } // Now Reduce spell duration using data received at spell hit int32 duration = m_spellAura->GetMaxDuration(); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 748b0f3441b..c3218743315 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2676,141 +2676,141 @@ void SpellMgr::LoadSpellCustomAttr() switch (spellInfo->Id) { - case 1776: // Gouge - case 1777: - case 8629: - case 11285: - case 11286: - case 12540: - case 13579: - case 24698: - case 28456: - case 29425: - case 34940: - case 36862: - case 38764: - case 38863: - case 52743: // Head Smack - spellInfo->AttributesCu |= SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER; - break; - case 53: // Backstab - case 2589: - case 2590: - case 2591: - case 8721: - case 11279: - case 11280: - case 11281: - case 25300: - case 26863: - case 48656: - case 48657: - case 703: // Garrote - case 8631: - case 8632: - case 8633: - case 11289: - case 11290: - case 26839: - case 26884: - case 48675: - case 48676: - case 5221: // Shred - case 6800: - case 8992: - case 9829: - case 9830: - case 27001: - case 27002: - case 48571: - case 48572: - case 8676: // Ambush - case 8724: - case 8725: - case 11267: - case 11268: - case 11269: - case 27441: - case 48689: - case 48690: - case 48691: - case 21987: // Lash of Pain - case 23959: // Test Stab R50 - case 24825: // Test Backstab - case 58563: // Assassinate Restless Lookout - spellInfo->AttributesCu |= SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET; - break; - case 26029: // Dark Glare - case 37433: // Spout - case 43140: // Flame Breath - case 43215: // Flame Breath - case 70461: // Coldflame Trap - spellInfo->AttributesCu |= SPELL_ATTR0_CU_CONE_LINE; - break; - case 24340: // Meteor - case 26558: // Meteor - case 28884: // Meteor - case 36837: // Meteor - case 38903: // Meteor - case 41276: // Meteor - case 57467: // Meteor - case 26789: // Shard of the Fallen Star - case 31436: // Malevolent Cleave - case 35181: // Dive Bomb - case 40810: // Saber Lash - case 43267: // Saber Lash - case 43268: // Saber Lash - case 42384: // Brutal Swipe - case 45150: // Meteor Slash - case 64688: // Sonic Screech - case 72373: // Shared Suffering - case 71904: // Chaos Bane - case 70492: // Ooze Eruption - case 72505: // Ooze Eruption - case 72624: // Ooze Eruption - case 72625: // Ooze Eruption - // ONLY SPELLS WITH SPELLFAMILY_GENERIC and EFFECT_SCHOOL_DAMAGE - spellInfo->AttributesCu |= SPELL_ATTR0_CU_SHARE_DAMAGE; - break; - case 27820: // Mana Detonation - case 69782: // Ooze Flood - case 69796: // Ooze Flood - case 69798: // Ooze Flood - case 69801: // Ooze Flood - case 69538: // Ooze Combine - case 69553: // Ooze Combine - case 69610: // Ooze Combine - case 71447: // Bloodbolt Splash - case 71481: // Bloodbolt Splash - case 71482: // Bloodbolt Splash - case 71483: // Bloodbolt Splash - case 71390: // Pact of the Darkfallen - spellInfo->AttributesCu |= SPELL_ATTR0_CU_EXCLUDE_SELF; - break; - case 18500: // Wing Buffet - case 33086: // Wild Bite - case 49749: // Piercing Blow - case 52890: // Penetrating Strike - case 53454: // Impale - case 59446: // Impale - case 62383: // Shatter - case 64777: // Machine Gun - case 65239: // Machine Gun - case 65919: // Impale - case 67858: // Impale - case 67859: // Impale - case 67860: // Impale - case 69293: // Wing Buffet - case 74439: // Machine Gun - spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR; - break; - case 63278: // Mark of the Faceless (General Vezax) - spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR; - break; - case 64422: // Sonic Screech (Auriaya) - spellInfo->AttributesCu |= SPELL_ATTR0_CU_SHARE_DAMAGE; - spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR; - break; + case 1776: // Gouge + case 1777: + case 8629: + case 11285: + case 11286: + case 12540: + case 13579: + case 24698: + case 28456: + case 29425: + case 34940: + case 36862: + case 38764: + case 38863: + case 52743: // Head Smack + spellInfo->AttributesCu |= SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER; + break; + case 53: // Backstab + case 2589: + case 2590: + case 2591: + case 8721: + case 11279: + case 11280: + case 11281: + case 25300: + case 26863: + case 48656: + case 48657: + case 703: // Garrote + case 8631: + case 8632: + case 8633: + case 11289: + case 11290: + case 26839: + case 26884: + case 48675: + case 48676: + case 5221: // Shred + case 6800: + case 8992: + case 9829: + case 9830: + case 27001: + case 27002: + case 48571: + case 48572: + case 8676: // Ambush + case 8724: + case 8725: + case 11267: + case 11268: + case 11269: + case 27441: + case 48689: + case 48690: + case 48691: + case 21987: // Lash of Pain + case 23959: // Test Stab R50 + case 24825: // Test Backstab + case 58563: // Assassinate Restless Lookout + spellInfo->AttributesCu |= SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET; + break; + case 26029: // Dark Glare + case 37433: // Spout + case 43140: // Flame Breath + case 43215: // Flame Breath + case 70461: // Coldflame Trap + spellInfo->AttributesCu |= SPELL_ATTR0_CU_CONE_LINE; + break; + case 24340: // Meteor + case 26558: // Meteor + case 28884: // Meteor + case 36837: // Meteor + case 38903: // Meteor + case 41276: // Meteor + case 57467: // Meteor + case 26789: // Shard of the Fallen Star + case 31436: // Malevolent Cleave + case 35181: // Dive Bomb + case 40810: // Saber Lash + case 43267: // Saber Lash + case 43268: // Saber Lash + case 42384: // Brutal Swipe + case 45150: // Meteor Slash + case 64688: // Sonic Screech + case 72373: // Shared Suffering + case 71904: // Chaos Bane + case 70492: // Ooze Eruption + case 72505: // Ooze Eruption + case 72624: // Ooze Eruption + case 72625: // Ooze Eruption + // ONLY SPELLS WITH SPELLFAMILY_GENERIC and EFFECT_SCHOOL_DAMAGE + spellInfo->AttributesCu |= SPELL_ATTR0_CU_SHARE_DAMAGE; + break; + case 27820: // Mana Detonation + case 69782: // Ooze Flood + case 69796: // Ooze Flood + case 69798: // Ooze Flood + case 69801: // Ooze Flood + case 69538: // Ooze Combine + case 69553: // Ooze Combine + case 69610: // Ooze Combine + case 71447: // Bloodbolt Splash + case 71481: // Bloodbolt Splash + case 71482: // Bloodbolt Splash + case 71483: // Bloodbolt Splash + case 71390: // Pact of the Darkfallen + spellInfo->AttributesCu |= SPELL_ATTR0_CU_EXCLUDE_SELF; + break; + case 18500: // Wing Buffet + case 33086: // Wild Bite + case 49749: // Piercing Blow + case 52890: // Penetrating Strike + case 53454: // Impale + case 59446: // Impale + case 62383: // Shatter + case 64777: // Machine Gun + case 65239: // Machine Gun + case 65919: // Impale + case 67858: // Impale + case 67859: // Impale + case 67860: // Impale + case 69293: // Wing Buffet + case 74439: // Machine Gun + spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR; + break; + case 63278: // Mark of the Faceless (General Vezax) + spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR; + break; + case 64422: // Sonic Screech (Auriaya) + spellInfo->AttributesCu |= SPELL_ATTR0_CU_SHARE_DAMAGE; + spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR; + break; } switch (spellInfo->SpellFamilyName) @@ -3121,7 +3121,7 @@ void SpellMgr::LoadDbcDataCorrections() break; case 57994: // Wind Shear - improper data for EFFECT_1 in 3.3.5 DBC, but is correct in 4.x spellInfo->Effect[EFFECT_1] = SPELL_EFFECT_MODIFY_THREAT_PERCENT; - spellInfo->EffectBasePoints[EFFECT_1] = -6; // -5% + spellInfo->EffectBasePoints[EFFECT_1] = -6; // -5% break; case 63675: // Improved Devouring Plague spellInfo->AttributesEx3 |= SPELL_ATTR3_NO_DONE_BONUS; |