Du bist nicht eingeloggt.

B2B-Realm Status

Social Networks

B2B auf Twitter
B2B auf Facebook

Bugtracker

21

Montag, 14. August 2017, 13:48

kann man nicht bewusst auf nen hastewert gehen, der einem genau diese situation bewusst sehr oft herbeiführt, um diese mechanik/diesen bug (idk, obs nen bug ist --> http://wowwiki.wikia.com/wiki/Ignite_(old)) auszunutzen? müsste eigentlich ne feuerball-casttime knapp unter 2 sekunden für nötig sein, mithilfe von kleinen cast-stops --> wahrscheinlich nur mit cooldowns erreichbar.
Mit der Sockelung von vor circa zwei bis drei Jahren (alles gelb, zweimal grün) kommt man im KR auf 1,97s, mit Drums und Skull zusätzlich auf ungefähr 1,8s.
Nur mit Skull und Drums ist man auch schon nah an den 2s dran, eigentlich müsste da doch mit entsprechender Range, also Flugzeit, was zu machen sein :D und dann wäre es tatsächlich wichtig, dass man beide Bugs einfügt, denn aufgrund der simplen Rota passiert das Munching eigentlich nur am Anfang bei einem Magier beim Versengen stacken, der "Bonustick" (so wie ich es jetzt halbwegs verstanden hab >.< ) allerdings dann immer, wenn 2 Crits aufeinander folgen bei entsprechender Castzeit. Bei einer Critline nicht zu vernachlässigender Bonus-Schaden!

Giev extra-DPS!
Lecaya - Cynath - Dira - Nanalalla - Schlafgut - Mütze - Raupy - Belp - Fritzlimo

firespell

Kämpfer

Beiträge: 662

Registrierungsdatum: 08.01.2012

Wohnort: Krefeld

Hauptcharakter: Realign

  • Private Nachricht

22

Montag, 14. August 2017, 14:03

/push ja man, wenn schon entzünden ändern dann richtig <3 :D
- Imaginaerumxtheone aus dem Hause Hausrechts, Erster seines Namens, König der Analen und der letzten Menschen, Khal des Salzmeeres, Lord von Steinard, Beschwörer der Hydra, Vorherseher hypothetischer Leaderboard-Einträge und Beschützer des Arena Anmelders.









Die Dirnen sind gewitzt; Sie akzeptieren den Taler als Entgelt.


MS never dice

oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

23

Montag, 14. August 2017, 20:12

passiert das Munching eigentlich nur am Anfang bei einem Magier beim Versengen stacken

Beim Versengen stacken am Anfang passiert überhaupt kein Munching, das kann nur auftreten wenn während der Flugzeit eines Feuerballs/Pyros ein anderer Feruerspell critet. Möglich wäre Munching z.B. beim Erneuern des Versengen-Stacks, wenn der Versengen-crit vor dem davor losgeflogenen Feuerball-crit eintrifft (Feuerball flugzeit > Versengen castzeit, z.B. beim Erneuern im KR). In dem Fall würden die 40% des Versengen-Schadens verschluckt werden.
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."

24

Dienstag, 15. August 2017, 00:43

passiert das Munching eigentlich nur am Anfang bei einem Magier beim Versengen stacken

Beim Versengen stacken am Anfang passiert überhaupt kein Munching, das kann nur auftreten wenn während der Flugzeit eines Feuerballs/Pyros ein anderer Feruerspell critet. Möglich wäre Munching z.B. beim Erneuern des Versengen-Stacks, wenn der Versengen-crit vor dem davor losgeflogenen Feuerball-crit eintrifft (Feuerball flugzeit > Versengen castzeit, z.B. beim Erneuern im KR). In dem Fall würden die 40% des Versengen-Schadens verschluckt werden.
Okok, das hat mich nicht so interessiert, weil das ja eher weniger häufig auftritt :D als Versengen-Stack-Magier bestimmt wichtig, dann da ein Auge drauf zu haben, aber ja grundsätzlich vermutlich weniger ausschlaggebend für die End-DPS als der andere Bug?
Lecaya - Cynath - Dira - Nanalalla - Schlafgut - Mütze - Raupy - Belp - Fritzlimo

Beiträge: 870

Registrierungsdatum: 05.05.2012

Hauptcharakter: Navia

Gilde: Bloodline

  • Private Nachricht

25

Dienstag, 15. August 2017, 14:57

naja, wenn das versengen kurz NACH dem feuerball eintrifft, wird wahrscheinlich das feuerball-ignite gemuncht --> ist halt die frage, wie das mit dem timing ist und wie "einfach" der andere bug auszunutzen ist. im prinzip muss man den neuen feuerball dann ja ancasten, wenn der erste feuerball einschlägt. kann mir vorstellen, dass das je nach abstand zum boss und castzeit eher sogar zum dps-verlust führt als zum gewinn, wenn man bewusst versucht, den bug zu nutzen, da man caststops drin hat.

oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

26

Mittwoch, 16. August 2017, 05:00

naja, wenn das versengen kurz NACH dem feuerball eintrifft, wird wahrscheinlich das feuerball-ignite gemuncht

Wenn der Server da nicht gerade irgendwie einen Schluckauf hat, nein. Der Schaden (und damit das Ignite) vom Versengen kommt ja genau in dem Moment am Ziel an, in dem der Cast durch ist. Die einzige Möglichkeit, das Ignite vom Feuerball mit Versengen zu Munchen, wäre wenn der Feuerball während der Berechnung des Versengen-Ignites (Größenordnung wenige ms) einschlägt.

Um die Blizzlike-Mechanik zu abusen reicht es, wenn das Ignite während der Flugzeit (Größenordnung ~1s) tickt.

kann mir vorstellen, dass das je nach abstand zum boss und castzeit eher sogar zum dps-verlust führt als zum gewinn, wenn man bewusst versucht, den bug zu nutzen, da man caststops drin hat.

Das ist natürlich wieder abhängig von der Critchance. Ich hab dafür mal auf die Schnelle einen Simulator zusammengebastelt, der 30s Feuerballspam abspult.

Mal ein paar Beispiele, jeweils 100% Crit, 1s Flugzeit, 2000 noncrit Schaden:

2.1s casttime

Spoiler Spoiler

https://madscientists.eu/IgniteSim/IgniteSim?c=2100

(c)asttime = 2100
(f)lighttime = 1000
(cr)it chance = 100.0%
(d)mg = 2000

002,100 (cast) Fireball crit
003,101 (crit) Fireball 3000
003,101 (ignite apply) Fireball 1200
004,201 (cast) Fireball crit
005,102 (tick) Ignite Tick 1 600
005,202 (crit) Fireball 3000
005,202 (ignite refresh) Fireball 2400
006,302 (cast) Fireball crit
007,202 (tick) Ignite Tick 1 1200
007,302 (crit) Fireball 3000
007,302 (ignite refresh) Fireball 3600
008,402 (cast) Fireball crit
009,303 (tick) Ignite Tick 1 1800
009,403 (crit) Fireball 3000
009,403 (ignite refresh) Fireball 4800
010,503 (cast) Fireball crit
011,403 (tick) Ignite Tick 1 2400
011,503 (crit) Fireball 3000
011,503 (ignite refresh) Fireball 6000
012,603 (cast) Fireball crit
013,504 (tick) Ignite Tick 1 3000
013,604 (crit) Fireball 3000
013,604 (ignite refresh) Fireball 7200
014,704 (cast) Fireball crit
015,604 (tick) Ignite Tick 1 3600
015,704 (crit) Fireball 3000
015,705 (ignite refresh) Fireball 8400
016,804 (cast) Fireball crit
017,705 (tick) Ignite Tick 1 4200
017,805 (crit) Fireball 3000
017,805 (ignite refresh) Fireball 9600
018,905 (cast) Fireball crit
019,806 (tick) Ignite Tick 1 4800
019,905 (crit) Fireball 3000
019,906 (ignite refresh) Fireball 10800
021,005 (cast) Fireball crit
021,906 (tick) Ignite Tick 1 5400
022,006 (crit) Fireball 3000
022,006 (ignite refresh) Fireball 12000
023,106 (cast) Fireball crit
024,007 (tick) Ignite Tick 1 6000
024,107 (crit) Fireball 3000
024,107 (ignite refresh) Fireball 13200
025,206 (cast) Fireball crit
026,107 (tick) Ignite Tick 1 6600
026,207 (crit) Fireball 3000
026,207 (ignite refresh) Fireball 14400
027,307 (cast) Fireball crit
028,208 (tick) Ignite Tick 1 7200
028,308 (crit) Fireball 3000
028,308 (ignite refresh) Fireball 15600
029,407 (cast) Fireball crit
030,308 (tick) Ignite Tick 1 7800
030,408 (crit) Fireball 3000
030,408 (ignite refresh) Fireball 16800
031,508 (cast) Fireball crit
032,409 (tick) Ignite Tick 1 8400
032,509 (crit) Fireball 3000
032,509 (ignite refresh) Fireball 18000
034,509 (tick) Ignite Tick 1 9000
036,509 (tick) Ignite Tick 2 9000
036,509 (ignite fade)

DD: 45000
Ticks: 81000
--------------------
Sum: 126000
--------------------
Bonus: 63000


1.9s casttime

Spoiler Spoiler

https://madscientists.eu/IgniteSim/IgniteSim?c=1900

(c)asttime = 1900
(f)lighttime = 1000
(cr)it chance = 100.0%
(d)mg = 2000

001,900 (cast) Fireball crit
002,901 (crit) Fireball 3000
002,901 (ignite apply) Fireball 1200
003,801 (cast) Fireball crit
004,801 (crit) Fireball 3000
004,802 (ignite refresh) Fireball 2400
005,701 (cast) Fireball crit
006,702 (crit) Fireball 3000
006,702 (ignite refresh) Fireball 3600
007,602 (cast) Fireball crit
008,603 (crit) Fireball 3000
008,603 (ignite refresh) Fireball 4800
009,502 (cast) Fireball crit
010,503 (crit) Fireball 3000
010,503 (ignite refresh) Fireball 6000
011,403 (cast) Fireball crit
012,404 (crit) Fireball 3000
012,404 (ignite refresh) Fireball 7200
013,304 (cast) Fireball crit
014,305 (crit) Fireball 3000
014,305 (ignite refresh) Fireball 8400
015,204 (cast) Fireball crit
016,205 (crit) Fireball 3000
016,205 (ignite refresh) Fireball 9600
017,105 (cast) Fireball crit
018,106 (crit) Fireball 3000
018,106 (ignite refresh) Fireball 10800
019,005 (cast) Fireball crit
020,006 (crit) Fireball 3000
020,006 (ignite refresh) Fireball 12000
020,906 (cast) Fireball crit
021,907 (crit) Fireball 3000
021,907 (ignite refresh) Fireball 13200
022,806 (cast) Fireball crit
023,807 (crit) Fireball 3000
023,807 (ignite refresh) Fireball 14400
024,707 (cast) Fireball crit
025,708 (crit) Fireball 3000
025,708 (ignite refresh) Fireball 15600
026,608 (cast) Fireball crit
027,608 (crit) Fireball 3000
027,608 (ignite refresh) Fireball 16800
028,508 (cast) Fireball crit
029,509 (crit) Fireball 3000
029,509 (ignite refresh) Fireball 18000
030,409 (cast) Fireball crit
031,409 (crit) Fireball 3000
031,410 (ignite refresh) Fireball 19200
033,410 (tick) Ignite Tick 1 9600
035,410 (tick) Ignite Tick 2 9600
035,410 (ignite fade)

DD: 48000
Ticks: 19200
--------------------
Sum: 67200
--------------------
Bonus: 0


3.0s casttime

Spoiler Spoiler

https://madscientists.eu/IgniteSim/IgniteSim?c=3000

(c)asttime = 3000
(f)lighttime = 1000
(cr)it chance = 100.0%
(d)mg = 2000

003,001 (cast) Fireball crit
004,002 (crit) Fireball 3000
004,002 (ignite apply) Fireball 1200
006,002 (tick) Ignite Tick 1 600
006,001 (cast) Fireball crit
007,002 (crit) Fireball 3000
007,002 (ignite refresh) Fireball 2400
009,003 (tick) Ignite Tick 1 1200
009,002 (cast) Fireball crit
010,003 (crit) Fireball 3000
010,003 (ignite refresh) Fireball 3600
012,003 (tick) Ignite Tick 1 1800
012,003 (cast) Fireball crit
013,003 (crit) Fireball 3000
013,004 (ignite refresh) Fireball 4800
015,004 (tick) Ignite Tick 1 2400
015,003 (cast) Fireball crit
016,004 (crit) Fireball 3000
016,004 (ignite refresh) Fireball 6000
018,004 (tick) Ignite Tick 1 3000
018,004 (cast) Fireball crit
019,004 (crit) Fireball 3000
019,004 (ignite refresh) Fireball 7200
021,005 (tick) Ignite Tick 1 3600
021,004 (cast) Fireball crit
022,005 (crit) Fireball 3000
022,005 (ignite refresh) Fireball 8400
024,005 (tick) Ignite Tick 1 4200
024,005 (cast) Fireball crit
025,005 (crit) Fireball 3000
025,006 (ignite refresh) Fireball 9600
027,006 (tick) Ignite Tick 1 4800
027,005 (cast) Fireball crit
028,006 (crit) Fireball 3000
028,006 (ignite refresh) Fireball 10800
030,006 (tick) Ignite Tick 1 5400
030,006 (cast) Fireball crit
031,007 (crit) Fireball 3000
031,007 (ignite refresh) Fireball 12000
033,007 (tick) Ignite Tick 1 6000
035,007 (tick) Ignite Tick 2 6000
035,008 (ignite fade)

DD: 30000
Ticks: 39000
--------------------
Sum: 69000
--------------------
Bonus: 27000


Beim reinen Feuerballspam mit 100% crit macht die Entfernung auch keinen Unterschied, das wird erst interessant wenn noch Versengen mit eingestreut wird. Interessant ist vor allem, dass mit 3.0s casttime noch knapp mehr Schaden rum kommt als mit 1.9s, natürlich nur mit total unrealistischen 100% crit.

Wer selbst mal mit den Werten rumspielen will - die Berechnungen laufen in Echtzeit, ein Request dauert also grob 35s.
Die Variablen werden alle über die Request-Parameter gesteuert, für 2.1s Cast, 0,7s Flugzeit, 50% Crit und 2500 noncrit Feuerbälle also z.B.
https://madscientists.eu/IgniteSim/Ignit…00&cr=50&d=2500

Mit den verlinkten Werten hatte ich nach ein paar Versuchen Unterschiede von "fast nichts" bis ca. 30% Overall, müsste also im Schnitt etwa die Größenordnung des Fixes sein, der vor ein paar Tagen aufgespielt wurde - wenn mein Simulator nicht noch irgendwo falsch rechnet.

Spoiler Spoiler

(c)asttime = 2100
(f)lighttime = 700
(cr)it chance = 50.0%
(d)mg = 2500

002,101 (cast) Fireball hit
002,802 (hit) Fireball 2500
004,201 (cast) Fireball hit
004,902 (hit) Fireball 2500
006,302 (cast) Fireball crit
007,003 (crit) Fireball 3750
007,003 (ignite apply) Fireball 1500
008,403 (cast) Fireball crit
009,004 (tick) Ignite Tick 1 750
009,103 (crit) Fireball 3750
009,103 (ignite refresh) Fireball 3000
010,503 (cast) Fireball crit
011,104 (tick) Ignite Tick 1 1500
011,204 (crit) Fireball 3750
011,204 (ignite refresh) Fireball 4500
012,604 (cast) Fireball crit
013,205 (tick) Ignite Tick 1 2250
013,305 (crit) Fireball 3750
013,305 (ignite refresh) Fireball 6000
014,705 (cast) Fireball hit
015,305 (tick) Ignite Tick 1 3000
015,405 (hit) Fireball 2500
016,805 (cast) Fireball crit
017,305 (tick) Ignite Tick 2 3000
017,306 (ignite fade)
017,506 (crit) Fireball 3750
017,506 (ignite apply) Fireball 4500
018,906 (cast) Fireball crit
019,507 (tick) Ignite Tick 1 2250
019,606 (crit) Fireball 3750
019,607 (ignite refresh) Fireball 6000
021,006 (cast) Fireball crit
021,607 (tick) Ignite Tick 1 3000
021,707 (crit) Fireball 3750
021,707 (ignite refresh) Fireball 7500
023,107 (cast) Fireball crit
023,708 (tick) Ignite Tick 1 3750
023,808 (crit) Fireball 3750
023,808 (ignite refresh) Fireball 9000
025,207 (cast) Fireball crit
025,808 (tick) Ignite Tick 1 4500
025,908 (crit) Fireball 3750
025,908 (ignite refresh) Fireball 10500
027,308 (cast) Fireball hit
027,909 (tick) Ignite Tick 1 5250
028,009 (hit) Fireball 2500
029,408 (cast) Fireball crit
029,909 (tick) Ignite Tick 2 5250
029,909 (ignite fade)
030,109 (crit) Fireball 3750
030,110 (ignite apply) Fireball 6750
031,509 (cast) Fireball crit
032,110 (tick) Ignite Tick 1 3375
032,210 (crit) Fireball 3750
032,210 (ignite refresh) Fireball 8250
034,210 (tick) Ignite Tick 1 4125
036,210 (tick) Ignite Tick 2 4125
036,210 (ignite fade)

DD: 51250
Ticks: 46125
--------------------
Sum: 97375
--------------------
Bonus: 29625
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »oggy« (12. Mai 2018, 11:57)


CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

27

Mittwoch, 16. August 2017, 08:11

Mir fallen hier direkt 2 Fehler auf:


[...]
(c)asttime = 3000
(f)lighttime = 1000
(cr)it chance = 100.0%
(d)mg = 2000

003,001 (cast) Fireball crit
004,002 (crit) Fireball 3000
004,002 (ignite apply) Fireball 1200
006,002 (tick) Ignite Tick 1 600
006,001 (cast) Fireball crit
007,002 (crit) Fireball 3000
007,002 (ignite refresh) Fireball 2400 1800 - sind noch 600 übrig, also 600 + 1200
009,003 (tick) Ignite Tick 1 1200 900
009,002 (cast) Fireball crit
010,003 (crit) Fireball 3000
010,003 (ignite refresh) Fireball 3600 2100
012,003 (tick) Ignite Tick 1 1800 1050
[...]
Bonus: 27000 0 - hier passiert das, was auch ohne den Bug passiert, also kein Bonus


Ich denke genau das hier wird der Fall sein:
kann mir vorstellen, dass das je nach abstand zum boss und castzeit eher sogar zum dps-verlust führt als zum gewinn, wenn man bewusst versucht, den bug zu nutzen, da man caststops drin hat.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »CodeRaider« (16. August 2017, 08:18)


oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

28

Mittwoch, 16. August 2017, 11:00

Mir fallen hier direkt 2 Fehler auf:


[...]
(c)asttime = 3000
(f)lighttime = 1000
(cr)it chance = 100.0%
(d)mg = 2000

003,001 (cast) Fireball crit
004,002 (crit) Fireball 3000
004,002 (ignite apply) Fireball 1200
006,002 (tick) Ignite Tick 1 600
006,001 (cast) Fireball crit
007,002 (crit) Fireball 3000
007,002 (ignite refresh) Fireball 2400 1800 - sind noch 600 übrig, also 600 + 1200
009,003 (tick) Ignite Tick 1 1200 900
009,002 (cast) Fireball crit
010,003 (crit) Fireball 3000
010,003 (ignite refresh) Fireball 3600 2100
012,003 (tick) Ignite Tick 1 1800 1050
[...]
Bonus: 27000 0 - hier passiert das, was auch ohne den Bug passiert, also kein Bonus


Das Beispiel mit 3s/1s ist blöderweise recht anfällig für race conditions, aber lt. Timestamp ist der cast in beiden Fällen 1ms vor dem Tick fertig (auch wenn der fertige cast in log weiter unten steht), also müssten die Werte so stimmen. 2.9s/1s wäre wohl weniger Fehleranfällig, aber ich wollte das auch mal für einen Mage komplett ohne Haste durchgerechnet haben.

Bei 3s macht aber auch die Entfernung wieder einen Unterschied:
https://madscientists.eu/IgniteSim/Ignit…0&cr=100&d=2000 -> Sum: 69000 Bonus: 27000
https://madscientists.eu/IgniteSim/Ignit…0&cr=100&d=2000 -> Sum: 41996 Bonus: -4 (Rundungsfehler)
Beim reinen Feuerballspam mit 100% crit macht die Entfernung auch keinen Unterschied <- falsch


Dass das Log mal nicht ganz in der richtigen Reihenfolge ist liegt an der Art wie ich die Einträge aus den einzelnen Objekten abhole (alle 100ms werden die lokalen buffer geleert und rausgelogt), aber dafür ist da jeweils der Timestamp dran ;)
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »oggy« (12. Mai 2018, 11:58)


CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

29

Mittwoch, 16. August 2017, 11:13

Um mal den Optimalfall darzustellen:

Also mit Castzeit von knapp unter 2 Sekunden und Flugzeit von knapp über 0 Sekunden:

cast time = 2 - ε, delay = 2ε, ε > 0

0: Caststart 1
2 - ε: Crit 1 1000 dmg, Ignite 1 400 dmg
2 + ε: Dmg 1 and Ignite 1 applied
2 + ε: Caststart 2
4: Crit 2 1000 dmg, Ignite 2 400 + 400
4 + ε: Ignite 1 Tick 1 200 dmg
4 + 2ε: Dmg 2 and Ignite 2 applied, Ignite 1 removed
4 + 2ε: Caststart 3
6 + 1ε: Crit 3 1000 dmg, Ignite 3 800 + 400
6 + 2ε: Ignite 2 Tick 1 400 dmg
6 + 3ε: Dmg 3 and Ignite 3 applied, Ignite 2 removed
...

Was dabei auffällt (abgesehen davon, dass das unrealistisch genau ist und von 100% crit ausgeht):
1. Man verliert mit jedem Cast ε > 0 Sekunden Zeit, d.h. man hat effektiv 2 Sekunden Castzeit, nicht 2 - ε Sekunden, heißt also 1 - (2 - ε) / 2 Schadensverlust (z.B. für ε = 0.1: 1 - 1.9 / 2 = 0.05 = 5% Schadensverlust)
2. Man benötigt einen sehr präzisen Hastewert, also nix Icy Veins oder KR.
3. Man muss extrem nah am Boss stehen, um so wenig Zeit zu verlieren.
4. Der jeweils erste Tick eines dieser Ignites ist "gratis".
5. Man verliert den angesammelten Extraschaden sobald man einmal nicht crittet.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

30

Mittwoch, 16. August 2017, 11:19

Das Beispiel mit 3s/1s ist blöderweise recht anfällig für race conditions, aber lt. Timestamp ist der cast in beiden Fällen 1ms vor dem Tick fertig (auch wenn der fertige cast in log weiter unten steht), also müssten die Werte so stimmen.

Ich glaube du verstehst das Problem nicht: Du rechnest immer den vollen Wert des Ignites drauf, aber eigentlich kommt da nur die Hälfte drauf - in diesem Beispiel würde sich das auch Blizzlike nicht anders verhalten als hier. Das Ignite hat nicht zwischen Ende des Casts und Auftreffen auf dem Gegner getickt, was ja der Grund für den Extraschaden ist.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

31

Mittwoch, 16. August 2017, 11:37

Das Ignite hat nicht zwischen Ende des Casts und Auftreffen auf dem Gegner getickt, was ja der Grund für den Extraschaden ist.

006,002 (tick) Ignite Tick 1 600
006,001 (cast) Fireball crit
007,002 (crit) Fireball 3000
007,002 (ignite refresh) Fireball 2400

6,001s ist vor 6,002s, wenn auch knapp. (cast) bedeutet cast ist fertig, feuerball fliegt los.
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."

oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

32

Mittwoch, 16. August 2017, 12:03

Um mal den Optimalfall darzustellen:

Also mit Castzeit von knapp unter 2 Sekunden und Flugzeit von knapp über 0 Sekunden:

Optimalfall ist Castzeit knapp über 2s und genug Flugzeit. Von den 100% crit beispielen haut die Version mit 2.1s deutlich mehr dmg raus als die Variante mit 1.9s.

Das ist auch bei kurzer Flugzeit so, aber längere Flugzeit schadet nicht:
https://madscientists.eu/IgniteSim/Ignit…00&cr=50&d=2000 9/16 crits

Spoiler Spoiler

(c)asttime = 1980
(f)lighttime = 100
(cr)it chance = 50.0%
(d)mg = 2000

001,981 (cast) Fireball crit
002,082 (crit) Fireball 3000
002,082 (ignite apply) Fireball 1200
003,962 (cast) Fireball crit
004,062 (crit) Fireball 3000
004,062 (ignite refresh) Fireball 2400
005,942 (cast) Fireball hit
006,042 (hit) Fireball 2000
006,063 (tick) Ignite Tick 1 1200
007,922 (cast) Fireball crit
008,023 (crit) Fireball 3000
008,023 (ignite refresh) Fireball 2400
009,903 (cast) Fireball crit
010,004 (crit) Fireball 3000
010,004 (ignite refresh) Fireball 3600
011,883 (cast) Fireball hit
011,984 (hit) Fireball 2000
012,004 (tick) Ignite Tick 1 1800
013,864 (cast) Fireball crit
013,965 (crit) Fireball 3000
013,965 (ignite refresh) Fireball 3000
015,844 (cast) Fireball hit
015,945 (hit) Fireball 2000
015,965 (tick) Ignite Tick 1 1500
017,825 (cast) Fireball crit
017,926 (crit) Fireball 3000
017,926 (ignite refresh) Fireball 2700
019,806 (cast) Fireball hit
019,906 (hit) Fireball 2000
019,927 (tick) Ignite Tick 1 1350
021,786 (cast) Fireball crit
021,887 (crit) Fireball 3000
021,887 (ignite refresh) Fireball 2550
023,767 (cast) Fireball hit
023,867 (hit) Fireball 2000
023,888 (tick) Ignite Tick 1 1275
025,747 (cast) Fireball crit
025,848 (crit) Fireball 3000
025,848 (ignite refresh) Fireball 2475
027,728 (cast) Fireball hit
027,829 (hit) Fireball 2000
027,849 (tick) Ignite Tick 1 1237
029,708 (cast) Fireball hit
029,809 (hit) Fireball 2000
029,849 (tick) Ignite Tick 2 1237
029,849 (ignite fade)
031,689 (cast) Fireball crit
031,790 (crit) Fireball 3000
031,790 (ignite apply) Fireball 1200
033,791 (tick) Ignite Tick 1 600
035,792 (tick) Ignite Tick 2 600
035,792 (ignite fade)

DD: 41000
Ticks: 10799
--------------------
Sum: 51799
--------------------
Bonus: -1


https://madscientists.eu/IgniteSim/Ignit…00&cr=50&d=2000 9/15 crits

Spoiler Spoiler

(c)asttime = 2020
(f)lighttime = 100
(cr)it chance = 50.0%
(d)mg = 2000

002,021 (cast) Fireball crit
002,121 (crit) Fireball 3000
002,122 (ignite apply) Fireball 1200
004,041 (cast) Fireball hit
004,122 (tick) Ignite Tick 1 600
004,142 (hit) Fireball 2000
006,062 (cast) Fireball crit
006,123 (tick) Ignite Tick 2 600
006,123 (ignite fade)
006,162 (crit) Fireball 3000
006,163 (ignite apply) Fireball 1800
008,082 (cast) Fireball crit
008,163 (tick) Ignite Tick 1 900
008,183 (crit) Fireball 3000
008,183 (ignite refresh) Fireball 3000
010,103 (cast) Fireball crit
010,184 (tick) Ignite Tick 1 1500
010,204 (crit) Fireball 3000
010,204 (ignite refresh) Fireball 4200
012,204 (tick) Ignite Tick 1 2100
012,124 (cast) Fireball hit
012,224 (hit) Fireball 2000
014,205 (tick) Ignite Tick 2 2100
014,205 (ignite fade)
014,144 (cast) Fireball crit
014,245 (crit) Fireball 3000
014,245 (ignite apply) Fireball 3300
016,165 (cast) Fireball hit
016,245 (tick) Ignite Tick 1 1650
016,265 (hit) Fireball 2000
018,185 (cast) Fireball crit
018,246 (tick) Ignite Tick 2 1650
018,246 (ignite fade)
018,286 (crit) Fireball 3000
018,286 (ignite apply) Fireball 2850
020,206 (cast) Fireball hit
020,290 (tick) Ignite Tick 1 1425
020,306 (hit) Fireball 2000
022,226 (cast) Fireball crit
022,291 (tick) Ignite Tick 2 1425
022,291 (ignite fade)
022,327 (crit) Fireball 3000
022,327 (ignite apply) Fireball 2625
024,328 (tick) Ignite Tick 1 1312
024,247 (cast) Fireball crit
024,347 (crit) Fireball 3000
024,348 (ignite refresh) Fireball 3825
026,267 (cast) Fireball hit
026,348 (tick) Ignite Tick 1 1912
026,368 (hit) Fireball 2000
028,288 (cast) Fireball hit
028,348 (tick) Ignite Tick 2 1912
028,348 (ignite fade)
028,388 (hit) Fireball 2000
030,308 (cast) Fireball crit
030,409 (crit) Fireball 3000
030,409 (ignite apply) Fireball 1200
032,414 (tick) Ignite Tick 1 600
034,414 (tick) Ignite Tick 2 600
034,414 (ignite fade)

DD: 39000
Ticks: 20286
--------------------
Sum: 59286
--------------------
Bonus: 9486



Was dabei auffällt (abgesehen davon, dass das unrealistisch genau ist und von 100% crit ausgeht):
1. Man verliert mit jedem Cast ε > 0 Sekunden Zeit, d.h. man hat effektiv 2 Sekunden Castzeit, nicht 2 - ε Sekunden, heißt also 1 - (2 - ε) / 2 Schadensverlust (z.B. für ε = 0.1: 1 - 1.9 / 2 = 0.05 = 5% Schadensverlust)
2. Man benötigt einen sehr präzisen Hastewert, also nix Icy Veins oder KR.
3. Man muss extrem nah am Boss stehen, um so wenig Zeit zu verlieren.
4. Der jeweils erste Tick eines dieser Ignites ist "gratis".
5. Man verliert den angesammelten Extraschaden sobald man einmal nicht crittet.

Auch mit 50% critchance machen die Extraticks noch einiges aus, s.o.
1. Man braucht eine Casttime oberhalb von 2s. Wenn man knapp an der Schwelle ist und mit anderem Gear/Sockeln Haste gegen Spell/Crit tauschen kann kann sich das schon lohnen.
2. Je nach Hastewert. Wenn KR oder IV die Casttime von 2.4s auf 2.1s drückt hat man nichts verloren.
3. Nein.
4. Bei zwei Crits ja, bei drei Crits schon mehr. Je länger die Critserie desto mehr Extraschaden.
5. Man verliert die Hälfte (einen Tick) des gesammelten Extraschadens bei einem noncrit. Erst beim zweiten noncrit ist das Ignite abgelaufen / der angesammelte Extraschaden weg.
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »oggy« (12. Mai 2018, 12:03)


CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

33

Mittwoch, 16. August 2017, 12:54

Optimalfall ist Castzeit knapp über 2s und genug Flugzeit. Von den 100% crit beispielen haut die Version mit 2.1s deutlich mehr dmg raus als die Variante mit 1.9s.

Nochmal: Was dein Simulator rechnet ist falsch; auch für die blizzlike Version.

Zu 1-3 brauche ich dementsprechend nicht viel zu sagen, denn das alles basiert bei dir auf der Annahmen völlig falscher Werte.

Zu 4.: Ja, klar, das war dabei aber auch nicht die Aussage.
Zu 5.: Nein, du verlierst alles, da der erste Tick ja der gewonnene Zusatzschaden ist (wenn du den nicht durch lässt erhälst du exakt das gleiche Ergebnis wie mit der aktuellen Ignite-Mechanik). Dementsprechend ist der Schaden verloren, wenn du nicht crittest und folglich der 2te Tick durch kommt.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

34

Mittwoch, 16. August 2017, 15:56


Nochmal: Was dein Simulator rechnet ist falsch; auch für die blizzlike Version.

Meinst du damit das hier?
Ich glaube du verstehst das Problem nicht: Du rechnest immer den vollen Wert des Ignites drauf, aber eigentlich kommt da nur die Hälfte drauf

Das neue Ignite bekommt den gesamten noch nicht verursachten Schaden des alten Ignites angerechnet. *Nur* so kann der Bonusschaden entstehen. Hälfte des Wertes draufpacken (beim ersten Tick in der Flugzeit) entspricht der aktuellen b2b-Version.

Das deckt sich mit dem Dr.Bumm-Log aus dem alten EJ-Thread zu TBC Ignite auf Seite 7:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1/26 18:19:32.764  Your Fireball crits Dr. Boom for 665 Fire damage.
1/26 18:19:33.421  Dr. Boom is afflicted by Ignite.
1/26 18:19:33.421  You gain 19 Mana from Master of Elements.
1/26 18:19:34.639  Boom Bot dies.
1/26 18:19:34.749  Dr. Boom suffers 2 Fire damage from your Fireball.
1/26 18:19:34.811  Your Fireball crits Dr. Boom for 658 Fire damage.
1/26 18:19:35.186  Dr. Boom suffers 133 Fire damage from your Ignite. <=Free ignite
1/26 18:19:35.593  You gain 20 Mana from Master of Elements.
1/26 18:19:35.843  Boom Bot dies.
1/26 18:19:36.827  Dr. Boom suffers 2 Fire damage from your Fireball.
1/26 18:19:36.905  Your Fireball crits Dr. Boom for 670 Fire damage. <== ignite pushback
1/26 18:19:37.452  You gain 19 Mana from Master of Elements.
1/26 18:19:38.639  Boom Bot dies.
1/26 18:19:38.889  Dr. Boom suffers 3 Fire damage from your Fireball.
1/26 18:19:38.936  Your Fireball crits Dr. Boom for 670 Fire damage.
1/26 18:19:39.124  Dr. Boom suffers 398 Fire damage from your Ignite. <== free ignite
1/26 18:19:39.452  You gain 20 Mana from Master of Elements.
[...]

665*0,4 + 658*0,4 + 670*0,4 = 797,2 -> Ignite 2x398
Das Log kommt am Ende auf grob 50% Bonus-Ignite:

Zitat

Crit damage 2663
Expected ignite = 1065.2
Actual ignite = 533* 2 = 1066 + 398 free + 133 free = 1597


Auf Seite 8 hat dann noch einer diese Grafik verlinkt:
https://web.archive.org/web/200811091727…ignitesver2.jpg
Auch da wieder etwa 50% Bonusschaden über dem Sollwert von Ignite.

Oder was genau ist sonst mein Fehler? Irgendwas am Timing? Im WoWWiki ist zwar die Formulierung

Zitat

Sometimes a single tick of Ignite will do its damage and then also be added to a second Ignite if it lands just before the tick.

Das das passt aber überhaupt nicht zu dem Zeitlichen Ablauf direkt darunter

Zitat

0:00.00 - Mage begins to cast Fireball.
0:03.00 - Fireball cast complete.

Spell is a crit, damage calculated at 2000.
Ignite is calculated at 800

0:04.00 - First fireball lands, dealing 2000 damage and applying a 800 Ignite.
0:04.50 - Mage begins to cast second Fireball.
0:06.00 - Ignite ticks for 400.
0:07.50 - Fireball cast complete.

Spell is a crit, damage calculated at 2000.
Ignite is calculated at 1200 (800 plus the 400 still remaining on the target)

0:08.00 - Ignite ticks for 400.
0:08.50 - Second fireball lands, dealing 2000 damage and applying a 1200 Ignite.
0:10.50 - Ignite ticks for 600.
0:12.50 - Ignite ticks for 600.

Der Feuerball landet nicht "just before" dem Tick, sondern 0.5 Seknden danach (nach dem 2. Tick, deswegen wird natürlich nur der halbe ursprüngliche Wert übertragen). Kannst du das Auflösen? Ist der Text falsch (c&p vom classic ignite rolling?), oder stimmt bei dem Ablauf etwas nicht?
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."

CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

35

Mittwoch, 16. August 2017, 16:08

Schau dir das ganze einfach nochmal in Ruhe an. Der Ignite Schaden wird da berechnet, wenn der Feuerball losfliegt (je nach verbleibendem Schaden des aktuellen Ignites), aber dieses neue Ignite wird erst auf den Gegner gewirkt, wenn der Feuerball einschlägt. Tickt das aktuelle Ignite also dazwischen, ist dieser Tick sozusagen "gratis", weil das neue Ignite diesen Schaden trotzdem noch beinhaltet.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

Tremolo4

Ehemaliges Teammitglied

Beiträge: 1 260

Registrierungsdatum: 22.10.2010

Hauptcharakter: Caldaron

  • Private Nachricht

36

Mittwoch, 16. August 2017, 16:48

Schau dir das ganze einfach nochmal in Ruhe an. Der Ignite Schaden wird da berechnet, wenn der Feuerball losfliegt (je nach verbleibendem Schaden des aktuellen Ignites), aber dieses neue Ignite wird erst auf den Gegner gewirkt, wenn der Feuerball einschlägt. Tickt das aktuelle Ignite also dazwischen, ist dieser Tick sozusagen "gratis", weil das neue Ignite diesen Schaden trotzdem noch beinhaltet.
Genau so hab ich das jetz auch verstanden. Ich dachte oggy beschreibt die ganze Zeit auch genau das. Das was bei ihm falsch ist, sehe ich jetzt grad noch nicht.

Einzig sinnvolle Fix-Möglichkeit für uns jetzt wäre also, Schadenswerte (und crit-roll etc.) schon bei Cast-Ende und nicht erst bei Auftreffen beim Gegner auszurechnen. Ich denke das wird relativ ekelig und würde erstmal zu vielen weiteren Bugs führen.
Sinnvoll fände ich es aber schon, weil es doch eine grundlegende Mechanik ist, die auf dem Offi damals anders ablief.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Tremolo4« (16. August 2017, 16:53)


fatlus

Drachentöter

Beiträge: 1 258

Registrierungsdatum: 18.02.2015

Hauptcharakter: Laureene

Gilde: E Pluribus Unum

  • Private Nachricht

37

Mittwoch, 16. August 2017, 17:27

Gibts dafür nach ca. 10 Jahren Mangos noch keinen Ansatz?

CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

38

Mittwoch, 16. August 2017, 18:18

Man muss dazu sagen, dass bekannt ist, dass das System damals deutlich anders war, aber es gibt da 2 große Probleme, die ich dabei sehe:
1. Wäre das ein gigantischer Aufwand, weil man wohl sehr große Teile der Serversoftware neu schreiben müsste.
2. Würde, denke ich, das Spielgefühl doch deutlich an Wert verlieren, da sich der Server an vielen Stellen unangenehm langsam verhalten würde (bis zu 400 ms oder was das waren sind halt schon deutlich spürbar).

Ich dachte oggy beschreibt die ganze Zeit auch genau das. Das was bei ihm falsch ist, sehe ich jetzt grad noch nicht.

Er rechnet im Endeffekt folgendes:
Feuerball trifft auf, Ignite tickt, nächster Feuerball fliegt los, trifft auf ... und dann hat plötzlich bei ihm das Ignite auf magische Art und Weise mehr Schaden. Dieser Bug tritt aber nur dann auf, wenn das Ignite tickt während der nächste Feuerballcrit in der Luft ist, nicht davor und nicht danach. Wie gesagt, einfach nochmal ganz genau überlegen, warum dieser Bug eigentlich aufgetreten ist, dann sollte das klar werden, denke ich.

[...] weil es doch eine grundlegende Mechanik ist, die auf dem Offi damals anders ablief.

Und genau das wird hier gerade massiv überschätzt - mit auch durch diese völlig falschen Berechnungen.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

oggy

Meister

  • »oggy« ist der Autor dieses Themas

Beiträge: 487

Registrierungsdatum: 05.12.2010

  • Private Nachricht

39

Mittwoch, 16. August 2017, 18:59

Genau so hab ich das jetz auch verstanden. Ich dachte oggy beschreibt die ganze Zeit auch genau das. Das was bei ihm falsch ist, sehe ich jetzt grad noch nicht.

Genau das habe ich beschrieben, und genau das macht auch mein Simulator. Ich dachte schon ich hab hier irgendwie den Brainlag des Jahrhunderts, weil ich eben das Verhalten wie im Wiki usw beschrieben durchlaufen lasse und als Antwort dann nur "ist Falsch" und "basiert auf der Annahme völlig falscher Werte" bekommen habe :wacko:

Einzig sinnvolle Fix-Möglichkeit für uns jetzt wäre also, Schadenswerte (und crit-roll etc.) schon bei Cast-Ende und nicht erst bei Auftreffen beim Gegner auszurechnen. Ich denke das wird relativ ekelig und würde erstmal zu vielen weiteren Bugs führen.
Sinnvoll fände ich es aber schon, weil es doch eine grundlegende Mechanik ist, die auf dem Offi damals anders ablief.

Es hätte auch noch andere Vorteile. Das plus Immunitätscheck beim Auftreffen würde z.B. shatter komplett fixen. Ka wie das aktuell gelöst ist, aber die Mechanik dahinter ist die gleiche.

Gibts dafür nach ca. 10 Jahren Mangos noch keinen Ansatz?

Das b2b mangos ist, wenn ich das richtig verstanden habe, mangos Stand 2010 plus "ein paar" custom fixes. Es ist also möglich, dass upstream mangos sich da mitlerweile anders verhält als hier.

Er rechnet im Endeffekt folgendes:
Feuerball trifft auf, Ignite tickt, nächster Feuerball fliegt los, trifft auf ... und dann hat plötzlich bei ihm das Ignite auf magische Art und Weise mehr Schaden.

Nein. Bonusschaden berechnet mein Sim nur, wenn die Reihenfolge "Feuerball fliegt los, Ignite tickt, Feuerball trifft auf" ist. Etwas technischer: Ich mache den Critroll beim Losfliegen des Feuerballs und lese bei Crit den verbleibenden Wert eines eventuell vorhandenen Ignites auf dem Ziel und addiere den Wert auf den berechneten Wert des Ignites, den der losfliegende Feuerball beim Auftreffen auslösen wird.

Quellcode

1
2
3
4
// beim Abfeuern des Feuerballs
if (crit) {
  value = dmg * 1.5;
  igniteValue = dmg * 1.5 * 0.4 + target.getIgniteValue();

Wie gesagt, die Logs sind teilweise nicht ganz in der richtigen Reihenfolge - schau mal auf die Timestamps.

Und ja, das wäre natürlich eine größere Baustelle. Ich habe auch nicht gefordert dass das innerhalb der nächsten paar Tage gefixt wird oder so. Mir geht es hier vor allem darum, erstmal das genaue Verhalten @retail nachzustellen. Leider ist es nicht gerade einfach, dafür immer richtig gute Quellen zu finden, weil die alten Forenthreads etc. teilweise nichtmal mehr in der wayback machine zu finden sind - selbst der Thread von EJ ist z.B. in neueren Snapshots nur teilweise vorhanden, die hinteren Seiten sind nicht archiviert.

Wodurch sich dadurch jetzt der Server irgendwie langsam verhalten bzw. anfühlen sollte kann ich aber gerade nicht nachvollziehen. Letztendlich verschiebt das ja nur hinter den Kulissen die Berechnung von einer an eine andere Stelle.
Lasereule vs. Boss

"Umskillen ist was für Leute, die zu wenig Chars haben."