Jump to content

[added in 7175][fix] T.N.T


pasdVn

Recommended Posts

The hunter Talent T.N.T. can be triggered by immolation trap, explosive trap and explosive shot:

INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
(56333, 0, 0, 4, 0, 512, 0, 0, 0, 0, 0),
(56336, 0, 0, 4, 0, 512, 0, 0, 0, 0, 0),
(56337, 0, 0, 4, 0, 512, 0, 0, 0, 0, 0);

Because the the direct damage spell of explosive shot is only a triggered spell itself, we have to allow explicitly to trigger other spells:

From 1541470a4b1674666863ddea2754a3cf95bfafd9 Mon Sep 17 00:00:00 2001
From: pasdVn <[email protected]>
Date: Tue, 20 Jan 2009 22:23:02 +0100
Subject: [PATCH] fixed talent T.N.T.

allow spell 53352 (triggered) to trigger other spells
---
src/game/Spell.cpp |    4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index b59412b..2bd71b8 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -699,8 +699,8 @@ void Spell::PrepareDataForTriggerSystem()
            case SPELLFAMILY_ROGUE:   // For poisons need do it
                if (m_spellInfo->SpellFamilyFlags & 0x000000101001E000LL) m_canTrigger = true;
            break;
-            case SPELLFAMILY_HUNTER:  // Hunter Rapid Killing/Explosive Trap Effect/Immolation Trap Effect/Frost Trap Aura/Snake Trap Effect
-                if (m_spellInfo->SpellFamilyFlags & 0x0100200000000014LL) m_canTrigger = true;
+            case SPELLFAMILY_HUNTER:  // Hunter Rapid Killing/Explosive Trap Effect/Immolation Trap Effect/Frost Trap Aura/Snake Trap Effect/Explosive Shot (the single target damage spell -> 53352)
+                if (m_spellInfo->SpellFamilyFlags & 0x0100200000000014LL || m_spellInfo->SpellFamilyFlags2 & 0x200) m_canTrigger = true;
            break;
            case SPELLFAMILY_PALADIN: // For Holy Shock triggers need do it
                if (m_spellInfo->SpellFamilyFlags & 0x0001000000200000LL) m_canTrigger = true;
-- 
1.6.0.2.1172.ga5ed0

Tested and working.

OT:

One thing coming to my mind when fixing this bug: Is it off- like that the triggered spell of explosive shot (Id: 53352) consumes mana one more time? This is a bit strange for me :-/

Edit: Ok, I think this is because for "thrill of the hunt".

pasdVn

Link to comment
Share on other sites

Ok, I found out something. T.N.T. currently procs on all other ranged damage-spells.I think that problem causes also the campfire bug:

SpellMgr::IsSpellProcEventCanTriggeredBy():

// check prockFlags for condition
   if((procFlags & EventProcFlag) == 0)
       return false;

   // Always trigger for this
   if (EventProcFlag & (PROC_FLAG_KILLED | PROC_FLAG_KILL | PROC_FLAG_ON_TRAP_ACTIVATION))
       return true;

The second line was changed in [7175]. Before there was no PROC_FLAG_ON_TRAP_ACTIVATION.

Imagine the T.N.T. aura having PROC_FLAG_ON_TRAP_ACTIVATION, PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT and some other (including an aoe flag, what causes the bug with the campfire, I guess) when a ranged spell hits. On comparing the aura's proc flag with the event proc flag (procFlags & EventProcFlag) everything is ok. In the next step mangos will see the T.N.T. has also PROC_FLAG_ON_TRAP_ACTIVATION and will return true, although a ranged spell tried to trigger. So we should not include the trap proc flag there...

I originally didn't add it because of Entrapment (http://www.wowhead.com/?spell=19184), that should not proc on all traps, but this bug is one reason more ;-)

Sry for doublepost... Just wanted to bump to make a dev notice it.

Edit:

Sorry, one more thing when having a look at the logs of this commit.

// Lock and Load
           if ( dummySpell->SpellIconID == 3579 )
           {
               // Proc only from periodic (from trap activation proc another aura of this spell)
               if (!(procFlag & PROC_FLAG_ON_DO_PERIODIC) || !roll_chance_i(triggerAmount))
                   return false;
               triggered_spell_id = 56453;
               target = this;
               break;
           }

With this Code "Lock and Load" can also get triggered by a trap's dot (in fact only "immolationtrap"). Thats why I added the spellfamilimask in my patch ;-)

Link to comment
Share on other sites

  • 2 months later...
  • 3 weeks later...
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use