Fehler #15586
geschlossen[Spellmechanik] Muliplikation/Addition von Auren und Talenten.
Eine Möglichkeit zur Differenzierung zwischen multiplikativer und additiver Berechnung von Bonusauren wurde hinzugefügt.
Beschreibung
Nachdem wir (Corrius und ich) uns über den Initaldmg von Mondfeuer der Eule unterhielten und die Auswirkung der Glyphe "Mondfeuer" erörterten, die den Initaldmg um 90% verringert, stieß Corrius in einer gemütlichen Abendstunde etwas sehr interessantes.
Wir versuchten uns den Dmg zu errechnen, doch anhand von Offilogs, dem Addon Drdamage und einem flauen Gefühl, sahen wir, dass etwas nicht stimmig war.
Captain Corrius setzte sich direkt an seinen Supercomputer und suchte verzweifelt nach der Lösung unseres Problems. Dabei stieß er wohl auf einen der gewaltigsten Bugs seit dem Aufspielen von 3.3.5a auf RG.
Nach langer Suche fand er es. Den größten Bug aller Zeiten, wie manch einer sagen würde und schickte mir folgendes:
"(Patch 3.1.3)It doesn't just change the base damage! it changes after spellpower, additive with other effects. See below"
Schockiert fragte ich: Additive? und er schickte mir folgendes:
" By Horsekebab (3,066 – 9·38) on 2010/05/16 (Patch 3.3.3)
Glyph of Moonfire will affect both base damage and the damage increase from spell power as explained below.
The damage increase is additive. This means that all the additive damage increasing talents and buffs will be added together before multiplied with the base damage and bonus damage (separately). If the bonus damage from the glyph was multiplicative, the damage would be a flat 75% higher, which is not the case.
Based on hours of research, I can provide the following information:
Moonfury is additive
Genesis is additive
Improved Moonfire is additive
Glyph of Moonfire (DoT effect) is additive
Glyph of Moonfire (DD effect) is additive
Earth and Moon (debuff) is multiplicative
Earth and Moon (passive damage) is multiplicative
Master Shapeshifter (Moonkin Form) is multiplicative
Which leaves us with this calculation:
Base damage of one Moonfire tick * (1 + Moonfury (3/3) damage bonus + Genesis (2/5) damage bonus + Improved Moonfire (2/2) damage bonus + Glyph of Moonfire damage bonus) * (1 + Earth and Moon (3/3) (debuff) damage increase) * (1 + Earth and Moon (3/3) (passive damage) damage increase) * (1 + Master Shapeshifter (2/2) (Moonkin Form) damage increase) = a total of 145% damage increase "
Demnach sollte zB:
Der Initaldmg von Moonfire (3046 ZM) mit Glyphe so aussehen, ohne Fde:
Min-Dmg: 406*(1+0,1+0,1-0,9)*(1+0,06)*(1+0,04)+3046*0,1495*(1+0,1+0,1-0,9)*(1+0,06)*(1+0,04) = 294
Max-Dmg: 476*(1+0,1+0,1-0,9)*(1+0,06)*(1+0,04)+3046*0,1495*(1+0,1+0,1-0,9)*(1+0,06)*(1+0,04) = 318
und nicht wie auf RG:
für Min-Dmg mit Glyphe zB: (406+0,1495*550)*1,1*1,1*1,04*1,06*0,1= 65,12452804 betragen.
Nun gilt es herauszufinden, werte Mitstreiter, welche Talente und Auren uÄ additiv oder multiplikativ berechnet werden müssten für sämtliche Klassen.
Lange Rede kurzer Sinn / Roleplayer-modus off:
Die meisten machen zu viel Dmg, weil Talente etc multiplikativ auf RG wirken und auf dem Offi nur zum Teil multiplikativ wirkten.
In den folgenden Tickets sind alle additiven Sachen zu bearbeiten.
Untergeordnete Tickets 11 (0 offen — 11 geschlossen)
Zugehörige Tickets
Von Kuschkusch vor etwa 9 Jahren aktualisiert
- Status wurde von Bestätigt zu Neu geändert
Von Mollestus vor etwa 9 Jahren aktualisiert
Tzz für Moonkin stehen da doch die Beispiele :P
Von Mollestus vor etwa 9 Jahren aktualisiert
- Status wurde von Neu zu Bestätigt geändert
Von Rushor vor etwa 9 Jahren aktualisiert
- Status wurde von Bestätigt zu Testbereit geändert
TESTCOMMIT:
damit sollte alles additiv sein, wenn das geht fixe ich weiter mit nem spellcostumattribute
gilt für effekte mit void AuraEffect::HandleModDamagePercentDone(AuraApplication const* aurApp, uint8 mode, bool apply) const
classspelloverrides und glyphen erstmal nicht beachten
Von Mollestus vor etwa 9 Jahren aktualisiert
- Status wurde von Testbereit zu In Bearbeitung geändert
- Zugewiesen an wurde auf Rushor gesetzt
Nope iwas ist mit der ZM Skalierung falsch.
Inital Dmg von Moonfire mit 0 ZM mit Moonfury (3/3) damage bonus + Improved Moonfire (2/2) damage bonus
Min Dmg=406*(1+0,1+0,1)+ 0= 487
Max Dmg=476*(1+0,1+0,1)+ 0= 571
Das passte soweit.
Mit 10k ZM und gleichen Talenten:
Min Dmg=406*(1+0,1+0,1)+ 10000*0,1495*(1+0,1+0,1)= 2281
Max Dmg=476*(1+0,1+0,1)+ 10000*0,1495*(1+0,1+0,1)= 2372
Aufm master-Server hatte ich
Min: 2332 und Max: 2416
Falscher ZM-Koeffizient auf RG?
Edit: Ok, scheinbar falscher ZM-Koeffizient für den Initial-Dmg :D
Edit2: Selbst mit dem Koeffizienten von 0,1515 stimmt der Dmg nicht un bleibt zu hoch. Sprich, es ist scheinbar weiterhin multiplikativ.
Von Rushor vor etwa 9 Jahren aktualisiert
- Status wurde von In Bearbeitung zu Testbereit geändert
- Zugewiesen an
Rushorwurde gelöscht
wie gesagt der testcommit gilt nur für spells mit // 79 SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
d.h für spells wie: https://gist.github.com/Rushor/0fd56f0676c2a7ae303f
alles mit Aura Id 108 (SPELL_AURA_ADD_PCT_MODIFIER kannst du erstmal vergessen (ich weis das das fast alle spells betrifft) daher ur mit spells testen aus der obrigen liste ausm gist
Von Mollestus vor etwa 9 Jahren aktualisiert
So: Waffe mit 3,6 Speed (0,257 AP-Koeffizient) und Min Dmg von 895 und Max Dmg von 1344 und 30055 AP
Folgende Auren genommen: Arcane Instability 15060 +3% Dmg und 2H-Weapon-Specialization 12712 + 6% Dmg
Sollte, wenn es multiplikativ ist auf der Puppe mit 38,26% Dmg Reduce wegen Rüstung:
Wenn multiplikativ:
Min Dmg = 895*1,03*1,06+ 0,257*30055 *1,03*1,06 = 9410,371593 --> 9410,371593*0,6174 = 5809,9634215182
Max Dmg = 1344*1,03*1,06+ 0,257*30055 *1,03*1,06 = 9900,589793 --> 9900,589793*0,6174 = 6112,6241381982
Wenn additiv:
Min Dmg = 895*(1+0,03+0,06)+ 0,257*30055 *(1+0,03+0,06) = 9394,85715 --> 9394,85715 *0,6174 = 5800,38480441
Max Dmg = 1344 *(1+0,03+0,06)+ 0,257*30055 *(1+0,03+0,06) = 9884,26715 --> 9884,26715*0,6174 = 6102,54653841
Auf dem Master min Dmg=5803 und max Dmg= 6101
Es scheint additiv zu sein :>
Und bitte nochmal drüber schauen.
OT: Scheiße zu testen xD
Von Mollestus vor etwa 9 Jahren aktualisiert
- Status wurde von Testbereit zu In Bearbeitung geändert
- Zugewiesen an wurde auf Rushor gesetzt
Von Rushor vor etwa 9 Jahren aktualisiert
Mollestus schrieb:
OT: Scheiße zu testen xD
da wird noch jede menge mehr shit auf dich zukommen :D
Von Mollestus vor etwa 9 Jahren aktualisiert
Nebenbei kann man dann zB Two-Handed Weapon Specialization https://db.rising-gods.de/?search=Two-Handed+Weapon+Specialization multiplikativ stellen, nach deinem "neuen" System? :)
Du hast ja alles in https://gist.github.com/Rushor/0fd56f0676c2a7ae303f additiv gestellt.
Von Rushor vor etwa 9 Jahren aktualisiert
ja, das nehme ich ja auch wieder zurück es war nur nen test um zu schauen, ob die funktion überhaupt eine additive berechnung durchführt
im nächsten schritt müsste die berechung von:
case SPELL_AURA_ADD_FLAT_MODIFIER:
case SPELL_AURA_ADD_PCT_MODIFIER:
auf additiv gestellt werden mit nem check auf ein costumattribute der spellids
da die berechnung von SPELL_AURA_ADD_FLAT_MODIFIER + SPELL_AURA_ADD_PCT_MODIFIER anders ist als bei SPELL_AURA_MOD_DAMAGE_PERCENT_DONE ist das ganze etwas komisch :/
Von Rushor vor etwa 9 Jahren aktualisiert
- Status wurde von In Bearbeitung zu Testbereit geändert
- Zugewiesen an
Rushorwurde gelöscht
neuer test um zu schauen, ob die berechnung für SPELL_AURA_ADD_FLAT_MODIFIER + SPELL_AURA_ADD_PCT_MODIFIER nun additiv ist
vorerst sollten nun alle mods additiv berechnet werden
also dann mal mit dem: Inital Dmg von Moonfire mit 0 ZM mit Moonfury (3/3) damage bonus + Improved Moonfire (2/2) damage bonus
ausprobieren
Von Mollestus vor etwa 9 Jahren aktualisiert
- Status wurde von Testbereit zu In Bearbeitung geändert
- Zugewiesen an wurde auf Rushor gesetzt
Inital Dmg von Moonfire mit 0 ZM mit Moonfury (3/3) damage bonus + Improved Moonfire (2/2) damage bonus
Min Dmg=406*(1+0,1+0,1)+ 0= 487
Max Dmg=476*(1+0,1+0,1)+ 0= 571
Wenn additiv.
Multiplikativ:
Min Dmg= 491,26
Max Dmg= 575,96
Min Dmg getestet: 492 und Max Dmg 576
Sieht multiplikativ aus
Mit 10k ZM und gleichen Talenten:
Additiv:
Min Dmg=406*(1+0,1+0,1)+ 10000*0,1515*(1+0,1+0,1)= 2305,2
Max Dmg=476*(1+0,1+0,1)+ 10000*0,1515*(1+0,1+0,1)= 2389,2
Multiplikativ:
Min Dmg=406*1,1*1,1+ 10000*0,1515*1,1*1,1= 2324,41
Max Dmg=476*1,1*1,1+ 10000*0,1515*1,1*1,1= 2409,11
Aufm master-Server hatte ich
Min: 2322 und Max: 2408
Also weiterhin multiplikativ :x
Von Rushor vor etwa 9 Jahren aktualisiert
- Status wurde von In Bearbeitung zu Testbereit geändert
- Zugewiesen an
Rushorwurde gelöscht
neuer versuch:
alles in template <class T> T Player::ApplySpellMod(uint32 spellId, SpellModOp op, T &basevalue, Spell* spell)
mit SPELLMOD_DAMAGE
is nun additiv
server restarten nicht vergessen
Von Mollestus vor etwa 9 Jahren aktualisiert
- Status wurde von Testbereit zu In Bearbeitung geändert
- Zugewiesen an wurde auf Rushor gesetzt
Auf ein Neues :D
Rechnungen stehen oben. Max Dmg sollt reichen.
0 ZM:
571 Check
10k ZM:
2389 Check
Sieht wunderschön aus, sprich additiv :D
Von Rushor vor etwa 9 Jahren aktualisiert
- Status wurde von In Bearbeitung zu Ready geändert
- Zugewiesen an
Rushorwurde gelöscht - Update Text Deutsch aktualisiert (Vergleich)
einzelne spellcostumflags dann in den anderen tickets
Von Daejiv vor fast 9 Jahren aktualisiert
- Status wurde von Live zu Testbereit geändert
- Zugewiesen an wurde auf Mollestus gesetzt
Von Mollestus vor fast 9 Jahren aktualisiert
- Status wurde von Testbereit zu Ready geändert
- Zugewiesen an
Mollestuswurde gelöscht
Max Dmg=476*(1+0,1+0,1)+ 10000*0,1515*(1+0,1+0,1)= 2389,2 Additiv
Max Dmg=476*1,1*1,1+ 10000*0,1515*1,1*1,1= 2409,11 Multiplikativ
+ Glyphe:
Max Dmg=476*(1+0,1+0,1-0,9)+ 10000*0,1515*(1+0,1+0,1-0,9)= 597,3 Additiv
Max Dmg=476*1,1*1,1*0,1+ 10000*0,1515*1,1*1,1*0,1= 240,915 Multiplikativ
Aufm Master:
Ohne Glyphe: 2389
Mit Glyphe: 596
Je 1k Casts.
Scheint zu passen.
Von Rushor vor mehr als 8 Jahren aktualisiert
Bedeutung Live:
Der Bug wurde erfolgreich behoben und befindet sich auf dem Spielserver. Sollte der Fehler weiterhin bestehen sollte ein neues Ticket ( https://redmine.rising-gods.de/projects/live/issues/new ) erstellt werden. Anmerkungen in dem alten abgewiesenen oder live genommenen Ticket werden ignoriert und gelöscht.
Von Sockentester vor etwa 7 Jahren aktualisiert
- Beziehung mit Fehler #26420: Waffenschaden verrechnung wurde hinzugefügt