ID:2407735
 
Code:
    Leaving(atom/O)
if(ismob(O)&&O:misc["stairs"]==movedir)
if(O:dir!=movedir&&O:dir!=turn(movedir,180))
if(!locate(/map/natural/slope) in get_step(O,O:dir))
return 0
else if(O:dir==movedir&&layer!=(-2+(floor2*6)))
O:layer=-2+(floor2*6)
if(!(O.z in exteriors))
O:see_invisible=floor2
O:invisibility=floor2
// [[O:Adjust()
else if(O:dir==turn(movedir,180)&&layer!=(-2+(floor1*6)))
O:layer=-2+(floor1*6)
if(!(O.z in exteriors))
O:see_invisible=floor1
O:invisibility=floor1
// [[O:Adjust()
if(!locate(/map/natural/slope) in get_step(O,O:dir))
O:misc["stairs"]=null
return O.dir
north
icon_state="su"
movedir=1
grass
icon='grass.dmi'
icon_state="grassf"
texture='grasstexture.dmi'
snow
icon='snowg.dmi'
layer=2.45
icon_state="snowf"
dirt
icon='dirt.dmi'
layer=2.35
icon_state="dirtf"
texture='dirttexture.dmi'
south
icon_state="sd"
movedir=2
grass
icon='grass.dmi'
icon_state="grassb"
texture='grassbtexture.dmi'
snow
icon='snowg.dmi'
layer=2.45
icon_state="snowb"
dirt
icon='dirt.dmi'
layer=2.35
icon_state="dirtb"
texture='dirttexture.dmi'
west
icon_state="sl1"
movedir=8
Coming(atom/O)
if(ismob(O))
O:misc["stairs"]=movedir
if(O.dir!=movedir&&O.dir!=turn(movedir,180))
if(!(locate(/map/natural/slope) in O.loc))
return 0
if(O:dir==movedir)
return 9
return O.dir
Leaving(atom/O)
if(ismob(O)&&O:misc["stairs"]==movedir)
if(O:dir!=movedir&&O:dir!=turn(movedir,180))
if(!locate(/map/natural/slope) in get_step(O,O:dir))
return 0
else if(O:dir==movedir&&layer!=(-2+(floor2*6)))
O:layer=-2+(floor2*6)
if(!(O.z in exteriors))
O:see_invisible=floor2
O:invisibility=floor2
// [[O:Adjust()
else if(O:dir==turn(movedir,180)&&layer!=(-2+(floor1*6)))
O:layer=-2+(floor1*6)
if(!(O.z in exteriors))
O:see_invisible=floor1
O:invisibility=floor1
// [[O:Adjust()
if(O:dir==turn(movedir,180))
return 6
if(!locate(/map/natural/slope) in get_step(O,O:dir))
O:misc["stairs"]=null
return O.dir
grass
icon='grass.dmi'
icon_state="grassl"
texture='grassltexture.dmi'
snow
icon='snowg.dmi'
layer=2.45
icon_state="snowl"
dirt
icon='dirt.dmi'
layer=2.35
icon_state="dirtl"
texture='dirttexture.dmi'
east
icon_state="sr1"
movedir=4
Coming(atom/O)
if(ismob(O))
O:misc["stairs"]=movedir
if(O.dir!=movedir&&O.dir!=turn(movedir,180))
if(!(locate(/map/natural/slope) in O.loc))
return 0
if(O:dir==movedir)
return 5
return O.dir
Leaving(atom/O)
if(ismob(O)&&O:misc["stairs"]==movedir)
if(O:dir!=movedir&&O:dir!=turn(movedir,180))
if(!locate(/map/natural/slope) in get_step(O,O:dir))
return 0
else if(O:dir==movedir&&layer!=(-2+(floor2*6)))
O:layer=-2+(floor2*6)
if(!(O.z in exteriors))
O:see_invisible=floor2
O:invisibility=floor2
// [[O:Adjust()
else if(O:dir==turn(movedir,180)&&layer!=(-2+(floor1*6)))
O:layer=-2+(floor1*6)
if(!(O.z in exteriors))
O:see_invisible=floor1
O:invisibility=floor1
// [[O:Adjust()
if(O:dir==turn(movedir,180))
return 10
if(!locate(/map/natural/slope) in get_step(O,O:dir))
O:misc["stairs"]=null
return O.dir
grass
icon='grass.dmi'
icon_state="grassr"
texture='grassrtexture.dmi'
snow
icon='snowg.dmi'
layer=2.45
icon_state="snowr"
dirt
icon='dirt.dmi'
layer=2.35
icon_state="dirtr"
texture='dirttexture.dmi'


Problem description:

runtime error: type mismatch: 0 & the turf (82,62,12) (/turf)
proc name: Leaving (/map/Leaving)
usr: Xorbah (/PC)
src: the floor (/map/building/floor/interior/orecrest)
usr.loc: the turf (81,62,12) (/turf)
src.loc: the turf (81,62,12) (/turf)
call stack:
the floor (/map/building/floor/interior/orecrest): Leaving(Xorbah (/PC), the turf (82,62,12) (/turf))
the turf (81,62,12) (/turf): Exit(Xorbah (/PC), the turf (82,62,12) (/turf))
Xorbah (/PC): Move(the turf (82,62,12) (/turf), 4, null, null)
Xorbah (/client): Move(the turf (82,62,12) (/turf), 4)
Xorbah (/client): DirHandler(4)
Xorbah (/client): East()




Long story short, something is disallowing any mob to move, they can only change dir. What am I doing wrong here, fellas? I've posted the snippet that is conflicting with movement and the error message i'm receiving in the console.

Attached below is a GIF demonstrating the issue i've ran across.

https://gyazo.com/e31d3f8f851121f5644b0898cdcb8124
If you run the game in debug mode your runtime error will show the line it's on, then you can show that line.

The error itself means you're trying to & 0 and a turf, which isn't a valid operation.
I don't see an option anywhere to run the game in debug mode. Where is it specifically?
Either under Build > Preferences, or adding

#define DEBUG


To your dme file.
Leaving(atom/O,dd=0)
if(!dd) dd=O.dir
>>>>>if(ismob(O)&&(stopdirs&dd)==dd)
return 0
return 1
Coming(atom/O,dd=0)
if(!dd) dd=get_dir(O,src)
if(!dd) dd=O.dir
if(ismob(O)&&(stopdirs&(turn(dd,180)))==(turn(dd,180)))
return 0

It's saying that specified line is causing the issue but I don't see it.
That would indicate that either stopdirs or the dd variable is being set to a turf and not a number as you expect.

Your next step is outputting the values of those variables to see which one isn't being set properly.

Looking at the runtime error though, specifically this line

the floor (/map/building/floor/interior/orecrest): Leaving(Xorbah (/PC), the turf (82,62,12) (/turf))


Shows you're calling Leaving() with a turf passed as its second value, which means 'dd' is a turf.
I fixed it. Thanks, Nadrew.