Southperry.net
Lucky Seven Formula Issue - Printable Version

+- Southperry.net (https://www.southperry.net)
+-- Forum: Maplestory (https://www.southperry.net/forumdisplay.php?fid=15)
+--- Forum: Game Mechanics (https://www.southperry.net/forumdisplay.php?fid=33)
+--- Thread: Lucky Seven Formula Issue (/showthread.php?tid=38574)

Pages: 1 2 3 4


Lucky Seven Formula Issue - JoeTang - 2011-03-01

Can't make heads or tails of that. Oh well.


Lucky Seven Formula Issue - Jellyflower - 2011-03-04

I looked through the function and there are a lot of things I don't understand. It does seem like something's off with hermits, not sure if it affects shadowers and dual blades as well, maybe if someone would check. I know non crit damage is fine on a hero and bowmaster seems fine but I haven't done extending testing on him. Somehow L7 and TT are doing 10% more damage than theoretical, could someone check that with avenger and perhaps a low level rogue prior to 2nd job to isolate that it's not other skills (mastery, shadow resistance) that are affecting it?


Lucky Seven Formula Issue - Stereo - 2011-03-04

What am I looking for on the low level rogue? I have a lv.32 with 3 Mastery...
Range: 236-761 -> 62 w.atk 168 luk 29 dex 7 str, if I'm counting correctly. 62/100*(4*168+29)*1.75 does give 761.
L7(170%): 881 ~ 1224 vs. Jr. Boogies observed (non-crits)



Lucky Seven Formula Issue - Jellyflower - 2011-03-04

That's strange already, 761 * 1.7 = 1293.7, so after 10% pdrate reduction, it should be 1164. Is L7 % formula even correct?

Does throwing a normal star show correct damage at least? Should be like 684 ish max.


Edit: I looked through the code and I have no idea what they're doing to the damage multiplier, with 0.1, 0.2, 1.8, 0.6, 0.4 flying everywhere depending on weapon types, I'm guessing it has to do with claws, daggers, and kataras. I don't think there will be a clear answer unless someone knows the exact steps they're doing there.


Lucky Seven Formula Issue - Stereo - 2011-03-04

Is L7 correct? Hmm.

skill/4001344/weapon 47
skill/4001344/common/mpCon 8+2*d(x/6)
skill/4001344/common/damage 90+4*x
skill/4001344/common/bulletCount 2
skill/4001344/common/maxLevel 20
Data does seem right... but I don't know if 47 is the same as 'claw' or not, not my area of expertise.

Regular stars: 213 ~ 678 observed (on Jr. Boogies and Stumps)
Considering I have 31% mastery this is fairly close to the full range, with theoretically 212 ~ 684 as you say.


Highest L7 I screenshotted /
[Image: zMg6B.jpg]
1827 = 1218 * 1.5 so that's a ridiculously lucky shot...

Further testing -> 1226 non-crit, 1833 crit.

880-1226 = 71.8% mastery, so actual limits should be something like 858 ~ 1226, or 880 ~ 1257
The fact that I haven't seen any hits in that extra ~20-30 range leads me to believe it's not uniform.
It's just a kinda impression I get, but the hits doing over 1210 are much rarer than 1200~1209, even though I should be hitting up to 1219 and that would mean they're uniformly likely.



For contrast, I'm attacking the Dojo Mano: 25% PDR. It's the only Dojo mob lower level than myself.
746 ~ 1019
(theor: 679-970)

Dojo Stumpy: as low as 605 damage... it's also 25 PDR, but 3 levels above me.
What the hell is that? 3 levels = 25% less damage?



Lucky Seven Formula Issue - Jellyflower - 2011-03-04

I think you'll have a better understanding if you can crack the code. It calls for PAD just for thieves, which lead to me to believe that is why certain shadower's skills bypass PDrate altogether or does higher than expected. Remember how people think meso explosions can crit, technically they can't, but the formula is just not what you think with all the codes jumping from label to label. I think the programmer just overlooked a lot of things, and I believe the same thing applies to corsairs. Have someone test to see if their damage is consistent with attack range * whatever skill gun skills they use.

v263 looks like the multiplier and see how oddly they adjust them with no pattern whatsoever. They do quite a bit of zswap and other things to with that variable. From the looks of it thieves get like additional damage due to unknown inner codes. Only applies to thieves except for dual blades, and perhaps pirates using guns.


Lucky Seven Formula Issue - Stereo - 2011-03-04

All I can conclude about the code right now is that the decompiler spaghettified it too much for me to deal with. I'm trying to replace some of the v26x vars with real names right now... I'll try to factor out the GOTOs next.


Lucky Seven Formula Issue - Hanabira.Kage - 2011-03-04

Jellyflower Wrote:I think you'll have a better understanding if you can crack the code. It calls for PAD just for thieves, which lead to me to believe that is why certain shadower's skills bypass PDrate altogether or does higher than expected. Remember how people think meso explosions can crit, technically they can't, but the formula is just not what you think with all the codes jumping from label to label. I think the programmer just overlooked a lot of things, and I believe the same thing applies to corsairs. Have someone test to see if their damage is consistent with attack range * whatever skill gun skills they use.

v263 looks like the multiplier and see how oddly they adjust them with no pattern whatsoever. They do quite a bit of zswap and other things to with that variable. From the looks of it thieves get like additional damage due to unknown inner codes. Only applies to thieves except for dual blades, and perhaps pirates using guns.

If it was intentional then it could have been a "Lucky Hit" kind of mechanism, which works alongside Critical Rate to give extra damage at a probability based on LUK? :f6:

Yeah. The coding probably got nexon'ed.



Lucky Seven Formula Issue - Stereo - 2011-03-05

Isn't this nice? Triple Throw's got its own little section of code:
Code:
v114 = skillID == 4121007 || skillID == 14111005;
v114 is whether the attack is Triple Throw or not. First one's a Night Lord's triple throw, second is a Night Walker's.


A lot of this code is using 'goto's...
Code:
LABEL_185:
              weaponMultiplier = v119 * (double)valuePAD * 0.01;
LABEL_186:
[...]
Okay, this first bit is where the "valuePAD" variable's multiplied with... something. I'm still working on var names. "weaponMultiplier" may be a misnomer - it's actually more like the current damage output. Sort of.

Anyway, where do LABEL_185 and 186 come from?
Code:
if ( !v114 )
              goto LABEL_186;
            HIDWORD(randomSeed) = _ZtlSecureFuse((const __int32 *const )(a3 + 72), *(_DWORD *)(a3 + 80));
            a12 = _ZtlSecureFuse((const __int32 *const )(a3 + 72), *(_DWORD *)(a3 + 80));
            v121 = (double)a12 * 1.4;
            v122 = v264 % 7;
            *(double *)v260 = v121;
            randomSeed = (double)SHIDWORD(randomSeed);
            ++v264;
            v120 = v244[v122];
            if ( v121 > randomSeed )
            {
              zswap(v260, (int)&randomSeed);
              v121 = *(double *)v260;
              goto LABEL_183;
            }
            if ( v121 != randomSeed )
            {
LABEL_183:
              HIDWORD(v123) = 0;
              LODWORD(v123) = v120 % (unsigned int)((char *)&loc_98967F + 1);
              v121 = v121 + (randomSeed - v121) * (double)v123 * 0.000000100000010000001;
            }
            v119 = v121 * 6.0;
            goto LABEL_185;
If the attack is not Triple Throw, go to 186 (don't include this valuePAD)
If the attack is Triple Throw, do a bunch of other stuff, end up with a value for v119 (what is it, the special TT multiplier?)

I am starting to get a handle on how this horrible code is put together, though. I think Lucky 7 has its own special code, too. It's just all scrambled together weird.





Interesting Discovery
Lucky 7 and TT have the same code snippet, except one key difference:
Lucky 7 uses a 5.5 multiplier - TT uses a 6.0 multiplier. Still trying to work out what this actually means, but maybe TT by its nature will do ~9% extra damage.



Lucky Seven Formula Issue - Stereo - 2011-03-05

Okay, this is stupid, but I think it deserves a separate post. Couple notes from interpreting the PDamage calculation.

L7 and TT don't have 70% mastery - they have 71.4285% mastery (it goes on... it's 5/7 exactly, due to how it's calculated)

Most weapons do from (Mastery ~ 1.0) times damage.
L7/TT do from (1.0 ~ 1.4) times damage.

This helps explain why my L7 range is 880 ~ 1226 or so - that's only about 3-4 points off with 71.43% mastery.



Lucky Seven Formula Issue - 50504724 - 2011-03-05

right~
L7: luk * pad * rand(1,1.4) * 5.5 * 0.01= base damage
but I find that L7 get "ignorePdpr" from TT
here's some test numbers.......

luk:745 dex:108(does nothing) att:74
L7(lv.8):122%
TT(lv.20):10% ignorePdpr
MobTongueDr:10%

Damage:
L7(no crit):3369~4712
calculate:745 * 74 * 1.4 * 5.5 * 0.01 = 4245
4245 * 1.22 = 5178.9
5178.9 * 0.9 = 4661 ← ??
5178.9 * 0.91 = 4712.8 ← 4712 pppppppperfect!!
4712.8 / 1.4 * 1= 3366 ← 3369
......................................................
this 0.91 = 1-0.1*0.9.


Lucky Seven Formula Issue - Stereo - 2011-03-05

Oh good, a formula that makes sense.

On my noob thief, 168 luk 62 w.atk:
168 * 62 * (1, 1.4) * 5.5 * 0.01 * 1.7 * 0.9 = 877 ~ 1227
Compared to an actual range 880-1226 observed, that's pretty good. And shows that the 10% ignore PDR is def. coming from Triple Throw.



Lucky Seven Formula Issue - Fiel - 2011-03-05

Lucky 7:
Max Damage: (LUK * WATK * 1.4 * 5.5) / 100 * L7_Damage_Multiplier * (1.0 - (PDRate / 100))
Min Damage: (LUK * WATK * 1.0 * 5.5) / 100 * L7_Damage_Multiplier * (1.0 - (PDRate / 100))

Triple Throw:
Max Damage: (LUK * WATK * 1.4 * 6.0) / 100 * TT_Damage_Multiplier * (1.0 - ((PDRate - (PDRate * TT_mobpdpR / 100) / 100))
Min Damage: (LUK * WATK * 1.0 * 6.0) / 100 * TT_Damage_Multiplier * (1.0 - ((PDRate - (PDRate * TT_mobpdpR / 100) / 100))

TT_Damage_Multiplier = 160 + 3 * level
TT_mobpdpR = RoundUp(level / 2)
TT_maxLevel = 30

L7_Damage_Multiplier = 90 + 4 * level
L7_maxLevel = 20

Do I have that right?

If the above formulas are true, then it looks like Night Lords will be major LUK whoring considering that 1 WATK is just as good as 1 LUK.

Pump DEX high
Get +% LUK on 120 gear
Profit


Lucky Seven Formula Issue - Fiel - 2011-03-05

Assuming the above formulas are correct, I created a calculator:

http://www.happychinchilla.info/luckyseven.html

Lemme know how the number crunching works.


Lucky Seven Formula Issue - Shidoshi - 2011-03-05

Fiel Wrote:If the above formulas are true, then it looks like Night Lords will be major LUK whoring considering that 1 WATK is just as good as 1 LUK.
It doesn't really change anything, WATK is better to have because it's the lower number in a A*B type formula. Before we simply had another small and insignificant number going along with LUK.


Lucky Seven Formula Issue - Fiel - 2011-03-05

Say what?

We went from (assuming max level)

Lucky 7:
Max Damage: 1.5 * (LUK * 5.0) * WeaponAttack / 100
Min Damage: 1.5 * (LUK * 2.5) * WeaponAttack / 100

to:

Max Damage: 1.7 * (LUK * 7.7) * WeaponAttack / 100 * (1.0 - (PDRate / 100))
Min Damage: 1.7 * (LUK * 5.5) * WeaponAttack / 100 * (1.0 - (PDRate / 100))

Triple Throw:
Max Damage: 1.5 * (LUK * 5.0) * WeaponAttack / 100
Min Damage: 1.5 * (LUK * 2.5) * WeaponAttack / 100

to:

Max Damage: 2.5 * (LUK * 8.4) * WeaponAttack / 100 * (1.0 - ((PDRate - (PDRate * TT_mobpdpR / 100) / 100))
Min Damage: 2.5 * (LUK * 6.0) * WeaponAttack / 100 * (1.0 - ((PDRate - (PDRate * TT_mobpdpR / 100) / 100))

I'd call this new formula vastly superior compared to the old one. The built in mastery is tighter and the damage scales more rapidly.


Lucky Seven Formula Issue - Shidoshi - 2011-03-05

I'm comparing the BB formula for thieves that we thought worked for all skills compared to this new finding.


Lucky Seven Formula Issue - Fiel - 2011-03-05

1.75 * 4 = 7, not 8


Lucky Seven Formula Issue - Stereo - 2011-03-05

Other things of note in the code, which I'm not sure were known.

- Boomerang Step:
Press to start timer. Has a max charge time.
Multiplier is equal to 100% + 50%*(seconds since timer started), up to the max
- Charge Blow:
Uses its own input, a30, for skill percent, if a30 is non-zero. I actually have no idea what this is for.
- Charge Attacks:
Multiplied by 0.9*(charge time / max charge time) + 0.1

When you're using physical attacks with a claw, but not
- Boomerang Step
- Ninja Storm
- Vampire
- Crazy Skull? (what is this attack anyway, a bomb?)
Damage is multiplied by 0.4. I'm not sure what exactly this applies to since there aren't many other punching attacks you can use with a claw. They've removed the option for L7/TT to ever punch...

Similarly, for weapon type 49 (guns), if you're not using 4 particular attacks,
- another skull thing (more bombs?), in Gunslinger
- and one Mechs have
- air strike
- torpedo
- cannon
And you're doing attack animations other than 111 and 112, you do 0.4x damage
- except if you're doing attack animations 94 and 95, in which case you do 0.72x damage

Then, for type 41 and 50 (two hand axe and... ???)
All melee attacks do 0.1x damage. I'm really not sure what this is referring to. Unless the weapon type IDs have moved.



Lucky Seven Formula Issue - Jellyflower - 2011-03-05

Gunslinger's skill is grenade I think, the one where you hold down to toss.

The 0.1x damage might be crouching down (poke). 50 might be barefists, and 41 might refer to daggers?




And silly Fiel, secondary stats never give that much of a boost anyway after big bang since % gear is aimed towards primary stats. The ratio for 1att to luk is still going to be total luk/total att. It just means dex won't do any night lords any good but avenger and drain, etc.

Oh and dividing1.75 claw multiplier, you get 4.8 for TT and 4.4 for L7. Which makes sense since we used to think it's 4*luk + dex but it's really 4.8*luk for TT and 4.4*luk for L7, which would account for the ~10%-20% damage difference for those skills. I hate night lords again.