Ok, this is really easy, but please note that I havent used GM in a WHILE...
anyway, here is how it would go.
so basically you have a layout like this
R1, R2, R3, R4, R5, R6
R7, R8, R9, R10, R11, R12
R13, R14, R15, R16, R17, R18
R19, R20, R21, R22, R23, R24
R25, R26, R27, R28, R29, R30
R stands for a room...
anyway, lets say that we start in room 1 (Top left):
in the room creation code, make it set a global value called global.roomnum to 1
that will indicate that you are indeed in the top left corner
for every other room do the same with room 2, 3, 4, 5...
now in the step event, make a simple script that detects if the player is in one of the designated areas.
example
if player.x > 0 && player.x < 20 {
global.leaving = up; // store the direction where the player is going to leave in a variable, this will be used later on.
}
so now
with the players trigger event (when it detects and stores the above variable, make it excecute a script, the script is below
(this is psuedo mostly so don't copy and paste ; D)
// ok so the first and foremost thing you want to do is switch on the global roomnum:
switch (global.roomnum) {
case 1: //room 1 (look at diagram)
switch (global.leaving) {
case "top":
// nothing, there is no room on top of this. this is room 1, top left.
case "bottom":
// do a little math
global.roomnum += 6 // this will lead to room 7 : D
global.newx = //set a new x coordinate for the player
global.newy = //set a new y coordinate for the player
case "right":
// do a little math
global.roomnum +=1 // this will lead to room 2
global.newx = //set a new x coordinate for the player
global.newy = //set a new y coordinate for the player
case "left":
// nothing, can't go left.
}
}
go to room global.room num
player.x = global.newx;
player.y = global.newy;
[code]
There is some nasty code that I wrote up in a few minutes... ; D
Good luck.
[/code]