All pastes #944112 Raw Edit

Someone

public text v1 · immutable
·published 2008-03-15 21:17 UTC
rendered paste body
Index: Unit.cpp
===================================================================
--- Unit.cpp	(revision 5434)
+++ Unit.cpp	(working copy)
@@ -2675,16 +2675,6 @@
         return MELEE_HIT_DODGE;
     }
 
-    int32   modCrit = 0;
-    // reduce crit chance from Rating for players
-    if (pVictim->GetTypeId()==TYPEID_PLAYER)
-    {
-        if (attType==RANGED_ATTACK)
-            modCrit -= int32(((Player*)pVictim)->GetRatingBonusValue(PLAYER_FIELD_CRIT_TAKEN_RANGED_RATING)*100);
-        else
-            modCrit -= int32(((Player*)pVictim)->GetRatingBonusValue(PLAYER_FIELD_CRIT_TAKEN_MELEE_RATING)*100);
-    }
-
     // check if attack comes from behind
     if (!pVictim->HasInArc(M_PI,this))
     {
@@ -2710,7 +2700,7 @@
             && (roll < (sum += tmp)))
         {
             // Critical chance
-            tmp = crit_chance + skillBonus + modCrit;
+            tmp = crit_chance + skillBonus;
             if ( GetTypeId() == TYPEID_PLAYER && SpellCasted && tmp > 0 )
             {
                 if ( roll_chance_f(tmp/100))
@@ -2725,7 +2715,7 @@
     }
 
     // Critical chance
-    tmp = crit_chance + skillBonus + modCrit;
+    tmp = crit_chance + skillBonus;
 
     if (tmp > 0 && roll < (sum += tmp))
     {
@@ -2856,7 +2846,7 @@
     else
         misschance += (leveldif - 2) * chance;
 
-    misschance -= pVictim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_HIT_CHANCE);;
+    misschance -= pVictim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_HIT_CHANCE);
 
     // Add victim rating bonus
     if (pVictim->GetTypeId()==TYPEID_PLAYER)
@@ -3101,6 +3091,15 @@
     // flat
     crit += pVictim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE);
 
+    // reduce crit chance from Rating for players
+    if (pVictim->GetTypeId()==TYPEID_PLAYER)
+    {
+        if (attackType==RANGED_ATTACK)
+            crit -= ((Player*)pVictim)->GetRatingBonusValue(PLAYER_FIELD_CRIT_TAKEN_RANGED_RATING);
+        else
+            crit -= ((Player*)pVictim)->GetRatingBonusValue(PLAYER_FIELD_CRIT_TAKEN_MELEE_RATING);
+    }
+
     if (crit < 0.0f)
         crit = 0.0f;
     return crit;