18,567
edits
Changes
ADVERTISEMENT
From Diablo Wiki
Created page with "==What is Movement Scaler?== Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things. ==Calculating the Heroes Movem..."
==What is Movement Scaler?==
Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things.
==Calculating the Heroes Movement Rates==
The forumulae used in Diablo III are as follows:
* MovementScalar (Fixed per Hero class)
* WalkingRate (Fixed per Hero class)
* StrafingRate (Fixed per Hero class)
* SprintingRate (Fixed per Hero class)
* RunningRate (Fixed per Hero class)
* MovementBonusTotal (Starts at 0)
* MovementScalarReductionPercent
* MovementScalarReductionResistance
* MovementScalarUncappedBonus
First step is to calculate the Movement Scalar Total which is done by the following formula:
MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
This basicly means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:
MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
Basicly this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.
Working out the MovementScalarSubtotal:
MovementScalarSubtotal = Max(0.1, MovementScalar) * (1 + MovementBonusTotal) * (1 - MovementScalarReductionPercent * (1 - Min(1, MovementScalarReductionResistance)))
Breaking that down:
Calc1 = 1 - Min(1, MovementScalarReductionResistance)
This makes sure the worst you can get here is a 0, best 1. So even if you set the ReductionResistance to 9999 it'll end up being 0. Although in theory you can have a negative value but Blizzard will no doubt prevent that somewhere else in their code if it matters.
Calc2 = (1 - MovementScalarReductionPercent * Calc1 )
A percent will be a value between 0.00 and 1.00 so all this does is take whatever the resistance is and take the percentage (as the name gives away). So if your ReductionResistance was 50% and your ReductionPercentage was 50% you'll end up with 25%.
Calc3 = (1 + MovementBonusTotal)
This just gives you a minimum of 1.
Calc4 = Max(0.1, MovementScalar)
Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!
* Default: 0.1 * 1 * 1 * 1 = 0.1; This would be full speed.
* Full Resistance: 0.1 * 1 * 0 * 0 = 0; You would be unable to move.
* Some buff: 0.1 * 1.25 * 1 * 1 = 1.125; 25% increase (easy to show with 10 * 125% = 12.5);
Now back to the original formula:
MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
So we now know the best bonus is 1.25 which is the same as 250% in game bonus to run speed! No point going above that then guys and girls, 250% is your limit!
MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
This is then used for the following Formulae:
* WalkingRateTotal = WalkingRate * MovementScalarTotal
* StrafingRateTotal = StrafingRate * MovementScalarTotal
* SprintingRateTotal = SprintingRate * MovementScalarTotal
* RunningRateTotal = RunningRate * MovementScalarTotal
So as you can see the MovementScalar is just a percentage speed increase!
Movement Scalar is the base stat used in Diablo III which is used to judged your walking rate amongst other things.
==Calculating the Heroes Movement Rates==
The forumulae used in Diablo III are as follows:
* MovementScalar (Fixed per Hero class)
* WalkingRate (Fixed per Hero class)
* StrafingRate (Fixed per Hero class)
* SprintingRate (Fixed per Hero class)
* RunningRate (Fixed per Hero class)
* MovementBonusTotal (Starts at 0)
* MovementScalarReductionPercent
* MovementScalarReductionResistance
* MovementScalarUncappedBonus
First step is to calculate the Movement Scalar Total which is done by the following formula:
MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
This basicly means you can have a capped value which cannot go above a certain amount and a bonus which is totally uncapped. Lets look at the capped total:
MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
Basicly this means you take whatever is lowest, 1.25 or the MovementScalarSubTotal.
Working out the MovementScalarSubtotal:
MovementScalarSubtotal = Max(0.1, MovementScalar) * (1 + MovementBonusTotal) * (1 - MovementScalarReductionPercent * (1 - Min(1, MovementScalarReductionResistance)))
Breaking that down:
Calc1 = 1 - Min(1, MovementScalarReductionResistance)
This makes sure the worst you can get here is a 0, best 1. So even if you set the ReductionResistance to 9999 it'll end up being 0. Although in theory you can have a negative value but Blizzard will no doubt prevent that somewhere else in their code if it matters.
Calc2 = (1 - MovementScalarReductionPercent * Calc1 )
A percent will be a value between 0.00 and 1.00 so all this does is take whatever the resistance is and take the percentage (as the name gives away). So if your ReductionResistance was 50% and your ReductionPercentage was 50% you'll end up with 25%.
Calc3 = (1 + MovementBonusTotal)
This just gives you a minimum of 1.
Calc4 = Max(0.1, MovementScalar)
Now this is the one we've been waiting for, just how does the MovementScalar change the speed of our character? 0.1 is the default, so anything above that is a perk!
* Default: 0.1 * 1 * 1 * 1 = 0.1; This would be full speed.
* Full Resistance: 0.1 * 1 * 0 * 0 = 0; You would be unable to move.
* Some buff: 0.1 * 1.25 * 1 * 1 = 1.125; 25% increase (easy to show with 10 * 125% = 12.5);
Now back to the original formula:
MovementScalarCappedTotal = Min(1.25, MovementScalarSubtotal)
So we now know the best bonus is 1.25 which is the same as 250% in game bonus to run speed! No point going above that then guys and girls, 250% is your limit!
MovementScalarTotal = MovementScalarCappedTotal + MovementScalarUncappedBonus
This is then used for the following Formulae:
* WalkingRateTotal = WalkingRate * MovementScalarTotal
* StrafingRateTotal = StrafingRate * MovementScalarTotal
* SprintingRateTotal = SprintingRate * MovementScalarTotal
* RunningRateTotal = RunningRate * MovementScalarTotal
So as you can see the MovementScalar is just a percentage speed increase!