In response to Ryouz
The reason there's a higher delay is because you can move a longer distance. That delay is used when your are in the blur icon. And also a lvl of 40 flashstep would be a 4 second delay >_>. the Sleep() proc is in 1/10th of a second. And if yuo didn't know that, that means you gotta learn to code first before you ask for help >_>
In response to Kakashi24142
oh alright >.<, that confuses me lol. i guess i din't read the whole code.

EDIT: Tested it and uh, well it does leave a icon behind but, when you move, no steps are added to the normal steps so when you walk, its a normal steps x.x...
In response to Ryouz
var
icon/stashBlurIcon // this is the blur icon we'll be using,
// stashed once the world starts so we'll only need to create it
// one time, thus improving performance.

// note: to further improve performance, you should create the
// icon manually, meaning it wouldn't have to be created at runtime.
// but, what the heck, since I'm already doing all the work for ye;
// I might as well do that, too.

world/New()
. = ..()
stashBlurIcon = new('blank.dmi') // this should be a "dummy" icon, blank by default.
for(var/x = 2 to 32 step 2)
for(var/y = 2 to 32 step 2)
stashBlurIcon.DrawBox(rgb(0,0,0),x,y)

proc/get_blur_icon(icon/i) // used to create the blur effect
// and blend it with a given icon
var/icon/result = new(i)
result.Blend(stashBlurIcon)
return result

mob
var
flash_steps = 15 // flash step skill

proc
FlashStep(direction) // this is the proc that executes Flash Step,
// and the only one you should concern yourself with.
// call FlashStep(dir), where "dir" is the direction
// you'll send the mob at.
var/icon/iconBlend = get_blur_icon(src.icon)
for(var/flash_step = 1 to flash_steps)
sleep(1)
DisplayBlur(loc,iconBlend)
if(!step(src,direction))
break

DisplayBlur(location,icon/iconBlend) // used to create the blur icon at a given location.
if(!isloc(location)) return
var/img = image(iconBlend,location)
view() << img // those nearby can see the blur effect
return img

verb
call_my_flashstep() // fun!
FlashStep(dir)


Enjoy! I think the results look quite good. :-)
In response to DivineO'peanut
its nice but, its easily to be spam >.<, (unless i add a limit tho). But the thing is, it won't move those blend/blur icons away O:

EDIT:

I got it... I tried to make mine using Step() and it works just like what i want o.o;
In response to Ryouz
To "move" them away, spawn() their deletion. lol.

e.g.
Proc() 
...
spawn(15)
del img


Or,
        DisplayBlur(location,icon/iconBlend)    // used to create the blur icon at a given location.
if(!isloc(location)) return
var/img = image(iconBlend,location)
view() << img // those nearby can see the blur effect
spawn(10)
del img
return img


Just, don't return before the spawn!
Page: 1 2