mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
*Corret proc from bloodsurge and judgements of the wise
*Do not proc backfire dmg from sw:death if target is killed *Allow hots to proc from selfcast *Fix glyph of corruption. --HG-- branch : trunk
This commit is contained in:
9
sql/updates/3409_world_spell_proc_event.sql
Normal file
9
sql/updates/3409_world_spell_proc_event.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
DELETE FROM `spell_proc_event` WHERE `entry` IN (31878, 31877, 31876, 46913, 46914, 46915);
|
||||
|
||||
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
|
||||
(31876, 0, 10, 8388608, 0, 0, 0, 0, 0, 0, 0),
|
||||
(31877, 0, 10, 8388608, 0, 0, 0, 0, 0, 0, 0),
|
||||
(31878, 0, 10, 8388608, 0, 0, 0, 0, 0, 0, 0),
|
||||
(46913, 0, 4, 0, 1024, 0, 0, 0, 0, 0, 0),
|
||||
(46914, 0, 4, 0, 1024, 0, 0, 0, 0, 0, 0),
|
||||
(46915, 0, 4, 0, 1024, 0, 0, 0, 0, 0, 0);
|
||||
@@ -923,9 +923,9 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
||||
(31836, 0, 10, 2147483648, 0, 0, 0, 0, 0, 0, 0),
|
||||
(31871, 0, 10, 16, 0, 0, 16384, 0, 0, 0, 0),
|
||||
(31872, 0, 10, 16, 0, 0, 16384, 0, 0, 0, 0),
|
||||
(31876, 0, 10, 538444800, 8, 0, 0, 0, 0, 0, 0),
|
||||
(31877, 0, 10, 538444800, 8, 0, 0, 0, 0, 0, 0),
|
||||
(31878, 0, 10, 538444800, 8, 0, 0, 0, 0, 0, 0),
|
||||
(31876, 0, 10, 8388608 0, 0, 0, 0, 0, 0, 0),
|
||||
(31877, 0, 10, 8388608, 0, 0, 0, 0, 0, 0, 0),
|
||||
(31878, 0, 10, 8388608, 0, 0, 0, 0, 0, 0, 0),
|
||||
(31904, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0),
|
||||
(3232, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0),
|
||||
(32385, 0, 5, 1, 262144, 0, 0, 0, 0, 0, 0),
|
||||
@@ -1149,9 +1149,9 @@ INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `Spell
|
||||
(46867, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0),
|
||||
(46910, 0, 0, 0, 0, 0, 0, 1, 5.5, 0, 0),
|
||||
(46911, 0, 0, 0, 0, 0, 0, 1, 7.5, 0, 0),
|
||||
(46913, 0, 4, 0, 1024, 0, 0, 2, 0, 0, 0),
|
||||
(46914, 0, 4, 0, 1024, 0, 0, 2, 0, 0, 0),
|
||||
(46915, 0, 4, 64, 1028, 0, 0, 2, 0, 0, 0),
|
||||
(46913, 0, 4, 0, 1024, 0, 0, 0, 0, 0, 0),
|
||||
(46914, 0, 4, 0, 1024, 0, 0, 0, 0, 0, 0),
|
||||
(46915, 0, 4, 0, 1024, 0, 0, 0, 0, 0, 0),
|
||||
(46916, 0, 4, 0, 1024, 0, 0, 2, 0, 0, 0),
|
||||
(46951, 0, 4, 1024, 64, 0, 0, 0, 0, 0, 0),
|
||||
(46952, 0, 0, 1024, 64, 0, 0, 0, 0, 0, 0),
|
||||
|
||||
@@ -2777,7 +2777,6 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
|
||||
{
|
||||
if(apply)
|
||||
{
|
||||
// Reduce backfire damage (dot damage) from Shadow Word: Death
|
||||
SpellModifier *mod = new SpellModifier;
|
||||
mod->op = SPELLMOD_CHANCE_OF_SUCCESS;
|
||||
mod->value = 100;
|
||||
@@ -6030,15 +6029,13 @@ void AuraEffect::PeriodicTick()
|
||||
if( BattleGround *bg = ((Player*)pCaster)->GetBattleGround() )
|
||||
bg->UpdatePlayerScore(((Player*)pCaster), SCORE_HEALING_DONE, gain);
|
||||
|
||||
//Do check before because m_modifier.auraName can be invalidate by DealDamage.
|
||||
bool procSpell = (m_auraName == SPELL_AURA_PERIODIC_HEAL && m_target != pCaster);
|
||||
|
||||
m_target->getHostilRefManager().threatAssist(pCaster, float(gain) * 0.5f, GetSpellProto());
|
||||
|
||||
Unit* target = m_target; // aura can be deleted in DealDamage
|
||||
SpellEntry const* spellProto = GetSpellProto();
|
||||
bool haveCastItem = GetParentAura()->GetCastItemGUID()!=0;
|
||||
|
||||
// Health Funnel
|
||||
// heal for caster damage
|
||||
if(m_target!=pCaster && spellProto->SpellVisual[0]==163)
|
||||
{
|
||||
@@ -6074,7 +6071,7 @@ void AuraEffect::PeriodicTick()
|
||||
uint32 procVictim = PROC_FLAG_ON_TAKE_PERIODIC;
|
||||
uint32 procEx = PROC_EX_INTERNAL_HOT | PROC_EX_NORMAL_HIT;
|
||||
// ignore item heals
|
||||
if(procSpell && !haveCastItem)
|
||||
if(!haveCastItem)
|
||||
pCaster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, pdamage, BASE_ATTACK, spellProto);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -471,7 +471,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
|
||||
case SPELLFAMILY_PRIEST:
|
||||
{
|
||||
// Shadow Word: Death - deals damage equal to damage done to caster
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & 0x2)
|
||||
if ((m_spellInfo->SpellFamilyFlags[1] & 0x2 )&& m_damage < unitTarget->GetHealth())
|
||||
m_caster->CastCustomSpell(m_caster, 32409, &damage, 0, 0, true);
|
||||
break;
|
||||
}
|
||||
@@ -1489,7 +1489,7 @@ void Spell::EffectDummy(uint32 i)
|
||||
// Penance
|
||||
if (m_spellInfo->SpellFamilyFlags[1] & 0x00800000)
|
||||
{
|
||||
if (!unitTarget)
|
||||
if (!unitTarget || !unitTarget->isAlive())
|
||||
return;
|
||||
|
||||
int hurt = 0;
|
||||
|
||||
@@ -5533,6 +5533,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
// Nightfall
|
||||
case 18094:
|
||||
case 18095:
|
||||
// Glyph of corruption
|
||||
case 56218:
|
||||
{
|
||||
target = this;
|
||||
triggered_spell_id = 17941;
|
||||
@@ -5795,7 +5797,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
// Glyph of Rejuvenation
|
||||
case 54754:
|
||||
{
|
||||
if (pVictim->GetHealth() >= triggerAmount * pVictim->GetMaxHealth()/100)
|
||||
if (!pVictim || pVictim->GetHealth() >= triggerAmount * pVictim->GetMaxHealth()/100)
|
||||
return false;
|
||||
basepoints0 = int32(triggerAmount * damage / 100);
|
||||
triggered_spell_id = 54755;
|
||||
|
||||
Reference in New Issue
Block a user