It doesn't seem to like the abs command being used with your array. Also, the code where you set the values for nogo$ is never reached as it's after the loop and outside the subroutines.
I'm still new to DB Pro myself, but the following code at least compiles and runs. I'm just not sure it's doing what you wanted it to:-
type loc
name as string
description as string
north as integer
south as integer
east as integer
west as integer
up as integer
down as integer
endtype
Rem ==== DEFINE ALL ROOMS AND THEIR EXITS ====
totalRooms = 10
dim location(totalRooms) as loc
for i = 1 to totalRooms
read location(i).name
read location(i).description
read location(i).north
read location(i).south
read location(i).east
read location(i).west
read location(i).up
read location(i).down
next i
data "Manga Cafe", "put description here", 0, 0, 0, 2, 0, 0 `1
data "Angel Road", "put description here", 0, 3, 7, 1, 0, 0 `2
data "Angel Road", "put description here", 2, 4, 8, 5, 0, 0 `3
data "Angel Road", "put description here", 3, 0, 9, 6, 0, 0 `4
data "Pachinko", "put description here", 0, 0, 0, 3, 0, 0 `5
data "XXX", "put description here", 0, 0, 0, 4, 0, 0 `6
data "Super Market", "put description here", 0, 0, 2, 0, 0, 0 `7
data "Dark Alley", "put description here", 0, 0, 3, 10, 0, 0 `8
data "Department Store", "put description here", 0, 0, 0, 4, 0, 0 `9
data "Back Alley", "put description here", 0, 0, 0, 8, 0, 0 `10
plr_pos = 1
nogos=4
dim nogo$(nogos)
for i = 0 to nogos
read nogo$(i)
next i
data "You can't go that way."
data "You're scared to go that way!"
data "You can't see a thing there, it's too dark!"
data "The door is locked."
do
cls
gosub displayPosition
gosub playerInput
sync
loop
displayPosition:
print location(plr_pos).name
print location(plr_pos).description
return
playerInput:
input "> ", cmd$
select cmd$
case "n"
if location(plr_pos).north < 1
print nogo$(location(plr_pos).north)
else
plr_pos = location(plr_pos).north
endif
endcase
case "s"
if location(plr_pos).south < 1
print nogo$(location(plr_pos).south)
else
plr_pos = location(plr_pos).south
endif
endcase
case "e"
if location(plr_pos).east < 1
print nogo$(location(plr_pos).east)
else
plr_pos = location(plr_pos).east
endif
endcase
case "w"
if location(plr_pos).west < 1
print nogo$(location(plr_pos).west)
else
plr_pos = location(plr_pos).west
endif
endcase
case "u"
if location(plr_pos).up < 1
print nogo$(location(plr_pos).up)
else
plr_pos = location(plr_pos).up
endif
endcase
case "d"
if location(plr_pos).down < 1
print nogo$(location(plr_pos).down)
else
plr_pos = location(plr_pos).down
endif
endcase
case "l"
endcase
endselect
return