You could use a timer for a sort of "cooldown" on the message for each player, so that it cannot come up more than once every x seconds, or use a counter so every 2-3 times they try to cause a failed use it'll give the message, something like that, the latter would be the fastest and most efficient but the x seconds would be most practical from an in-game perspective.
I'm aware of how it's being used, it's just better to index them with your own variables to avoid some global custom value-based system which would alter theirs for whatever reason (just for safety) though sometimes you can get away with it.
Well as far as the spell itself:
Co-ordinates would be better than locations (for moving units, fine for creating them) especially true in high numbers as it causes lag
Programming sections of the spells rather than using any form of object editor spells (other than the initial cast dummy spell) is better because less to import/remember and much easier to modify
Units need caching in your triggers
-
Set tempId = (Custom value of (Picked unit))
When this activates when -any- unit dies, this is a particular reason why custom value is a bad idea, because that means if -any- system influences the custom value of this dying unit, you may have problems
more or less it for the skim-over
the spell idea itself has been done (in similar ways but typically not exactly) a few times, so it's nothing new, but I suppose it's useful, but highly situational since it requires units to be dead already for it to do anything at all