When I use this piece of coding...
mob
Bump(atom/A)
if(A.type == /obj/house/door)
if(A.dir == SOUTH)
if(src.dir == SOUTH)
step(src,src.dir)
else
A.density = 0
A.icon_state = ""
step(src,src.dir)
else
A.density = 0
A.icon_state = ""
step(src,src.dir)
I can bump doors and make them work, except of when I am facing south, I get runtime errors.
runtime error: Maximum recursion level reached (perhaps there is an infinite loop)
To avoid this safety check, set world.loop_checks=0.
proc name: Bump (/mob/Bump)
usr: Unknown Person (/mob)
src: Unknown Person (/mob)
call stack:
Unknown Person (/mob): Bump(the door (/obj/house/door))
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Bump(the door (/obj/house/door))
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Bump(the door (/obj/house/door))
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Bump(the door (/obj/house/door))
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Bump(the door (/obj/house/door))
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
...
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Unknown Person (/mob): Move(the woodfloor (4,17,2) (/turf/ground/woodfloor), 2)
Is somebody able to help me and fix this?
ID:261733
Mar 2 2003, 9:23 am
|
|
Bump(atom/A)
if(A.type == /obj/house/door)
if(A.dir == SOUTH)
if(src.dir == SOUTH)
<FONT color = red>step(src,src.dir)</FONT>
else
A.density = 0
A.icon_state = ""
step(src,src.dir)
else
A.density = 0
A.icon_state = ""
step(src,src.dir)
Your telling it to step into the door over and over again without the door changing density. That is what is causing your run-time error.
Also you might want to use istype(A, /obj/house/door) instead of if(A.type == /obj/house/door) because type == sometimes isn't read correctly.