If more than 1 unit casts this "Kamehameha" spell at the same time, then the spell will bug simply because the spell is not MUI (MUI = Multi-instanceability, which means that you trigger the spell in such fashion, that more than 1 unit will be able to cast it successfully at the same time).
In your spell let's say Kael is the caster of this spell. The trigger will set him as "Caster[1]". After 1 second Uther starts casting this spell as well. Now the trigger sets that Caster[1] is Uther, not Kael.
The rest of the trigger will (twice) refer to Uther, since he is Caster[1] at that time, leaving Kael with no action at all.
What to do? You will need to index each unit - so when Kael starts casting this ability, he will be set as for example Caster[1] and when Uther starts casting this ability X seconds later, he will be refered as to Caster[2], and so on.
To understand indexing better, look at tutorials -> Trigger sections.
You can also look at thread made by Deathismyfriend -
http://www.hiveworkshop.com/forums/tutorial-submission-283/things-gui-user-should-know-233242/ look at Section2 -> Chapter 12 (How to Index) to get basic idea of how indexing works.
also you will need to index Int[] and probably change this spell into different "phases" and use 1 global loop trigger so the spell executes for each caster correctly.
=====
There are quite a lot of things that don't make any sense in your trigger though.
1. Try to avoid "wait" actions, in most case they are used incorrectly, making the spell non-MUI
2. In your first trigger that "Wait: 0,1 second" is inaccurate. Whenever you set Wait to lower value than 0,27, the Wait will be random - from 0,1 to 0,3
3. You have many leaks - dynamic group leaks, sound leaks and some point leaks
Look at
http://www.hiveworkshop.com/forums/triggers-scripts-269/things-leak-35124/
4. This may be wrong or correct, depending on what you are trying to achieve.
a)
You crate Almagest and DummyBibang units, give them limited life and add them to Group[1], then after 2,5 seconds you move all units in Group[1] to Point[3]
Moving those units is useless, because they will die after 1,5 seconds, and after 1 additional secnod you move them - you're basically moving dead units.
But this way is correct if what those units (I guess they represent some graphical effect) have long "death" animation and you want to move them just when they play this death animation.
b)
You create many different units (which I assume are all graphical effect dummy units) and then you use this action:
Add a 0.03 second Generic expiration timer to (Last created unit)
- you set their life to 0,03 seconds.
This is most likely wrong, since 0,03-0,05 is really short interval, in fact this interval is used when moving units to give you (= your eyes) the idea that something "moves fluently" - in other words, you will most likely just see a blink of a unit with this life span.
If you want to see the death animation of that unit, why don't you just create the unit and then kill it immediately? It will play death animation as well.
5.
This is not really something wrong, but it may help you in the long run:
In your first trigger, after you pick all units in Group[1] and move them, your next action is "Create Thunder for owner of caster", then you do 2 actions for that unit and then you duplicate all 3 lines again.
You can use the action "For each loop (your integer) from 1 to 2 do actions". This will create those 2 units. The good thing about this is that if you were to made changes to those 3 lines about the Thunder unit, you don't need to do that manually for each unit.
Loops especially come handy when you create more than 2 units in specific order.
The same can be applied to your "Howl" unit and its actions
6.
The last part of your first trigger - the part about KameBall.
You change its animation speed to 300%, then increase its size and then you change animation speed to 0%.
This makes no sense, since the execution of those actions is really fast, the unit will spawn immediately with 0% animation speed - you will not see that 300% animation speed.
7.
I don't see you use Point[1], [2] and [3] in your second trigger, then there is also no reason to have them in the first place - remove those location at the end of your first trigger.
8.
This is just in case - In your second trigger, right after the start you pick every destructible and kill it - however that way you will also destroy all pathing blockers in that area
9.
In your second trigger you pick every unit within 250 of Caster[2] and then inside the loop you kill that Caster[2] - in other words for every unit that is within 250 you kill Caster[2]. Furthermore, the next action you do is check if Caster[2] is dead or Caster[1] is stunned.
Instead you could do it this way:
Set group = units within 250 or Caster[2]
And then go through If/Then/Else
If
- Number of units in group is greater than 0
or
- Caster[1] is stunned
Then
kill Cater[2]
and the rest of your actions in the ITE
10.
The whole action:
"Unit Group - Pick every unit in (Units owned by (Owner of Caster[1]) of type KameBall) and do (Unit - Remove (Picked unit) from the game)"
permanently leaks.
Never use the "Pick every unit of type" action. Instead use Pick every unit in region matching condition and as a condition use "unit-type of (matching unit) equal to *your unit type*"
Also the action is not really needed, instead it can cause more problems?
If more units of the same player cast Kamehameha and one finishes it, then all KameBalls will disappear.
You already kill Caster[2] which is the correct KameBall. If you don't want to see its death animation, or decay animation, then simply change in object editor its "Art - Death Time" to 0 and "Combat - Death type" to "can't raise, does not decay"
11.
Caster[1] starts the effect of the ability, then is paused; in second trigger after KameBall "hits" someone you unpause Caster[1]. Also order Caster[1] to stop, else he will continue casting this spell.