Jump to content

[FIX][8957] Improved Fear


Guest Lightguard

Recommended Posts

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)'

Link to comment
Share on other sites

  • 4 weeks later...
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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

  • 1 month later...

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?

Link to comment
Share on other sites

  • 3 weeks later...

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)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 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