Difference between revisions of "Talk:Gun Spread Formula"
Jump to navigation
Jump to search
→Clearer Formatting
imported>SnakeChomp (→Clearer Formatting: Update my last comment with more information about nonstandard base+mult*value instances) |
imported>Quetzilla |
||
Line 79: | Line 79: | ||
::::Also, don't forget that this isn't the only formula page. Among all the formula pages, there are three known cases where the ''base + mult * value'' style does not hold. On the [[Weapon Damage Formula]] page you have <tt>WeaponDamage * fDamageSkillBase + ActorSkillValue * fDamageSkillMult</tt>, and on this formula page you have <tt>fGunSpreadWalkBase * (''IsWalking'' || !''IsMoving'') + fGunSpreadWalkMult * ''IsWalking''</tt> and <tt>(fGunSpreadRunBase + fGunSpreadRunMult) * ''isRunning''</tt>. (Note that your mockup page is incorrect when it describes the WalkFactor and RunFactor.) Instead of trying to explain what things like <tt>foo * (''IsWalking'' || !''IsMoving'')</tt> mean, I tried to use regular sentences to say that certain values are 0 in certain situations. In looking at the mockup page using a <tt>foo * ''IsWalking''</tt> style again, it doesn't seem so unreasonable to do it this way, but I am a programmer in my day job, so things like that make perfect sense to me. I cannot really know what makes more sense to non programmers. I think it's safe to say that <tt>fGunSpreadWalkBase * (''IsWalking'' || !''IsMoving'')</tt> would require an english explanation for non programmers to understand it. | ::::Also, don't forget that this isn't the only formula page. Among all the formula pages, there are three known cases where the ''base + mult * value'' style does not hold. On the [[Weapon Damage Formula]] page you have <tt>WeaponDamage * fDamageSkillBase + ActorSkillValue * fDamageSkillMult</tt>, and on this formula page you have <tt>fGunSpreadWalkBase * (''IsWalking'' || !''IsMoving'') + fGunSpreadWalkMult * ''IsWalking''</tt> and <tt>(fGunSpreadRunBase + fGunSpreadRunMult) * ''isRunning''</tt>. (Note that your mockup page is incorrect when it describes the WalkFactor and RunFactor.) Instead of trying to explain what things like <tt>foo * (''IsWalking'' || !''IsMoving'')</tt> mean, I tried to use regular sentences to say that certain values are 0 in certain situations. In looking at the mockup page using a <tt>foo * ''IsWalking''</tt> style again, it doesn't seem so unreasonable to do it this way, but I am a programmer in my day job, so things like that make perfect sense to me. I cannot really know what makes more sense to non programmers. I think it's safe to say that <tt>fGunSpreadWalkBase * (''IsWalking'' || !''IsMoving'')</tt> would require an english explanation for non programmers to understand it. | ||
::::--[[User:SnakeChomp|SnakeChomp]] 03:40, 29 December 2008 (UTC) | ::::--[[User:SnakeChomp|SnakeChomp]] 03:40, 29 December 2008 (UTC) | ||
::indenting for clarity: | |||
::I hadn't looked at the weapon damage formula page, but looking at it now, I can tell you that it's wrong in terms of the example you listed above: | |||
<tt>WeaponDamage * fDamageSkillBase + ActorSkillValue * fDamageSkillMult</tt> | |||
::should be | |||
<tt>WeaponDamage * (fDamageSkillBase + (fDamageSkillMult * ActorSkillValue))</tt> | |||
::According to your formula, weapon damage as listed in the GECK is cut in half, and then (skill*0.5) is added to the damage. If that were true, then at 100 skill, each weapon would do damage equal to: BaseWeapDmg/2 + 50! Which is obviously wrong. When you use my formula above, you discover that the full damage formula becomes: | |||
<tt>BaseWeaponDamage * ConditionFactor * SkillFactor</tt> | |||
::Where each Factor is a proper base/mult pair. | |||
::This is how Bethesda sets up their formulas, so that you have a base value and then you add or multiply related values, where each value is a base/mult pair. Gun Spread is just confusing because the aim is a lower value, rather than higher in the case of weapons, and we don't have a concrete way of measuring the exact final spread to be 100% confident that the formula is correct, such as in this case: | |||
<tt>fGunSpreadWalkBase * (''IsWalking'' || !''IsMoving'') + fGunSpreadWalkMult * ''IsWalking''</tt> | |||
::where I'm not 100% sure that that's actually true, but I'm taking your word on it because I'm too lazy to test it. | |||
::--[[User:Quetzilla|Quetzilla]] 04:47, 29 December 2008 (UTC) | |||
== Formula still needs work == | == Formula still needs work == |