Channel might seem to be a little bit tricky, because you have to config it properly prior to using it. Here's what you have to do:
- After creating an ability based on Channel, define how many levels and whether a hero or unit will use it. In this case, I bet you're trying to use a normal unit ability = 1 Level, it's not learned;
- All right, Will you use all of those predefined special effects in its fields? Choose the ones you want, or remove all of them. Don't forget to change the "Art - X/Y Button Position".
- The thing that matters the most for Channel based abilities: Choose if it targets or not a point or unit. Also, make sure you are making the spell visible for the unit: Set the field "Data - Options" to "Visible".
- Channel offers the option to pause the caster while it is being cast, but I don't think you want that thing enabled - set it to false ("Disable Other Abilities").
-
Data - Base Order ID: This one is a VERY important thing to notice. Avoid having a unit with more than one channel based spells with the
SAME order id. Otherwise, the unit might not cast the correct spell when ordered to do so. Choose any other string order, like: Carrion Swarm, Shockwave, MindRot, Acid Bomb, etc.
- Art - Follow Through Time: After a unit casts it, they will stay there as if they were "channeling" the spell. If "Disable Other Abilities" field is enabled, then your unit will be paused until that time expires.
- The rest is up to you: Cast Range, Cooldown, Mana Cost, Spell Name, Etc.
Regarding the triggers and regions.
Here's my example: 3 Regions
The Triggers:
-
Register your rects
-

Events
-


Time - Elapsed game time is 0.00 seconds
-

Conditions
-

Actions
-


Set Spawn_Regions[0] = Spawn A <gen>
-


Set Spawn_Regions[1] = Spawn B <gen>
-


Set Spawn_Regions[2] = Spawn C <gen>
-


-------- For looping through 0 to 2 later. --------
-


Set Spawn_NumberOfRegions = 2
-
Casting Channel
-

Events
-


Unit - A unit Starts the effect of an ability
-

Conditions
-


(Ability being cast) Equal to My Channel Spell
-

Actions
-


Set LinearSearch_Max = 99999.00
-


For each (Integer tmp_integer) from 0 to Spawn_NumberOfRegions, do (Actions)
-



Loop - Actions
-




Set tmp_point[0] = (Target point of ability being cast)
-




Set tmp_point[1] = (Center of Spawn_Regions[tmp_integer])
-




Set tmp_real = (Distance between tmp_point[0] and tmp_point[1])
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






tmp_real Less than LinearSearch_Max
-





Then - Actions
-






Set LinearSearch_Max = tmp_real
-






Set THE_CHOSEN_ONE = Spawn_Regions[tmp_integer]
-





Else - Actions
-




Custom script: call RemoveLocation(udg_tmp_point[0])
-




Custom script: call RemoveLocation(udg_tmp_point[1])
-


-------- All right, after checking ALL regions and comparing the distance between TARGET POINT and THEIR CENTER. We now have our result, the variable THE CHOSEN ONE keeps the closest region. --------
-


-------- Now, do your stuff with it --------
-


Set tmp_point[0] = (Center of THE_CHOSEN_ONE)
-


Special Effect - Create a special effect at tmp_point[0] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
-


Special Effect - Destroy (Last created special effect)
-


Custom script: call RemoveLocation(udg_tmp_point[0])