Ok, I agree with trigger happy on many points.
1.) - stopping unit when issued an order
I agree, this is probably unnescescary. The reason it does not stop is cause of when the event runs, instead of inturpting the triggering order it instead ques up any issued orders to the unit (cause the event triggering order still has to be fully issued). The most common work around without pausing the unit is to simly run a timer with 0 timeout which runs code to issue a new order to the unit, or atleast that is what I have seen. The whole problem though is what about qued order stacks, will both these methods not disrupt the que which can be annoying...
2.) - hotkey
This can be bug prone. For example if he shift qued up the order of the ability it could result in him suddenly having a totally different and unrelated unit casting or getting ready to use an ability which would be annoying as hell and clearly a bug. When forcing a player to press a hotkey you have to make sure that the unit is currently active in his interface (which I can only imagine happens if it is the only unit selected as he could be tabing through a group).
3.) - wind walk
This is unnescescary and just hogs up unit ability data. Instead add the dummy windwalk to the hero and get him to cast it then remove it. If it still causes problems then add a disabled speelbook ability containing the windwalk ability and get the hero to use it and finally remove the permantly disabled spellbook ability. Remember that you can only choose so many abilities in the object editor for a hero and thus those slots are important and might be required by potential users.
4.)
What TriggerHappy did not point out is the fact you are always executing code 16.66... times a second which is a source of wasted processor time when added up the entire game. Instead of checking if the group is empty 16.66 times a second before running the code, just run the code but when you do make the group empty turn the trigger off so it runs 0 times a second. When you add a unit to the group you can then turn the trigger back on. The result is thousands of saved executions over the course of a game and each execution nolonger needs to evaluate a condition saving time when it is in use as well.
5.)
The problem is this spell is not very unique. Infact, hundreds of people have made this exact sort of spell before and many of them have used JASS and more efficent programming techniques (avoiding unnescescary hashtable lookups) to achieve a more usable and efficent product. Although I have to say you do have the potential to become a pretty good GUI trigger maker so do not be put off by the rejection, just this concept has been done too many people, of which some of them use scripting techniques which are unable to be reproduced in GUI efficently.
1.)
(just a question,can any sort of JASS make it without timer? )
i can do it with timer but i tough this is a good solution to avoid it

2.)
than i guess i will have to use blink to trigger the spell because it has minimum range at ability data
3.)
i think abilities in spellbook cannot be ordered to units...
(il check it again ...)
4.)
i tough checking 1 condition cant be a problem,well il do it that way,
5.)
true,but i think my effects are nice xD,actually i was a bit bored too and see how to actually make spells

-JASS (better bud harder...)
its a program language and i dont like to read it,also you have to be careful about everyy step,but i guess its not that hard when you get a hold of it
update 1.01
blink will be used like a triggering ability with minimum range
-no minimum range trigger,yeah the trigger does sux
-Run trigger will be off when the group is empty and on when the goup is not empty
-im not sure how to do this wind walk thing,il try it will spellbook
-im not sure will i be able to update this at all xD