in my reply, i will focus on the mistakes or details i disliked. try not to take it as anything less then friendly hints:
----------------------------------------------------------------
tide spell:
on the outside:
well the only problem i see is that the "outside effect" follows hero as he moves after casting (both damage and sfx) while the central (line) effect deals instant damage in straight line ...
from the inside:
- in tooltip strings use
|n to break tips into lines
- you must destroy special effect you create - in case of instant (show-and-gone) effects, just add an action saying "destroy last created special effect" right after the action that creates it
- you can't use wait inside a loop like that:
one, because you can not call "casting unit" function after any wait (although you can call "triggering unit" (make the change), which is an exception to that important rule), and
two because other triggers may run while this one is waiting (which is the cause of problem number one as well) and those other triggers may start their own loops and overwrite A and B counters (you can use your own variable as a counter if you know that other triggers don't use it)
- use game-time (aka "polled") waits instead of real-time waits.
- you leak a LOT of locations. more at the end of post.
----------------------------------------------------------------
renewal spell:
on the outside:
1) every lasting spell should have a buff - so both you and enemy players can read a short info on spell effect at the unit status bar. base a spell on some self-buffing spell like berserk (trolls) and make a buff that explains things and maybe has some attachment effect...
2) you really need to reconsider durations - on level 10 spell lasts 50 seconds although it heals up the hero in just two or three...
from the inside:
1) since brunit is not an array (making a spell non-mui), there is no point on other three variables being player-based arrays
2) special effects (like above)
----------------------------------------------------------------
nova spell:
on the outside:
1) radius on top levels is way too big; if you don't want to reduce the multiplier (100) at least make it non-linear (square root for example)
2) button position for learning the spell is wrong
3) at night, spell range is greater then hero's sight range. not only does that suck (in gameplay) but also spell leaves special effects lingering around (in fog) that are shortly visible when you walk into the fog later...
from the inside:
same as for tide spell
----------------------------------------------------------------
and as a freebie,
short intro to memory leaks: when you use a function that creates an object (such as "position of triggering unit") as an argument of a function call, the object created (location in this example) stays lost in memory until the game ends, causing all players to have less and less memory available... since you didn't assign it to a variable it can not be used anymore (repeated function calls will create more anonymous objects) or destroyed...
solution:
1) assign the new object to a variable (set BTempLoc = position of triggering unit)
2) use the variable where needed (multiple times if needed)
3) destroy it to free up the memory:
-
Custom script: call RemoveLocation( udg_BTempLoc )
for other object types there are other functions... go to the trigger section and find more info there...