![]() |
|
[Pre-BB] MapleStory Formula Compilation - 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: [Pre-BB] MapleStory Formula Compilation (/showthread.php?tid=1033) |
[Pre-BB] MapleStory Formula Compilation - Russt - 2010-05-16 Lei Wrote:Quick question. Is 1.84 + 0.07 calculated first? So is it Acc/(((1.84 + 0.07) * D) * Avoid) - 1 or Acc/(((1.84 + (0.07 * D)* Avoid)-1. And does the number computed directly equal the percentage of hit? e.g. 1=100%, .5=50% ect. Order of operations says that 0.07*D is computed first. So multiply D by 0.07, add 1.84, and multiply by avoid. That's your denominator. And yes, 1 is 100%. Takebacker Wrote:Can we include a list of what multipliers work before what? Or a formula that shows all buff damage modifiers in order of what works before what? In time. Takebacker Wrote:Since when was the second part true? o.o I thought that was empirically determined. What's your theory? [Pre-BB] MapleStory Formula Compilation - Takebacker - 2010-05-16 I don't have a theory, i've just have never heard about that aspect of battleship before. If it wasn't that big a deal i wouldn't really care but 1 durability = 10 damage? That's a pretty huge difference. O_o Unless you mean to say that this is what happens after the balance patch, in which case that's ridiculous. [Pre-BB] MapleStory Formula Compilation - Russt - 2010-05-16 Takebacker Wrote:I don't have a theory, i've just have never heard about that aspect of battleship before. If it wasn't that big a deal i wouldn't really care but 1 durability = 10 damage? That's a pretty huge difference. O_o Unless you mean to say that this is what happens after the balance patch, in which case that's ridiculous. No, it's the same as it's always been. Elsewhere the formula is stated directly in terms of damage, so that it would be (Battleship level * 2 + (Character level - 120)) * 2000. I don't remember where the notion of durability came from (maybe the wz files?) but there was some rationale for stating it this way. Level 1 ship at level 120 has 4000 HP. About right. [Pre-BB] MapleStory Formula Compilation - Takebacker - 2010-05-16 Then why bother confusing everyone? The only thing different is multiplying by 200 or 2000 right? Might as well just make it 2000. [Pre-BB] MapleStory Formula Compilation - ZakumSlaYers - 2010-05-17 http://pastebin.com/T2qpEMir Might be useful to you guys, for figuring out the Heal formula. [Pre-BB] MapleStory Formula Compilation - Russt - 2010-05-17 Mm. That tells me that the max and min INT multipliers are 0.8 and 0.2 respectively. That's interesting, because the ones I have written up are 1.2 and 0.3, but it's probably equivalent, because the ratio is constant. I wonder why it's that way, though. Can you look for where the variable v44 is used later on? [Pre-BB] MapleStory Formula Compilation - ZakumSlaYers - 2010-05-17 Lucida Wrote:Mm. That tells me that the max and min INT multipliers are 0.8 and 0.2 respectively. That's interesting, because the ones I have written up are 1.2 and 0.3, but it's probably equivalent, because the ratio is constant. I wonder why it's that way, though. Sure, I'll get the magic calculation for you too. Edit : Here's the full magic attack calculation, I've renamed some of the variables so as to make it more readable. http://pastebin.com/vGpazJmp Also, for people who are figuring out the keydown skill formula (big bang) do check out : Code: if ( tKeyDown )Where tKeyDown is the total time in millis held and v61 is the calculated damage. This code acts as the damage multiplier. [Pre-BB] MapleStory Formula Compilation - Shidoshi - 2010-05-17 ZakumSlaYers Wrote:Also, for people who are figuring out the keydown skill formula (big bang) do check out : From this it seems like at max charge (1000ms) you'd be doing 110% of your original range. Well more power to charge skills then, lol. [Pre-BB] MapleStory Formula Compilation - JoeTang - 2010-05-17 Shidoshi Wrote:From this it seems like at max charge (1000ms) you'd be doing 110% of your original range. Well more power to charge skills then, lol. This looks like an older model where Big Bang was 2000ms, as I see a 99 999 damage cap. Taking a quick glance, it appears v45 = (double)v50->nMAD * ((double)basicstat->nINT * 0.5 + v75 * v75 + v76 * 3.3) * 0.01; Where v76 is either: v67 = v47 % 0x989680; v76 = (a - v48) * (double)v67 * 0.000000100000010000001 + v48; or MATK, v48 = MATK a = v48 * Mastery * 0.9 (60% Mastery = 0.6) v47 = aRandom[v49]; v49 = nIdx % 7; I'm not sure if there's another use for % other than modulus in C. nIDx appears to be incremented on occasion but starts defined at 0. 0x989680 = 10 000 000 Thus, I assume it's a random number finding value of some sorts. Minimum Damage = BA * (INT * 0.5 + (MATK*0.058)² + MATK * 3.3) /100 Maximum Damage = BA * (INT * 0.5 + (MATK*0.058)² + (Mastery * 0.9 * MATK) * 3.3) /100 TEST: 999 INT 1999 MATK Current Formula: Min: 174.17703 Max: 204.82837 This: Min: 175.04265364 Max: 205.38747364 We were close boys. There's a whole slew of other pomegranate to rummage through though, but I see some neat 0.5 and 0.6s in Defense. [Pre-BB] MapleStory Formula Compilation - Fiel - 2010-05-17 In C, "%" used as a mathematic operator only means modulus. The only other time it's used is in printing statements ("%d") [Pre-BB] MapleStory Formula Compilation - ZakumSlaYers - 2010-05-18 It's from brazil MapleStory v.8, should be around GMS v.55 ~ v.58
[Pre-BB] MapleStory Formula Compilation - Russt - 2010-05-18 So for Heal we have... Skill * 0.01 * (INT * 0.8 * 1.5 + LUK) * (0.3 + 1/NumTargets) * Magic / 200 Which I believe is equivalent to our original: Max = (INT * 1.2 + LUK) * Magic / 1000 * TargetMultiplier Yeah. My TargetMultiplier is 5 times the value of (0.3 + 1/NumTargets), so that cancels out the denominators. Also I think I must apologize for the magic formula... that particular one was on Sleepywood a long time ago, but I doubted it because of the 0.058. Guess not. Edit: As for the postprocessing: (Damage * Element - rand(0.5, 0.6) * MDEF) * nMGuardUp * Crit * KeyDown. That is all. Edit: As for the preprocessing:
Spoiler
Just curious... could you get similar code for physical attacks? [Pre-BB] MapleStory Formula Compilation - ZakumSlaYers - 2010-05-19 Physical attack code is slightly longer, you might want to copy it on a C compiler for syntax highlighting so that it can be read easily. http://pastie.org/private/lq0c82nk9sutdkynaetg http://pastie.org/private/kggijovue2psvqdbcxftjw This doesn't include skills for pirates, Evan and Aran. I can try getting those from MapleStory.exe when I am free. Although the chances are low because the exe doesn't come with .PDB file, for the method name and such unlike the leaked Brazil MS official server file. [Pre-BB] MapleStory Formula Compilation - Fiel - 2010-06-06 Here's the meso explosion formula taken by IDA Pro. It's not pretty. Maybe Slayers can clear it up for us? --edited out-- [Pre-BB] MapleStory Formula Compilation - ZakumSlaYers - 2010-06-10 Cleaner version http://pastie.org/private/gngzhqabwgiugtfu7wnbuq @Fiel I think you'll need to link your WvsGame.exe with WvsGame.pdb file, it includes most of the method name and structures. I'm on IDA pro 5.6 btw . [Pre-BB] MapleStory Formula Compilation - Fiel - 2010-06-10 Please let me know if this is incorrect Even cleaner version, thanks Pepsi: Code: aMoneyAmountDbl = (double)anMoneyAmount;So, assuming you dropped 10 mesos at level 1 ME: ratio = (10 * 0.82 + 28) / 5300; ratio = 0.0068301886792453 Next part is just mastery. We'll assume 0.5 for kicks. Damage = ((50 * SkillData->nX) * 0.5 * 0.0068301886792453); Damage = (int)((50 * 500) * 0.5 * 0.0068301886792453); Damage = 85; And max damage would be double this, assuming perfect results, so the damage range for 10 mesos at level 1 ME is 85 ~ 170 Now let's assume we drop 10 mesos at level 30 ME. The ratio variable would be the same. The only thing that would change here is the SkillData->nX value, which is 1000 at level 30: Damage = (int)((50 * 1000) * 0.5 * 0.0068301886792453); Damage = 170 ~ 341 ------------- Now let's test the 1000 vs. 1001 and see which is really better. Let's assume level 30 ME, and you drop 1 bag with 999 mesos. ratio = (1000 * 0.82 + 28) / 5300 ratio = 0.16 Damage = ((50 * 1000) * 0.5 * 0.1598452830188679 Damage = 4000 ~ 8000 Now with 1001 mesos ratio = 1001 / (1001 + 5250); ratio = 0.1601343784994401 Damage = ((50 * 1000) * 0.5 * 0.1601343784994401 Damage = 4003 ~ 8006 So yeah, 1001 mesos is slightly better. But is it more efficient? Graphing out this formula yields the following (note the following is MINIMUM damage/bag). Also note that this is ONLY CALCULATING ONE BAG OF MESOS. ![]() So you get a lot of benefit from putting mesos up until around 5 - 6k, up until which you start losing mesos/damage ratio massively. But where is the best ratio? What is the most efficient mesos/damage ratio? [Pre-BB] MapleStory Formula Compilation - ZakumSlaYers - 2010-06-11 Pickpocket formula : http://pastebin.com/UGt7uE66 [Pre-BB] MapleStory Formula Compilation - 50504724 - 2010-06-15 From the physical attack code i find many formula we don't knows. it seems very interesting. Whether it is useful or not, I'll list it here.... ================================ Line 170~179,321~333: v148 = acc * 100 / ( dLevel * 10 + 255 ) physical acc rate=P( random (0.7, 1.3) * v148 >= mobEva ) =P( mobEva / v148 <= random (0.7, 1.3 ) ) =( 1.3 - mobEva / v148 ) / ( 1.3 - 0.7 ) =( 1.3 - mobEva / v148 ) / 0.6 =( 1.3 - mobEva * ( dLevel * 10 + 255 )/ acc/100 ) / 0.6 =(130 - mobEva * ( dLevel * 10 + 255 )/ acc ) / 60 finally... if acc rate = 0 minAcc= mobEva * ( dLevel * 10 + 255 ) / 130 if acc rate = 1 fullAcc= mobEva * ( dLevel * 10 + 255 ) / 70 ================================ fixDamage skill has it's unique acc formula... the same to #691 ================================ Line 786~830: wand/staff is same as the one-hand axe ================================ Line 364~366-----> if ( nSkillID != 3201003 && nSkillID != 3101003 ) { //some code } Line 549~564: some strange formula...deal with action?.. ( dex * 3.4 + str ) * watt / 200 ================================ Line 333~352,609,652~ darkness has a 80% base Miss chance Blast and rush and the 2nd damage of brandish has a change of 60% to force the same action as swing. ================================ correct ================================ Claw (punching): Min = (LUK * 0.1* 0.9 + STR + DEX) * WeaponAttack / 150 from all formula we have got is that..mastery*0.9.. while I have already confirmed in CMS... also get some other formula. post here~~ ==Prostrate Attack Damage:== Claw/Dagger: Max = ( luk + str + dex ) * watt / 200 Min = (luk * 0.9 * 0.1 + str + dex ) * watt / 200 Gun: Max = ( dex + str ) * watt / 200 Min = ( dex * 0.9 * 0.1 + str ) * watt / 200 (watt not include bullet) Bow: Max = ( dex * 3.4 + str ) * watt / 150 Min = ( dex * 3.4 * 0.9 * 0.1 + str ) * watt / 150 Others: Max = ( str + dex ) * watt / 200 Min = ( str * 0.9 * 0.1 + dex ) * watt / 200 ==Punch damage:== Gun: Max = ( dex + str ) * watt / 200 Min = ( dex * 0.9 * 0.1 + str ) * watt / 200 (watt not include bullet) Bow: Max = ( dex * 3.4 + str ) * watt / 150 Min = ( dex * 3.4 * 0.9 * 0.1 + str ) * watt / 150 not test xBow.. ================================ Charge/tap damages for Big Bang/Pierce/Screw Punch: ( 10 + 90 * keyDownTime / fullChargeTime )% as a modifier.so no Charge as 10% and full Charge as 100%. ================================ Demolition ignores defense ================================ Aran skill Modifier : (36+64 / mobCount)% Assassinate : darksighttime / 3 + 1 ================================ Line 435,453~472: something about Hero Combo: Hero Combo is multiplied before critical. another word,it is multiplied by base skill%. eg: Lv.30 brandish + 10 combos=260% * 190% = 4.94 if critical(lv.30 sharpeyes,no critical rings)= 260% * 190% + 140% = 6.34 Correct me plz if my thought is wrong. [Pre-BB] MapleStory Formula Compilation - Russt - 2010-06-15 Great. Thanks 50504724! I'll deal with the Meso Explosion stuff later. [Pre-BB] MapleStory Formula Compilation - 50504724 - 2010-06-17 I tested the final attack and element charge formula with my friend's paladin. here's some data. Lv:170+ str:835 dex:98 watt:19 weapon:one-handed sword normal attack:361.304~653.22 monster data: Lv:35 pdd:100 weak in fire skills data: Slash Blast:130% base damage final attack:60% chance ,follow a 250% attack. Ice charge:Lv30, 110% damage fire charge:Lv30, 120% damage ============================== First I test the slash blast FA without charge but I have not seen a number more than 1000. In order of damage calculate it seems to be that: damage after mob'defence: Min:361.304-100*0.6=301.304 Max:653.22-100*0.5=603.22 and I record my maxDamage of FA of each order of mob: order:1 2 3 4 5 maxDmg:990 330 108 36 10 while I didn't test more than few minutes But it's obvious...the right formula is seem to be: 2 * (1/3) ^ OrderHit ============================== Next..I test the element charge which puzzled me rather a long time. From formulas we have had now,a full version of physical damage formula is ( base damage * (1 - 0.01 * dLevel) * (Element (dis)advantage modifier) * other modifier A - mobPDD * 0.6(0.5 )) * (skill percent% * skill modifier (+ critical if exists%)) * other modifier B the data "120%" of fire charge is A or B? I test it with the formula I find out #697, it works very well prostrate attack damage : 52.1455~88.635 when I use Fire Charge, I get a max Damage 109. It fits the formula A: (52.1455~88.635 * 1.5 * 1.2 - 100 * 0.6(0.5)) = 33.8619~109.543 not B 52.1455~88.635 * 1.5 - 100 * 0.6(0.5)) * 1.2 = 21.8619~99.543so everything is clear~~~ |