Jump to content

[patch][8841]Threat of Thassarian


Guest laise

Recommended Posts

What bug does the patch fix? What features does the patch add?

- fixes Threat of Thassarian

For which repository revision was the patch created?

- 8827

Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread.

- haven't seen any

Who has been writing this patch? Please include either forum user names or email addresses.

- me

diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index c346115..74dd44f 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -4705,11 +4705,17 @@ void Spell::EffectWeaponDmg(uint32 i)
    // non-weapon damage
    int32 bonus = spell_bonus + fixed_bonus;

+    WeaponAttackType attackType = m_attackType;
+
+    // Threat of Thassarian
+    if (m_triggeredByAuraSpell && m_triggeredByAuraSpell->SpellIconID == 2023)
+        attackType = OFF_ATTACK;
+
    // apply to non-weapon bonus weapon total pct effect, weapon total flat effect included in weapon damage
    if(bonus)
    {
        UnitMods unitMod;
-        switch(m_attackType)
+        switch(attackType)
        {
            default:
            case BASE_ATTACK:   unitMod = UNIT_MOD_DAMAGE_MAINHAND; break;
@@ -4722,7 +4728,7 @@ void Spell::EffectWeaponDmg(uint32 i)
    }

    // + weapon damage with applied weapon% dmg to base weapon damage in call
-    bonus += int32(m_caster->CalculateDamage(m_attackType, normalized)*weaponDamagePercentMod);
+    bonus += int32(m_caster->CalculateDamage(attackType, normalized)*weaponDamagePercentMod);

    // total damage
    bonus = int32(bonus*totalDamagePercentMod);
@@ -4765,7 +4771,7 @@ void Spell::EffectWeaponDmg(uint32 i)
    }

    // take ammo
-    if(m_attackType == RANGED_ATTACK && m_caster->GetTypeId() == TYPEID_PLAYER)
+    if(attackType == RANGED_ATTACK && m_caster->GetTypeId() == TYPEID_PLAYER)
    {
        Item *pItem = ((Player*)m_caster)->GetWeaponForAttack( RANGED_ATTACK );

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 83b4ccf..36f0cc6 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -6511,6 +6511,21 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                triggered_spell_id = 51460;
                break;
            }
+            // Threat of Thassarian
+            if (dummySpell->SpellIconID == 2023)
+            {
+                if(!procSpell)
+                    return false;
+                // dual wield only
+                if(!haveOffhandWeapon())
+                    return false;
+
+                if(!roll_chance_i(triggerAmount))
+                    return false;
+
+                triggered_spell_id = procSpell->Id;
+                break;
+            }
            // Runic Power Back on Snare/Root
            if (dummySpell->Id == 61257)
            {
@@ -5178,7 +5178,7 @@ int32 Spell::CalculatePowerCost()
SpellCastResult Spell::CheckPower()
{
    // item cast not used power
-    if(m_CastItem)
+    if(m_CastItem || m_triggeredByAuraSpell)
        return SPELL_CAST_OK;

    // Do precise power regen on spell cast

sql:

insert into spell_chain values (65661,0,65661,1,0),
(66191,65661,65661,2,0),
(66192,66191,65661,3,0);
alter table `spell_proc_event` change `entry` `entry` mediumint(5) UNSIGNED default '0' NOT NULL;
DELETE FROM `spell_proc_event` WHERE `entry` IN (65661);
INSERT INTO `spell_proc_event` VALUES
(65661, 0, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000001, 0.000000, 100.000000, 0);

had to change entry column size because it was too small for 65661 xD

Link to comment
Share on other sites

I've been waiting for this for quite some time. Thx

PS i posted already in DB issues that 'entry' in all spell related tables must be resized,

it simply can't handle any spell that appeared after patch 3.2.0 was released... no one answered.

Spell entries after 3.2.x just can't fit into 'smallint'.

BUMP

Link to comment
Share on other sites

By the way, what's so hard about using spell Ids of spells created to do offhand damage, yaknow...

Here is my dummy proc handler, it should be working for mangos as well if you add correct procflags

            // Threat of Thassarian
           if (dummySpell->SpellIconID == 2023)
           {
               // Must Dual Wield
               if (!procSpell || !haveOffhandWeapon())
                   return false;
               // Chance as basepoints for dummy aura
               if (!roll_chance_i(triggerAmount))
                   return false;

               switch (procSpell->Id)
               {
                   // Obliterate
                   case 49020:         // Rank 1
                       triggered_spell_id = 66198;
                       break;
                   case 51423:         // Rank 2
                       triggered_spell_id = 66972;
                       break;
                   case 51424:         // Rank 3
                       triggered_spell_id = 66973;
                       break;
                   case 51425:         // Rank 4
                       triggered_spell_id = 66974;
                       break;
                   // Frost Strike
                   case 49143:         // Rank 1
                       triggered_spell_id = 66196;
                       break;
                   case 51416:         // Rank 2
                       triggered_spell_id = 66958;
                       break;
                   case 51417:         // Rank 3
                       triggered_spell_id = 66959;
                       break;
                   case 51418:         // Rank 4
                       triggered_spell_id = 66960;
                       break;
                   case 51419:         // Rank 5
                       triggered_spell_id = 66961;
                       break;
                   case 51420:         // Rank 6
                       triggered_spell_id = 66962;
                       break;
                   // Plague Strike
                   case 45462:         // Rank 1
                       triggered_spell_id = 66216;
                       break;
                   case 49917:         // Rank 2
                       triggered_spell_id = 66988;
                       break;
                   case 49918:         // Rank 3
                       triggered_spell_id = 66989;
                       break;
                   case 49919:         // Rank 4
                       triggered_spell_id = 66990;
                       break;
                   case 49920:         // Rank 5
                       triggered_spell_id = 66991;
                       break;
                   case 49921:         // Rank 6
                       triggered_spell_id = 66992;
                       break;
                   // Death Strike
                   case 49998:         // Rank 1
                       triggered_spell_id = 66188;
                       break;
                   case 49999:         // Rank 2
                       triggered_spell_id = 66950;
                       break;
                   case 45463:         // Rank 3
                       triggered_spell_id = 66951;
                       break;
                   case 49923:         // Rank 4
                       triggered_spell_id = 66952;
                       break;
                   case 49924:         // Rank 5
                       triggered_spell_id = 66953;
                       break;
                   // Rune Strike
                   case 56815:
                       triggered_spell_id = 66217;
                       break;
                   // Blood Strike
                   case 45902:         // Rank 1
                       triggered_spell_id = 66215;
                       break;
                   case 49926:         // Rank 2
                       triggered_spell_id = 66975;
                       break;
                   case 49927:         // Rank 3
                       triggered_spell_id = 66976;
                       break;
                   case 49928:         // Rank 4
                       triggered_spell_id = 66977;
                       break;
                   case 49929:         // Rank 5
                       triggered_spell_id = 66978;
                       break;
                   case 49930:         // Rank 6
                       triggered_spell_id = 66979;
                       break;
                   default:
                       return false;
               }
               break;
           }

Link to comment
Share on other sites

EDIT (28.11.09, rev 8866)

Some quotes from wowhead:

Furthermore, this only triggers damage and doesn't trigger the special effects of those abilities. So just a pure dps/tps talent, no double BP [blood Plague] or double healing from DS [Death Strike] in case anyone was wondering.
Also, if you use frost strike with a killing machine proc, BOTH hits are 100% crits.
first, i have been finding that it literally does the same strike as with your offhand rather than simply doing a percent of your mainhand hit which means it adds the bonus damage on the strike twice (like for obliterate, it would do 100% of 100% + bonus, and 100% of 50% + bonus), im assuming they did this due to the fact that you are probably using 2 different weapons and not always the same speed

furthermore in that case, it also applies sigils twice to the bonus damage such as Sigil of awareness (obliterate) or Sigil of the Vengeful Heart (frost strike)

and after all that, nerves of cold steel seems to go on after all this is added, most of the time the offhand hits are closer to 65-70% of the MH hit instead of around 57% (depending on gear and assuming your weapons are same dps/speed)

last thing is this does greatly impact the proc rate of rime, seems both hits can proc it rather than the hit itself, which means you'll have roughly 27% chance per obliterate to get a free howling blast instead of just 15%

Well finally I've tested it and here are all found issues:

1. Plague Strike and Frost Strike don't proc offhand spell - so Threat of Thassarian does not work for these spells.

2. Can't test Rune Strike - it's not working yet.

3. Nerves of Cold Steel (link) does not increase offhand spell damage.

4. Every talent which has an effect upon normal spell, has same effect upon offhand proc.

Link to comment
Share on other sites

WARNING!

Talent "Threat of Thassarian" is supposed add off-hand's damage to these abilities: Death Strike, Obliterate, Plague Strike, Rune Strike, Blood Strike and Frost Strike(doesn't work with this one at all).

But, besides doing this, it also makes these abilities apply their special effect twice and that it shouldn't do. Well since other abilities have either none or each-application-overwrites-the-previous special effects, the only problem is Death Strike which now heals the DK twice.

DB PATCH SIDE been included in revisions please check whether it is there

this part in revision

insert into spell_chain values (65661,0,65661,1,0),
(66191,65661,65661,2,0),
(66192,66191,65661,3,0);

to check:

alter table `spell_proc_event` change `entry` `entry` mediumint(5) UNSIGNED default '0' NOT NULL;
DELETE FROM `spell_proc_event` WHERE `entry` IN (65661);
INSERT INTO `spell_proc_event` VALUES
(65661, 0, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000001, 0.000000, 100.000000, 0);

Link to comment
Share on other sites

insert into spell_chain values (65661,0,65661,1,0),

(66191,65661,65661,2,0),

(66192,66191,65661,3,0);

Already exist in mangos.sql

alter table `spell_proc_event` change `entry` `entry` mediumint(5) UNSIGNED default '0' NOT NULL;

Already fixed.

INSERT INTO `spell_proc_event` VALUES

(65661, 0, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000001, 0.000000, 100.000000, 0);

Same data alread in in mangos.sql (exept remove extra limitation for melee normal attack).
But, besides doing this, it also makes these abilities apply their special effect twice

This is not true. Base at _added_ casted special spell versiosnfro offhand damage that not have additional effects.

I not understand, what reason post this??

1. Plague Strike and Frost Strike doesn't proc offhand spell - so Threat of Thassarian does not work for these spells.

confirmed. Ok, problem source in suggested ( in added and in this post) spell family mask

[added]

sql data fixed in [8917]

Test all cases and all work, including _working_ Rune Strike

Link to comment
Share on other sites

  • 5 weeks later...

On rev 9091

Plague Strike, Blood Strike, Death Strike and Obliterate I am getting mixed results:

- when MH hits, I either get OH hit or OH crit, this case OH is doing damage;

- when MH crits, I never ever get OH damage, this case OH is not doing any damage.

Frost Strike never ever does OH damage (not on hit, not on crit)

Can anyone confirm this??

Link to comment
Share on other sites

- when MH crits, I never ever get OH damage, this case OH is not doing any damage.
I can confirm this, in my opininion caused by wrong data in spell_proc_event, I solved it by this

DELETE FROM spell_proc_event WHERE entry IN (65661);
INSERT INTO spell_proc_event VALUES
(65661 , 0, 15, 4194321, 131076, 0, 16, 3, 0, 100, 0);

Link to comment
Share on other sites

×
×
  • 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