First off, Millisecs() is a Blitz function and you can't use it as a variable.
Yes you can but you probably shouldn't. :)
But, yeah - big goofs, Rubiks. For starters, you're creating a new spark EVERY time the mouse button is hit, but are only positioning it when millisecs >= shoottime.