In the end, there should be
call TriggerRegisterPlayerUnitEventSimple( gg_trg_RespawnCreeps, Player(PLAYER_NEUTRAL_AGGRESSIVE), EVENT_PLAYER_UNIT_DEATH )
instead of
call TriggerRegisterPlayerUnitEvent(gg_trg_RespawnCreeps,Player(PLAYER_NEUTRAL_AGGRESSIVE),EVENT_PLAYER_UNIT_DEATH,null)
...
If you move unit using
call SetUnitX(unit, X)
call SetUnitY(unit, Y), animation is not interrupted.
Function
call SetUnitPosition(unit, X, Y) (GUI function) stops unit, including animation ...
You can. Use more functions, one will be executed every 3.01 and second every 0.06. It will be more difficult than with Waits, but it won't cause problems.
Or just learn Jass and make it easily with timers. This is probably the best solution :)
It's not // but \\ . And I don't know if it's is your case, I know it makes same error.
Try to "remake" functions that use path strings, for example Special effects.
When I need this, I use units instead of doodads and set movement type to Fly and flying height to negative value.
If there is direct way to lower doodad, I'd like to know that too.