All pastes #905117 Raw Edit

Untitled

public text v1 · immutable
·published 2008-02-15 15:58 UTC
rendered paste body
Index: game/Spell.cpp
===================================================================
--- game/Spell.cpp	(revision 5224)
+++ game/Spell.cpp	(working copy)
@@ -3744,7 +3744,7 @@
             case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL:
             {
                 if(m_caster->GetTypeId() != TYPEID_PLAYER) return SPELL_FAILED_TARGET_NOT_PLAYER;
-                if(m_spellInfo->rangeIndex == 1 || m_spellInfo->rangeIndex == 2 || m_spellInfo->rangeIndex == 7)
+				if(m_spellInfo->rangeIndex == 1 || m_spellInfo->rangeIndex == 2 || m_spellInfo->rangeIndex == 6 || m_spellInfo->rangeIndex == 7)
                     break;
                 Item *pItem = ((Player*)m_caster)->GetItemByPos( INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_RANGED );
                 if(!pItem || pItem->IsBroken() || pItem->GetProto()->Class != ITEM_CLASS_WEAPON )
Index: game/SpellEffects.cpp
===================================================================
--- game/SpellEffects.cpp	(revision 5224)
+++ game/SpellEffects.cpp	(working copy)
@@ -3193,7 +3193,7 @@
     // FIXME: we also need select OFF_ATTACK if trigering some spell at offhand attack
     else if(m_spellInfo->SpellVisual==3136 || m_spellInfo->SpellIconID==2293)
         attType = BASE_ATTACK;
-    else if(m_spellInfo->rangeIndex != 1 && m_spellInfo->rangeIndex != 2 && m_spellInfo->rangeIndex != 7)
+    else if(m_spellInfo->rangeIndex != 1 && m_spellInfo->rangeIndex != 2 && m_spellInfo->rangeIndex != 6 && m_spellInfo->rangeIndex != 7)
     {
         attType = RANGED_ATTACK;
 
@@ -3267,6 +3267,10 @@
         }
     }
 
+	// Windfury Weapon add damage again..
+	if ( m_spellInfo->Id == 25504 ||  m_spellInfo->Id == 33750 )
+        bonus += m_caster->CalculateDamage(attType);
+
     // percent mod applied
     bonus = int32(bonus *damagePercentMod);
 
Index: game/Unit.cpp
===================================================================
--- game/Unit.cpp	(revision 5224)
+++ game/Unit.cpp	(working copy)
@@ -4427,7 +4427,30 @@
             CastSpell(pVictim,37378,true,castItem,triggeredByAura);
             return;
         }
+        // Windfury weapon
+        case 33757:
+        case 33756:
+        case 33755:
+        case 33754:
+        case 33727:
+        {
+            if(GetTypeId() != TYPEID_PLAYER || !pVictim || !pVictim->isAlive())
+                return;
+            // never proc from another windfury attack or the AP bonus will stack and we will get really huge criticals
+			if ( procSpell && ( procSpell->Id == 25504 || procSpell->Id == 33750) )
+				return;
 
+			// Main-Hand
+			int32 MainAPBonus = (int32)CalculateSpellDamage(dummySpell,0,dummySpell->EffectBasePoints[0],pVictim)/14 * GetAttackTime(BASE_ATTACK)/1000;
+            CastCustomSpell(pVictim,25504,&MainAPBonus,NULL,NULL,true,NULL,triggeredByAura);  
+            ((Player*)this)->AddSpellCooldown(25504,0,time(NULL) + 3);   
+
+			// Off-Hand
+			int32 OffAPBonus = (int32)CalculateSpellDamage(dummySpell,0,dummySpell->EffectBasePoints[0],pVictim)/14 * GetAttackTime(OFF_ATTACK)/1000;
+            CastCustomSpell(pVictim,33750,&OffAPBonus,NULL,NULL,true,NULL,triggeredByAura); 
+            ((Player*)this)->AddSpellCooldown(33750,0,time(NULL) + 3);
+
+        }
         default: break;
     }