![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Deserves its own topic - 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: Deserves its own topic (/showthread.php?tid=28095) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deserves its own topic - Fiel - 2010-07-23 Only open these spoilers if you can read computer code. You've been warned:
CalcDamageByWT
_calc_base_damage
Deserves its own topic - Stereo - 2010-07-23 I guess the "byWT" means Weapon Type, then. And it's still rounding down, they just added 0.5 to it. Why? Deserves its own topic - Fiel - 2010-07-23 just saw the function for max HP and max MP Both maxHP and maxMP can go up to 99,999 Deserves its own topic - JoeTang - 2010-07-23 Stereo Wrote:I guess the "byWT" means Weapon Type, then. If the resultant would "round up", by adding 0.5 to it and converting it to type int it would thus round up. If it were in a situation where it would round down, it would round down in that case still. i.e. (int)(1.51 + 0.5) = 2 (int)(1.49 + 0.5) = 1 (int)(1.51) = 1 I find it odd they have wrote separate cases for Swords instead of putting them in the same cases as Blunt Weapons and Axes. May imply there's something else going on behind the scenes. Could of course just be idiocy seeing as they did the same for Staves and Wands. Deserves its own topic - Fiel - 2010-07-23 The compiler is smarter than us. It's likely an assembly optimization. Deserves its own topic - ZakumSlaYers - 2010-07-23 if ( v4 % 1000 && v4 != 2001 ) Cygnus and Legend has it's own code ![]() Nexon is stupid, can't they just make a function to return true/false for Legend/Cygnus instead of repeating job % 1000 == OR != 1000 / 2001. I see plenty of it all over their code. Deserves its own topic - Kalovale - 2010-07-23 Way to go, data encapsulation. Deserves its own topic - Stereo - 2010-07-23 JoeTang Wrote:If the resultant would "round up", by adding 0.5 to it and converting it to type int it would thus round up. If it were in a situation where it would round down, it would round down in that case still. I mean, why add the half? Was it that important that damage formulas appear to round normally, instead of being the floor? Deserves its own topic - rhpot03 - 2010-07-23 Code: double __cdecl CalcDamage__CalcDamageByWT(int weap_type, int a2, int total_watk, int total_matk);
What's type 39, is it blade? It uses str as primary and dex as secondary though Deserves its own topic - Fiel - 2010-07-23 39 is barehands which is used for brawlers without a knuckler equipped. Deserves its own topic - kruimel0 - 2010-07-23 So this means some of the earlier discoveries of the Weapon Multipliers were wrong? Just checking =P Deserves its own topic - Erich - 2010-07-23 kruimel0 Wrote:So this means some of the earlier discoveries of the Weapon Multipliers were wrong? Just checking =P Or were rewritten. Deserves its own topic - rhpot03 - 2010-07-23 kruimel0 Wrote:So this means some of the earlier discoveries of the Weapon Multipliers were wrong? Just checking =P Erich Wrote:Or were rewritten. nope you guys were spot on, except barehands was left out Deserves its own topic - Eos - 2010-07-24 Stereo Wrote:I mean, why add the half? Was it that important that damage formulas appear to round normally, instead of being the floor? It's a fairly common convention to be a little more explicit in how the rounding works. Deserves its own topic - Fiel - 2010-07-24 What I don't like about how the client is structured is that it has a class - CalcDamage - with tower functions CalcPDamage and CalcMDamage with ifs and thens and elses and loops and function calls everywhere. You'd think they'd have delegated each skill to have a function call but noooooooo. Why make it easy? Deserves its own topic - Bomber - 2010-07-24 Argh. If I could only understand this without you explaining. •__•; Deserves its own topic - youngtse - 2010-07-24 Fiel Wrote:just saw the function for max HP and max MP Does it mean there is no more 30000 limitation? (or only % HP/MP gear can pass this limitation?) for example, HP washed 30000 and using HB = 48000 or still 30000? Thanks for the information :p Deserves its own topic - Takebacker - 2010-07-24 It means warriors with 30k base before bb will automatically have 36k base, plus +% hp equips and HB. Deserves its own topic - youngtse - 2010-07-24 Takebacker Wrote:It means warriors with 30k base before bb will automatically have 36k base, plus +% hp equips and HB. Cool, so theoretically, if you save enough AP before BB, after BB, you can even HP washed to over 30k base HP? (without 20% hp boost skill, and without any % hp equips/HB) I am wondering if nexon will release new boss that hit for over 30k damage in the future.... Deserves its own topic - AngelSL - 2010-07-24 What is ZtlSecureFuse? |