You would have to use more complex methods for those.
I'd use a Damage Engine ->
Damage Engine 5.7.1.2
And use unique Dummy units in order to detect when damage from one of these abilities is dealt.
So the Hero casts a "fake" channeled ability, which creates the Dummy unit, which is then ordered to cast the real ability.
When I say a unique Dummy unit, I mean you create an entirely new Dummy unit and use it ONLY for this specific spell. So if we were doing this for Stampede and Death&Decay, you'd need 2 Dummy units (name them something like Stampede Dummy and Death and Decay Dummy).
You'd then have to link the Dummy unit to the Hero since these abilities are channeling, this way when the Hero stops channeling, the Dummy linked to that Hero stops channeling as well. This can be done using Hashtables or a Unit Indexer ->
GUI Unit Indexer 1.4.0.0
So you'll need 2 abilities per spell, the "fake" Channel ability used by the Hero and the real ability that's used by the Dummy unit (Stampede or Death & Decay).
Then when the Dummy deals damage, you can interact with the Damaged unit and do whatever you want like Set it's Life to 50%.
Example, this Event is provided by the Damage Engine and happens whenever "A unit takes damage":
-
Events:
-
DamageEvent becomes Equal to 1.00
-
Conditions:
-
Unit-type of DamageEventSource Equal to Stampede Dummy
-
Actions:
-
Unit - Kill DamageEventTarget
^ When a Stampede lizard hits an enemy and deals damage to it, I kill the damaged unit. You don't have to Kill it, that's just an example, you can do anything you want to it.
The reason this works is because we know for a fact that our Stampede Dummy is used ONLY for this ability, so any damage it deals has to be from Stampede.