Ok, this should be fine.
The trigger is probably pretty complex for someone new, since most of it is in jass. But logically, it declares a bunch of "local" variables in the first part, then in the "logic part" it iterates each unit within a certain range of the spell location, creates a dummy unit, gives that dummy unit curse, and fixes the curse parameters, such as setting mana to 0, duration to whatever the hero spels duration is, and miss chance to the appropriate value, then it finally orders it to cast curse on the iterated unit. Finally in the "cleanup", where it nulls leaking values.
To import it do the following:
- Copy the dummy unit (Dummy Caster) to your map.
- Copy the hero spell (Malediction) to your map.
- Go to Trigger Editor and copy the folder Spell_Malediction to your map.
- If it does not work immediately, make sure that:
- The MaledictionSpell variable is set to the Malediction spell.
- The DummyUnit variable is set to the Dummy Caster unit.
- The DummySpell variable is set to the Curse (Neutral) spell.
- If you want to alter the miss chances, you can do so in BaseMissChance variable. Which is the default level 1 miss chance the spell causes. And MissChanceIncreasePerLevel which tells the increment each level thereafter.
- To change Area of Effect and Duration, just change them in the Malediction spell. I've made it so, that it read those two fields directly so it is easier to use.