Jump to content

Seizer

Members
  • Posts

    42
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Seizer's Achievements

Advanced Member

Advanced Member (3/3)

0

Reputation

  1. Better to warmup your email sender. Oh and take a few months vacation from work, so you have time to send all those emails.
  2. No-one can tell you the uptimes which such information, it's quite the same if you'd ask how far can you drive a car without telling the amount of gasoline you have. But anyway if it's just normal player spells used and pvp, i don't think there will be much other problems than the hardware requirements for supporting the clients.
  3. Well provide bugreports and make correct patches for them.
  4. Why do you post copy&pasted patches from trinity's forums and call them your own?
  5. This is my progress: Apply this to src (lynxeds patch) diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index 2e512c3..f215555 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -803,7 +803,9 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType) UnitMods unitMod = UNIT_MOD_DAMAGE_MAINHAND; - float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType); + /* difference in AP between current attack power and base value from DB */ + float att_pwr_change = GetTotalAttackPowerValue(attType) - GetCreatureInfo()->attackpower; + float base_value = GetModifierValue(unitMod, BASE_VALUE) + (att_pwr_change * GetAPMultiplier(attType, false) / 14.0f); float base_pct = GetModifierValue(unitMod, BASE_PCT); float total_value = GetModifierValue(unitMod, TOTAL_VALUE); float total_pct = GetModifierValue(unitMod, TOTAL_PCT) And then this to db: http://paste2.org/p/332174 (You can use this on other db's other than udb aswell, but the result can vary.. ) Rank = 3 multiplier result's can be anything, that multiplier is for everyone to set themselves, but normal, and rank 1 / 2 mobs worked _really_ good with this patch. Please test it quickly & tell if you find anything wrong if it
  6. http://getmangos.eu/wiki/Patch_Submission_Guidelines *edit seems to be in patch format now..
  7. The goal is to use values in this post: http://udbforums.org/index.php?topic=12856.0 Straight, so no modifications is needed, if you use the lynx's patch, use these values for test (Offcourse change dmg_multiplier if you test boss mobs and whatnot) It is no use of testing the patch with any other values, as the original dmg_multiplier change was done so there would be no need to have 4000 mindmg etc, and have real use for blizzlike values. And also offcourse, to have -ap +ap spells on mobs to work correctly.
  8. ^ I tested that a bit, and it seemed to work ok on mobs with dmg_multiplier = 1 , but if mob (eg boss) had dmg_multiplier = 30, and you used demoralizing shout, it only put down it's dmg by like 8-10%. Like i have maxdmg = 683, ap = 805, dmg_multiplier = 30, tank gear on. The mob hits me for = 8858, i use demoralizing, now it hits me for = 8325.
  9. Well i prefer to think it this way; The total DPS of mob is the combined mindmg, maxdmg, baseattacktime. Where ap, dmg are calc together (as in core atm) and it transforms to the actual DPS within the game itself, since the mob will be hitting you for 100 - 150 dmg every 1.5 seconds, thus you get the DPS from that, no need to calculate it in core and then calculate it again while doing the actual combat.. but feel free to put your thoughts in actual code, as it's much easier to understand what youre after..
  10. *UPDATE* MOST UP TO DATE PART AT BOTTOM OF POST, FROM TOP TO BOTTOM IN OLDEST TO NEWEST ORDER. BEFORE THE --------- LINE IS JUST EARLIER RESEARCH, LEFT THERE FOR COMPARISON Here is some progress on me, sorry not in patch format yet. This is how i modified the code : UnitMods unitMod = UNIT_MOD_DAMAGE_MAINHAND; [b]float att_speed = float(GetAttackTime(BASE_ATTACK))/1000.0f;[/b] float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType) [b]/ 14.0f;[/b] float base_pct = GetModifierValue(unitMod, BASE_PCT); float total_value = GetModifierValue(unitMod, TOTAL_VALUE); float total_pct = GetModifierValue(unitMod, TOTAL_PCT); float dmg_multiplier = GetCreatureInfo()->dmg_multiplier; float weapon_mindamage = GetWeaponDamageRange(BASE_ATTACK, MINDAMAGE); float weapon_maxdamage = GetWeaponDamageRange(BASE_ATTACK, MAXDAMAGE); float mindamage = ((base_value + [b](weapon_mindamage / att_speed)[/b]) * base_pct + total_value) * total_pct * dmg_multiplier; float maxdamage = ((base_value +[b] (weapon_maxdamage / att_speed[/b])) * base_pct + total_value) * total_pct * dmg_multiplier; SetStatFloatValue(UNIT_FIELD_MINDAMAGE, mindamage); SetStatFloatValue(UNIT_FIELD_MAXDAMAGE, maxdamage); Modified parts are blacked. And these values i used : mindmg = 422 maxdmg = 586 attackpower =642 baseattacktime = 2000 With this i would get - 45.8 DPS from attackpower - 211 DPS from mindmg - 293 DPS from maxdmg mindmg before any modifiers (armor etc) = 256.8 maxdmg before any modifiers (armor etc) = 338.8 What such mob should do as dmg: 425 - 566 dmg We could put 1.6 dmg_multiplier, but then it would backfire instantly as there would be a need to check every other mob aswell.. For bosses this is offcourse ok, since you can just change dmg_multiplier if dmg seems a bit odd, but for normal mobs the goal is to have dmg_multiplier = 1 and the other dmg related stats untouched, yet still achieve correct output dmg. As you can see, mindmg, maxdmg, is pretty much close the same in db than the actual dmg the mob hits in official, but the moment ap is calculated in it, it goes wrong. Maybe don't transform mindmg, maxdmg to DPS at all, let them be as values, just use AP as DPS.. (As you remember, 422 - 586 in db already have AP added to them) So then you would use code like this: UnitMods unitMod = UNIT_MOD_DAMAGE_MAINHAND; float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType) / 14.0f; float base_pct = GetModifierValue(unitMod, BASE_PCT); float total_value = GetModifierValue(unitMod, TOTAL_VALUE); float total_pct = GetModifierValue(unitMod, TOTAL_PCT); float dmg_multiplier = GetCreatureInfo()->dmg_multiplier; float weapon_mindamage = GetWeaponDamageRange(BASE_ATTACK, MINDAMAGE); float weapon_maxdamage = GetWeaponDamageRange(BASE_ATTACK, MAXDAMAGE); float mindamage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct * dmg_multiplier; float maxdamage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct * dmg_multiplier; SetStatFloatValue(UNIT_FIELD_MINDAMAGE, mindamage); SetStatFloatValue(UNIT_FIELD_MAXDAMAGE, maxdamage); Nearly the same as threads starter, but attackspeed dropped out. I don't see a reason for it being there.. Then the gathered data could be used, but after mindmg, maxdmg have been reduced by the amount of dmg AP gives to them.. * more edit.. for the interested ones : http://udbforums.org/index.php?topic=12856.0 the topic of the table, in which you could use query like : update creature_stat set mindamage = round(mindamage - (attackpower / 14)); update creature_stat set maxdamage = round(maxdamage - (attackpower / 14)); And then put those in db ------------------------------------------------------------------------------------ More edit This is the corediff diff --git a/src/game/StatSystem.cpp b/src/game/StatSystem.cpp index b22ccd0..5e3abc9 100644 --- a/src/game/StatSystem.cpp +++ b/src/game/StatSystem.cpp @@ -796,7 +796,7 @@ void Creature::UpdateDamagePhysical(WeaponAttackType attType) UnitMods unitMod = UNIT_MOD_DAMAGE_MAINHAND; - float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType); + float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType) / 14.0f; float base_pct = GetModifierValue(unitMod, BASE_PCT); float total_value = GetModifierValue(unitMod, TOTAL_VALUE); float total_pct = GetModifierValue(unitMod, TOTAL_PCT); For DB part, if you are using UDB 381 apply these (For other DB's can't really help ya now): UPDATE creature_template SET mindmg = round(mindmg * 7), maxdmg = round(maxdmg * 7) WHERE unit_class != 0; update creature_template set mindamage = round(mindamage - (attackpower / 14)) WHERE unit_class!= 0; update creature_template set maxdamage = round(maxdamage - (attackpower / 14)) WHERE unit_class!=0; Ignore elites / world bosses / etc which have higher modifier than 1, i ignore them for now. But offcourse you can test bosses (Like maexxna for example) And see how -ap debuffs work on them now, i cannot currently test this myself.. anykind of feedback would be greatly appreciated.. And see how it pays off.
  11. Actually not. We only need to know the creatures unit_class, then we can assign it it's dmg / ap / armor. For normal creatures we can have dmg_multiplier = 1 always, We just look at creatures level, and unit_class, let's say it's maxlevel = 63, unit_class = 1. Then we just look at the table data i gathered (Available in udb, content development section, stickied post) And put those values for it. As i am 90% sure that big b uses same values for samewise mobs, the dmg_multiplier only changes for elites, rare elites, world bosses. And for elite's it most likely just needs some generic query (Eg dmg_multiplier = 3 for all of em) Only bosses need to have their own modifiers, but you can get hint's off their dmg from strategy guides, or just go and try yourself. This is the reason why unit_class & dmg_multiplier was implented, no need to do dmg separetly for 27 000 mobs.
  12. " So he'll remain with 192 AP. So a -192 DemoShout will decrease his DMG by 192 => his DPS by 96. Looking at tankspot, on official -414 DemoShout is not enough to bring his AP to zero (in fact 571 is needed) and even stripping him out of his entire 571 * multiplier AP would decrease his DPS by ~ 92. So a skill that is 3 times weaker here than on the official is stronger than the official. BTW. Are mobs that do not have any class going to receive it some day? You sadi yourself, that Jormungar is a Warrior, so unit_class should be = 1" Most of this can be ignored straight away, as the mob has unit_class, thus it's dmg, ap is not relevant. Mobs will slowely get their unit_classes (this requires one to see the creature ingame to get it, thats ~26000 creatures) "Yea that amount of damage would be ridiculous,. So, you are going to fill DB with these pure values, and core forumla should be adjusted so that the output is blizzlike? If so, I'm gonna look into this tonight. For a temporary addition to my core revert, if anyone wants to play with AP buffs/debuffs working OK, I am updating my first post with a SQL "solution" which involves subjecting mindmg, maxdmg and attackpower values to minlevel." That would be the main plan, that there is no need to change anything else for mob expect dmg_multiplier. Offcourse the mindmg / maxdmg need to be lowered by the amount of ap included in it.
  13. You say DB has correct AP values for mobs 1-81 and the rest is derived, do you mean 381 or the upcoming 382? AP is not touched in 381. Expect offcourse the AP from packets added to mobs which could have it. Because on 381 e.g. Infesting Jormungar has 192 AP, and you said he should have 642. - It's unit_class is 0, thus it is not part of the dmg / ap change queries. Are you planning to utilize dmg_modifier? - Already utilized in 381, but this offcourse need spesific multipliers for spesific bosses. Are you going to adjust DB data to match current core mob damage formula or do you consider the current formula right? - My current plan is to use the pure dmg, attackpower values which i've gathered from retail, this part most likely needs core work. What me and MuuGi looked at, some mob's AP = dmg ratio was 5.2 some had 6.8 etc, it was changing. (This as in ap contribute straight to mindmg, maxdmg) Still need more research and some way to be able to use the real AP values and achieve correct dmg, and -ap spell effectiveness. Could you give me an example of min/max dmg, ap and multiplier for Maexxna that the next updatepack will use? - I have not done any actual sql work for this case yet, as there are still things to be solved in formulas and how to use the values. But as basevalues i would use these: mindmg = 509, maxdmg=683, attackpower=805. And dmg_multiplier would be 36. As looking the pictures from this link : http://www.tankspot.com/forums/f14/42342-level-80-boss-ap.html Though she does have demo shout up on all of them so dmg_multiplier can be a bit higher, like the 40 suggested here many times. But as of current, if dmg mult would be 36. The maxdmg of the boss would be (683 + 805) * 36 = 53568 on 0 armor target. So if you'd have 60% dmg reduction (Pretty much top notch armor would be needed for this) You'd still suffer 32k dmg per hit. Reading a bossguide the particular boss should be doing ~5k dmg or less in a plate. So with these values, if you can get her to do that ~5k dmg, and have the -ap debuffs working well (Btw, i assume that she should do ~7k dmg or so.. where that 5k is calculated when you have demoralizing shout up, as everyone always have.) Then it i's going to right direction.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use