Base Damage Calculator
Posted: Sat Aug 25, 2012 2:10 am
I left a post showing the minimum and maximum base damage for a Yumi wielding character with 130 tactics and 130 anatomy at every strength level from 163 to 418. This script takes that a few steps further and allows the user to plug in whatever information for whatever weapon and at whatever tactics, anatomy, and strength levels. The script will then respond with the minimum and maximum base damage.
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.
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