Jump to content

[Fix] Seal of Command, Corruption/Vengeance, Blood/the Martyr


Auntie Mangos

Recommended Posts

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

1. Fixed Seal of Corruption to work like Seal of Vengeance.

2. Fixed hacky Judgement of Blood/the Martyr

3. Fixed hacky (and incorrect) Judgement of Command dummy.

-And some minor code cleanup

For which repository revision was the patch created?

8232

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

http://getmangos.eu/community/viewtopic.php?id=7964

http://getmangos.eu/community/viewtopic.php?id=6388

http://getmangos.eu/community/viewtopic.php?id=6463

http://getmangos.eu/community/viewtopic.php?id=7059

and tons more

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

Myself

Patch

1. Seal of Corruption: just copied the code of Seal of Vengeance, changing the triggered spellId and making it so Judgement of Corruption counted stacks of Blood corruption.

2. Judgement of Blood/of the Martyr: Moved the trigger that inflicts the backlash damage to EffectWeaponDmg rather than check every time damage is dealt.

3. Judgement of Command: Moved code that checks crit to isSpellCrit.

- For judgement of command, if melee dmg * .24 is 0, judgement does 0 damage regardless of spell power. Unrelated bug?

- The spell_bonus_data for judgement of command's spell power doesn't work as advertised. I got 0.7695 through trial and error, but it matches what the client displays (when untalented and only using +ap and +sp buffs).

Also, not sure what causes the high miss chance for judgements :/

Edit:

This is the sql data I used:

DELETE FROM `spell_bonus_data` where entry in (20424, 20467, 42463, 53739, 31803, 53742, 31804, 53733, 31893, 32221, 32220, 31898, 53719, 53718, 53725, 53726);
INSERT INTO `spell_bonus_data` VALUES
(20424, 0, 0, 0, "Paladin - Seal of Command Proc"),
(20467, 0.25, 0, 0.16, "Paladin - Judgement of Command"),
(42463, 0, 0.00156, 0.003, "Paladin - Seal of Vengeance (full stack proc)"),
(53739, 0, 0.00156, 0.003, "Paladin - Seal of Corruption (full stack proc)"),
(31803, 0, 0.0156, 0.03, "Paladin - Holy Vengeance"),
(53742, 0, 0.0156, 0.03, "Paladin - Blood Corruption"),
(31804, 0, 0, 0, "Paladin - Judgement of Vengeance"),
(53733, 0, 0, 0, "Paladin - Judgement of Corruption"),
(31893, 0, 0, 0, "Paladin - Seal of Blood Proc Enemy"),
(32221, 0, 0, 0, "Paladin - Seal of Blood Proc Self"),
(31898, 0.18, 0, 0.11, "Paladin - Judgement of Blood Enemy"), 
(32220, 0.0594, 0, 0.0363, "Paladin - Judgement of Blood Self"),
(53719, 0, 0, 0, "Paladin - Seal of the Martyr Proc Enemy"),
(53718, 0, 0, 0, "Paladin - Seal of the Martyr Proc Self"),
(53726, 0.18, 0, 0.11, "Paladin - Judgement of the Martyr Enemy"),
(53725, 0.0594, 0, 0.0363, "Paladin - Judgement of the Martyr Self");

DELETE FROM `spell_proc_event` WHERE `entry` IN (31801, 53736);

Edit 1: Small correction: Seal of Blood backlash id was wrong

Edit 2: Misread Seal of Blood description, reverted back to using old code that was in EffectDummyProc until I can test again.

Edit 3: Fixed typo in SQL, thanks KAPATEJIb

Edit 4: Update SQL to 3.1.x. No need for spell_proc_event data for seal of vengeance/corruption now since they are no longer on the PPM system and now have a 100% chance to proc.

Link to comment
Share on other sites

  • 39 years later...

Here a typo

(20467, .7695, 0, 0.16, "Paladin - Judgement of Command"),

Should be

(20467, 0.7695, 0, 0.16, "Paladin - Judgement of Command"),

ADDED:

I've already tested both of your patch for paladins. Bug: Seal of Blood inflict 100% of damage to paladin, not 10% as should be. Seal of Martyr works as should

fix: change line

if(m_spellInfo->Id == 31893)

to

if(m_spellInfo->Id == 31892)

Link to comment
Share on other sites

I've already tested both of your patch for paladins. Bug: Seal of Blood inflict 100% of damage to paladin, not 10% as should be. Seal of Martyr works as should

Edit 1: Small correction: Seal of Blood backlash id was wrong

Sorry, I had a typo in the first version I uploaded where Seal of Blood was triggering Judgement of Blood's backlash damage.

But I'm still trying to work out a way to actually have the backlash damage be based on the actual damage dealt, rather than calling CalculateDamage again.

Also, is the backlash supposed to include 10% dmg of the attack that triggers the Seal of Blood/Martyr?

Link to comment
Share on other sites

Sorry, I had a typo in the first version I uploaded where Seal of Blood was triggering Judgement of Blood's backlash damage.

But I'm still trying to work out a way to actually have the backlash damage be based on the actual damage dealt, rather than calling CalculateDamage again.

Also, is the backlash supposed to include 10% dmg of the attack that triggers the Seal of Blood/Martyr?

I'm not expert in paladins, but with my fix it works as said in spell tooltips. For example - Seal of blood procs for 29 damage - paladin gets 2 damage back.

Link to comment
Share on other sites

  • 2 weeks later...

I figured out the reason for the odd Judgement of Command coefficient: it's being affected by downranking. The spell is treated as level 20, and note that the coefficient I obtained through trial and error (0.7695) is almost exactly the actual coefficient (0.25) divided by the downranking penalty (26/80).

Also, shameless bump :).

Link to comment
Share on other sites

Another posts havin it but i mention is here also, Prayer of mending suffers the same sht.

I figured out the reason for the odd Judgement of Command coefficient: it's being affected by downranking. The spell is treated as level 20, and note that the coefficient I obtained through trial and error (0.7695) is almost exactly the actual coefficient (0.25) divided by the downranking penalty (26/80).

Btw, what's the source of informations like the properties of the spells? the DB is the one containing that?

Link to comment
Share on other sites

Well, this is a good start indeed, seems to work :) Though we can't really say it's fixed until we address all the miss issues can we? Anyone working on that too? I'm sure devs will be more willing to fixing this if the patch resolves all the problems for the seals you mention :) Thanks for the good work.

Link to comment
Share on other sites

Currently, the main problem of the judgement of the martyr/blood, is that the seal proc on judgement.. and it shouldn't.

This can be fixed with procFlag entries in the spell_proc_event table; I want to deal with the issues in the code first. :)

Though we can't really say it's fixed until we address all the miss issues can we? Anyone working on that too?

Of course, anything to stop players from qqing about "nerfs" when x/y/z isn't working yet :P

This might belong in a separate topic, but I think the fix should look like:

(Unit.cpp, [7985])

@@ -2420,11 +2420,11 @@ float Unit::MeleeSpellMissChance(Unit *pVictim, WeaponAttackType attType, int32
// Melee based spells hit result calculations
SpellMissInfo Unit::MeleeSpellHitResult(Unit *pVictim, SpellEntry const *spell)
{
    WeaponAttackType attType = BASE_ATTACK;

-    if (spell->DmgClass == SPELL_DAMAGE_CLASS_RANGED)
+    if (spell->Attributes == SPELL_ATTR_RANGED)
        attType = RANGED_ATTACK;

    // bonus from skills is 0.04% per skill Diff
    int32 attackerWeaponSkill = int32(GetWeaponSkillValue(attType,pVictim));
    int32 skillDiff = attackerWeaponSkill - int32(pVictim->GetMaxSkillValueForLevel(this));
@@ -2436,10 +2436,13 @@ SpellMissInfo Unit::MeleeSpellHitResult(Unit *pVictim, SpellEntry const *spell)
    // Roll miss
    uint32 tmp = missChance;
    if (roll < tmp)
        return SPELL_MISS_MISS;

+    if (spell->DmgClass == SPELL_DAMAGE_CLASS_RANGED)
+        attType = RANGED_ATTACK;
+
    // Chance resist mechanic (select max value from every mechanic spell effect)
    int32 resist_mech = 0;
    // Get effects mechanic and chance
    for(int eff = 0; eff < 3; ++eff)
    {

In short, this will allow judgements to use melee weapon skill, then switch the attType to ranged after miss chance has been rolled so that they stay undodgeable/unparriable.

But there is an underlying problem: it still calculates miss chances twice, once for the judgement that the paladin casts, and once for the triggered effect. For this same reason, the above fix will end up making Chimera Shot's triggered spells use melee skill... Any suggestions? Perhaps adding a flag to make these specific triggered spells never miss?

Link to comment
Share on other sites

We need this Fix ^^.

Thank you (in advance) !!

PS :

Edit 4: After watching some videos of Seal of Blood, I think it only does 10% of damage done by Seal, not including the melee swing that procs it. Can someone confirm? (reverted back to the second version)

Yes 10% of damage done by Seal and only by seal, not the melee swing.

And 33% of damage done by judgement :).

Link to comment
Share on other sites

This is mean what we need to set seals proc on MELEE HIT?

Correct, something like

DELETE FROM `spell_proc_event` WHERE `entry` = '53720';
INSERT IGNORE INTO `spell_proc_event` VALUES
('53720', '1', '0', '0', '0', '0', '20', '0', '0', '0', '0');

will fix this for Seal of the Martyr for instance.

There probably is a better way to do this than using SchoolMask physical. I tried using spellFamilyMasks, but it ended up making Seal of the Martyr proc on the paladin himself :S

Link to comment
Share on other sites

Correct, something like

DELETE FROM `spell_proc_event` WHERE `entry` = '53720';
INSERT IGNORE INTO `spell_proc_event` VALUES
('53720', '1', '0', '0', '0', '0', '20', '0', '0', '0', '0');

will fix this for Seal of the Martyr for instance.

There probably is a better way to do this than using SchoolMask physical. I tried using spellFamilyMasks, but it ended up making Seal of the Martyr proc on the paladin himself :S

You are right.

So

INSERT INTO `spell_proc_event` VALUES
(53736,1,0,0,0,0,0,0,20,0,0);
update spell_proc_event set SchoolMask=1 where entry in (20375,31801);
INSERT INTO `spell_proc_event` VALUES
(53720,1,0,0,0,0,0,0,0,0,0);
INSERT INTO `spell_proc_event` VALUES
(31892,1,0,0,0,0,0,0,0,0,0);

Should fix our problem.

Link to comment
Share on other sites

As we move in 3.1, it may be necessary to revise the calculation of judgments which have been reduced and unlike the seals, which are increased.

Sorry for my english, and thanks in advance !! ^^.

Edit :

INSERT INTO `spell_proc_event` VALUES
(53720,1,0,0,0,0,0,0,0,0,0);
INSERT INTO `spell_proc_event` VALUES
(31892,1,0,0,0,0,0,0,0,0,0);

It works good.

Link to comment
Share on other sites

I'm not sure of this, but maybe all triggered spells don't need miss rate re-calculation. If that's the case, then removing the miss calculation from all triggered spells should start improving things a bit. I'm not sure of this though, maybe someone with more experience can tell us :)

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...

The fix in this thread is pretty much needed, since seals are actually doing like double damage.

This may be unrelated, but fixes other skills damage affected in the same way:

-- Seal of Righteousness
UPDATE spell_bonus_data SET direct_bonus = 0, ap_bonus = 0 WHERE entry = 25742;

-- Hammer of Wrath
UPDATE spell_bonus_data SET direct_bonus = 0, ap_bonus = 0 WHERE entry = 24275;

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Some seals have coeffs in C++ code. Keep on mind that.

Judgements are spells in MaNGOS, at least IMO. Spells have bigger chance to miss.

"Although a Judgement cannot be dodged, parried, blocked, or "deflected", it has the same chance to miss its target as a melee attack." From wowwiki.com

SoV/SoC 5-stack effect: Furthermore, in patch 3.2, if the target already has a 5-stack of Seal of Vengeance debuffs, each subsequent melee swing made while this seal is in effect will inflict 33% of the attacker's Weapon Damage as Holy damage to the target (twice this amount if the melee swing crits). This extra holy damage cannot miss, be dodged, or be parried.

So it's added in 3.2. In 3.1.3 there is no that effect.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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