mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[6985] Fix crit chance calc
Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
parent
3f397ed035
commit
0db6b31b70
2 changed files with 5 additions and 4 deletions
|
|
@ -1920,7 +1920,6 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
|
||||||
|
|
||||||
// bonus from skills is 0.04%
|
// bonus from skills is 0.04%
|
||||||
int32 skillBonus = 4 * ( attackerWeaponSkill - victimMaxSkillValueForLevel );
|
int32 skillBonus = 4 * ( attackerWeaponSkill - victimMaxSkillValueForLevel );
|
||||||
int32 skillBonus2 = 4 * ( attackerMaxSkillValueForLevel - victimDefenseSkill );
|
|
||||||
int32 sum = 0, tmp = 0;
|
int32 sum = 0, tmp = 0;
|
||||||
int32 roll = urand (0, 10000);
|
int32 roll = urand (0, 10000);
|
||||||
|
|
||||||
|
|
@ -2008,7 +2007,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
|
||||||
}
|
}
|
||||||
|
|
||||||
// Critical chance
|
// Critical chance
|
||||||
tmp = crit_chance + skillBonus2;
|
tmp = crit_chance;
|
||||||
|
|
||||||
if (tmp > 0 && roll < (sum += tmp))
|
if (tmp > 0 && roll < (sum += tmp))
|
||||||
{
|
{
|
||||||
|
|
@ -2653,6 +2652,9 @@ float Unit::GetUnitCriticalChance(WeaponAttackType attackType, const Unit *pVict
|
||||||
crit -= ((Player*)pVictim)->GetRatingBonusValue(CR_CRIT_TAKEN_MELEE);
|
crit -= ((Player*)pVictim)->GetRatingBonusValue(CR_CRIT_TAKEN_MELEE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Apply crit chance from defence skill
|
||||||
|
crit += (int32(GetMaxSkillValueForLevel(pVictim)) - int32(pVictim->GetDefenseSkillValue(this))) * 0.04f;
|
||||||
|
|
||||||
if (crit < 0.0f)
|
if (crit < 0.0f)
|
||||||
crit = 0.0f;
|
crit = 0.0f;
|
||||||
return crit;
|
return crit;
|
||||||
|
|
@ -7250,7 +7252,6 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
|
||||||
if (pVictim)
|
if (pVictim)
|
||||||
{
|
{
|
||||||
crit_chance = GetUnitCriticalChance(attackType, pVictim);
|
crit_chance = GetUnitCriticalChance(attackType, pVictim);
|
||||||
crit_chance+= (int32(GetMaxSkillValueForLevel(pVictim)) - int32(pVictim->GetDefenseSkillValue(this))) * 0.04f;
|
|
||||||
crit_chance+= GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask);
|
crit_chance+= GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "6984"
|
#define REVISION_NR "6985"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue