ID:175821
 
turf
OTHER
ice
icon_state = "ice"
mob
Bump(M)
if(istype(M, /turf/OTHER/ice))
src:ice()
proc
ice()
sleep(3)
step(src,src.dir)

____________________________________________________________

Now why isn't my guy flying down the ice when he hits it?!
Because ice isn't dense.
Yolloogy wrote:

mob
Bump(M)
if(istype(M, /turf/OTHER/ice))
src:ice()

Here, I suggest using '.' rather than colon, since you have defined the ice() proc under mob.

Another suggestion; You shouldn't use Bump() to get this result. It's better to put this under ice/Entered().

~>Volte
In response to Garthor
garthor now i get critical errors
In response to Volte
runtime error: Maximum recursion level reached (perhaps there is an infinite loop)
To avoid this safety check, set world.loop_checks=0.
proc name: ice (/mob/proc/ice)
usr: Yolloogy (/mob)
src: Yolloogy (/mob)
call stack:
Yolloogy (/mob): ice()
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
Yolloogy (/mob): ice()
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
Yolloogy (/mob): ice()
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
Yolloogy (/mob): ice()
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
Yolloogy (/mob): ice()
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
...
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
the ice (9,6,1) (/turf/OTHER/ice): Enter(Yolloogy (/mob))
In response to Volte
ok i quit lol
In response to Yolloogy
turf/ice/Entered(mob/M)
if(ismob(M) || isobj(M))
sleep(2)
M.step(M.dir)
In response to Garthor
Garthor wrote:
turf/ice/Entered(mob/M)
if(ismob(M) || isobj(M))
sleep(2)
M.step(M.dir)

step() isn't an atom/movable proc; it's a standalone. That'd be step(M,M.dir).

And actually this is probably not a good way to go about it: Better still would be to spawn() out the call to step().

Lummox JR
In response to Lummox JR
Oops, wasn't thinking there. You're probably right though about the spawn() thing, but I doubt it will make much of a difference either way.
Eeew! You love me!!
In response to Yolloogy
betten then loop errors :P
but i was thinking the same thing, Bump() is only called when a tile has density 1.
Yolloogy wrote:
turf
OTHER
ice
icon_state = "ice"
mob
Bump(M)
if(istype(M, /turf/OTHER/ice))
src:ice()
proc
ice()
sleep(3)
step(src,src.dir)

____________________________________________________________

Now why isn't my guy flying down the ice when he hits it?!

Because it isn't dense. I wouldn't use bump in that. Use this.

turf
OTHER
ice
icon_state = "ice"
Entered(mob/M)
if(M.client)
spawn(2) step(M,M.dir)


~~Dragon Lord~~