Code: Select all
'---[_calculate_secondary_stats]
nSomeUnkownMaybeBaseValue = (CHAR_LEVEL / 10) + ((CHAR_INT - 50) / 10) + ((CHAR_AGILITY - 50) / 20) + ((CHAR_CHARM - 50) / 30)
if nSomeUnkownMaybeBaseValue > 75 Then
nSomeUnkownMaybeBaseValue = 75
elseif nSomeUnkownMaybeBaseValue < 1 Then
nSomeUnkownMaybeBaseValue = 1
end if
'nSomeUnkownMaybeBaseValue at this point is stored in NMR unknown value unknown12d(9) - OFFSET 1808 (User record bytes 1809-1810)
CHAR_MARTIAL_ARTS = nSomeUnkownMaybeBaseValue + nOutsideDodgeModifiers + (CHAR_UNKNOWN_U13B_1972) + (CHAR_CHARM / 10) + (CHAR_AGILITY / 5) + (CHAR_LEVEL / 5)
'nOutsideDodgeModifiers = [dodge from: abilities + auras + race + class + items]
'CHAR_UNKNOWN_U13B_1972 = NMR unknown13b - OFFSET 1972 (User record bytes 1973-1974) ... this section of the user record appears to be pre-calculated values like current encumbrance percentage
'if user has jumpkick ability...
if UserHasJumpkickAbility Then
CHAR_MARTIAL_ARTS = (CHAR_MARTIAL_ARTS + CHAR_LEVEL) * 2
end If
'---[ _calculate_secondary_stats]