• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

wirkungsweise des last collides

SirTheShadow

Well-known member
Ex-Staffmember
✸ Supporter ✸
Registriert
14 Dezember 2007
Beiträge
3.065
Punkte Reaktionen
3
Ausgangslage

Wenn man sich mal in der Missiles.txt oder in technischeren Threads umsieht, wird man eventuell bemerken, dass etliche Missiles einen "last collide" Eintrag haben (wobei last collide nur aktiv oder nicht aktiv sein kann). Was es damit auf sich hat, wurde mir aber nicht ganz klar, im Amazon Basin (im Thread zur Wirkungsweise des Tornados) wurde er so erklärt, dass jedes Missile mit last collide jedem Gegner nur einmal Schaden zufügen kann.

Nun hat sich Nefarius im PK hier dazu geäußert, aber argumentativ so ganz überzeugend fand ich das Ganze auch nicht. Nach seiner Erklärung könnte ein Geschoss mit last collide einem Gegner nur erneut Schaden zufügen, wenn es vorher einem anderen Gegner Schaden zugefügt hat.

Für mich wurde die Erklärung dieses Eintrags nötig, da auch der Tornado einen last collide Eintrag hat und ich für den Tornado eine SKillbeschreibung geschrieben habe, die in der Hinsicht auch richtig sein sollte.

Also habe ich eine kleine Testreihe gemacht um heraus zu finden, wie der last collide nun wirklich funktioniert, also ob Nefarius mit seiner Erklärung recht hat. Und um dabei auch eine Testreihe zum Nachweis der Erklärung aufzustellen.

Dazu eines vorweg zum Tornado: Der Tornadoschaden besteht aus 2 Komponenten, dem on-collision-dmg und dem periodic-dmg.

Den periodic-dmg kann man sich wie einen beweglichen Minihurrikan vorstellen, der Tornado fügt also allen Gegnern in Reichweite des periodic dmg alle paar frames Schaden zu. Dieser Schaden wird nicht von last collide, Block, dem Nexthitdelay (NHD) etc. beeinflusst. Interessant dabei ist noch, dass zum ersten Mal im 1. Frame der Existenz des Tornados Schaden zugefügt wird und danach normalerweise alle 15 frames wieder (also in den Frames 16, 31, etc.).
Hinweis: frames sind eine Maßeinheit für zeitliche Längen im Spiel, eine Sekunde besteht im Spiel aus 25 frames


Der on-collison-dmg wird beim Berühren eines Gegner ausgeteilt, ist blockbar, unterliegt dem last collide und dem NHD. Die Länge dieses NHDs beträgt 25 frames.


Für mehr Informationen siehe hier


Nach der Erklärung aus dem Basin könnte der Tornado einem Ziel also nur ein einziges mal einen on-collision-dmg zufügen, nach der Erklärung aus dem PK könnte ein Tornado einem Gegner ein zweites Mal on-collision-dmg zufügen, falls er das vorher bei einem anderen Gegner getan hat und das NHD am ersten Gegner abgelaufen ist. Dies zu klären, war nun der Sinn meines Tests.



Grundvoraussetzungen der Testreihe

Um ein aussagekräftiges Ergebnis zu erhalten müssen erst einmal einige Bedingungen erfüllt sein.

Die Idee war nun, den Tornadodmg auf etwas über ein Drittel des Monstelebens zu setzen, so dass ein Monster mit 2 Treffern übeleben würde, mit 3 Treffern aber stirbt. Der 1. Treffer entfällt dabei immer auf den periodic dmg, der 2. ist der erste on-collision-dmg. Falls last collide wie im Basin erklärt funktioniert, dürfte es keinen 2. on-collision-dmg geben und damit müssten auch alle Monster überleben, da ich einen 2. periodic dmg ausschließen kann.



Dazu meine geplanten Tests und was sie ergeben müsten, falls Nefarius Aussage aus dem PK stimmt:

Test 1: last collide ist an, NHD ist an: Es dürfte keine Toten geben, wenn man den Torn auf Einzelgegner feuert. Bei Gruppen sind Tote möglich, aber sehr unwahrscheinlich.

Test 2: last collide ist aus, NHD ist an: Wenn der Torn sehr lange auf einem Gegner bleibt, müsste er sterben, ob Einzelgegner oder Gruppe ist irrelevant. Die Wahrscheinlichkeit dazu ist gering.

Test 3: last collide ist aus, NHD ist aus: Quasi jeder Gegner, der vom Tornado getroffen wird, müsste sterben. Wiederum ist es irrelevant ob es sich um Einzelgegner oder um eine Gruppe handelt.

Test 4: last collide ist an, NHD ist aus: Der entscheidende Test. Gegen Einzelgegner dürfte es keine Toten geben, gegen Gruppen müsste es Tote geben, (da der Tornado nach dem on collision dmg an Gegner 1 einen an Gegner 2 anbringen kann. Nach der Erklärung aus dem PK müsste er dann an Gegner 1 auch wieder einen anbringen können. Dieser 2. on collision dmg würde dann zum Tod des Gegners führen. Nach der Erklärung aus dem Basin dürfte es keine Toten geben.



Einstellungen für die Testreihe

Um zu gewährleisten, dass 2 Treffer immer nicht tödlich sind, 3 Treffer aber immer tödlich sind, habe ich den Tornadoschaden auf Level 1 auf einen Wert von 39-40 gesetzt. Desweiteren habe ich die Lebenspunkte aller Gegner in den Gebieten Blutmoor und Kalte Ebene auf 99-100 gesetzt. Um weitere Einflussnahmen zu verhindern habe ich die Blockchance aller Gegner in den betreffenden Bereichen auf 0 und ihren Widerstand gegen physischen Schaden auf 0 reduziert.

Damit der periodic-dmg zum berechenbaren Faktor wird, habe ich seine Reichweite auf 1000 erhöht und den Abstand zweier "Schadenverteilungen" auf 1000 frames. Damit fügt jeder Tornado jedem Gegner in einem gewaltigen Umkreis genau einmal periodic-dmg zu.

Um das Treffen von mehreren Gegnern mit dem Tornado zu erleichtern und um den Tornado länger auf den Gegnern verweilen zu lassen habe ich die Monsterdichte im Blutmoor deutlich erhöht (Spawnwahrscheinlichkeit ca. verzwanzigfacht), die Existenzdauer des Tornados auf 500 frames angehoben und seine Geschwindigkeit von 8 auf 3 pixels/frame gesenkt. Ausserdem habe ich die Bewegungsgeschwindigkeit aller Gegner der betreffenden Gebiete auf 0 verringert, so dass sie nur noch starr in der Gegend stehen.

Um leichter zu testen habe ich Tornado desweiteren zu einem lvl1-Skill gemacht, Twister als nötigen vorausgehenden Skill entfernt und die Manakosten des Tornados auf 0 reduziert.

Die Wirkung gegen Gruppen habe ich im Blutmoor getestet, die Wirkung gegen Einzelgegner in der Kalten Ebene.

Modifizierte txts: Skills.txt, Monlvl.txt, Levels.txt, Missiles.txt, Monstats.txt

Jeder Test wurde wiederholt durchgeführt und von vorne begonnen um irgendwelche Einflussnahmen auszuschließen. Einen Söldner hatte der Char natürlich nicht, desweiteren war er nackt. Andere Einflussnahmen waren ausgeschlossen (auch seitens des Missiles selber).



Testergebnisse und Auswertung

Test 1: last collide ist an, NHD ist an: Kein Einzelgegner stirbt, auch in den Gruppen stirbt kein Gegner (da die Verweildauer des Tornados auf den Gegnern zu gering war). Somit behielten alle direkt vom Tornado getroffenen Gegner weniger als ein Drittel ihres Lebens

Test 2: last collide ist aus, NHD ist an: Nur ein Fall, in dem ein gegner gestorben ist, da der Tornado ihn sehr günstig, also lange, getroffen hat. Sonst behielten alle direkt vom Tornado getroffenen gegner weniger als ein Drittel ihres Lebens

Test 3: last collide ist aus, NHD ist aus: Nahezu jeder direkt vom Tornado getroffene Gegner stirbt, egal ob er einzeln oder in einer Gruppe steht. Das gleiche Ergebnis erhielt ich auch mit der normalen Tornadogeschwindigkeit, wobei die Anzahl der Toten leicht abnahm.

Test 4: last collide ist an, NHD ist aus: Gegen Einzelgegner ist kein Tornado tödlich, Getroffene überleben immer mit weniger als einem Drittel ihres Lebens. In Gruppen sterben einige vom Tornado getroffene Gegner, andere überleben mit weniger als einem Drittel ihres Lebens. Mit der normalen Tornadogeschwindigkeit nahm die Anzahl der Toten ab, es waren aber immer noch einige vorhanden.



Damit ist erwiesen, dass ein Missile mit aktivem last collide einem Gegner mehrfach Kollisionschaden zufügen kann, falls es zwischen zwei Schadensapplizierungen einem anderen Gegner Kollisionschaden zugefügt hat. Denn anders ist das Beobachtete nicht zu erklären.

Beispiel:

Missile fügt in frame 7 Gegner A Kollisionsschaden zu (NHD sei nicht vorhanden).

Missile fügt nun in frame 9 Gegner B Kollisionsschaden zu. Von nun an kann es Gegner A also wieder Kollisionsschaden zufügen. Wenn dies geschehen ist, kann es Gegner B wieder Kollisionssschaden zufügen etc.

Falls es sich um ein lange den gegner berührendes Missile handelt und kein NHD vorhanden ist, kann der Schadne also immer zwischen den Gegnern hin und her springen.


Technisch wird der last collide laut PK dadurch ermöglicht, dass das Spiel die ID des zu letzt getroffenen Gegners speichert und bei diesem dann erneuten Kollisionsschaden verhindert.
Das konnte ich natürlich nicht testen, es hört sich aber schlüssig an.



Spielerisch sind die Auswirkungen beim Tornado eher gering, da die Wahrscheinlichkeit auf multiplen on-collision-dmg wegen des NHDs eher gering ist. Bei anderen Skills könnte das hingegen anders aussehen.
 
Zuletzt bearbeitet:
:eek:
nette arbeit, scheint wohl jmd. zuviel zeit gehabt zu haben;)

scheint mir jedoch alles sehr schlüssig zu sein, gute arbeit:)
selbst ich, der noch nie iwas mit der text zu tun hatte, kann deine arbeit verstehen:top:
rechtschreiber sind mir nicht aufgefallen, wirste ja wohl eh mit word überprüft haben^^
übersicht passt auch, vllt noch nen letzten übersichtspunkt aka Fazit oder sowas:)
 
>Schadne<
>dne<
>a slo<

Sehr schöne und eigentlich auch schlüssige Arbeit,wieder ein
Schritt mehr zur Entschlüsselung des Torndmg.

[VOTE] for Archiv/Verlinkung zu deiner schönen 1.Arbeit
zum Tornschaden.

MfGg Marco
 
so, hab mal alle Missiles rausgesucht, die last collide aktiv haben und ein NHD. Pfeile, plaguejavelin etc. haben zwar auch ein lastclollide aber diesen eintrag findet man fast bei jedem missile. der sinn ist dann nur zu verhindern, dass (ohne ein NHD einbauen zu müssen) unwahrscheinlicher mehrfachschaden pro missile ausgeschlossen wird.


Missiles:

- Nova
- chain lightning
- teeth (Zähne)
- poisonnova
- frostnova
- diabfire (einer von diablos Skills, aber ich weis nicht welcher)
- coldunique (ich schätze, dass es sich um die frostnova beim ableben eines kälteverzauberten mosters ahndelt)
- nova1, nova2 (missiles ähnlich dem nova-missile, aber ohne celfile)
- multipleshotarrow, multipleshotbolt
- battlecry
- lightningstrike (Kettenblitzschlag)
- warcry
- battlecommand
- battleorders
- grimwardscare (meine schätzung: das missile, das für die flucht sorgt)
- chainlightning2 (ähnlich dem chainlightning-missile)
- blade creeper (missile des Klingenwächters)
- eruption crack 1, eruption crack 2 (ersteres ist Riss-Schadensmissile, die Funktion von 2 unbekannt. relevant auf Grund der Funktionsweise von Riss
- tornado
- volcano small fire (submissile des Vulkans, scheint Schaden auszuteilen)
- dragonbreath missile (gehört zum Skill Drachenflug)
- death mauler (Missile der Todesprügler etc., serverside missile des Fernangriffs. Erzeugt die Spitzen durch ein Submissile. Anscheinend für das Treffen verantwortlich, aber ohne Missilebewegung, da die Geschwindigkeit 0 ist.)
- shockwave
- wake of destruction, wake of destruction maker (gehören laut missiles.txt zum Skill "Wake of Fire", mir völlig unklar ob sie eine Funktion haben oder wozu sie gehören könnten)
- lightning charge up nova (laut missiles.txt Teil des Skills "Nova", unklar, da ich keine Bezüge finde)
- chainlightningcharge ((laut missiles.txt Teil des Skills "Kettenblitz", unklar, da ich keine Bezüge finde)
- baal taunt lightning, baal taunt lightning trail (über einige submissilebezüge teil des baalskills, der den spielern im weltensteinturm schaden verursacht, wenn dieses gelächter ertönt etc.)
- baal inferno
- baal nova
- clawsofthunderbolt, clawsofthundernova (missiles von Donnerklauen)
- royalstrikechaosice (missiles von Phönix-Schlag, in der skills.txt als "Royal Strike" bezeichnet)
- lightningtowernova (es geht wohl um die nova beim ableben blitzspitzen)
- trapnova (vermutlich die nova als falle beim öffnen von urnen etc.)
- mephfrostnova (sollte klar sein)
- strafearrow, strafebolt



jetzt überlasse ich euch eine eventuelle auswahl, welche missiles davon interessant sein könnten, damit last collide in der neuen Erklärung gegenüber der aus dem Basin eine Bedeutung hat...
 
Zurück
Oben