Site Tools


ds1-refmat:param:calccorrectgraph

Table of Contents

CalcCorrectGraph

Outputs a value based on input value run through calculations. Used for things like weapon stat scaling, soul level cost, max HP, resistances, etc.

Calculations can be simplified by using CalcCorrectGraph Calculation Tool

Example

Relevant values for example

calcCorrectGraph is being used for 200 strength scaling, 0 dexterity scaling weapon.

Players strength stat (input) is 10

  • stageMaxVal0 = 0
  • stageMaxVal1 = 20
  • stageMaxGrowVal0 = 12
  • stageMaxGrowVal1 = 50

Since the player's strength stat is 10, parameter fields for stage 0 to stage 1 will be used, as it lies between stageMaxVal0(0) and stageMaxVal1(20)

output = stageMaxGrowVal0 + ((stageMaxGrowVal1 - stageMaxGrowVal0) * ((input - stageMaxVal0) / (stageMaxVal1 - stageMaxVal0)))

Calculate ratio of input value and maximum output stage value

Max output stage value for stage 0 to 1: stageMaxVal1(20)

Input = PlayerStrengthStat(10)
(Input(10) - stageMaxVal0(0)) / (stageMaxVal1(20) - stageMaxVal0(0)) = .5, aka 50%

This means that the final output value will be 50% of the output value potential.

(note: this part is affected by adjPt_maxGrowVal0-5 when present, which adds an additional calculation making ratio growth non-linear)

Calculate output value potential for stage 0 to 1

Min output stage value for stage 0 to 1: stageMaxGrowVal0(12)

Max output stage value for stage 0 to 1: stageMaxGrowVal1(50)

Output value potential for stage 0 to 1: stageMaxGrowVal1(50)-stageMaxGrowVal0(12) = 38

Calculate Output

Calculate input value ratio (.5 aka 50%) with output value potential, then add output stage value minimum for final output value

OutputValuePotential(38) * InputRatio(.5) = 19 + MinimumOutputValue(12) = 31

The final output value is 31, which in the case of weapon stat calculations will be applied as a multiplier to stat scaling. Meaning the weapon will effectively use 31% of the maximum stat scaling. 31% of StrengthStatScaling(200) = 62

Fields

Field Type Offset Description Notes
stageMaxVal0 f32 0x0 Stat Level Cap corresponds to the level of a certain stat
stageMaxVal1 f32 0x4 Stage cap corresponds to the level of a certain stat
stageMaxVal2 f32 0x8 Stage cap corresponds to the level of a certain stat
stageMaxVal3 f32 0xc Stage cap corresponds to the level of a certain stat
stageMaxVal4 f32 0x10 Stage cap corresponds to the level of a certain stat
stageMaxGrowVal0 f32 0x14 Stage growth is a multiplier of the maximum growth that will occur in a certain stage, as an example a chart such as this: Growth Stage 0 - Growth = 20 - 20% of the total scaling is reached at stage 0. Growth Stage 1 - Growth = 25 - 25% of the total scaling is reached at stage 1. Growth Stage 2 - Growth = 50 - 50% of the total scaling is reached at stage 2. Growth Stage 3 - Growth = 80 - 80% of the total scaling is reached at stage 3. Growth Stage 4 - Growth = 90 - 90% of the total scaling is reached at stage 4. As you can see, in this specific chart 100% is never reached, 100% could be reached if only the value of growth stage 4 was 100% This is not limited to 100% as an example growth stage 4 could reach 200%. The level cap of a growth stage is specified in the corresponding Stat Level Cap Field
stageMaxGrowVal1 f32 0x18 Stage growth is a multiplier of the maximum growth that will occur in a certain stage, as an example a chart such as this: Growth Stage 0 - Growth = 20 - 20% of the total scaling is reached at stage 0. Growth Stage 1 - Growth = 25 - 25% of the total scaling is reached at stage 1. Growth Stage 2 - Growth = 50 - 50% of the total scaling is reached at stage 2. Growth Stage 3 - Growth = 80 - 80% of the total scaling is reached at stage 3. Growth Stage 4 - Growth = 90 - 90% of the total scaling is reached at stage 4. As you can see, in this specific chart 100% is never reached, 100% could be reached if only the value of growth stage 4 was 100% This is not limited to 100% as an example growth stage 4 could reach 200%. The level cap of a growth stage is specified in the corresponding Stat Level Cap Field
stageMaxGrowVal2 f32 0x1c Stage growth is a multiplier of the maximum growth that will occur in a certain stage, as an example a chart such as this: Growth Stage 0 - Growth = 20 - 20% of the total scaling is reached at stage 0. Growth Stage 1 - Growth = 25 - 25% of the total scaling is reached at stage 1. Growth Stage 2 - Growth = 50 - 50% of the total scaling is reached at stage 2. Growth Stage 3 - Growth = 80 - 80% of the total scaling is reached at stage 3. Growth Stage 4 - Growth = 90 - 90% of the total scaling is reached at stage 4. As you can see, in this specific chart 100% is never reached, 100% could be reached if only the value of growth stage 4 was 100% This is not limited to 100% as an example growth stage 4 could reach 200%. The level cap of a growth stage is specified in the corresponding Stat Level Cap Field
stageMaxGrowVal3 f32 0x20 Stage growth is a multiplier of the maximum growth that will occur in a certain stage, as an example a chart such as this: Growth Stage 0 - Growth = 20 - 20% of the total scaling is reached at stage 0. Growth Stage 1 - Growth = 25 - 25% of the total scaling is reached at stage 1. Growth Stage 2 - Growth = 50 - 50% of the total scaling is reached at stage 2. Growth Stage 3 - Growth = 80 - 80% of the total scaling is reached at stage 3. Growth Stage 4 - Growth = 90 - 90% of the total scaling is reached at stage 4. As you can see, in this specific chart 100% is never reached, 100% could be reached if only the value of growth stage 4 was 100% This is not limited to 100% as an example growth stage 4 could reach 200%. The level cap of a growth stage is specified in the corresponding Stat Level Cap Field
stageMaxGrowVal4 f32 0x24 Stage growth is a multiplier of the maximum growth that will occur in a certain stage, as an example a chart such as this: Growth Stage 0 - Growth = 20 - 20% of the total scaling is reached at stage 0. Growth Stage 1 - Growth = 25 - 25% of the total scaling is reached at stage 1. Growth Stage 2 - Growth = 50 - 50% of the total scaling is reached at stage 2. Growth Stage 3 - Growth = 80 - 80% of the total scaling is reached at stage 3. Growth Stage 4 - Growth = 90 - 90% of the total scaling is reached at stage 4. As you can see, in this specific chart 100% is never reached, 100% could be reached if only the value of growth stage 4 was 100% This is not limited to 100% as an example growth stage 4 could reach 200%. The level cap of a growth stage is specified in the corresponding Stat Level Cap Field
adjPt_maxGrowVal0 f32 0x28 Determines the exponent used to calculate the curve. The growth values are normalised to be between the level range and the growth range dictated, Such that: 0 level is the lower bound of the stage, and 1 level is the upper bound 0 growth is the lower bound of the stage, and 1 growth is the upper bound This curve is, at a value of 1, linear, meaning direct proportion between each stage. At a value of 2, it is quadratic (in fact, it will be flat exactly at 0, and have steepness 2 at 1) Note that a steepness of 2 means the growth per level is double the average growth per level. At a value of 0.5, it is a square root. Below 0, negative powers are not used as this would create asymptotes and infinite values. Instead, the axes are flipped. If you consider the graph 0 to 1 by 0 to 1, it is rotated 180 degrees. At a value of -1, it is linear again. At a value of -2, it is quadratic, however the origin is at the upper bound. Note this means there is a steepness of 2 at the lower bound and it is flat at the upper bound. At a value of -0.5, it is a square root graph again, but rotated 180.
adjPt_maxGrowVal1 f32 0x2c Determines the exponent used to calculate the curve. The growth values are normalised to be between the level range and the growth range dictated, Such that: 0 level is the lower bound of the stage, and 1 level is the upper bound 0 growth is the lower bound of the stage, and 1 growth is the upper bound This curve is, at a value of 1, linear, meaning direct proportion between each stage. At a value of 2, it is quadratic (in fact, it will be flat exactly at 0, and have steepness 2 at 1) Note that a steepness of 2 means the growth per level is double the average growth per level. At a value of 0.5, it is a square root. Below 0, negative powers are not used as this would create asymptotes and infinite values. Instead, the axes are flipped. If you consider the graph 0 to 1 by 0 to 1, it is rotated 180 degrees. At a value of -1, it is linear again. At a value of -2, it is quadratic, however the origin is at the upper bound. Note this means there is a steepness of 2 at the lower bound and it is flat at the upper bound. At a value of -0.5, it is a square root graph again, but rotated 180.
adjPt_maxGrowVal2 f32 0x30 Determines the exponent used to calculate the curve. The growth values are normalised to be between the level range and the growth range dictated, Such that: 0 level is the lower bound of the stage, and 1 level is the upper bound 0 growth is the lower bound of the stage, and 1 growth is the upper bound This curve is, at a value of 1, linear, meaning direct proportion between each stage. At a value of 2, it is quadratic (in fact, it will be flat exactly at 0, and have steepness 2 at 1) Note that a steepness of 2 means the growth per level is double the average growth per level. At a value of 0.5, it is a square root. Below 0, negative powers are not used as this would create asymptotes and infinite values. Instead, the axes are flipped. If you consider the graph 0 to 1 by 0 to 1, it is rotated 180 degrees. At a value of -1, it is linear again. At a value of -2, it is quadratic, however the origin is at the upper bound. Note this means there is a steepness of 2 at the lower bound and it is flat at the upper bound. At a value of -0.5, it is a square root graph again, but rotated 180.
adjPt_maxGrowVal3 f32 0x34 Determines the exponent used to calculate the curve. The growth values are normalised to be between the level range and the growth range dictated, Such that: 0 level is the lower bound of the stage, and 1 level is the upper bound 0 growth is the lower bound of the stage, and 1 growth is the upper bound This curve is, at a value of 1, linear, meaning direct proportion between each stage. At a value of 2, it is quadratic (in fact, it will be flat exactly at 0, and have steepness 2 at 1) Note that a steepness of 2 means the growth per level is double the average growth per level. At a value of 0.5, it is a square root. Below 0, negative powers are not used as this would create asymptotes and infinite values. Instead, the axes are flipped. If you consider the graph 0 to 1 by 0 to 1, it is rotated 180 degrees. At a value of -1, it is linear again. At a value of -2, it is quadratic, however the origin is at the upper bound. Note this means there is a steepness of 2 at the lower bound and it is flat at the upper bound. At a value of -0.5, it is a square root graph again, but rotated 180.
adjPt_maxGrowVal4 f32 0x38 This value is not used.
init_inclination_soul f32 0x3c Growth Soul Slope of the early graph 1
adjustment_value f32 0x40 Growth soul Early soul adjustment 2
boundry_inclination_soul f32 0x44 Affects the slope of the graph after the growth soul threshold 3
boundry_value f32 0x48 Growth soul threshold t
pad dummy8 0x4c This field is padding.
ds1-refmat/param/calccorrectgraph.txt · Last modified: by admin