Ja, es scheint sich um eine ganze Klasse von Events zu handeln, die mittels
if (pos/target_pos == EVENT && pos/target_pos != gs_dng_handled_pos)
geschützt werden, dann einen Rollback ausführen, aber anschließend
gs_dng_handled_pos = pos;
setzen, wobei pos zu diesem Zeitpunkt noch immer die Position des Event-Feldes ist (also nicht der zurückgesetzten *_bak -Position). Wenn dann im nächsten Frame erneut ein „Vorwärts“ gelesen wird, wird das Event dadurch ggf. geskippt.
Bugfix könnte sein, gs_dng_handled_pos bei dieser Art von Events nicht auf pos, sondern auf *_bak (oder irgendein invalides Feld) zu setzen.
Oder genauer:
gs_dng_handled_pos nur dann auf pos zu setzen, wenn pos nach der Event-Behandlung immer noch das aktuelle Feld der Gruppe ist.
Folgende Liste an weiteren möglichen Stellen habe ich dabei gefunden (alles ungetestet, ohne Anspruch auf Vollständigkeit):
- Tiles in der Piratenhöhle von Manrek [26], die einem die Möglichkeit geben, die Gruppe ertrinken zu lassen. Ohne besonderen Effekt, außer dass man auf ebenjenen Feldern landen könnte. Ggf. eine weitere Möglichkeit, neben https://www.crystals-dsa-foren.de/showth...#pid172247, in der Piratenhöhle out-of-bounds zu kommen?
- Schwarzmagierruine Ebene 1: Feld mit Treppe [5] sowie Exit-Feld [1] (per Exploit sollte man lediglich auf dem Feld stehen bleiben können, ohne besonderen Effekt).
- In Hyggeliks Ruine: Wenn man die verfluchten Goldmünzen einsteckt und anschließend auf das Exit-Tile läuft. Zwar kann man das Dungeon so nicht verlassen, aber man könnte auf dem Exit-Tile zu stehen kommen und damit möglicherweise out-of-bounds gehen. Technisch gesprochen könnte man so also vielleicht die Absteckung der Ruine verlassen, praktisch (Dungeon-Wechsel / zurück zur Reisekarte) vermutlich nicht.
- Die Zwergenmine unter Oberorken: bei den Events zur Gangfreilegung [5] (wenn man „Nein“ wählt) und die Illusionswand auf der zweiten Ebene [6]. Hier gibt es ja schon den Lösungstipp „mehrmals dagegenlaufen“. Durch den Exploit kann man sich ggf. lediglich die Versuche sparen (indem man „Nein“ wählt) und damit potenziellen Schaden, den diese Versuche verursachen.
- Die Gänge in der Premmine [9], die sich freilegen lassen: hier spart einem der Exploit ggf. die Wartezeit von 2–6h. Allerdings werden die Gänge dadurch nicht freigelegt, sondern sind per Exploit lediglich ohne Freilegung passierbar.
Etwas antiklimaktisch, dass man diese Stellen umgehen kann, indem man nur schnell bzw. penetrant genug ist, dem Spiel seinen Willen aufzuzwingen. Letztlich ist es ja kein Actionspiel wie z.B. Super Mario, wo es (mit dem Walljump) ähnliche „frame-perfect“ Tricks gibt, die man dem Spiel damit eher verzeihen kann, bzw. die in späteren Teilen sogar zu einer beabsichtigten Mechanik wurden:
if (pos/target_pos == EVENT && pos/target_pos != gs_dng_handled_pos)
geschützt werden, dann einen Rollback ausführen, aber anschließend
gs_dng_handled_pos = pos;
setzen, wobei pos zu diesem Zeitpunkt noch immer die Position des Event-Feldes ist (also nicht der zurückgesetzten *_bak -Position). Wenn dann im nächsten Frame erneut ein „Vorwärts“ gelesen wird, wird das Event dadurch ggf. geskippt.
Bugfix könnte sein, gs_dng_handled_pos bei dieser Art von Events nicht auf pos, sondern auf *_bak (oder irgendein invalides Feld) zu setzen.
Oder genauer:
gs_dng_handled_pos nur dann auf pos zu setzen, wenn pos nach der Event-Behandlung immer noch das aktuelle Feld der Gruppe ist.
Folgende Liste an weiteren möglichen Stellen habe ich dabei gefunden (alles ungetestet, ohne Anspruch auf Vollständigkeit):
- Tiles in der Piratenhöhle von Manrek [26], die einem die Möglichkeit geben, die Gruppe ertrinken zu lassen. Ohne besonderen Effekt, außer dass man auf ebenjenen Feldern landen könnte. Ggf. eine weitere Möglichkeit, neben https://www.crystals-dsa-foren.de/showth...#pid172247, in der Piratenhöhle out-of-bounds zu kommen?
- Schwarzmagierruine Ebene 1: Feld mit Treppe [5] sowie Exit-Feld [1] (per Exploit sollte man lediglich auf dem Feld stehen bleiben können, ohne besonderen Effekt).
- In Hyggeliks Ruine: Wenn man die verfluchten Goldmünzen einsteckt und anschließend auf das Exit-Tile läuft. Zwar kann man das Dungeon so nicht verlassen, aber man könnte auf dem Exit-Tile zu stehen kommen und damit möglicherweise out-of-bounds gehen. Technisch gesprochen könnte man so also vielleicht die Absteckung der Ruine verlassen, praktisch (Dungeon-Wechsel / zurück zur Reisekarte) vermutlich nicht.
- Die Zwergenmine unter Oberorken: bei den Events zur Gangfreilegung [5] (wenn man „Nein“ wählt) und die Illusionswand auf der zweiten Ebene [6]. Hier gibt es ja schon den Lösungstipp „mehrmals dagegenlaufen“. Durch den Exploit kann man sich ggf. lediglich die Versuche sparen (indem man „Nein“ wählt) und damit potenziellen Schaden, den diese Versuche verursachen.
- Die Gänge in der Premmine [9], die sich freilegen lassen: hier spart einem der Exploit ggf. die Wartezeit von 2–6h. Allerdings werden die Gänge dadurch nicht freigelegt, sondern sind per Exploit lediglich ohne Freilegung passierbar.
Etwas antiklimaktisch, dass man diese Stellen umgehen kann, indem man nur schnell bzw. penetrant genug ist, dem Spiel seinen Willen aufzuzwingen. Letztlich ist es ja kein Actionspiel wie z.B. Super Mario, wo es (mit dem Walljump) ähnliche „frame-perfect“ Tricks gibt, die man dem Spiel damit eher verzeihen kann, bzw. die in späteren Teilen sogar zu einer beabsichtigten Mechanik wurden:

