I have one (made by me) and is not neccesary, I can use a timer, but both aren't an option, it can be more than 1 destroyed towers and it can be overwritten, example: if the time confirmer is 30 seconds and a tower is destroyed then 25 seconds later another tower is destroyed so 5 seconds later the trigger will count the 2 towers at the same time, and maybe the reason of the second tower is not builded was the worker didn't even have time to arrive and send 2 workers to the same place, I need a confirmer for each missing tower..
You start with a trigger with the event whenever a tower is destroyed (unit killed), not a periodic or elapsed timer. The condition integer comparison checks if the game time elapsed is after a certain point. So if the time is after a certain point, you create a worker? and order it (last created unit) to build a tower that was the same type as the tower destroyed. This will send multiple workers out to build towers whenever a tower is destroyed.
If you need to delay sending out the 2 workers until the timer confirmer you can store the number of destroyed towers and their type in a variable array. Then create the number of workers that you counted in index (see below what index is).
If you really need to store the information, you can use GUI or local variables with jass. To do it in GUI, make a variable array with a really big index, then set the variable to the tower type of the destroyed tower to store the tower type information. After every execution of the trigger, set the variable index (the index will be a variable) = to itself + 1.
Then after every timer confirmer, reset the index to 0.
The index will be the number of towers destroyed and the variable Tower_destroyed(index) or Tower_destroyed(1) if index > 1, for example if you had a variable array called "Tower_destroyed" would be the tower type. If you had a variable array called "Point", then Point(1) to Point(index) would be the point where each destroyed tower was destroyed.