# Character Attack Formulas

### From Braindead's Mordor Site

(added probabilities of scoring backstab or crititical hit) |
(clarification) |
||

Line 2: | Line 2: | ||

<br> | <br> | ||

GLvl = Guild Level with best fighting ability, should be the same as the one in "Guild" Tab<br> | GLvl = Guild Level with best fighting ability, should be the same as the one in "Guild" Tab<br> | ||

- | FightingMod = Value found in Help File / 10, | + | FightingMod = Value found in Help File / 10, i.e., Warrior = 1.2, Nomad = 0.7<br> |

Size = Range [0 to 5] or Very Small, Small, Normal, Big, Very Big, Huge<br> | Size = Range [0 to 5] or Very Small, Small, Normal, Big, Very Big, Huge<br> | ||

Ln stands for natural logarithm.<br> | Ln stands for natural logarithm.<br> | ||

Line 40: | Line 40: | ||

<br> | <br> | ||

Chance of scoring a critical hit or backstab:<br> | Chance of scoring a critical hit or backstab:<br> | ||

- | Crit: ((((LN((GLvl / 999) + 1) * 100) * LN(CritMod + 1)) / 3) - (LN((MonLvl / 999) + 1)) * 100))/3 + Ln( | + | Crit: ((((LN((GLvl / 999) + 1) * 100) * LN(CritMod + 1)) / 3) - (LN((MonLvl / 999) + 1)) * 100))/3 + Ln(ItemDropLevel+1) * Ln(10), maximum 50%<br> |

- | Backstab: ((((LN((GLvl / 999) + 1) * 100) * LN(BSMod + 1)) / 3) - (LN((MonLvl / 999) + 1)) * 100))/2 + Ln( | + | Backstab: ((((LN((GLvl / 999) + 1) * 100) * LN(BSMod + 1)) / 3) - (LN((MonLvl / 999) + 1)) * 100))/2 + Ln(ItemDropLevel+1) * Ln(100), maximum 75%<br> |

+ | <br> | ||

+ | CritMod = Value found in Help File, i.e., Warrior = 9, Seeker = 3<br> | ||

+ | BSMod = Value found in Help File, i.e, Thief = 9, Ninja = 2<br> | ||

[http://mordor.uni.cc/forum/index.php?showtopic=1207 Discuss this topic in the forum] | [http://mordor.uni.cc/forum/index.php?showtopic=1207 Discuss this topic in the forum] |

## Revision as of 20:56, 1 October 2009

The formula has been well tested and seems to be extremely close, barring possible issues with different rounding algorithms.

GLvl = Guild Level with best fighting ability, should be the same as the one in "Guild" Tab

FightingMod = Value found in Help File / 10, i.e., Warrior = 1.2, Nomad = 0.7

Size = Range [0 to 5] or Very Small, Small, Normal, Big, Very Big, Huge

Ln stands for natural logarithm.

Rnd is a number ranging from 0 to 0.999.. (not 1, this is important because it produces different top values).

This is the Damage Modifier, a bit more complex than I expected really

1: DamMod = 0.6 + (((Ln(100 + GLvl) / 1.75) - 2.3) * FightingMod^2 / 2)

2: * WeaponModifier

3: + 5 if Critical Hit, Chance see below

4: + 2 if Backstab, Chance see below

5: / 2 if Monster is invisible and character can't see invisible

6: +0.1/-0.1 per size bigger/smaller than monster

7: if DamMod is > 1, then DamMod = DamMod - ln(DamMod)^2

Value 0.1 to 7ish (Lv 999 Human Warrior with a Mod 2.6 Weapon, severing a Tiny monster)

Let's get the Strength Modifier, it's actually 2 parts, and requires a new Strength Value (called BSV here)

BSV = Int(Strength - (LN(Strength) * ((LN(Strength) - 2,4) * 2,25))) + 1

StrMod1 = Int((Rnd * ((BSV + 10) / 2)) + ((BSV + 10) / 4)) / 10

StrMod2 = BSV/30

Str 1 to 40 -> Value [0.3-0.8 * 0.06667] to [1-2.9 * 1] Note, this value is the 2 StrMods combined

And last part of formula, Level Modifier.

LvlMod = (Ln(GLvl + 5) + 1) / Ln(1.2)

Lvl 1 to 999 -> Value 15.31228 to 43.39447

Base Damage = LvlMod * StrMod1 * StrMod2 * DamMod

Final Damage = Base - Rnd[1 to (Def-Atk)/8] or very close to this

Defense bug lurks though, so it's just:

Final Damage = Base + Rnd[1 to Atk/8]

Chance to Hit Formula in percent, range [1 to 97]

if Atk = 0 and Def = 0: 50

if Atk > Def: 0.5 + 0.5 * (Atk - Def) / Atk

if Atk < Def: 0.5 - 0.5 * (Def - Atk) / Def

Since Monster Defense passed to this formula is 0, you should always have 97% chance to hit.

Chance of scoring a critical hit or backstab:

Crit: ((((LN((GLvl / 999) + 1) * 100) * LN(CritMod + 1)) / 3) - (LN((MonLvl / 999) + 1)) * 100))/3 + Ln(ItemDropLevel+1) * Ln(10), maximum 50%

Backstab: ((((LN((GLvl / 999) + 1) * 100) * LN(BSMod + 1)) / 3) - (LN((MonLvl / 999) + 1)) * 100))/2 + Ln(ItemDropLevel+1) * Ln(100), maximum 75%

CritMod = Value found in Help File, i.e., Warrior = 9, Seeker = 3

BSMod = Value found in Help File, i.e, Thief = 9, Ninja = 2

Discuss this topic in the forum