Projekt

Allgemein

Profil

Aktionen

Fehler #19726

geschlossen

[Mechanik] Magiewiderstände und Spell-Resist Berechnung

Von B2B-Nanoware vor fast 8 Jahren hinzugefügt. Vor fast 8 Jahren aktualisiert.

Status:
Live
Priorität:
Normal
Zugewiesen an:
-
Kategorie:
Mechanik
Zielversion:
-
Beginn:
30.06.2016

Beschreibung

Die Mechaniken rund um die Berechnung von levelbasierten Widerständen und auf welche Art von Zaubern sie angewendet werden funktioniert hier nicht ganz korrekt.

Vorweg dazu kurz ein paar einführende Worte.

Zauberwiderstand 1x1
Bei Zaubern wird zwischen zwei Arten von Zaubern unterschieden:

Binäre Zauber : Binäre Zauber sind Zauber die entweder widerstehen oder nicht widerstehen können. Sie haben nur eines von zwei möglichen Resultaten. Daher der Name Binary.
Nicht-Binäre Zauber : Nicht Binäre Zauber sind Zauber die einen Schadenseffekt haben dem voll, garnicht oder partiell (25%, 50%, 75%) widerstanden werden kann.

Zudem gibt es Zauber die eine Binäre und eine Nicht-Binäre Komponente besitzen. Das wohl beste Beispiel sind hier DoTs. Der initiale Effekt des DoT setzens ist Binär und trifft entweder ganz oder garnicht. Der DoT Effekt wiederum ist Nicht-Binär und jedem einzeln Tick kann nach den Regeln der Nicht-Binären-Zauber widerstanden werden.

Der durchschnittliche Widerstand durch Widerstände kann durch folgende Formel berechnet werden:

Durchschnittlicher Widerstand = (Widerstand des Ziels / (Level des Zauberes * 5)) * 0.75
Ähnlich der Rüstungsberechnung ist der durchschnittliche Widerstand also unabhängig vom Level des Ziels. [1]
Die Chance das Binäre Zauber widerstanden werden ergibt sich direkt aus dem Wert für den durchschnittlichen Widerstand.
Dieser Wert wird mit der Chance zu verfehlen (Trefferwertung) multipliziert und ergibt somit die Chance das der Zauber trifft.[5]

Widerstände vom Ziel können durch das Attribut Zauberdurchschlag und durch Effekte die den Widerstand senken verringert werden (Fluch der Elemente).
Ausgenommen hiervon sind levelbasierte Widerstände.

Levelbasierte Widerstände:

Pro Level unterschied bei höhren Zielen erhöht sich der durchschnittliche Widerstand gegen das Ziel um etwa 2%.

"For non-binary spells only: Each difference in level gives a 2% resistance chance that cannot be negated (by spell penetration or otherwise)."[2]

WoWWiki1 spricht von etwa 8 Widerstand / Level der aber durchaus auch etwas höher sein kann, was durchaus konsistent mit den Aussagen aus Quelle [2] ist.

"From what I remember from Nostalrius Beta and all, when Devs discussed fairly often with players the scripts and sources to be used, 24 innate resistance was the value used, i.e. 2% average mitigation per level, 6% versus a Boss." [3] zeigt auch das Nostalrius mit 2% / Level gerechnet hat. Ein Privatserver ist vielleicht nicht die geeignetste Referenz, hatte aber eine hohe Qualität und ist ebenfalls Konsistent mit den vorherigen Aussagen. Da Nostalrius ein 60ger Server war sind die 8 Widerstand / Level für Level 60 zu verstehen und für Level 70 würde sich der etwas höhere Wert von 9.33 Widerstand / Level ergeben.

Wichtig ist das der levelbasierte Unterschied vom Level des Zauberes abhängt. Es wäre Sinnfrei einem Level 10 Magier 9.33 Widerstand / Level unterschied zu berechnen. Nach obriger Formel würden wir dafür einen durchschnittlichen Widerstand von

(18.66/(12*5)) * 0.75 = 28% 

Zusammen mit 6% Chance das der Zauber verfehlt, ist dieses Verhalten eher unwahrscheinlich.
Daher sollte der Levelbasierte Widerstand mit Level des Zauberes Skalieren um auf einen konstanten Wert von 2% pro Level zu kommen wie in [2] angegeben.

Weiter beeinflussen levelbasierte Widerstände, im Gegensatz zu normalen Widerständen, nicht die Chance das Binäre Zauber widerstanden werden.

"This extra resistance means there will be partial resists on non-binary spells from the added resistance. However, this resistance has been shown to not apply to binary spells at all"[1]

"Again, let me repeat, level-based spell resistance applies to non-binary spells only."[2]

  if( ! resist_binary && sim -> target -> level > player -> level )
  {
    double min_rating = 8 * ( sim -> target -> level - player -> level );
    if( resist_rating < min_rating ) resist_rating = min_rating;
  }
[4]

[1] http://wowwiki.wikia.com/wiki/Formulas:Magical_resistance?oldid=1603715 - Spell Resistance, WoWWiki
[2] https://dwarfpriest.wordpress.com/2008/01/07/spell-hit-spell-penetration-and-resistances/ - Blog zum Thema Hit Chance und Widerstände
[3] https://forum.nostalrius.org/viewtopic.php?f=44&t=34186&sid=7c9192d6ad93ea1ccef3a1480e1efed7&start=20#p276262 - Diskussion zum Thema Frostbold Schaden auf Bossen im Nostalrius Forum
[4] https://sourceforge.net/projects/wow-raid-sim/ ,Phase2/wow_spell.cpp, Implementation der Resistchance für Zauber - Tool das viel zur Berechnung von Schattenpriester Schaden und Raidsimulation genutzt wurde in den EJ Foren.
[5] https://web.archive.org/web/20060529065634/http://forums.worldofwarcraft.com/thread.aspx?fn=blizzard-archive&t=37&p=1&tmp=1#post37 - Offizieller Beitrag eines Blizzard Mitarbeiters zum Thema Widerstände und Zaubertrefferwertung


Wie funktioniert das ganze zur Zeit bei uns?

  • Die normale Berechnung für die Chance das Zauberwiderstehen wie in Zauberwiderstand 1x1 erläutert funktioniert wie beschrieben.
  • Pro Level Unterschied werden nur 5 Widertände angerechnet
  • Der levelbasierte Widerstand wirkt sich auch auf die Chance zu widerstehen für Binäre Zauber aus

Das hat zur Folge das Binäre Zauber anstatt zu 1% widerstehen zu etwa 4,2% widerstehen.

Was sollte geändert werden

  • Levelbasierte Widerstandswerte auf basis des Zaubererlevels berechnen (2% / Level)
  • Levelbasierte Widerstände nicht auf Binäre Zauber wirken lassen

Zugehörige Tickets

Dupliziert durch B2B Live TBC 2.4.3 - Fehler #35948: Zaubertrefferwertung vs. 350 Widerstand - kanalisierte Zauber vs. SpontanzauberAbgewiesen11.05.2019Aktionen
Aktionen

Auch abrufbar als: Atom PDF