Naja die Logik ergibt so nicht so viel Sinn, da du alles verschachtelst hast aber eigentlich immer 2 Dinge überprüfst. Es ist so, wie Linkey schrieb, es wird z.B. gar nichts gemacht wenn der Held horizontal mehr als 5 Felder weg ist.
Das wäre zu lösen indem du die Bedingungen einfach untereinander packst anstatt verschachtelt, aber selbst dann stimmts nicht weil wenn die Entfernung in X und Y verschieden ist, wird in vielen Fällen wieder gar nichts passieren.
Was du wirklich brauchst ist eine tatsächliche Distanz (Länge des Distanzvektors), die wäre die Quadratwurzel aus x²+y² (Pythagoras). Jetzt hat der Maker zwar keine Wurzelfunktion, aber das macht nichts weil du halt stattdessen nicht mit der gewünschten Entfernung d (z.B. 5) sondern mit dem Quadrat davon d² (z.B. 25) vergleichen kannst (d²=x²+y²).
Außerdem willst du ja nur dann den Sound erneut abspielen, wenn sich die Lautstärke geändert hat, oder wenn er durchgelaufen ist, d.h. wir müssen auf die Änderung überprüfen und anstatt eines statischen Waits einen Framezähler nehmen der bis zu 25.7 Sekunden = 1542 Frames zählt.
Mein Vorschlag wäre daher folgender:
Um das ganze zu resetten, z.B. wenn man die Map frisch betritt, einfach ZeitÜbrig auf 0 setzen.
An deiner Stelle würde ich für die Abfrage der Koordinaten des Wasserfalls direkt "This Event" verwenden und den Code in das Wasserfall-Zentrums-Event selber packen. Dann kannst du es beliebig auf andere Maps kopieren ohne was zu ändern (bzw. nur den Sound zu ändern, wenn nötig).
Das ganze hat noch einen Haken: Wenn keine Events ausgeführt werden können, z.B. wenn man ins Menü geht oder eine Screentransition stattfindet (Show/Hide Screen), wird der Zähler auch nicht reduziert (das Problem hättest du mit deinem Wait aber auch), d.h. danach glaubt der das Spiel, der Sound ist weniger weit fortgeschritten, als er wirklich ist, und es entsteht eine Lücke wenn der Sound ausläuft, das Game es aber noch nicht weiß. Das könnte man zumindest einigermaßen abfedern indem man den Sound in der Sounddatei selber mehrfach geloopt reinmacht und aber trotzdem für den Zähler die einfache Länge verwendet, dann gibts zumindest einen Puffer, wo es nicht auffällt wenn man kürzer als dieser Puffer lang ist sich im Menü o.ä. befindet.
@Nagasaki: Ich würde vermuten, die Tatsache dass Sound-Effekte nicht MIDI oder MP3 sein können und auch nicht automatisch gespeichert, beendet und wiederhergestellt werden wenn man z.B. kämpft, und auch unterbrochen werden würden wenn man ins Menü geht und dazwischen die Musik ausläuft (was sicher mehr auffällt als beim Sound) wird wohl dagegen sprechen... Aber je nach Rahmenbedingungen kanns natürlich eine interessante Herangehensweise sein. (Neuere Maker haben genau dafür ja BGS...)
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!