Item Search
     
BG-Wiki Search
+ Reply to Thread
Page 8 of 9 FirstFirst ... 6 7 8 9 LastLast
Results 141 to 160 of 172

Thread: pDif and damage     submit to reddit submit to twitter

  1. #141
    Masamune
    Guest

    Ok i fixed Raellia model in this googlesheet.

    Time to compare with parses...

    EDIT: on test "218BJ63", normal min/max and crit min generated from model are OK, but crit max=126 while parsed up to 128...

  2. #142
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Quote Originally Posted by Raelia View Post
    I don't disagree in the slightest with adjusting the value. 0.3 was actually my original guess, then altered to 0.25 to make the floors start and end at certain values on top of my Primary model as it stood at the time, so if you've got a definite show here that it's a 0.3 bump then I'll go back and rework my Primary model instead to make the floors fit as a starting point, then readjust from there.
    The difference in the current offsets (751 to 448) is 0.2959, and takes very little to make it almost exactly 0.3. I'm pretty certain that can be treated as the difference in the offsets.

    Double-checked the verification tables, and the offset for the lower values of min pDif cannot be less than 448/1024 when using a slope of 153/1024. -447/1024 starts giving values that fail vs observed data. Since the lower half cannot be 444, but the upper half can be 755, will go with the 448&755 combo.

    Quote Originally Posted by Masamune View Post
    Quote Originally Posted by Motenten
    Still haven't worked out a proper emergent form for the 1.0 spike, though (ie: one that doesn't explicitly rely on checking whether the pDif range can include 1.0).
    How are you trying to do it?
    My current thought is that the gap between the lower and upper offsets (ie: the space that would have been filled if the -755/1024 offset was kept the entire way down) is being taken and forced to 1.0. However that doesn't work once you get down below 0.48 cRatio since there's no 1.0 to reset those values to. Need to review the strength of the spike values across all cRatios to get a better idea.

    Quote Originally Posted by Byrthnoth View Post
    Are the max pDIF lines parallel to each other as well? what if you took the above and used different m/b values for above and below wRatio?
    Max pDif slopes are -not- parallel. The upper half (above 1.0) has a slope of about 1.25 (there's some slight uncertainty on the exact value, there), though that reaches cap of +0.375 pretty quickly. The lower half (from your parse data) has a slope multiplier of about 341/1024 (1.333), significantly different.

  3. #143
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Test for mob level correction. Not really any better threads to put this in, so here we go.

    Target: Abyssea-Uleguerand Bluffalo (already have their defense, so can pick out exact level on lower level job)

    Gear:

    99 Nin/dnc:
    Iga+2///
    Iga+2/Iga+2/Shelter/Pagu
    Atheling/Thunder/Iga+2/Iga+2

    402 def, 83 vit


    95 Sam/dnc:
    Unkai+2///Thew
    Unkai+2/Orcish/Rajas/Pagu
    Lamia+1//Unkai+2/Unkai+2

    402 def, 80+3 vit


    Sam needs to be able to identify lvl 99 bluffalo. They have 516 def, so..
    Attack using above gear and Kiku: 515
    Add Warwolf: 519

    If mob has high defense without Warwolf and neutral defense with Warwolf, it's lvl 99


    Additional buffs:
    No vit cruor, only HP
    Mounted Champion (50 vit)
    Vicissitude (30 def)
    Sea Daughter

    +55 def = 457 def total
    Expected attack: somewhere around 417+50 = 467

    Should be right around 1.0 cRatio, give or take

    Should see general damage spike at 1.0

    Damage taken on nin (~30 minutes' worth):

    Spoiler: show

    Code:
      Melee
             82:    1
             83:    1
             85:    2
             86:    2
             87:    5
             88:    6
             89:    1
             90:    4
             91:    2
             92:    1
             93:    3
             94:    3
             95:    4
             96:    5
             97:    5
             98:    4
             99:    4
            100:    2
            101:    3
            102:    1
            103:    5
            104:    1
            105:   16
            106:   15
    +^      107:   19
            108:   15
            109:   17
            110:   18
            111:    3
            112:    2
            113:    3
            115:    1
            116:    3
            117:    2
            118:    3
            119:    2
            120:    2
            121:    4
            122:    2
            123:    1
            124:    2
            125:    1
            126:    2
            127:    5
            128:    2
            129:    3
            130:    1
            131:    2
            132:    2
            133:    2
            135:    1
            136:    1
            138:    1
            139:    1


    1.0 spike at 105 damage, gives us the bluffalo's base weapon damage value after fStr adjustment.

    82 min damage is a pDif of ~0.781 to 0.790. Implied cRatio between 1.060 and 1.067, thus an attack between 485 and 487.



    Damage taken on sam (~30 minutes' worth):

    Spoiler: show

    Code:
      Melee
            105:   18
            106:   16
            107:   15
            108:   17
    +       109:   23
            110:   18
            111:    2
            112:    3
            113:    6
            114:    4
            115:    3
            116:    2
            117:    4
            118:    6
            119:    4
            120:    5
            121:    4
            122:    4
            123:    6
     ^      124:    4
            126:    4
            127:    3
            128:    4
            129:    3
            130:    6
            131:    3
            132:    3
            133:    3
            134:    5
            135:    4
            136:    4
            137:    4
            138:    1
            139:    4
            140:    3
            141:    1
            142:    4
            143:    4
            144:    4
            145:    2
            146:    2
            147:    5
            148:    8
            149:    2
            150:    2
            151:    4
            152:    4
            153:    4
            154:    2
            155:    4
            156:    7
            157:    5
            158:    3
            159:    2
            160:    3
            161:    1
            162:    4
            163:    1
            164:    4
            165:    7
            166:    3
            167:    1
            168:    3
            169:    2
            170:    3
            171:    1


    As you can see, minimum damage was 105, the 1.0 spike. That means cRatio needed to be at least 1.25.

    Maximum damage seen was 171. Predicted max at 1.26 cratio would be 165~173, depending on secondary spread.

    We can thus conclude a high likelihood of cRatio being +0.2 relative to what it was when the mob was EM. Given that sam was 4 levels lower than nin, that would be +0.05 per level.



    Final test for existance of 1.0 cRatio floor. Given approximated mob attack of 485-487, want 500+ defense on nin (impractical to get sufficient defense on sam for a solo test with level correction).

    Got Protect V, and had Sheltered Ring on so gained +70 def. Final def with atmas: 527

    Unfortunately mobs reset, so had to waste some of the time killing them to respawn higher, so total duration isn't as long as other parses.

    If there's a 1.0 cRatio floor, cRatio should be 1.0, and minimum damage should be 74.

    If there's no 1.0 cRatio floor, cRatio should be around 0.92, and minimum damage should be about 65.

    Spoiler: show

    Code:
      Melee
             73:    1
             75:    7
             76:    4
             77:    2
             79:    1
             80:    1
             81:    5
             83:    2
             84:    1
             86:    1
             88:    2
             89:    2
             90:    1
             91:    2
             93:    1
             94:    1
             95:    1
             96:    2
             98:    1
             99:    1
            100:    2
            101:    2
            102:    2
            103:    1
            104:    3
    +^      105:   12
            106:    9
            107:    9
            108:    5
            109:    8
            110:    4
            111:    2
            112:    1
            113:    3
            114:    1
            116:    1
            117:    1
            120:    1
            122:    2



    And this is rather interesting.

    Minimum damage observed: 73 once, and mostly 75+. Conclusion: cRatio is 1.0.
    Maximum damage observed: 122. This implies a max primary damage of 117-122, which implies a cRatio of between 0.89 to 0.93.

    So the lower pDif range is capped using 1.0 cRatio, while the upper pDif range is not. Maybe.

  4. #144
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Followup test on the 1.0 cRatio cap.

    Pld/dnc

    honor/seignur//
    Hero's/Apathy//
    Twilight/Creed+2/Solemn/Pagu
    Atheling/Warwolf/Creed+2/Creed+2

    There's 5% PDT in there, so I expect the 1.0 pDif spike to be 99 damage. (wrong; also need to adjust for vit)
    Engaged but facing away, so no shield procs.

    Total defense with Protect V with Sheltered Ring bonus + atma: 702

    Nominal cRatio: ~0.692

    Total vit: 189

    Aside:
    Total vit for nin & sam tests: 133, so an extra 56 vit, which will change base damage.
    +56 vit should be about -14 base damage (d91), unless we hit a cap.
    Preliminary view of data seems to be showing the 1.0 cap at 87 damage. Factoring out the PDT, that's 92 base damage (so we have a net -13 fStr).


    If damage is based off of nominal cRatio:
    Estimated min pDif damage: .358 * 92 = 32 * 95% = 30
    Estimated max pDif damage: 1.0 * 92 = 92 * 95% = 87 * 1.05 = 91


    If damage is based off of capped 1.0 cRatio:
    Estimated min pDif damage: .7125 * 92 = 65 * 95% = 61
    Estimated max pDif damage: 1.25 * 92 = 115 * 95% = 109 * 1.05 = 114



    Defense 702 (Protect V):
    Spoiler: show

    Code:
      Melee
            -23:    1
             -6:    1
              0:    2
             42:    3
             43:    4
             44:    4
             45:    7
             46:    7
             47:    3
             48:    5
             49:    3
             50:    7
             51:    4
             52:    5
             53:    5
             54:    5
             55:    3
             56:    5
             57:    1
             58:    3
             59:    1
             60:    3
             61:    3
             62:    7
             63:    2
             64:    6
             65:    2
             66:    3
             67:   10
             68:    8
             69:    4
             70:    3
             71:    5
             72:    2
     ^       73:    5
             74:    4
             75:    2
             76:    4
             77:    5
             78:    4
             79:    2
             80:    4
             81:    6
             82:    5
             83:    5
             84:    8
             85:    6
             86:    6
    +        87:   17
             88:   15
             89:   14
             90:   10
             91:   15


    Ignoring set procs:
    Min: 42
    Max: 91

    Max damage confirmed as being at 1.0 pDif, which supports the idea that cRatio is *not* capped.
    Min damage is significantly higher than expected for the nominal cRatio.

    Factoring out the PDT, min damage was 45, which is a pDif between 0.489 and 0.5.

    Second assessment:
    Changed Creed+2 legs to Staunch Cuisses (to avoid dealing with PDT; really shouldn't have used them in the first test), and Protect V to Protect. Total defense: 644, total vit: 194.

    1.0 spike @ 91
    Base damage: 91

    Nominal cRatio: 0.755

    No indications of any damage above 1.0. 92 damage primary value could have generated a 96 dmg max with the secondary modifier, but max observed was 95.

    Minimum damage: 48

    That's slightly higher than the minimum seen in the prior test (difference range is within acceptable bounds), and still significantly higher than corresponding damage of players against mobs.

    This indicates that the cRatio for min damage calculations is moving with expected cRatio, however the calculated value is different than it is for players.

    Defense 644 (Protect I):
    Spoiler: show
    Code:
      Melee
            -53:    1
             48:    1
             49:    4
             50:    2
             51:    3
             52:    4
             53:    3
             54:    1
             55:    3
             56:    3
             57:    5
             58:    1
             59:    3
             60:    3
             61:    2
             62:    3
             63:    2
             64:    4
             65:    2
             66:    7
             67:    2
             68:    4
             69:    6
             70:    7
             71:    4
             72:    6
             73:    5
             74:    1
             75:    3
             76:    4
             77:    1
             78:    5
             79:    4
             80:    5
             81:    3
     ^       82:    2
             84:    2
             85:    9
             86:    2
             87:    5
             89:    3
             90:    6
             91:   18
             92:   12
    +        93:   28
             94:   16
             95:   17



    Defense 678 (Protect III):
    Spoiler: show
    Code:
      Melee
            -34:    1
             46:    3
             48:    3
             50:    3
             51:    2
             52:    7
             53:    1
             54:    8
             55:    7
             56:    3
             57:    3
             58:    3
             59:    5
             60:    3
             61:    4
             62:    3
             63:    3
             64:    1
             65:    5
             66:    6
             67:    3
             68:    2
             69:    7
             70:    5
             71:    5
             72:    2
             73:    4
             74:    2
             75:    4
             76:    3
             77:    3
             78:    5
     ^       79:    3
             80:    1
             81:    3
             82:    3
             83:    7
             84:    5
             85:    7
             86:    1
             87:    2
             88:    5
             89:    3
             90:    5
    +        91:   18
             92:   15
    +        93:   18
             94:   13
             95:   15





    Att: ~486

    Def: 527
    - cRatio: 0.922
    - Min pDif: 0.696 - 0.704

    Def: 644
    - cRatio: 0.755
    - Min pDif: 0.528 - 0.538

    Def: 678
    - cRatio: 0.717
    - Min pDif: 0.506 - 0.516

    Def: 702
    - cRatio: 0.692
    - Min pDif: 0.490 - 0.499


    For Defenses 527, 644 and 678, min pDif appears to be about (cRatio - 0.22). Alternatively, for defenses 644, 678 and 702, min pDif appears to be cRatio * 0.71.

    Combined, could be cRatio * 0.71, with a max difference of 0.22.


    Regardless, cRatio is clearly not capped at a low of 1.0, though the range of possible damage is clearly tightened up compared to the player formulas (and thus we can't use this as a shortcut for figuring out the player pDif formulas).

  5. #145
    Custom Title
    Join Date
    Nov 2008
    Posts
    1,066
    BG Level
    6
    FFXI Server
    Diabolos

    Does still show that the 1.0 spike still ranges above 1.0 when it's forming the 'upper limit' of damage, which supports the 'set 0.7-1.0 to 1.0 and add 0.3 below 1.0' method.

    The mechanics are plainly the same, a 1.0 spike being generated and whatnot, so I'd like to know what data from which you're drawing the conclusion that the range is too narrow. It should be narrowed by that 0.3 anyway, so to what are you comparing to say it's too narrow?

    Not to say mobs shouldn't have a different formula from a design standpoint, but lazy coders...

  6. #146
    Masamune
    Guest

    Quote Originally Posted by Motenten View Post
    - cRatio: 0.922
    - Min pDif: 0.696 - 0.704

    - cRatio: 0.755
    - Min pDif: 0.528 - 0.538

    - cRatio: 0.717
    - Min pDif: 0.506 - 0.516

    - cRatio: 0.692
    - Min pDif: 0.490 - 0.499
    For comparisons, i raise you this:

    Test name: 218BJ64
    - cRatio: 0.92766
    - Min pDif: 0.61111

    218BJ65
    - cRatio: 0.9045
    - Min pDif: 0.5849

    218BJ71
    - cRatio: 0.8015
    - Min pDif: 0.48077

    218BJ72
    - cRatio: 0.787
    - Min pDif: 0.4615

    218BJ73
    - cRatio: 0.773
    - Min pDif: 0.4423

    Those tests shows the min pdifs you got should actually be lower... unless i missed something ?

  7. #147
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Quote Originally Posted by Raelia
    The mechanics are plainly the same, a 1.0 spike being generated and whatnot, so I'd like to know what data from which you're drawing the conclusion that the range is too narrow. It should be narrowed by that 0.3 anyway, so to what are you comparing to say it's too narrow?
    By 'narrow', I mean the difference between cRatio and min pDif (ie: lower range = cRatio - min pDif) is much smaller for the mob data than it is for players. See Masa's samples for a few illustrative points. For players, it's about 0.3 or a bit more; for mobs it's about 0.22 or less. The upper range doesn't seem as affected, but can't be sure; would need to get down to around 0.5 cRatio to see if it drops the max pDif below 1.0 at about the same point as for players.

    Quote Originally Posted by Masamune
    Those tests shows the min pdifs you got should actually be lower... unless i missed something ?
    Nope, that was one of the items of note: min pDif for mobs hitting players is significantly higher than min pDif for players hitting mobs.

  8. #148
    Custom Title
    Join Date
    Nov 2008
    Posts
    1,066
    BG Level
    6
    FFXI Server
    Diabolos

    I followed the conclusion, just wondered what data supported it. Just to cover all bases, what's the base damage on the data given by Masa to determine the flooring range? I'd take a stab that it was some multiple of 18 because of the first pDif, but the rest doesn't match.

    We'd need >1.5 cRatio mob data to know if it's a difference in equation or just a larger floor/ceiling factor, like just bumping the set-to-1.0 range to a 0.5 width. This would be very visible in a hitcount of Moten's test.

  9. #149
    Masamune
    Guest

    I think the cause of this discrepancy is simply too low sample size Motenten... For example the parse at def678 shows 2 missing values at lower end (while dmg formula should produce each value like the rest of the parse)
    Maybe with higher sample size you would have more chance at hitting BOTH primary and secondary randomizers = 0 ? (and then reach same min pdif as for player).

  10. #150
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Quote Originally Posted by Masamune View Post
    I think the cause of this discrepancy is simply too low sample size Motenten... For example the parse at def678 shows 2 missing values at lower end (while dmg formula should produce each value like the rest of the parse)
    Maybe with higher sample size you would have more chance at hitting BOTH primary and secondary randomizers = 0 ? (and then reach same min pdif as for player).
    While I don't doubt that there's the possibility of not quite hitting the true extremes, there's no way that that can explain the formula difference here. It would imply an 8-10 point gap where -no- values showed up, and that just isn't believable given the frequencies shown on other values.

  11. #151
    Chram
    Join Date
    Sep 2007
    Posts
    2,526
    BG Level
    7
    FFXI Server
    Fenrir

    Quote Originally Posted by Raelia View Post
    I followed the conclusion, just wondered what data supported it. Just to cover all bases, what's the base damage on the data given by Masa to determine the flooring range? I'd take a stab that it was some multiple of 18 because of the first pDif, but the rest doesn't match.

    We'd need >1.5 cRatio mob data to know if it's a difference in equation or just a larger floor/ceiling factor, like just bumping the set-to-1.0 range to a 0.5 width. This would be very visible in a hitcount of Moten's test.
    The BJ tests were Brass Jadagna, and were d53 for the lvl 65, d52 for lvls 71-73.

  12. #152
    Custom Title
    Join Date
    Nov 2008
    Posts
    1,066
    BG Level
    6
    FFXI Server
    Diabolos

    And d54 for the level 64 then.

    So after flooring the 0.773 cRatio could be anywhere from 23 to 23.999 for a min pDif anywhere between 0.4423 to 0.4615. Extrapolate the mob results to an equal cRatio and you get 0.556, or +0.1 higher. We've chewed on the 0.3 gap width for players plenty, so a 0.4 gap width would be necessary to do the same if base pDif calculation didn't change, so the hitcount of the spike should be huge (>50% of total hits) else we can then suspect a change in base formula.

    Pro 3: 163 non-spike to 79 spike, 30% but this may be low enough to be not covering the whole gap width.

    Pro 2: 148 non-spike to 91 spike, 38%, suggesting that the whole gap width is definitely not being covered.

    So going back up to some earlier data, 105 base damage somewhere around 1.0 cRatio, it's got 61 non-spike to 47 spike, or 43.5%, suggesting either:

    A. 0.95 width and 0.4 gap
    or
    B. 0.7 width and 0.3 gap

    to the approximately 0.95 width and 0.3 gap of player data. It's definitely different from player functions in one way or another.

    The earlier SAM data gives a ~0.40-0.45 'post-gap' width, so a 0.7 width and 0.3 gap is certainly possible, while the 0.95 width and 0.4 gap would give a wider range and doesn't fit the SAM parse data.

    This gives the ~0.1 higher min pDif and suggests heavily that mobs indeed have a different set of basic pDif generation. Per my system RAE and LIA would each be reduced by 0.1 for mobs then.

  13. #153
    Requiescat in pace.
    Join Date
    Dec 2008
    Posts
    1,341
    BG Level
    6
    FFXI Server
    Lakshmi

    http://forum.square-enix.com/ffxi/th...l=1#post279423

    Ig-Alima is lvl 120 and has 1059 ATK.

  14. #154
    BG Content
    Join Date
    Jun 2007
    Posts
    3,303
    BG Level
    7
    FFXIV Character
    Slycer Ilerion
    FFXIV Server
    Excalibur
    FFXI Server
    Fenrir

    Quote Originally Posted by grevenilvec75 View Post
    Ig-Alima is lvl 120 and has 1059 ATK.
    The only significant information in the whole thread. Good pull, lol, I probably would have just glossed over it.

  15. #155
    New Spam Forum
    Join Date
    Jun 2010
    Posts
    183
    BG Level
    3
    FFXI Server
    Quetzalcoatl

    I was very surprised to see that Ig'Alima is level 120, I was guessing more like 110 with defense over 800, so perhaps his defense is closer to the 600 area. I'll parse again whenever I next fight him and see if I can get a better estimate using level correction for a 120 mob. Consequently from the ADLs my group has been doing I don't think he is higher than level 100 as my low regular hits are where you'd expect them for a 2.0 cRatio, but I will pay more attention to what my exact attack is when LS does another run tomorrow to try to pinpoint a possible defense max for him.

  16. #156
    Masamune
    Guest

    Quote Originally Posted by diasetsu View Post
    I was very surprised to see that Ig'Alima is level 120, I was guessing more like 110 with defense over 800, so perhaps his defense is closer to the 600 area. I'll parse again whenever I next fight him and see if I can get a better estimate using level correction for a 120 mob. Consequently from the ADLs my group has been doing I don't think he is higher than level 100 as my low regular hits are where you'd expect them for a 2.0 cRatio, but I will pay more attention to what my exact attack is when LS does another run tomorrow to try to pinpoint a possible defense max for him.
    ... if you think you can keep all your stats constant during the whole zerg, then yes the parse might be exploitable... which i doubt.
    Same problem for checking its defense: given all the debuffs your ls members will throw at it, and all the buffs it can use on himself, sound near impossible to me to keep its defense constant so you get time to compare with your attack...

    Lastly, knowing a mob level is borderline relevant to this thread, while knowing its attack is litterally irrelevant.

  17. #157
    Requiescat in pace.
    Join Date
    Dec 2008
    Posts
    1,341
    BG Level
    6
    FFXI Server
    Lakshmi

    Quote Originally Posted by Masamune View Post
    ... if you think you can keep all your stats constant during the whole zerg, then yes the parse might be exploitable... which i doubt.
    Same problem for checking its defense: given all the debuffs your ls members will throw at it, and all the buffs it can use on himself, sound near impossible to me to keep its defense constant so you get time to compare with your attack...

    Lastly, knowing a mob level is borderline relevant to this thread, while knowing its attack is litterally irrelevant.
    You could just do it on the test server.

    Equip X defense gear, let him pound on you until you die.

    Repeat with X + Y defense gear.

    EDIT: or fana at start and just melee him until you wipe. (if you wanted to test mobs defense)

    use hundred fists and a bring a friend or two.

  18. #158
    Masamune
    Guest

    a yes maybe on test server, i don't know as i don't haev access, but still need to control each variable used in the test... usually way too much in a zerg.

  19. #159
    Masamune
    Guest

    New data collected from Pchan posted on Official Forum.

    He has also another way to modelize frequency behavior of dmg formula, bit debatable imho...

    Maybe something in there will help community ?

  20. #160
    BG Content
    Join Date
    Jul 2007
    Posts
    21,135
    BG Level
    10
    FFXI Server
    Lakshmi
    Blog Entries
    1

    I accidentally closed the tab on a longer post I was writing, so this will be shorter as it's 3AM and I'm sleepy.

    Quote Originally Posted by Motenten View Post
    Still haven't worked out a proper emergent form for the 1.0 spike, though (ie: one that doesn't explicitly rely on checking whether the pDif range can include 1.0).
    Any progress on this front? Currently we have min/max equations, but that doesn't gives us a clear way to calculate average pDIF, the only relevant quantity.

    Here is what I extracted from your Min/Max equations (I don't know if they were written clearly somewhere, and I think I used your updated constants):

    Max:
    <table cellpadding="0" cellspacing="0" height="74" width="281" border="0"><colgroup><col style="width:48pt" width="64"> <col style="mso-width-source:userset;mso-width-alt:4132;width:85pt" width="113"> </colgroup><tbody><tr style="height:15.0pt" height="20"> <td style="height:15.0pt;width:48pt" height="20" width="64">Zero to 0.5:</td> <td class="xl65" style="width:85pt" width="113">wRatio + .5</td> </tr> <tr style="height:15.0pt" height="20"> <td style="height:15.0pt" height="20">0.5 to 0.7</td> <td class="xl65">1</td> </tr> <tr style="height:15.0pt" height="20"> <td style="height:15.0pt" height="20">0.7 to 1.2</td> <td class="xl65">wRatio + .3</td> </tr> <tr style="height:15.0pt" height="20"> <td style="height:15.0pt" height="20">1.2 to 1.5</td> <td class="xl65">wRatio + wRatio*.25</td> </tr> <tr style="height:15.0pt" height="20"> <td style="height:15.0pt" height="20">1.5 to 2.625</td> <td class="xl65">wRatio + 0.375</td> </tr> <tr style="height:15.0pt" height="20"> <td style="height:15.0pt" height="20">2.625 to 3.25</td> <td class="xl65">3</td> </tr> </tbody></table>

    Min:
    <table cellpadding="0" cellspacing="0" height="93" width="318" border="0"><colgroup><col style="width:48pt" span="2" width="64"> </colgroup><tbody><tr style="height:15.0pt" height="20"> <td class="xl65" style="height:15.0pt;width:48pt" height="20" width="64">Zero to 0.38</td> <td class="xl65" style="width:48pt" width="64">0</td> </tr> <tr style="height:15.0pt" height="20"> <td class="xl65" style="height:15.0pt" height="20">0.38 to 1.25</td> <td class="xl65">wRatio*(1+152/1024)-448/1024 </td> </tr> <tr style="height:15.0pt" height="20"> <td class="xl65" style="height:15.0pt" height="20">1.25 to 1.51</td> <td class="xl65">1</td> </tr> <tr style="height:15.0pt" height="20"> <td class="xl65" style="height:15.0pt" height="20">1.51 to 2.44</td> <td class="xl65">wRatio*(1+152/1024)-755/1024</td> </tr> <tr style="height:15.0pt" height="20"> <td class="xl65" style="height:15.0pt" height="20">2.44 to 3.25</td> <td class="xl65">wRatio - 0.375</td> </tr> </tbody></table>

    Now! I still think chopping a hole in pDIF is the easiest way to solve our pDIF problem. We already know that they cap it to 3.0 and apply a secondary randomizer, so one more processing step before that isn't really a big deal. The flow would be something like this:
    1) Calculate Ratio
    2) Calculate cRatio (account for level correction)
    3) Calculate wRatio (account for crits)
    4) Choose High/Low, randomize it, and calculate qRatio (account for the 1.0 spike)
    5) Set the limits at 3.0 and 0.
    6) Apply the secondary randomizer.

    Code:
    Attack=50;
    Defense=100;
    CritRate=0.50; % 50% crit rate
    dLVL=24;
    LVLscale = 0.05; % 2H weapon
    
    wRatio = Attack/Defense - dLVL*LVLscale + (rand < CritRate);
    
    if rand > 0.5 % Up state
         qRatio = wRatio + rand*( 0.5 + 0.25*(wRatio - 1.2)*(1.2<wratio<1.5) -="" 0.125*(wratio=""> $lt; wRatio $lt; 1.5) + 0.075*(wRatio>1.5) );
         if qRatio > 0.5
               pDIF = max(qRatio - 0.3,1);
         end
    else % Down state
         qRatio = wRatio + rand*( (wRatio<2.44)*wRatio*152/1024 - 448/1024 + (wRatio>2.44)/16 )
         if qRatio > 1.25
               pDIF = max(qRatio - 267/1024,1);
         end
    end
    
    pDIF = min(pDIF,3)
    pDIF = max(pDIF,0)
    
    pDIF = pDIF*(1+rand*0.05)
    I don't have MATLAB installed on this computer, but the above should give a function with a maximum of 3, minimum of 0, frequency spike at 1, and the bounds described (assuming my math isn't messed up, which it might be at 3AM).

    Did I use the right constants? Did you already make a model for the distribution?

    Edit: Trying to do this in excel, the numbers don't quite match up. I have something wrong with the way I correct for the lower range's window.

    Edit2: Actually, there might be something wrong with the basic concept. I'm going to have to think about this some more.
    </wratio<1.5)>