View Single Post
  #2  
Old 07-11-2010, 05:19 PM
Caryatis
Dragon
 
Join Date: May 2009
Location: Milky Way
Posts: 539
Default

missed one line in the attack.cpp... new one

Code:
Index: attack.cpp
===================================================================
--- attack.cpp	(revision 1596)
+++ attack.cpp	(working copy)
@@ -2861,13 +2861,14 @@
 	}
 }
 
-sint32 Mob::ReduceDamage(sint32 damage)
+sint32 Mob::AffectMeleeDamage(sint32 damage, const SkillType skill_used)
 {
-	if(damage <= 0 || (!HasRune() && !HasPartialMeleeRune()))
+	if(damage <= 0)
 	{
 		return damage;
 	}
-
+	
+	// Block attack first
 	int slot = GetBuffSlotFromType(SE_NegateAttacks);
 	if(slot >= 0 && buffs[slot].melee_rune > 0)
 	{
@@ -2878,7 +2879,26 @@
 		}
 		return -6;
 	}
-
+	
+	// Affect melee damage
+	slot = GetBuffSlotFromType(SE_SkillDamageTaken);
+	if(slot >= 0)
+	{
+		for(int i = 0; i < EFFECT_COUNT; i++)
+		{
+			if (spells[buffs[slot].spellid].effectid[i] == SE_SkillDamageTaken)
+			{
+				// Check the skill against the spell, or allow all melee skills.
+				if(skill_used == spells[buffs[slot].spellid].base2[i] || spells[buffs[slot].spellid].base2[i] == -1)
+				{
+					damage += damage * spells[buffs[slot].spellid].base[i] / 100;
+					break;
+				}
+			}
+		}
+	}
+	
+	// Do Runes...
 	slot = GetBuffSlotFromType(SE_MitigateMeleeDamage);
 	if(slot >= 0)
 	{
@@ -3155,7 +3175,7 @@
 	
 		//see if any runes want to reduce this damage
 		if(spell_id == SPELL_UNKNOWN) {
-			damage = ReduceDamage(damage);
+			damage = AffectMeleeDamage(damage, skill_used);
 			mlog(COMBAT__HITS, "Melee Damage reduced to %d", damage);
 		} else {
 			sint32 origdmg = damage;
Reply With Quote