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
The error itself means you're trying to & 0 and a turf, which isn't a valid operation.