Projekt

Allgemein

Profil

Aktionen

Fehler #16854

geschlossen

[Krieger] Sturmangriff - Falsche Endposition

Von Franchizer vor mehr als 8 Jahren hinzugefügt. Vor fast 6 Jahren aktualisiert.

Status:
Live
Priorität:
Normal
Zugewiesen an:
-
Kategorie:
Zauber
Zielversion:
Beginn:
23.12.2015
Update Text Deutsch:

Der Sturmangriff des Kriegers sollte nun immer die richtige Endposition berechnen.

Tags:

Beschreibung

Ich bin im Source zufällig auf etwas gestoßen was mir beim spielen gar nicht aufgefallen ist.
Sturmangriff sollte den Charakter auf maximaler melee reichweite abstellen.
Dies tut es auf RG nicht.
Das Problem liegt wahrscheinlich an folgendem code in der SpellEffect.cpp:

void Spell::EffectCharge(SpellEffIndex /*effIndex*/) {
if (!unitTarget)
return;

if (effectHandleMode SPELL_EFFECT_HANDLE_LAUNCH_TARGET) {
// Spell is not using explicit target - no generated path
if (m_preGeneratedPath.GetPathType() PATHFIND_BLANK) {
//unitTarget->GetContactPoint(m_caster, pos.m_positionX, pos.m_positionY, pos.m_positionZ);
Position pos = unitTarget->GetFirstCollisionPosition(unitTarget->GetObjectSize(), unitTarget->GetRelativeAngle(m_caster));
m_caster->GetMotionMaster()->MoveCharge(pos.m_positionX, pos.m_positionY, pos.m_positionZ);
}
else
m_caster->GetMotionMaster()->MoveCharge(m_preGeneratedPath);
}

if (effectHandleMode SPELL_EFFECT_HANDLE_HIT_TARGET) {
// not all charge effects used in negative spells
if (!m_spellInfo->IsPositive() && m_caster->GetTypeId() TYPEID_PLAYER)
m_caster->Attack(unitTarget, true);
}
}

In diesem Video sieht man das der Spieler immer auf maximaler melee Range positioniert wird.

Aktionen #1

Von Franchizer vor mehr als 8 Jahren aktualisiert

Aktionen #2

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Zielversion wurde auf Klassen gesetzt

wotlk-quellen gibts auch dazu?

Aktionen #4

Von Rushor vor mehr als 8 Jahren aktualisiert

float WorldObject::GetObjectSize() const
{
    return (m_valuesCount > UNIT_FIELD_COMBATREACH) ? m_floatValues[UNIT_FIELD_COMBATREACH] : DEFAULT_WORLD_OBJECT_SIZE;
}

nunja, für UNIT_FIELD_COMBATREACH einen wert finden der immer die maximale range zurückgibt

Aktionen #5

Von Rushor vor mehr als 8 Jahren aktualisiert

  • Status wurde von Neu zu Testbereit geändert

neue distanz

meleerange wird nun mit einbezogen

auch gegen spieler testen. wenn ihr nicht wisst ob charge an stelle xy genauso buggy war wie nun auf dem master-testserver > austesten aufm live

Aktionen #6

Von sindorei vor mehr als 8 Jahren aktualisiert

Im PvP laggen sich die angechargten Targets eh in 1/3 der Fälle aus den Charges, spielt das auf und Krieger wird noch verkorkster :X

Aktionen #7

Von Rushor vor mehr als 8 Jahren aktualisiert

laggs haben nichts mit klassenmechaniken zu tun

Aktionen #8

Von Mollestus vor mehr als 8 Jahren aktualisiert

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

Auf normale Mobs etc scheint es zu passen, genauso wie Spieler.
Problematisch sind Bosse wie Prof/Bloodqueen etc:

zB: https://www.youtube.com/watch?v=HKzatWtnL8U&feature=youtu.be

Aktionen #9

Von Rushor vor mehr als 8 Jahren aktualisiert

video privat :(

Aktionen #10

Von Mollestus vor mehr als 8 Jahren aktualisiert

Ups mom

Aktionen #11

Von Mollestus vor mehr als 8 Jahren aktualisiert

Sollte wieder öffentlich sein.
Vllt wegen der Hitbox einen festen wert nehmen? 5m oder so von der Mitte der Hitbox ausgesehen? kA ob das sonst machbar wäre oder man passt die Boss Hitboxen an :D

Aktionen #12

Von Rushor vor mehr als 8 Jahren aktualisiert

wenn wir die bosshitboxen anpassen gibts wieder flame, dass man an diese zu nah ranlaufen muss um meleehitten zu können

Aktionen #13

Von Franchizer vor mehr als 8 Jahren aktualisiert

Die Frage ist doch, was läuft in dem Video schief?

Du hast Prof angestürmt, doch konntest nicht angreifen,
dass heißt das Charge bei fetten Hitboxen nicht an MeleeRange rangeht.

Andererseits chargst du nie einen neutralen Raidboss an ;)
Das sieht dann wiederum so aus:
https://www.youtube.com/watch?v=lcphD8xcnPU
(Raidboss ist StunImmun und kommt deswegen noch ein Stück auf dich zu.)

Das ist somit schon ziemlich am Original aber doch noch nicht ganz.
Ein Test mit Archavon in Neutral zeigte, das Charge den Krieger 10m vor der Hitbox abstellt, und nicht 5m.
(Vielleicht hilft dir der Screen: http://www2.pic-upload.de/img/29355912/WoWScrnShot_010716_161943.jpg)

Was mich gerade Irritiert ist, das diese Änderung doch dann auch Abfangen des Furor Krieger beeinflusst.
Der Spell greift doch auf den selben Spelleffect zurück.
Fury's könnten also ziemlich angepisst sein wenn sie noch 5m zum Boss laufen müssten.

Aktionen #14

Von Mollestus vor mehr als 8 Jahren aktualisiert

Schon klar, dass die Bosse noch zu einem angelaufen kommen. Doch ging es mir vor allem darum, dass man dennoch nicht in Meelerange ist, was für PvP zB in BGs mit Fahrzeugen oÄ oder eben im PvE als DD bei solchen Bossen ziemlich doof ist, wenn man noch weiter vorlaufen muss.^^

Aktionen #15

Von Rushor vor mehr als 8 Jahren aktualisiert

unitTarget->GetObjectSize() only, ist also zu nah am ziel
unitTarget->GetMeleeReach() only ist leider auch zu am ziel

deshlab wird atm beides verwendet unitTarget->GetObjectSize()+ unitTarget->GetMeleeReach()

bei großen hitboxen gibts dann probleme

spontan würde mir nur einfallen:

uint32 Chargerange unitTarget->GetObjectSize() + unitTarget->GetMeleeReach()
Position pos = unitTarget->GetFirstCollisionPosition(Chargerange > xx ? 5 : Chargerange, unitTarget->GetRelativeAngle(m_caster));

demnach wäre es wie von euch beschrieben, wenn die gesamtrange größer als xx wäre würde der wert 5 genommen werden, ansonsten das resultat aus unitTarget->GetObjectSize()+ unitTarget->GetMeleeReach()

frage ist nun auf welchen wert wir xx festlegen sollen. bei welchen bossen ab welcher hitboxgröße kommt es überall zu problemem?

Aktionen #16

Von Rushor vor etwa 8 Jahren aktualisiert

  • Status wurde von In Bearbeitung zu Testbereit geändert
  • Zugewiesen an Rushor wurde gelöscht

kontaktpoint berechnung:

1.) unitTarget->GetObjectSize() + unitTarget->GetMeleeReach()
2.) wenn (unitTarget->GetObjectSize() + unitTarget->GetMeleeReach()) > = 9 yards entfernung == > 9 yards entfernung

das sollte die enorme distanz bei npcs mit großen hitboxen entfernen

Aktionen #17

Von Mollestus vor etwa 8 Jahren aktualisiert

  • Status wurde von Testbereit zu Ready geändert
  • Update Text Deutsch aktualisiert (Vergleich)

Passt.

Aktionen #18

Von Rushor vor etwa 8 Jahren aktualisiert

  • Update Text Deutsch aktualisiert (Vergleich)
Aktionen #19

Von Daejiv vor etwa 8 Jahren aktualisiert

  • Status wurde von Ready zu Live geändert
Aktionen #20

Von Rushor vor etwa 8 Jahren aktualisiert

Bedeutung Live:

Der Bug wurde erfolgreich behoben und der Fix dazu 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.

Aktionen #21

Von Daejiv vor etwa 7 Jahren aktualisiert

  • Zielversion wurde von Klassen zu Klasse - Krieger geändert
Aktionen #22

Von Left4Info vor fast 6 Jahren aktualisiert

  • Tags wurde auf Classes, Warrior gesetzt
Aktionen

Auch abrufbar als: Atom PDF