Why give up the project? :/
Here's another interesting idea: try debugging the trigger
I say this to many people: debugging is a 'tool' that programmers often use, and is extremely helpful.
Here's an easy example of a spell that doesn't always work:
-
Test
-
Events
-
Unit - A unit Starts the effect of an ability
-
Conditions
-
Actions
-
Set caster = (Casting unit)
-
Wait 5.00 seconds
-
Special Effect - Create a special effect attached to the overhead of caster using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
Here is how it looks like, debugged:
-
Test
-
Events
-
Unit - A unit Starts the effect of an ability
-
Conditions
-
Actions
-
Game - Display to (All players) the text: Spell cast
-
Set caster = (Casting unit)
-
Game - Display to (All players) the text: (caster1: + (Name of caster))
-
Wait 5.00 seconds
-
Game - Display to (All players) the text: (caster2: + (Name of caster))
-
Special Effect - Create a special effect attached to the overhead of caster using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
-
Game - Display to (All players) the text: Spell Finished
When I run this trigger a few times, I suddenly notice that the "caster2"-message is sometimes incorrect.
Now I know immediately where my problem lies and can start from there, instead of staring at the trigger for a while.
(This can be solved by simply using "triggering unit" instead of a variable).
Of course, this example is really easy, but it shows the technique on how to do it.
Just place game messages for all important data (coordinates, unit name, player name, or just "condition true" / "condition false", things like that).
Once you see a piece of data that is not what you want, you know where the error is.
Simple and effective. (And it saves the pain of asking others the entire time: with this, you can easily rely on yourself).