The formula I used is based on the UO Stratics website. I tested the results given from this script for quite a few different strength levels and it was correct every time. If you happen to find an error, please let me know; or better yet, respond with the corrections.

Code: Select all
; ****************************************************
; * Beza's Base Damage Calculator *
; * The user plugs in the information and the *
; * script gives the minimum and maximum base *
; * damage. *
; ****************************************************
menu clear
menu show
menu window size 400 400
menu Window Title Damage Calculator
menu Text MinimumBaseDamageText 10 20 Min Base Damage of Weapon:
menu Edit MinBaseDamageEdit 220 20 50 18
menu Text MaximumBaseDamageText 10 60 Max Base Damage of Weapon:
menu Edit MaxBaseDamageEdit 220 60 50 20
menu Text StrengthText 10 100 Character Strength:
menu Edit StrengthEdit 220 100 50
menu Text TacticsText 10 140 Tactics:
menu Edit TacticsEdit 220 140 50 130
menu Text AnatomyText 10 180 Anatomy:
menu Edit AnatomyEdit 220 180 50 130
menu Text LumberjackingText 10 220 Lumberjacking:
menu Edit LumberjackingEdit 220 220 50 120
menu Text DamageIncreaseText 10 260 Damage Increase %:
menu Edit DamageIncreaseEdit 220 260 50 100
menu Text AxeWeaponText 10 300 Axe Weapon:
menu combo create AxeWeaponCombo 220 300 50
menu combo add AxeWeaponCombo No
menu combo add AxeWeaponCombo Yes
menu Button Calculate 10 350 90 25 Calculate
;menu get MinBaseDamageEdit
;menu get MaxBaseDamageEdit
;menu get StrengthEdit
;menu get TacticsEdit
;menu get AnatomyEdit
;menu get LumberjackingEdit
;menu get DamageIncreaseEdit
;menu get AxeWeaponCombo
set #MENUBUTTON n/a
loop:
if #MENUBUTTON = Calculate
{
menu get minBaseDamageEdit
set %minBaseDamageEdit #menures
wait 2
menu get maxBaseDamageEdit
set %maxBaseDamageEdit #menures
wait 2
menu get StrengthEdit
set %strengthEdit #menures
wait 2
menu get TacticsEdit
set %tacticsEdit #menures
wait 2
menu get AnatomyEdit
set %anatomyEdit #menures
wait 2
menu get LumberjackingEdit
set %lumberjackingEdit #menures
wait 2
menu get DamageIncreaseEdit
set %damageIncreaseEdit #menures
wait 2
menu get AxeWeaponCombo
set %axeWeaponCombo #menures
; setting up tactics bonus
set %tacticsDividerX625 ( %tacticsEdit * 625 )
set %tacticsAdder 6250 ; 6.25
set %tacticsAdjustedBonus %tacticsDividerX625
if %tacticsEdit => 100
{
set %tacticsAdjustedBonus ( %tacticsAdjustedBonus + %tacticsAdder )
}
set %tacticsBonus ( %tacticsAdjustedBonus )
; setting up anatomy bonus
set %anatomyBonus ( %anatomyEdit / 2 )
if %anatomyEdit => 100
{
set %anatomyBonus ( %anatomyBonus + 5 )
set %anatomyBonus ( %anatomyBonus * 1000 )
}
; setting up Strength Bonus
set %strengthAdjustedBonus ( %strengthEdit * 3 )
if %strengthEdit => 100
{
set %strengthAdjustedBonus ( %strengthAdjustedBonus + 50 )
}
set %strengthBonus ( %strengthAdjustedBonus * 100 )
; setting up Damage Increase (capped at 100%)
set %damageIncrease ( %damageIncreaseEdit * 1000 )
wait 1
; setting up Lumberjacking Bonus
if %axeWeaponCombo = 1
{
set %lumberjackingBonus 0
}
if %axeWeaponCombo = 2
{
set %lumberjackingBonus ( %lumberjackingEdit / 5 )
if %lumberjackingEdit => 100
{
set %lumberjackingBonus ( %lumberjackingBonus + 10 )
}
}
; setting up Min and Max Damage
set %minDamage %minBaseDamageEdit
set %maxDamage %maxBaseDamageEdit
; CALCULATING
set %finalDamageBonus ( %tacticsBonus + %anatomyBonus + %lumberjackingBonus + %strengthBonus + %damageIncrease )
set %finalDamageBonus ( %finalDamageBonus / 1000 )
set %minFinalDamage ( %minDamage + ( %minDamage * %finalDamageBonus ) / 100 )
set %maxFinalDamage ( %maxDamage + ( %maxDamage * %finalDamageBonus ) / 100 )
wait 2
display ok Damage: %minFinalDamage - %maxFinalDamage
halt
}
goto loop
wait 1s