Trinitycore: [Core/Spells] Dancing Rune Weapon

Created on 13 Apr 2012  路  58Comments  路  Source: TrinityCore/TrinityCore

Below may be not valid anymore, here's more fresh description of what is broken here https://github.com/TrinityCore/TrinityCore/issues/21538 + https://github.com/TrinityCore/TrinityCore/issues/25675
https://github.com/TrinityCore/TrinityCore/issues/6192#issuecomment-109767527 and in comments below
Abandoned PRs https://github.com/TrinityCore/TrinityCore/pull/16281 https://github.com/TrinityCore/TrinityCore/pull/23191

--

This spell was recently ( 24b699d904aa ) fixed, but I am getting these log errors:

2012-04-13 08:31:43 ERROR: Unit::HandleDummyAuraProc: Spell 49028 has non-existing triggered spell 1206
2012-04-13 08:31:43 ERROR: Unit::HandleDummyAuraProc: Spell 49028 has non-existing triggered spell 1206
...

Using hash 4daafd0

#

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Branch-3.3.5a Comp-Core Sub-Spells

Most helpful comment

lul

All 58 comments

is dbc problem ...

https://github.com/TrinityCore/TrinityCore/pull/16281 << needs test.

Is this fixing the diseases problem? Now the DRW reproduce the attack like IT and PS but doesn't apply the dot's!
When we know that the damage of the HS depends of the number of diseases on the target and we've only half of these.

confirmed

Fix (sorry, cannot did this as diff due to core differences):

Unit.cpp:

            // Dancing Rune Weapon
            if (dummySpell->Id == 49028)
            {
                // 1 dummy aura for dismiss rune blade
                if (effIndex != 1)
                    return false;

                Unit* pPet = NULL;
                for (ControlList::const_iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr) // Find Rune Weapon
                    if ((*itr)->GetEntry() == 27893)
                    {
                        pPet = *itr;
                        break;
                    }

                // special abilities damage
                if (pPet && pPet->getVictim() && damage && procSpell)
                {
                    pPet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
                    pPet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
                    uint32 procDmg = damage / 2;
                    pPet->SendSpellNonMeleeDamageLog(pPet->getVictim(), procSpell->Id, procDmg, GetSpellSchoolMask(procSpell), 0, 0, false, 0, false);
                    pPet->DealDamage(pPet->getVictim(), procDmg, NULL, SPELL_DIRECT_DAMAGE, GetSpellSchoolMask(procSpell), procSpell, true);
                    break;
                }
                else // copy 50% melee damage
                if (pPet && pPet->getVictim() && damage && !procSpell)
                {
                        CalcDamageInfo damageInfo;
                        CalculateMeleeDamage(pPet->getVictim(), 0, &damageInfo, BASE_ATTACK);
                        damageInfo.attacker = pPet;
                        damageInfo.damage = damageInfo.damage / 2;
                        // Send log damage message to client
                        pPet->DealDamageMods(pPet->getVictim(),damageInfo.damage,&damageInfo.absorb);
                        pPet->SendAttackStateUpdate(&damageInfo);
                        pPet->ProcDamageAndSpell(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.damage, damageInfo.attackType);
                        pPet->DealMeleeDamage(&damageInfo,true);
                }
                else
                    return false;
            }

SQL:

    INSERT INTO `spell_proc_event` (entry, procFlags) VALUES
    ('49028','69652');

Works like a charm (blizzlike).

not working:)

Very informative comment. Works on my server, did you replaced the code block?

Yep. I mean, that diseases cast is not working. Also, DRW cast only blood strike ability

SQL query should be applied too.

Ofc, I apply query statement. Not working

bump!

This patch work for me when i aplied this patch and sql, but doesn't remove drw's autoatack (1-8dmg) so you must set unitflag pacified for creature rune weapon.

On the serv I play, the resistance of the drw is ridiculous. Any aoe kill it.

Is there a fix for this or you don't have this problem?

You must set UNIT_FLAG_NON_ATTACKABLE in creature template for rune weapon.

Pikalou, there is already in the patch:

pPet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pPet->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);

oki thx ;-)

any news?

Only one issue that is left for me to fix is diseases(damage should be 50% od original diseases, And diseases stops do damage after rune is dismissed).

Confirmed!

you're probably using the wrong spells.

Kaendra you don't say There isn't problem with wrong spell, Becouse for example frost fever (dmg: 0.32_lvl_1.15+ 0.055_AP_1.15) is correct spell for dk, and i don't find any spell with effect_0 that have 50% of effect_0 of dk's spell and the same name). Of course there is problem with aura system, that doesn't allow to deal damage without owner beeing present.

And i'll be faster, for research i'm using spellwork.

@nerv234 any research results?

I have enough informations, but i need time, The only one thing to do is rewrite aura system to make it allow deal damage after disapearing owner(rune).

confirm doesnt work rev: 2b88b4906292b5d51515e1b84a98ccbcf7603449

It doesn't work yet at commit:

0bad99626bb29b09ee387625765b4b62e39158a0

Spell still not work on rev. 3aa177410010

@Keader What is not working correctly currently and how is it supposed to work? If you complete the report I will take a look at this.

How it should work: When using the Dancing Rune Weapon, the "weapon" should copy all damages DK (but with 50%). Including damages melee and spells of damage.

How it works: Using the Dancing Rune Weapon, the "weapon" is stopped and does not attack. Forcing the DB Trigger attack, he is hitting only 1 damage.

Description of the spell: "Summons a second rune weapon que on its own fights for 12 sec, doing the same attacks to the Death Knight but for 50% reduced damage."
http://wotlk.openwow.com/spell=49028

@robinsch If you did not understand something just let

Comment edited

Since no data for visual effects and melee damage is reported here the fix which is 100% not like Dancing Rune Weapon worked on retail.

Better fix for the melee swing would be to implement a script AI call when owner deals damage and implement a proper script for the pet:

INSERT INTO `spell_proc_event` (entry, procFlags) VALUES
('49028','69652');
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 6ea0882..42f079f 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -7139,11 +7139,26 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
                         break;
                     }

-                if (pPet && pPet->GetVictim() && damage && procSpell)
+                if (pPet && damage)
                 {
-                    uint32 procDmg = damage / 2;
-                    pPet->SendSpellNonMeleeDamageLog(pPet->GetVictim(), procSpell->Id, procDmg, procSpell->GetSchoolMask(), 0, 0, false, 0, false);
-                    pPet->DealDamage(pPet->GetVictim(), procDmg, NULL, SPELL_DIRECT_DAMAGE, procSpell->GetSchoolMask(), procSpell, true);
+                    if (procSpell)
+                    {
+                        uint32 procDmg = damage / 2;
+                        pPet->SendSpellNonMeleeDamageLog(victim, procSpell->Id, procDmg, procSpell->GetSchoolMask(), 0, 0, false, 0, false);
+                        pPet->DealDamage(victim, procDmg, NULL, SPELL_DIRECT_DAMAGE, procSpell ? procSpell->GetSchoolMask() : SPELL_SCHOOL_MASK_NORMAL, procSpell ? procSpell : NULL, true);
+                    }
+                    else
+                    {
+                        CalcDamageInfo damageInfo;
+                        CalculateMeleeDamage(victim, 0, &damageInfo, BASE_ATTACK);
+                        damageInfo.attacker = pPet;
+                        damageInfo.damage = damageInfo.damage / 2;
+                        // Send log damage message to client
+                        pPet->DealDamageMods(victim, damageInfo.damage, &damageInfo.absorb);
+                        pPet->SendAttackStateUpdate(&damageInfo);
+                        pPet->ProcDamageAndSpell(damageInfo.target, damageInfo.procAttacker, damageInfo.procVictim, damageInfo.procEx, damageInfo.damage, damageInfo.attackType);
+                        pPet->DealMeleeDamage(&damageInfo, true);
+                    }
                     break;
                 }
                 else

I and @sirikfoll did some tests with the fix above.

Problem 1: The "weapon" does not follow the target, so if you use the spell and the target moves, she keeps hitting where it was called getting ugly visually

Problem 2: Apparently the Damage copied is just the Melee Damages (Auto-Attack), damages spells are not copied

Also, the weapon sometimes copy a melee hit, and turn it into a melee crit. Don't know if it should.

Can you provide me with a few videos from retail?

First video shows that the weapon also swings without copying damage is this correct?

In other private servers apparently yes

https://www.youtube.com/watch?v=7niAMx0nOQo
https://www.youtube.com/watch?v=q9pkWT49aio

I could not find the Blizzard videos at the time ...
But I confess that is visually ugly when she "beats" without damage

Still need a valid video from retail.

I could not find any video that showed her to do the animation combat without being copying damages (spent two days looking for videos on youtube). In this case need tests on official servers. But rather believe that she did not do it at all would look like 'bug' visual

@robinsch Take a look at this video: https://youtu.be/gJA7xHoQh0M?t=2m31s

@robinsch In its correction victim can not be null?
if (pPet && damage) should not be: if (pPet && damage && victim) ?

what about spell Death Knight Rune Weapon Scaling 02?
shouldn't the DRW copy all of owner's spells and this aura handle the damage reduction?

afaik it has to copy three main dk spells as well as attack and follow current DK's target.

also, only autoattack on owner attacks.

@ccrs three? Blood Plague, Frost Fever and?!

Yes as you all know i can confirm still happens

@ccrs

my pet_dk_rune_weapon Each attack damage value =1?
Where is the problem?
https://github.com/TrinityCore/TrinityCore/commit/4fbffab5f8a43410c4e4487e15f22a5173b9bc9e

@mayaren888
Because your DRW pet hasn't deffined 50% copy of your autoattack damage from crit or noncrit damage > Trinity have bad spellscript for aura Death Knight Rune Weapon Scaling 02 which you can see here
https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Spells/spell_pet.cpp
The biggest problem in the definitions is only the damage is comprised dead inside a file spell_pet.cpp this file already not working at all. Calculations do statsystem. Deleting this file will cause nothing, because pets are coded in the file Statsystem.cpp globally. Each pet there has calculation the Health, Mana, Str, Agi Spell Damage. Unfortunatelly this is bad way how to fix those calculations. Codes which are located in https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Spells/spell_pet.cpp should be in class scripts e.g. in spell_dk.cpp or spell_warlock.cpp or spell_hunter.cpp maybe looks better for me. But it needs rewrite Statsystem and you will need create new codes in Unit.cpp Unit.h maybe spellauraeffect for all sripted auras.
Before a year ago maybe more I or Another next posts this link http://pastebin.com/JDmVJzx5 This solution is relatively correct. There are a few mistakes because the core had undergone major fixing over the years, but they are not so important. It's just the principle of the solution. If you look Aura here You can see 3 effects 1st is SPELL_AURA_MOD_DAMAGE_DONE calculation pet damage for your DRW spells from your spells and base attack. 2nd is SPELL_AURA_MELEE_SLOW attack speed and 3th SPELL_AURA_MOD_DAMAGE_PERCENT_DONE this calculate percentable -50 of DK damage
DRW code in Unit.cpp is brutal hack ... eg now When you use in activated DRW spell RUNE TAP - IT'S DK heal but your DRW Hit victim target with rune tap :D and if you have a tank eq you can hit with your drw more than your spells via spell rune tap used in drw :)

Good evening. Need your help. I used a hack to fix a Rune Weapon. Now I can't paste the code in Unit.cpp. Can't find where to. Please tell me where to insert. Thanks in advance for your help.

lul

ccrs
If you have no desire to help, then don't write your "lul"

This is not a forum

Regarding previous fix suggestions to this issue, note that TDB 335 no longer uses spell_proc_event.
This change was implemented in commit https://github.com/TrinityCore/TrinityCore/commit/2ff855054f52bf2dcf81aa7a7da7bab7f8a99686 (Core/Scripts: Convert spells to new proc system)

Any temporary fix? The ability does not work at all, is there any way to fix it, albeit not quite right?

At the moment, I don't know of any other solution than the open PR Core/Spells: Dancing Rune Weapon #16281

There is no solution for several years. This is very bad. Even a workaround would be good. #16281 not working at the moment. Too many changes.

Well, then we need someone with enough time and skills to write a new PR suggestion.

@offl maybe we should open a new ticket for this isuue because no one worked on this lately maybe a new ticket ncourage to work on it. Its a core spell for blood dk and its important i think

Dunno, that's not common practice here
I added links to another issues and PRs in the description
This issue can be closed only if new will be filled with literally everything useful from comments here and from another issues and PRs and with links to PRs

To encourage people a bounty can be added and priority label added if more people can agree this is high-priority issue
Personally I think only description here should be updated because it's 8yo issue and nobody yet updated the description

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Keader picture Keader  路  119Comments

deadmanevil picture deadmanevil  路  61Comments

Kingswow picture Kingswow  路  55Comments

Carbenium picture Carbenium  路  47Comments

Albis picture Albis  路  67Comments