Jump to content

[FIX][8957] Improved Fear


Recommended Posts

Posted
9>SpellAuras.cpp
9>..\\..\\src\\game\\SpellAuras.cpp(3267) : error C2679: binary '==' : no operator found which takes a right-hand operand of type 'AuraType' (or there is no acceptable conversion)
9>        could be 'built-in C++ operator==(const uint32 [3], const uint32 [3])'
9>        C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include\\guiddef.h(192): or       'int operator ==(const GUID &,const GUID &)'
9>        while trying to match the argument list '(const uint32 [3], AuraType)'

  • 4 weeks later...
Posted
Wrong paste, sorry:)

http://paste2.org/p/143111

This patch is crashing server, who can rewrite it? mb likje this?

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 0207f54..dab9096 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3234,6 +3234,22 @@ void Aura::HandleModFear(bool apply, bool Real)
        return;

    m_target->SetFeared(apply, GetCasterGUID(), GetId());
+
+       if(!apply)
+       {
+       // Nightmare
+                  if(m_spellProto->EffectApplyAuraName[0] == SPELL_AURA_MOD_FEAR && m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK)
+               {
[color="Red"]+               uint32 spell_id = 0;[/color]
+               if(GetCaster()->HasAura(53754, 0))
+                      spell_id = 60946;
+               if(GetCaster()->HasAura(53759, 0))
+                      spell_id = 60947;
+               if(spell_id > 0)
+                      m_target->CastSpell(m_target, spell_id, false);
+               }
+       }
+
} 

Not very good? but it dont crash very often like first patch? who can rewrite it? and i think Nightmare must implement like dummy aura

Posted
One of my first patches :D Never mind, and i'll rewrite it:)

It is dummy aura but it cant be done in Spell::HandleAuraDummy? it" is necessary to search by loop in HandleModFear necassary dummy auras and then cast spell depending on results

sorry for my english

Posted

so it should be something like

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 0207f54..dab9096 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3234,6 +3234,22 @@ void Aura::HandleModFear(bool apply, bool Real)
        return;

    m_target->SetFeared(apply, GetCasterGUID(), GetId());
+
+       if(!apply)
+       {
+       // Nightmare
+                  if(m_spellProto->EffectApplyAuraName[0] == SPELL_AURA_MOD_FEAR && m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK)
+               {
[color=Red]+               uint32 spell_id = 0;[/color]
+               if(GetCaster() && GetCaster()->HasAura(53754, 0))
+                      spell_id = 60946;
+               if(GetCaster() && GetCaster()->HasAura(53759, 0))
+                      spell_id = 60947;
+               if(spell_id > 0)
+                      m_target->CastSpell(m_target, spell_id, false);
+               }
+       }
+
} 

or I missed the point?

Posted

This does it, but this isn't the general way it should work.

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 9da84e6..222571c 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3260,6 +3260,23 @@ void Aura::HandleModFear(bool apply, bool Real)
        return;

    m_target->SetFeared(apply, GetCasterGUID(), GetId());
+
+   if(!apply && m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK)
+     {
+       Unit* caster = GetCaster();
+       int32 spell_id = 0;
+       if(!caster || caster->GetTypeId() != TYPEID_PLAYER)
+          return;
+       else
+       {
+           if(caster->HasAura(53754, 0))
+              spell_id = 60946;
+           else if(caster->HasAura(53759, 0))
+              spell_id = 60947;
+       }
+       if(spell_id)
+          m_target->CastSpell(m_target, spell_id, false);
+    }
}

void Aura::HandleFeignDeath(bool apply, bool Real)

  • 1 month later...
Posted

hello for all.

hmm, GJ @Lighthouse , u can commit version to svn or git?I wanna update :)

I remake may DB and core mangos, and apply last updates using 0.11.5 - 7683. wotlk 3.0.9.

about spell fear:

how can I fix the problem of fear effect? it isnt work correctly on last revision.

fear, chance of breaking is very high, with DOT and Channeling spells (Drain life and Drain Soul,mind flay="have a chance 15% leave on damage").

in case direct damage (shadow bolt,incinerate,holy,melee, and ...) this chance is 50% (when crit get 100% chance broke)

Time of duration on fear without damage is low too.( cast in mobs, lasting only 2-8 seconds.

cast in player,lasting only 2-6 seconds) when in player, lasting correctly is 12s(no damaged).

players melee can attack me,caster can cast,healers healing your self, in fear effect (o_O),

)

http://www.wowwiki.com/Fear_effect

http://www.wowhead.com/?spell=6215#comments

Anyone can help me to solve this problem?

  • 3 weeks later...
Posted

Bug: Improved Fear procs from http://www.wowhead.com/?spell=17928

Fix: add spell icon id check

if(!apply && m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellProto->SpellIconID == 98)

That patch also helps me to create patch for Physhic Horror talent for 3.0.9 (on 3.1+ that talent is modified a bit)

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 2dd62f9..4969bb4 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3302,6 +3302,23 @@ void Aura::HandleModFear(bool apply, bool Real)
        return;

    m_target->SetFeared(apply, GetCasterGUID(), GetId());
+
+    if(!apply && m_spellProto->SpellFamilyName == SPELLFAMILY_PRIEST)
+    {
+        Unit* caster = GetCaster();
+        int32 spell_id = 0;
+        if(!caster || caster->GetTypeId() != TYPEID_PLAYER)
+            return;
+        else
+        {
+            if(caster->HasAura(47571, 0))
+                spell_id = 59980;
+            else if(caster->HasAura(47572, 0))
+                spell_id = 59981;
+        }
+        if(spell_id)
+            m_target->CastSpell(m_target, spell_id, false);
+    }
}

void Aura::HandleFeignDeath(bool apply, bool Real)

Posted
Bug: Improved Fear procs from http://www.wowhead.com/?spell=17928

Fix: add spell icon id check

That patch also helps me to create patch for Physhic Horror talent for 3.0.9 (on 3.1+ that talent is modified a bit)

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 2dd62f9..4969bb4 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3302,6 +3302,23 @@ void Aura::HandleModFear(bool apply, bool Real)
        return;

    m_target->SetFeared(apply, GetCasterGUID(), GetId());
+
+    if(!apply && m_spellProto->SpellFamilyName == SPELLFAMILY_PRIEST)
+    {
+        Unit* caster = GetCaster();
+        int32 spell_id = 0;
+        if(!caster || caster->GetTypeId() != TYPEID_PLAYER)
+            return;
+        else
+        {
+            if(caster->HasAura(47571, 0))
+                spell_id = 59980;
+            else if(caster->HasAura(47572, 0))
+                spell_id = 59981;
+        }
+        if(spell_id)
+            m_target->CastSpell(m_target, spell_id, false);
+    }
}

void Aura::HandleFeignDeath(bool apply, bool Real)

Hey KAPATEJIb,

do you think you used the right spellid's ? Cause on Wowhead the spells are not listed...

spell_id = 59980

spell_id = 59981

The Talentspell id found on wowhead is 64044 and the triggered spell id is 64058

Regards,

lickedlurk

Posted
Hey KAPATEJIb,

do you think you used the right spellid's ? Cause on Wowhead the spells are not listed...

spell_id = 59980

spell_id = 59981

The Talentspell id found on wowhead is 64044 and the triggered spell id is 64058

Regards,

lickedlurk

As i said before... that talent is modified by blizz in 3.1 patch. On 3.0.9 he works as should.

  • 6 months 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