Sofern du nicht auf die Idee kommst mehr als 200 mal <MoveEvent> je Frame ausführen zu lassen. (Das kann man zB. mit einem 0.0 wait in 200er Blöcke aufteilen.) MovementRoutes sind da weniger anspruchsvoll im Hinblick auf Prozessorauslastung.
Dazu braucht man insgesamt nur 5 (Hero_x, Hero_y, Event_ID, Event_x, Event_y). Für alle Events. Und nicht für jedes Event x Werte. Bei Differenz von Hero_x - Event_x falls kleiner -20 / größer +20 bzw. Differenz in y-Pos wird halt... ich weiß nicht... so eine Art SelfSwitch umgelegt, welcher die zweite EventPage aktiviert, bei der der MovementType auf [stationär] steht. Wenn das Event wieder im Screen ist -> SelfSwitch OFF, dann geht die MovementRoute soweit ich weiß da wieder weiter, wo sie unterbrochen wurde.
Oder besser noch: Event_ID[xyz] bis Event_ID[zyx], welche sich in einem Bereich der Map aufhalten, erst stillegen, wenn man eine bestimmte Entfernung verzeichnet. Dann laufen die Events zumindest nicht mehr asynchron oder sonstwie ungeplant durcheinander. (Ich nehme mal an, auf das Problem stößt man mit dem XP Skript?)
Item&EventPointer-Ersatz
Aber es sieht auch irgendwo dämlich aus, wenn etwas, das aus dem Bild raus ist, auf einmal nicht mehr hinterherkommt.