• 💀 Happy Halloween! 💀 It's time to vote for the best terrain! Check out the entries to Hive's HD Terrain Contest #2 - Vampire Folklore.❗️Poll closes on November 14, 2023. 🔗Click here to cast your vote!
  • 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 HD Level Design Contest #1 is OPEN! Contestants must create a maze with at least one entry point, and at least one exit point. The map should be made in HD mode, and should not be openable in SD. Only custom models from Hive's HD model and texture sections are allowed. The only exceptions are DNC models and omnilights. This is mainly a visual and design oriented contest, not technical. The UI and video walkthrough rules are there to give everyone an equal shot at victory by standardizing how viewers see the terrain. 🔗Click here to enter!

[AI] Eternal Waves

Not open for further replies.



Level 40
Jan 7, 2005
I'm creating an AI file and I extracted an AI file from the campaign, but it didn't want to open.
Anyway, I'm posting in order to ask how to make a wave repeat indefinitely.
Your help is appreciated, I promise I'll award some reputation to whoever succeeds in helping me.

Thanks for your time!
Level 5
Oct 27, 2007
What do you mean by it didn't want to open? Campaign AI files are .ai files and can be opened by any text editor like notepad etc. I would advice using JassCraft since it allows for syntax checking and easier coding.

To make an attack repeat forever until the AI can't build anymore (when it loses buildings, workers) you can do something like this.
The following example will make the AI repeately attack Player 2 blue with Grunts and Berserkers.

Once you understand the basics you can create more advanced loops, like loops that can be interrupted by sending AI commands using triggers.

    player target = Player(1)

     call InitAssaultGroup()
     call CampaignAttackerEx(2, 4, 6, GRUNT)
     call CampaignAttackerEx(1, 2, 3, BERSERKER)
     call SuicideOnPlayerEx(4, 3, 2, target)
Not open for further replies.