Um nicht tausende Events dafür zu verwenden, wäre die übliche Lösung:

Parallel Process
---hier kommt erstmal der allgemeine Teil----
Change Variable NewX = HeroXCoords
Change Variable NewY = HeroYCoords
fork NewX ungleich OldX { Change Switch Roll On }
fork NewX ungleich OldX { Change Switch Roll On }
fork Switch Roll On {

------hier kommt ein Teil, der für jede Area neu gemacht wird----
fork NewX <= (hier Wert für die horizontale Beschränkung nach rechts einsetzen) {
fork NewX >= (blablub links) {
fork NewY <= (vertikal unten) {
fork NewY >= (vertikal oben) {
(hierhin sowat "erstelle Zufallswert, ist der größer als X, löse Kampf aus)
}}}}
------------------------------

} <----für die fork mit dem Switch-------
Change Variable OldX = NewX
Change Variable OldY = NewY
wait 0.1s


recht simple Sache das.