Periodical attacks of the same units are pretty simple to make in the editor.
Step 1: Add units you want to attack you, tag them (CTRL+T) as hidden. They will remain invisible but all attacking instances will be clone of them.
Step 2: Add waypoints and link them to create a path for the attackers
Step 3: Now it's time we set up triggers (our "logic"). We are going to need two of them. Firstly, the one that's going to be triggering the attack. Note it's configured as [x] Autoreset, so it can happen multiple times. We use an event as a condition (an event is a boolean flags that can be either active/on or inactive/off).
The trigger will not only tell our attacking tank to move to the first waypoint, but also toggle the event. As I mentioned, an event can be in one of two states - active/on OR inactive/off. Initially, all events are off. For activating them we can use mode "set". For deactivating, we use "reset". Toggle is the third option. It activates event and immediately deactivates it. The bottom line is that when a trigger is run conditionally under a given event (it must be "on") and the same trigger toggles the event after some time X (30 seconds in the screenshot) it causes the trigger to be run every 30 seconds. This also requires aforementioned [x] Autoreset flag to be enabled on the trigger.
Apart from toggling the event, we order our attacking tank to go to the first waypoint with clone option enabled. If we forgot about cloning, we would just send the original tank and won't be able to replay the attack.
We're almost done. Now, as I said - events are initially created with "off" state. So who's gonna set them to on for the first time? Classical egg or hen dillema. For that reason, we need another trigger that can be without any condition.
Step 4: Add another trigger that will set the event for the first time:
....And that's it! We now have our repeatable attacks of M4A2 every 30 seconds. It takes literally a couple of minutes to prepare such a thing.
But it sucks
"ummm....guys? Is this where we were supposed to fight the player?!"
Such repeatable attacks are a suboptimal strategy for Battle Zones. First, enemy's units can just pile up at a flag where player is not attacking. Even if it doesn't directly impact the player, it feels innatural - if the mod claims to give the feeling of playing with a real player, the AI should not waste resources like that.
That's why Soldiers: Skirmish takes a different approach. Of course it still has a bunch of hidden units of few kinds waiting to be cloned and thrown at the player's forces but this is just not happening every N seconds.
What I am trying to implement is a kind of Finite State Machine. It's a bit hard with editor (at least for me, as software developer, I feel like wearing too tight shoes). Simply saying, a given flag can be in one of few states: mine (AI's), enemy's (player's), nobody's, mine-under-attack etc. I am still poking around and trying to find the working set of states :)
The bottom line is - the AI won't send any units to a flag that's well manned. If you leave it for too long, it can only advance a bit towards your respawn (but not too much...) or send an engineering team that will mine the place and set up anti-tank obstacles. If a flag is under attack and a few units were lost, AI will send reinforcements in infantry and a tank, if needed.
For now, the biggest challenge for me is to figure out how infantry and tanks should cooperate. I already decided that engineering and artillery are going to work a bit aside from the other forces (but they won't be shooting themselves in the back, hey).