Ok first of all you were right. You can use room coordinates, which really helps with speed and coding
But I'm afraid that the problem still persists.
I changed the script to make a simple ledge detection:
function repeatedly_execute_always() {
if (GetWalkableAreaAt(player.x+30,player.y-128)==1 && GetWalkableAreaAt(player.x+30,player.y-138)==0) Display ("Collision");
}
only works in right direction but its just a test.
Here is an image so that you can imagnine what it looks like:

Uploaded with ImageShack.us
But I'm afraid that the problem still persists.
I changed the script to make a simple ledge detection:
function repeatedly_execute_always() {
if (GetWalkableAreaAt(player.x+30,player.y-128)==1 && GetWalkableAreaAt(player.x+30,player.y-138)==0) Display ("Collision");
}
only works in right direction but its just a test.
Here is an image so that you can imagnine what it looks like:

Uploaded with ImageShack.us