Projekt

Allgemein

Profil

Aktionen

Fehler #10983

geschlossen

Spellreichweite Range Zauber | Spalten Mechanik - Range- und Zielberechnung falsch - Hitboxberechnung

Von blubbern2 vor etwa 10 Jahren hinzugefügt. Vor etwa 3 Jahren aktualisiert.

Status:
Live
Priorität:
Hoch
Zugewiesen an:
-
Kategorie:
Mechanik
Zielversion:
Beginn:
27.09.2014
Update Text Deutsch:

Die Zielberechnung von Zaubern, die auf weitere Ziele überspringen können, wurde überarbeitet. Dies betrifft zum Beispiel das [spell=47520] des Kriegers und das [spell=20424] des Paladins.


Beschreibung

Spalten und sonstige Cleave-Mechaniken, sowie Zonen-AoE-Effekte (wie Arkane Explosion) nutzen bei uns die falsche Abstandsformel für die Berechnung, ob ein Ziel in Reichweite ist.
  • Cleave sollte "GetDistance" nutzen, nutzt aber scheinbar "GetExactDistance"
    Heißt: Der Toon muss momentan in Reichweite sein, anstatt nur die Hitbox vom Toon
  • Spell-AoE sollte "GetExactDistance" nutzen, nutzt aber scheinbar "GetDistance"
    Heißt: Nur die Hitbox muss momentan in Reichweite sein, anstatt der Toon selbst

Das gilt sowoh für Fähigkeiten von Spielern, als auch von Bossen. Das kann gerade in Raids (Sindra, Prof, Rat) problematisch werden und auch im PvP wirds u.U. nervig sein.

Zudem scheinen die Chain-Hits der Spalteneffekte keine Ziele mit niedrigerem Level als dem Hauptziel zu treffen.

http://www.youtube.com/watch?v=DmwUI5-lDWo
http://www.youtube.com/watch?v=2LSa50QC1kc&list=UUWSDjMS63pffb-Fx13pD7Tw ab 1,20 min
http://www.youtube.com/watch?v=1mYHEzHuld8
Wowhead: http://de.wowhead.com/spell=845/spalten


Dateien

CleaveRange.png (7,34 KB) CleaveRange.png Connex, 24.04.2020 15:43

Zugehörige Tickets

Beziehung mit RG Live WotLK 3.3.5a - Fehler #17524: [ICC][Sindragosa] Wirken von Pestilenz auf ein Eisgrab verteilt die Krankheiten nicht auf SindragosaBestätigt03.02.2016Aktionen
Beziehung mit RG Live WotLK 3.3.5a - Fehler #20280: Reichtweite ground-target AoEBestätigt13.08.2016Aktionen
Dupliziert durch RG Live WotLK 3.3.5a - Fehler #37195: Siegel des Befehls ReichweiteDuplikat30.12.2019Aktionen
Vorgänger von RG Live WotLK 3.3.5a - Fehler #40196: Halion Cleave RangeLive28.09.2014Aktionen
Aktionen #1

Von Rushor vor etwa 10 Jahren aktualisiert

http://www.pic-upload.de/view-24741692/WoWScrnShot_092714_020604.jpg.html

sind genau 5 yards. diese werden aber immer vom mittelpunkt des mobs aus berechnet.

Aktionen #2

Von blubbern2 vor etwa 10 Jahren aktualisiert

Dann wird es wohl an der Hitbox allgemein liegen weil die lvl 60 Puppen in Eisenschmiede kann man nicht so wie im Video treffen

Aktionen #3

Von Anonym vor etwa 10 Jahren aktualisiert

  • Thema wurde von (Krieger) Spalten Range ist viel zu niedrig zu [Krieger] Spalten Range ist viel zu niedrig geändert
  • Übergeordnetes Ticket wurde auf #4054 gesetzt
Aktionen #4

Von Anonym vor etwa 10 Jahren aktualisiert

  • Zielversion wurde auf Klassen gesetzt
Aktionen #5

Von Veylen vor etwa 10 Jahren aktualisiert

  • Status wurde von Neu zu Bestätigt geändert

Spalten trifft (und andere solcher Zauber) keine Ziele die eine niedrigere Stufe als das aktuelle Ziel des Spielers haben.

Außerdem
Ist: Berechungspunkt = Mittelpunkt der Hitbox
Soll: Berechungspunkt = Rand der Hitbox

Aktionen #6

Von Veylen vor fast 10 Jahren aktualisiert

  • Priorität wurde von Normal zu Hoch geändert

Betrifft scheinbar auch alle anderen Fähigkeiten mit dieser Mechanik (zb. Zermalmen).
Für Anub25Hc und ICC wichtig -> Prio: Hoch

Gut beschrieben ist es in #8724

Aktionen #7

Von Veylen vor fast 10 Jahren aktualisiert

  • Thema wurde von [Krieger] Spalten Range ist viel zu niedrig zu Spalten Mechanik - Rangeberechnung falsch geändert
  • Kategorie wurde von Zauber zu Mechanik geändert
  • Übergeordnetes Ticket #4054 wurde gelöscht
Aktionen #8

Von Veylen vor fast 10 Jahren aktualisiert

  • Thema wurde von Spalten Mechanik - Rangeberechnung falsch zu Spalten Mechanik - Range- und Zielberechnung falsch geändert

doh!

Aktionen #10

Von Cherezlol vor etwa 9 Jahren aktualisiert

Pushen ist ja bekanntlich nicht erlaubt, deshalb hier nochmal ein Vid dazu:

https://www.youtube.com/watch?v=Usjsxpza97o bei 4:20 ganz nett zu sehen.

Mit ICC ist Spalten gerade bei LK, Prof, Sindra ein progress einschränkender bug, da viel DPS flöten geht, den man gut gebrauchen kann.

Ich weiß, ihr habt auf "Klassenscheiße" keine Lust, dieser Bug betrifft aber auch den Rogue mit Klingenwirbel und die anderen angeführten Klassen.

Ist ein Fix davon möglich, kann die Range irgendwie hochgesetzt werden, ansonsten muss man ggf. als fury auch anders glyphen. Gerade bei LK waren Furys unheimlich stark, eben wegen ihren Cleaves.

Vorschlag wäre auf 8 oder gar 10 Yards hochzusetzen, da die 5 Yards vom äußersten Punkt der MobHitBox zählen sollten.

Aktionen #11

Von Rushor vor etwa 9 Jahren aktualisiert

  • Thema wurde von Spalten Mechanik - Range- und Zielberechnung falsch zu Range Zauber | Spalten Mechanik - Range- und Zielberechnung falsch geändert
Aktionen #12

Von Rushor vor etwa 9 Jahren aktualisiert

gawd wie schwer kann es schon sein mittelpunkt und äußeren rand zu unterscheiden -.-

Aktionen #13

Von Veylen vor etwa 9 Jahren aktualisiert

AoE-Spells nutzen ja den äußeren Rand, auch wenn sie es nicht sollten... kann also net schwer sein ^^

Aktionen #14

Von zzzZZZzzz vor etwa 9 Jahren aktualisiert

Fehlen noch irgendwelche Quellen/Daten, welche man noch recherchieren könnte? Oder könnte man in einer anderen Form helfen

Aktionen #15

Von Rushor vor etwa 9 Jahren aktualisiert

  • Übergeordnetes Ticket wurde auf #4054 gesetzt
Aktionen #16

Von Rushor vor etwa 9 Jahren aktualisiert

  • Übergeordnetes Ticket #4054 wurde gelöscht
Aktionen #17

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Status wurde von Bestätigt zu Testbereit geändert

schaut mal obs damit besser is, als mit der aktuellen version vom liveserver

Aktionen #18

Von wodje vor mehr als 8 Jahren aktualisiert

Ich hab mich mal an diese Puppen gestellt http://www.pic-upload.de/view-29846745/WoWScrnShot_022516_134036.jpg.html
Auf dem Master Server muss ich richtig stehen um beide zu treffen. Also da muss ich schon extrem aufpassen (es geht aber noch). Auf dem Live war es kein Problem beide zu treffen, musste nicht aufpasssen wo ich stehe. Würde sagen es ist nicht besser aber vllt sollte da nochmal jmd drüber gucken.

Aktionen #19

Von wodje vor mehr als 8 Jahren aktualisiert

  • Status wurde von Testbereit zu In Bearbeitung geändert
  • Zugewiesen an wurde auf Rushor gesetzt

Habs jetzt mal mit nachgeguckt wie weit die Puppen auseinander stehen, es sind von Mitte zur Mitte 6,028638 Yards. Also sinds so ca 4 Yards von der äußereen Hitbox, was auf dem Live gut funktioniert hat, aber aufm test server schwierig ist

Aktionen #20

Von zzzZZZzzz vor mehr als 8 Jahren aktualisiert

https://www.youtube.com/watch?v=DmwUI5-lDWo als Quelle wurden da nicht die Großmeister Puppen verwendet sondern die Experten.
Dort habe ich es nicht geschafft beide zu treffen.

Aktionen #21

Von wodje vor mehr als 8 Jahren aktualisiert

Hab mir halt die Range der Experten Puppen angeguckt, Spalten soll eine 5 Yard range haben, die Puppen stehen bei uns aber ca 6 Yards voneinadner entfernt. Deswegen hat es für mich keinen Sinn gemacht es dort zu probieren, Puppen stehen 8,2 Yards auseinander, Hitbox der Puppen bei ca 1 Yard -> 6 Yards auseinander. Berichtigt mich wenn ich mich vertan habe

Aktionen #22

Von Veylen vor mehr als 8 Jahren aktualisiert

Meiner Meinung nach, wurde da beim programmieren nur etwas verwechselt.

Range-AoE (Arcane Explosion, Living Bomb, ähnliches von NPCs) müssen nur den Rand der Hitbox des Ziels in Range ahben, um einen Hit landen zu können. Sie müssten aber die Mitte der Hitbox in Range haben.

Cleave-Angriffe müssen den Mittelpunkt der Hitbox in Range haben um treffen zu können, sollten aber nur den Rand in Reichweite haben müssen.

-> Falschrum

Caster<-->Hitboxrand <= Range --> Hit || gilt für Spells, sollte für Cleave gelten
Caster<-->Hitboxmitte <= Range --> Hit || gilt für Cleave, sollte für Spells gelten

Aktionen #23

Von zzzZZZzzz vor mehr als 8 Jahren aktualisiert

Dann müsste man es ja rein theoretisch relativ leicht ändern können oder? :)

Aktionen #25

Von Veylen vor mehr als 8 Jahren aktualisiert

<20:17:57> "<DEV>Zirkon": das ist vermutlich vertaquschung GetDistance vs GetExactDistance
<20:18:12> "<DEV>Zirkon": das eine impliziert ObjectSize das andere nicht

Es ist einfach jeweils bei Cleave-Effekten und Spell-AoE das falsche genommen worden.

Aktionen #26

Von Veylen vor mehr als 8 Jahren aktualisiert

Beschreibung mal auf den neusten Stand gebracht

Aktionen #27

Von Dev-Zirkon vor mehr als 8 Jahren aktualisiert

habe gerade auf TC folgende pull requests gefunden (könnten hilfreich sein, nicht einfach 1 zu 1 übernehmen!)
https://github.com/TrinityCore/TrinityCore/pull/15807
https://github.com/TrinityCore/TrinityCore/pull/16290

Aktionen #28

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Thema wurde von Range Zauber | Spalten Mechanik - Range- und Zielberechnung falsch zu Spellreichweite Range Zauber | Spalten Mechanik - Range- und Zielberechnung falsch - Hitboxberechnung geändert
Aktionen #30

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Bestätigt geändert
Aktionen #31

Von Daejiv vor etwa 8 Jahren aktualisiert

  • Zugewiesen an Rushor wurde gelöscht
Aktionen #32

Von Veylen vor fast 8 Jahren aktualisiert

  • Beziehung mit Fehler #17524: [ICC][Sindragosa] Wirken von Pestilenz auf ein Eisgrab verteilt die Krankheiten nicht auf Sindragosa wurde hinzugefügt
Aktionen #33

Von Veylen vor mehr als 7 Jahren aktualisiert

  • Zugewiesen an wurde auf Sparkless gesetzt

Schau mal hier rein. Das sieht nach einem generellen Fix aus, der das alles auch ziemlich gut zusammenfasst.

Beispiele für die verschiedenen AoE Typen findet man hier.
Buggy waren

Ich hoffe du kannst mit dem TC-Fix was anfangen. Das, was dort geschrieben wird, sieht sehr gut aus.
Wenn du mehr Infos von mir brauchst → Hier ein Kommentar, oder ne PM (Forum)

Aktionen #34

Von Sparkless vor mehr als 7 Jahren aktualisiert

  • Status wurde von Bestätigt zu In Bearbeitung geändert

Die scheinen die Pull-Request demnächst zu übernehmen. Letzte Aufräumarbeiten wurden vor 9h vorgeschlagen. Sobald sies reinpullen werd ichs bei uns reinmergen.

Aktionen #35

Von Daejiv vor mehr als 7 Jahren aktualisiert

Master Reset.

Wenn die Commits noch relevant sind bitte wieder einspielen.

Aktionen #36

Von Sparkless vor mehr als 7 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Bestätigt geändert
  • Zugewiesen an Sparkless wurde gelöscht
Aktionen #37

Von Left4Info vor mehr als 6 Jahren aktualisiert

  • Tags wurde auf Classes gesetzt
Aktionen #38

Von BarourBearskin vor mehr als 5 Jahren aktualisiert

Ich habe mir die letzten Tage mal die Freude gemacht, ein frisches TC (c52eb49f7160+) mit frischer DB (335.19031) aufzusetzen, um ein wenig rumzuprobieren - mir ist bewusst, dass auf RG custom Fixes diesen Lösungsansatz verhindern könnten. Mir ist ebenfalls bewusst, dass ich keine Ahnung habe und das hier ganz böser Unfug sein kann. Und bevor jemand das anmerkt: das ist ein fieser Workaround, wer es besser kann möge es (endlich) machen.

Beobachtung RG:
- Cleave trifft Ziele nicht, die neben sehr großen Hitboxen von Maintargets stehen (Marrow Spikes, Halion Funken, Anub Adds). Anders herum funktioniert es bereits (von kleiner auf große Hitbox).
Beobachtung frisches TC:
- Die nahe beieinander stehenden und oben erwähnten 80er Puppen in Ironforge können problemlos gecleaved werden.
- Es scheint nicht möglich, von der im Video gesehenen 60er Puppe auf die andere zu cleaven.
- Eine Veränderung der Größe der Hitbox der 60er Puppe (Maintarget mittels .mod scale) führt nicht dazu, dass auf die zweite Puppe gecleaved werden kann. Es vergrößert allerdings den Abstand zur Mitte der Hitbox, ab dem angegriffen werden kann.

Vermutung:
Es wurde von Testern schon geschrieben, dass die Cleaverange wohl von der Mitte der Hitbox des Maintargets berechnet wird, aber vom Rand der Hitbox berechnet werden sollte. Daraus folgt, dass bei kleinen Targets die fehlende Range vernachlässigbar ist, bei größeren nicht. Ganz weit aus dem Fenster gelehnt: Radius der Hitbox ~ BoundingRadius
(ja, ne, ist es nicht. Wer weiß, wie man einen besseren Wert am Besten aus den DBCs bekommt, gerne, ist aber gleich vier Uhr nachts. Falls CombatReach besser wäre, lässt sich das einfach austauschen: UNIT_FIELD_COMBATREACH. CombatReach wird wohl auch üblicherweise für Range Checks (range + GetCombatReach + target->GetCombatReach) verwendet (vgl. Creature::CanCreatureAttack, Creature.cpp), erschient mir aber im high-end zu hohe Werte zu haben (frische DB bis zu 77.)
Damit auf ein offTarget gecleaved werden kann, muss es also innerhalb 5y+BoundingRadius des Targets (soweit wahrscheinlich nicht ganz richtig) sowie innerhalb 5y des Spielers stehen (plausibel - auch hier habe ich aber keine Ahnung, es schiene mir nur komisch, wenn Cleave ähnliches Chainverhalten wie Kettenblitz zeigen soll, wird im Code auch ausgeschlossen (isBouncingFar).

Lösungsvorschlag:
SearchChainTargets in Spell.cpp wird angepasst. Die Sprungrange von Cleave wird um den BoundingRadius des Targets erhöht, dafür wird ein weiterer RangeCheck eingebaut, damit keine Targets außerhalb der 5y Range des Spielers getroffen werden (ansonsten könnte man je nach Model viel zu weit cleaven, da die Sprungrange vom Maintarget nun einmal stumpf erhöht wurde.) Das löst nicht das Problem fehlender Range bei kleinen Targets, da BoundingRadius meist 0, verschiebt lediglich den Bereich, in dem Targets gefunden werden, zum Spieler hin (möglicherweise auch das unerwünscht, da dann teils 5y+30y BoundingRadius weit weg gecleaved werden könnte - das aber nur bei wenigen großen Mobs.).

$ diff Spell.cpp Spell_old.cpp
1882c1882
<             jumpRadius = 5.0f + target->GetFloatValue(UNIT_FIELD_BOUNDINGRADIUS);
---
>             jumpRadius = 5.0f;
1916,1917c1916
<             if ((!m_caster->HasInArc(static_cast<float>(M_PI), *checkItr))
<                 || ((m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE) && !((*checkItr)->IsWithinDist(m_caster, 5.0f))))
---
>             if (!m_caster->HasInArc(static_cast<float>(M_PI), *checkItr))

und noch einmal der relevante Abschnitt:

void Spell::SearchChainTargets(std::list<WorldObject*>& targets, uint32 chainTargets, WorldObject* target, SpellTargetObjectTypes objectType, SpellTargetCheckTypes selectType, ConditionContainer* condList, bool isChainHeal)
{
    // max dist for jump target selection
    float jumpRadius = 0.0f;
    switch (m_spellInfo->DmgClass)
    {
        case SPELL_DAMAGE_CLASS_RANGED:
            // 7.5y for multi shot
            jumpRadius = 7.5f;
            break;
        case SPELL_DAMAGE_CLASS_MELEE:
            // 5y for swipe, cleave and similar
            jumpRadius = 5.0f + target->GetFloatValue(UNIT_FIELD_BOUNDINGRADIUS);
            break;
        case SPELL_DAMAGE_CLASS_NONE:
        case SPELL_DAMAGE_CLASS_MAGIC:
            // 12.5y for chain heal spell since 3.2 patch
            if (isChainHeal)
                jumpRadius = 12.5f;
            // 10y as default for magic chain spells
            else
                jumpRadius = 10.0f;
            break;
    }

    // chain lightning/heal spells and similar - allow to jump at larger distance and go out of los
    bool isBouncingFar = (m_spellInfo->HasAttribute(SPELL_ATTR4_AREA_TARGET_CHAIN)
        || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_NONE
        || m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MAGIC);

    // max dist which spell can reach
    float searchRadius = jumpRadius;
    if (isBouncingFar)
        searchRadius *= chainTargets;

    std::list<WorldObject*> tempTargets;
    SearchAreaTargets(tempTargets, searchRadius, target, m_caster, objectType, selectType, condList);
    tempTargets.remove(target);

    // remove targets which are always invalid for chain spells
    // for some spells allow only chain targets in front of caster (swipe for example)
    if (!isBouncingFar)
    {
        for (std::list<WorldObject*>::iterator itr = tempTargets.begin(); itr != tempTargets.end();)
        {
            std::list<WorldObject*>::iterator checkItr = itr++;
            if ((!m_caster->HasInArc(static_cast<float>(M_PI), *checkItr))
                || ((m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE) && !((*checkItr)->IsWithinDist(m_caster, 5.0f))))
                tempTargets.erase(checkItr);
        }
    }

Caveat: Ich habe das Verhalten NUR von Spalten und NUR bei zwei Targets (ein Main, ein Off) und NUR an den Puppen in Ironforge, an denen ich mit .mod scale an der Größe gespielt habe, getestet. Dafür crasht der Code (mich) nicht mehr und funktioniert mit .mod scale 10 auf eine 60er Puppe wunderschön Schulterzuckemoji.

Nachtrag von Tante Edith: Per .npc move einer der 70er Puppen neben eine (.mod scale 10) 80er Puppe eben getestet, dass mit frischem TC plus diesem Fix auch das Cleaven von einem höherleveligen auf ein niederleveliges Target klappt. Ich nehme an, dass diese Vermutung entstand, weil typischerweise das hohe Target das größere Model hat oder es zwischenzeitlich gefixt wurde.
2. Edith: Anmerkungen zu CombatReach (wsl besser), Formatierung.

Aktionen #39

Von Connex vor mehr als 5 Jahren aktualisiert

Der Ansatz ist schon mal gut!
Allerdings berücksichtigst du nicht die Hitbox der möglichen Targets, sodass das ganze nur so halb funktioniert, um genau zu sein nur für Cleavetargets mit kleinem Model/Hitbox.
Man müsste also auf einer größeren sinnvollen Range mögliche Ziele um das Maintarget herum suchen und dann die checks die du schon erweitert hast noch etwas anpassen.

Wenn du Interesse an so Stuff hast und dich du RG unterstützen willst kannst du dich auch gerne als Dev bei uns bewerben! :)

Aktionen #40

Von BarourBearskin vor mehr als 5 Jahren aktualisiert

WorldObject::IsWithinDist ruft WorldObject::_IsWithinDist auf, das nach meinem Verständnis doch standardmäßig incOwnRadius und incTargetRadius == true haben sollte? Falls das nicht der Fall ist, Unterstrich davor und wir berücksichtigen CombatReach des offTargets (dann würde CombatReach statt BoundingRadius aber schon wegen Stringenz mehr Sinn machen).
Edith: ja, verstehe, dass die erste Search eigentlich noch zu klein sein könnte - soweit ich da durchgestiegen bin wird in der Funktionskette aber etwas aufgerufen, was die (3d) Hitbox des Ziels in Betracht zieht.

Besser als nichts würde ich sagen und macht mit CombatReach auch im Kontext Sinn. Bin gerade nicht am Computer, also kann ich nicht nachprüfen, ob Unterstrich einfügen und go so compilen / funktionieren würde.

Aktionen #41

Von BarourBearskin vor mehr als 5 Jahren aktualisiert

Im Hinblick auf fehlende Berücksichtigung der Größe des offTargets habe ich mir mal die Freude gemacht, ein Video anzufertigen, das zeigt, dass die Größe sehr wohl (vanilla TC) berücksichtigt wird:
https://www.youtube.com/watch?v=HOwrBAzRMEg

Nur um auch ganz sicherzugehen habe ich dann auch noch mal versucht, von der Bosspuppe auf eine 70er zu cleaven, das geht selbstverständlich auch.

Ich darf daher darum bitten, folgenden Fix zumindest zu testen und gerne noch weiter zu entwickeln, wenn er wegen Custom Fixes andere Sachen zerstört, bevor DeHoschte bei DB Release weint:

$ diff spell.cpp spell_old.cpp
1882c1882
<             jumpRadius = 5.0f + target->GetCombatReach();
---
>             jumpRadius = 5.0f;
1916,1917c1916
<             if ((!m_caster->HasInArc(static_cast<float>(M_PI), *checkItr))
<                 || ((m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE) && !((*checkItr)->IsWithinDist(m_caster, 5.0f))))
---
>             if (!m_caster->HasInArc(static_cast<float>(M_PI), *checkItr))

Aktionen #43

Von Connex vor mehr als 5 Jahren aktualisiert

  • Status wurde von Bestätigt zu Testbereit geändert
Aktionen #44

Von Jeora vor mehr als 5 Jahren aktualisiert

  • Status wurde von Testbereit zu Bestätigt geändert
Aktionen #45

Von Jeora vor fast 5 Jahren aktualisiert

  • Beziehung mit Fehler #20280: Reichtweite ground-target AoE wurde hinzugefügt
Aktionen #46

Von Jeora vor fast 5 Jahren aktualisiert

  • Tags wurde auf Spell, Mechanic gesetzt
Aktionen #47

Von Jeora vor fast 5 Jahren aktualisiert

  • Dupliziert durch Fehler #37195: Siegel des Befehls Reichweite wurde hinzugefügt
Aktionen #48

Von Connex vor mehr als 4 Jahren aktualisiert

Bräuchten noch Quellen wie das ganze umgesetzt sein sollte. Alles was hier im Ticket steht ist dass die Hitbox des Ziels mit einberechnet werden soll.
Wenn man das umsetzt ist halt auch Szenario 2 im Screen möglich, wobei sehr hohe Distanzen zustande kommen können. Wirkt etwas absurd und da hier nirgendwo ordentlich beschrieben ist wies sein soll bis auf: Man soll die 2 Puppen da treffen können wäre da vllt noch etwas Recherche notwendig.

Btw ist das Pink/Braun der Warri in dem Fall und die Kreise hitboxen von getroffenen Mobs.
1. Szenario soll selbstverständlich gehen, Frage ist ob es noch Einschränkungen gibt, dass Szenario 2 nicht passieren kann.

Aktionen #49

Von sindorei vor mehr als 4 Jahren aktualisiert

Hammer der Rechtschaffenen (gleiches Verhalten):
https://www.mmo-champion.com/threads/658614-Range-on-Hammer-of-the-Righteous -> You are right in that to use the spell you need to be within 5 yards of a target. However, one could assume that if a target is within 10 yards (the WW distance) of the mob you are targeting, they will also be hit.

Siegel des Befehls (vermutlich auch gleiches Verhalten -> siehe Ticket https://redmine.rising-gods.de/issues/37195)
https://youtu.be/J4gtjDQx4W4?t=85 (haut aufs rechte Add, springt bis zum linken über)
https://youtu.be/e4ZkhrwwGdw?t=402

Spalten:
https://youtu.be/Usjsxpza97o?t=251 (Cleave auf die Valk springt auf LK und von da aus auf den Raging Spirit weiter, der definitiv nicht in Range war [Simultaner Wirbelwind trifft nur 2 Ziele mit 8m Range)

Reicht das bereits als Quellen? Sonst such ich nochmal weiter

Aktionen #50

Von Connex vor mehr als 4 Jahren aktualisiert

  • Status wurde von Recherche zu Testbereit geändert

Thanks!

Aktionen #51

Von Jeora vor mehr als 4 Jahren aktualisiert

  • Status wurde von Testbereit zu In Bearbeitung geändert
  • Zugewiesen an wurde auf Connex gesetzt
Aktionen #53

Von sindorei vor mehr als 3 Jahren aktualisiert

Dumme Frage:
Der Bug um den es hier geht betrifft ja alle Melee Angriffe, die weiter "bouncen" können (Spalten, Prankenhieb, Siegel des Befehls etc.)

Spalten: "A sweeping attack that does your weapon damage plus 222 to the target and his nearest ally."
Prankenhieb: "Swipe nearby enemies, inflicting 250% weapon damage."
Siegel: "When used with attacks or abilities that strike a single target, this additional Holy damage will strike up to 2 additional targets."

Ich habe mich in OG so an die 4er Puppen gestellt, dass mein Char jeweils in Melee Range zu 2 Puppen stand. Allerdings haben diese Bounce Angriffe jeweils nur mein Ziel getroffen.

Daraufhin habe ich mal nicht Melee Spells ausprobiert, die allerdings auf "nearby enemies" springen sollten (Kettenblitzschlag, Donnerzorn, Schild des Rächers)

Kettenblitzschlag: "Hurls a lightning bolt at the enemy, dealing 973 to 1111 Nature damage and then jumping to additional nearby enemies."
Donnerzorn: "Blasts your enemy with lightning, dealing 300 Nature damage and then jumping to additional nearby enemies."
Schild des Rächers: "Hurls a holy shield at the enemy, dealing [...] Holy damage, Dazing them and then jumping to additional nearby enemies. Affects 3 total targets. Lasts 10 sec."

Diese "Cast-Spells" sind ohne Probleme auf die jeweilige max. Anzahl von Zielen weitergesprungen.

Könnte man evtl. anhand des Cast-Bouce-Codes Rückschlüsse darauf kriegen, wie der Melee-Bouce-Code aussehen muss? Eventuell ist auch das einzige was Melee von Cast-Bounce unterscheidet die Vorraussetzung des 1. Treffers und das Springen an sich sollte bei beiden Mechaniken gleich sein? Bei der einen Quelle (https://www.youtube.com/watch?v=e4ZkhrwwGdw&t=402s) sieht man ja, dass die Reichweite bis zum "letzten Springer" nichts mehr mit der eigentlichen Melee Range zu tun hat.

Aktionen #54

Von LordMagnum vor mehr als 3 Jahren aktualisiert

Huhu,

@ #note-53

Kettenblitzschlag: "Hurls a lightning bolt at the enemy, dealing 973 to 1111 Nature damage and then jumping to additional nearby enemies."
Donnerzorn: "Blasts your enemy with lightning, dealing 300 Nature damage and then jumping to additional nearby enemies."

hmm weiß net, da ist die möglich range von unit zu unit dynamisch,

Ich denke das auch die Casts davon betroffen sind ab wann man angreifen kann, habe da schon vieles gelesen beim durchstöbern vom tc core auf git.
u.a. was eingangs schon steht getDistance und getExactDistance wobei dazu kommt 2d & 3d y,x,z (virtualmaps eg. vmaps) Kalkulation
Dann geht es weiter mit Bounding Radius und Combat Reach was damit zu tun hat wann du aggro bekommst oder wann du/unit schlagen kann

[5] UNIT_FIELD_BOUNDINGRADIUS: {unit_model_info}
[5] UNIT_FIELD_COMBATREACH: 1.5 (angeblich fix seit wotlk)

Spalten: 'Ein weitreichender Angriff, der dem Ziel und seinen nächsten zwei Verbündeten Waffenschaden plus 222 zufügt.' (mit Glyphe)
Theoretisch währen dann Distanzen von gut 15 Metern möglich wenn in einer Linie, z.B. PLAYER -5yards-> DUMMY -5yards-> DUMMY -5yards-> DUMMY

Aktionen #55

Von Connex vor etwa 3 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Testbereit geändert
  • Zugewiesen an Connex wurde gelöscht
Aktionen #56

Von Jeora vor etwa 3 Jahren aktualisiert

  • Status wurde von Testbereit zu Ready geändert
  • DB-Link wurde auf https://db.rising-gods.de/?spell=47520 gesetzt
  • Update Text Deutsch aktualisiert (Vergleich)
Aktionen #57

Von Serverupdate vor etwa 3 Jahren aktualisiert

  • Status wurde von Ready zu Pending geändert
Aktionen #59

Von Connex vor etwa 3 Jahren aktualisiert

  • Tags wurde von Spell, Mechanic zu Spell, Mechanic, Update 2021-10-21 geändert
  • Status wurde von Pending zu Live geändert
Aktionen #60

Von Connex vor etwa 3 Jahren aktualisiert

  • Vorgänger von Fehler #40196: Halion Cleave Range wurde hinzugefügt
Aktionen

Auch abrufbar als: Atom PDF