*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:
QAston
2009-05-19 20:33:11 +02:00
parent 2b47f0c0f7
commit e348b671e7
5 changed files with 22 additions and 14 deletions

View 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);

View File

@@ -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),

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;