Sie buggen zwar nicht mehr, aber ihre Angriffe mit dem Stachel erfolgen aus einer Entfernung, die eigentlich nicht möglich sein sollte, sie stechen außerhalb der Reichweite meines Rapiers zu, wobei ich denke, dass deren Angriff mit dem Stachel eigentlich aus naher Distanz erfolgen sollte.
Die Angriffsreichweite der Blutfliegen wurde soweit das möglich war reduziert. Soweit das möglich war heißt, dass es immernoch dazu kommen kann, dass sie vereinzelt aus visuell etwas zu hoher Distanz angreifen, aber bei Blutfliegen kommen mehrere Faktoren zusammen, durch die ein weiteres Reduzieren problematisch wird:
- Es sind die Monster mit der schnellsten Bewegungsanimation (es hat einen Grund, warum Supporter immer auf Blutfliegen rumschwirren und nicht auf Molerats).
- Sie fliegen, wodurch sie anstatt einer gültigen Höhenposition eine ganze Reihe gültiger Höhenpositionen haben können, ohne, dass sie von der Schwerkraft nach unten gezogen werden.
- Sie haben visuell eine der kürzesten Angriffsreichweiten.
Die Kombination dieser drei Faktoren sorgt dafür, dass man abwägen muss, wieviel Toleranz-Reichweite man den Blutfliegen zuspricht. Das Kampfscript ist nur eines von zahlreichen Scripten, die permanent laufen - und das für über 1000 Bots. Soll heißen: Es liegt immer eine gewisse Zeitspanne zwischen zwei Durchläufen des Kampfscriptes für die eine einzelne Blutfliege, gegen die du gerade kämpfst. Und in dieser Zeitspanne führt die AI den zuletzt erhaltenen Befehl aus; den nächsten erhält sie erst wieder nach dieser Zeitspanne.
Was der Bot tut, hängt wiederum von mehreren Faktoren ab, für diese Erklärung relevant die Distanz zu dem Ziel, dass der Bot angreifen will, der Höhenunterschied und die Angriffsreichweite des Bots. Vereinfacht ausgedrückt passiert folgendes (die Realität ist natürlich noch etwas komplexer):
Ist die Distanz zwischen Bot und Ziel zu klein, soll der Bot zurückweichen.
Ist die Distanz zwischen Bot und Ziel kleiner, als die Angriffsreichweite (aber eben nicht zu klein), kann der Bot angreifen.
Ist die Distanz größer, muss der Bot sich in Richtung seines Ziels bewegen.
Wenn die Angriffsreichweite zu klein ist, kann nun folgendes passieren:
Durchlauf 1: Der Bot ist knapp außerhalb der Angriffsreichweite --> Der Bot bewegt sich zu seinem Ziel.
-- Zeit vergeht --
Durchlauf 2: Der Bot ist zu nah an dem Ziel dran --> Der Bot weicht nach hinten zurück.
-- Zeit vergeht, es gibt eine kleine Verzögerung, weil zwischenzeitlich das Respawnscript der Pflanzen prüft, welche Pflancen jetzt respawnen müssen --
Durchlauf 3: Der Bot ist knapp außerhalb der Angriffsreichweite --> Der Bot bewegt sich zu seinem Ziel.
-- Zeit vergeht, es gibt eine kleine Verzögerung, weil ein anderes großes Script zwischenzeitlich durchläuft --
Durchlauf 4: Der Bot ist mittlerweile durch sein Ziel hindurchgeflogen und hinter dem Spieler --> Das wollen wir vermeiden. Außerdem könnte er auch hinter dem Spieler, aber zu nah dran sein --> Er weicht wieder zurück usw.
Man beachte hierbei, dass die Blutfliegen wie gesagt die höchste Bewegungsgeschwindigkeit aller Monster haben und demzufolge in der Zeitspanne zwischen zwei Kampfscript-Durchläufen entsprechend die meiste Strecke im Vergleich aller Bots zurücklegen.
Zusätzlich kommt bei den Mistviechern noch die Flugfähigkeit hinzu: Es kann durch aufeinanderfolgendes Zurückweichen und nach vorn fliegen aufgrund des obigen Szenarios dazu kommen, dass die Blutfliege an Höhe gewinnt. Das passiert, da die Zurückweichen-Animation der Blutfliege in Form eines Hüpfers geschieht, diese Animation aber nicht zwangsläufig in genau dem Augenblick durch das Vorwärtsfliegen ersetzt wird, in dem die Fliege gelandet ist, sondern das kann auch in dem Augenblick passieren, in dem die Fliege gerade am höchsten Punkt der Zurückweichen-Animation ist. Diese Flughöhe sieht Gothic für die Fliege aber noch als korrekt an. Die Folge: Die Fliege schwirrt dem Spieler um den Kopf. Ein Verhalten, was mit der heutigen Anpassung auch nicht mehr auftreten sollte, ganz nebenbei.
Würde man die Angriffsreichweite der Blutfliegen so weit reduzieren, dass sie zur visuellen Darstellung passt, dann würde die Blutfliege so gut wie gar nicht mehr zum Angreifen kommen. Das Zeitfenster, in dem sie in der tatsächlich gültigen Reichweite wäre, wäre einfach zu kurz. Das Ergebnis wäre, dass die Blutfliege nur noch vor- und zurückfliegt und man den Eindruck bekommt, sie
buggt hat Orientierungsschwierigkeiten.
Mit einer etwas höheren Angriffsreichweite, als rein von der Darstellung her passend, treten diese Probleme nicht mehr auf. Stattdessen kann es auf der anderen Seite zu entgegengesetzten Extremsituationen kommen:
Das Kampfscript für die Fliege läuft durch und sie ist geraaaaade so in Angriffsreichweite. Visuell ist sie zwar noch eine Stachellänge zu weit weg, aber für das Script passt die Distanz. Da die Fliege sich mit ihrer Zustechanimation ebenfalls nach vorn bewegt, ist sie aber spätestens nach dem zweiten Stich auch visuell in Reichweite.
Stellt man diese beiden Szenarien gegenüber, wird hoffentlich jeder einsehen, dass die scriptseitig höhere Angriffsreichweite die bessere Wahl ist. Und um meine anfängliche Formulierung wieder aufzugreifen: Die Angriffsreichweite wurde jetzt so weit reduziert, wie möglich, ohne, dass das zuerst genannte Szenario verstärkt auftritt.
Und noch eine Klarstellung, falls jemand unter "die Blutfliegen stechen aus zu großer Distanz zu" meint "Ich laufe vor der Blutfliege weg, sie fliegt mir hinterher und sticht irgendwann zu, aber während sie zum Zustechen stehen bleibt laufe ich doch weiter und laufe damit wieder außer Reichweite, also darf sie mich doch trotzdem nicht treffen!": Falsch. In dem Moment, in dem das Kampfscript durchläuft und dem Bot einen Angriffsbefehl erteilt, steht bereits fest, dass ihr getroffen werdet. Da ist es völlig egal, ob ihr euch in den Sekundenbruchteilen, in dem der Bot die Animation ausführt, hinter einem Baum versteckt, auf den Boden werft, im Sprint davonrennt oder euch ans andere Ende der Welt teleportiert. Der Bot führt einen Angriff aus. Und den führt er aus, weil er euch beim Verfolgen eingeholt hat. Seid froh, dass die Bots in diesem Szenario nicht den Laufangriff verwenden. Denn aktuell habt ihr auf der Flucht trotzdem einen eigentlich unfairen Vorteil: Dadurch, dass der Bot stehen bleibt, um seine Angriffsanimation auszuführen, baut ihr während seines Angriffs neue Distanz auf, die der Bot vor seinem nächsten Angriff erstmal wieder überbrücken müsste. Wem es also nicht gefällt, dass er einem begonnenen Angriff nicht entgehen kann, der kann sich ja wünschen, dass die Bots ihre Laufangriffe nutzen. Dann passt es visuell noch besser. Und der Bot ist nach seinem Angriff in Reichweite, um direkt den nächsten Laufangriff hinterher zu setzen.