While i do have lots of xp with single-player RPGs ( bards tale 3, eye of the beholder 2, Might and Magic VII, rage of mages 1 & 2, evil islands ) i never played any of the TES games ( the lack of turnbased combat options - or atleast an option to give orders in a pause mode like evil islands had - pushed me away) .
Recently i had finished my 4th (1st was 10+ years ago) playthrough of evil islands and was looking for something different/newer .
I discovered openmw and starting reading & playing.
The leveling system was a big disappointment though and i was glad to find an openmw compatible levelling mod .
I am now playing a forest ranger type character (2-handed axe, light armor only, NO ranged attacks, only enchant from magic skills) ) and at lvl 20 have problems increasing endurance.
Armorer is my only skill with endurance as primary attribute . It's at 45 , same as my endurance so using trainers is not possible.
I did notice that my INT was higher then my END even though my highest skill with INT as primary is at 40 .
I decided to look at ncgd code to see if i could understand the formulae used for calculating attribute values.
The code to caclulate STR starts around line 3687 .
line 3699+
Code: Select all
line 3699
; Resets temporary variables to 0
set temp to 0
set temp2 to 0
; Adds attribute XP from skills
set temp2 to 25 * masteryLongBlade
set temp2 to temp2 + baseLongBlade
set temp2 to temp2 * temp2
set temp2 to temp2 * 2
set temp to temp + temp2
The 2 is the value for a secondary atttibute , a primary attribute is set to 4.
All skills that influence STR are treated the same way, and their effects are added together.
At line 3671 the total is then converted into the amount that will be added to the base value of the attribute.
Code: Select all
line 3671
; Adjust XP based on growth speed
set temp2 to temp * attributeMult
set temp to temp2 / 27
; Converts XP into attributes
set temp2 to getSquareRoot temp
set temp to temp2 + startSTR ; Sets base Strength to new value
We can put this in a formula , for simplicity i'll assume only one specific skill influences a specific attribute .
foo_basevar = foo_startvar -25
foo_skill = foo_baseskill + 25 * foo_masteryskill
foo_attribute_gain = sqr ( foo_skill * foo_skill * foo_weight * growth_speed / 27 )
We know that growth_speed ( 1 - 2 - 3 ) and foo_weigth ( 1 -2 -4 ) are fixed numbers set at character creation by ncgd / user , while foo_skill changes over time.
rewriting the formula to make it easier to see what's happening :
foo_attribute_gain = sqr ( foo_skill * foo_skill ) * sqr ( foo_weight) * sqr ( growth_speed ) * sqr ( 1/27 )
foo_attribute_gain = foo_skill * sqr ( foo_weight) * sqr ( growth_speed ) * sqr ( 1/27 )
foo_attribute_gain = foo_skill * sqr ( foo_weight) * sqr ( growth_speed ) * sqr ( 1/27 )
foo_attribute_gain = 0.19245008973 * sqr ( foo_weight) * sqr ( growth_speed ) * foo_skill
Substitute the real values for foo_weigth and growth_speed and create a table, then analyse the results .
You may be surprised by them (i was and had to double check the calculations before i believed them) .
If I want to increase endurance by training 1 skill, which should i choose and why : block , atletics or restoration ?
Please confirm or deny my feeling I have found a real issue in ncgd.
Edit: typos