• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!
  • ✅ The POLL for Hive's Texturing Contest #34 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!
  • ✅ The POLL for Hive's Techtree Contest #20 is OPEN! Vote for the TOP 3 FACTIONS! 🔗Click here to cast your vote!

AI script during campaign is not working or responding

Hello, I tried to test the AI during the second quest but the attack wave is not responding.

Here:
JASS:
//============================================================================
//  Elysium Chronicles: Icecrown Exarchate 02 -- brown player -- AI Script
//============================================================================
globals
      player user = PlayerEx(12)
      constant integer Bandit = 'bdbt'
      constant integer Brigand = 'bdbr'
      constant integer Bandit_Huntress = 'bdhu'
      constant integer Priest = 'bdpr'
      constant integer Rogue_Wizard = 'bdrw'
      constant integer Battle_Golem = 'bdbg'
      constant integer Catapult = 'bdcp'
      constant integer Bandit_Tent = 'bdtn'
endglobals

//============================================================================
//  main
//============================================================================
function main takes nothing returns nothing

       call CampaignAI('bdtn',null)
       call SetReplacements(1,2,3)
       
       call WaitForSignal()
       
       call CampaignDefenderEx( 3,3,4, 'bdbt')
       call CampaignDefenderEx( 2,2,3, 'bdbr')
       call CampaignDefenderEx( 2,2,2, 'bdhu')
       
       //*** WAVE 1 ***
       call InitAssaultGroup()
       call CampaignAttackerEx( 3,3,4, 'bdbt')
       call CampaignAttackerEx( 2,2,2, 'bdbr')
       call SuicideOnPlayerEx(M1,M1,M1,user)
       
       //*** WAVE 2 ***
       call InitAssaultGroup()
       call CampaignAttackerEx( 3,3,4, 'bdbt')
       call CampaignAttackerEx( 2,2,2, 'bdbr')
       call CampaignAttackerEx( 0,1,2, 'bdhu')
       call SuicideOnPlayerEx(M2,M2,M2,user)
       
       loop
        //*** WAVE 3 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call SuicideOnPlayerEx(M1,M1,M1,user)
        
        //*** WAVE 4 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call CampaignAttackerEx( 2,2,2, 'bdcp')
        call CampaignAttackerEx( 1,1,1, 'bdbg')
        call SuicideOnPlayerEx(M2,M2,M2,user)
        
        //*** WAVE 5 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call CampaignAttackerEx( 2,2,2, 'bdcp')
        call CampaignAttackerEx( 1,1,1, 'bdbg')
        call CampaignAttackerEx( 1,1,1, 'bdpr')
        call CampaignAttackerEx( 1,1,1, 'bdrw')
        call SuicideOnPlayerEx(M3,M3,M3,user)
       endloop
endfunction

Here:
JASS:
//============================================================================
//  Elysium Chronicles: Icecrown Exarchate 02 -- oranger player -- AI Script
//============================================================================
globals
      player user = PlayerEx(6)
      constant integer Bandit = 'bdbt'
      constant integer Brigand = 'bdbr'
      constant integer Bandit_Huntress = 'bdhu'
      constant integer Priest = 'bdpr'
      constant integer Rogue_Wizard = 'bdrw'
      constant integer Battle_Golem = 'bdbg'
      constant integer Catapult = 'bdcp'
      constant integer Firelord = 'Hbrf'
      constant integer UPG_Masonry = 'Rbms'
      constant integer UPG_Bandit_Weapons = 'Rbwp'
      constant integer UPG_Bandit_Armor = 'Rbmw'
      constant integer Bandit_Tent = 'bdtn'
endglobals

//============================================================================
//  main
//============================================================================
function main takes nothing returns nothing
      
       call CampaignAI('bdtn',null)
       call SetReplacements(1,2,3)
       call SetSlowChopping(false)
       call SetPeonsRepair(true)
       
       call WaitForSignal()
       
       call CampaignDefenderEx( 3,3,4, 'bdbt')
       call CampaignDefenderEx( 2,2,3, 'bdbr')
       call CampaignDefenderEx( 0,1,2, 'bdhu')
       
       //*** WAVE 1 ***
       call InitAssaultGroup()
       call CampaignAttackerEx( 3,3,4, 'bdbt')
       call CampaignAttackerEx( 2,2,2, 'bdbr')
       call SuicideOnPlayerEx(M1,M1,M1,user)
       
       //*** WAVE 2 ***
       call InitAssaultGroup()
       call CampaignAttackerEx( 3,3,4, 'bdbt')
       call CampaignAttackerEx( 2,2,2, 'bdbr')
       call CampaignAttackerEx( 0,1,2, 'bdhu')
       call SuicideOnPlayerEx(M2,M2,M2,user)
       
       call SetBuildUpgrEx ( 0,1,2, 'Rbms')
       call SetBuildUpgrEx ( 0,1,2, 'Rbwp')
       call SetBuildUpgrEx ( 0,1,2, 'Rbmw')
       
    loop
        //*** WAVE 3 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call CampaignAttackerEx( 1,1,1, 'Hbrf')
        call SuicideOnPlayerEx(M1,M1,M1,user)
        
        //*** WAVE 4 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call CampaignAttackerEx( 1,1,1, 'Hbrf')
        call CampaignAttackerEx( 2,2,2, 'bdcp')
        call SuicideOnPlayerEx(M2,M2,M2,user)
        
        //*** WAVE 5 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call CampaignAttackerEx( 1,1,1, 'bdpr')
        call CampaignAttackerEx( 1,1,1, 'bdrw')
        call CampaignAttackerEx( 2,2,2, 'bdcp')
        call SuicideOnPlayerEx(M3,M3,M3,user)
        
        //*** WAVE 6 ***
        call InitAssaultGroup()
        call CampaignAttackerEx( 3,3,4, 'bdbt')
        call CampaignAttackerEx( 2,2,2, 'bdbr')
        call CampaignAttackerEx( 1,2,2, 'bdhu')
        call CampaignAttackerEx( 1,1,1, 'bdpr')
        call CampaignAttackerEx( 1,1,1, 'bdrw')
        call CampaignAttackerEx( 2,2,2, 'bdcp')
        call CampaignAttackerEx( 1,1,1, 'bdbg')
        call CampaignAttackerEx( 1,1,1, 'Hbrf')
        call SuicideOnPlayerEx(M4,M4,M4,user)
    endloop
endfunction

And here:
JASS:
//============================================================================
//  Elysium Chronicles: Icecrown Exarchate 02 -- blue player -- AI Script
//============================================================================
globals
      player user = PlayerEx(2)
      constant integer Tuskar_Fighter = 'ntkw'
      constant integer Tuskar_Healer = 'ntkh'
      constant integer Tuskar_Spearman = 'ntka'
      constant integer Bandit_Tent = 'bdtn'
endglobals

//============================================================================
//  main
//============================================================================
function main takes nothing returns nothing

         call CampaignAI('bdtn',null)
         call SetReplacements(1,2,3)
         
         call WaitForSignal()
         
         call CampaignDefenderEx( 3,3,3, 'ntkw')
         call CampaignDefenderEx( 3,3,3, 'ntka')
         call CampaignDefenderEx( 1,1,1, 'ntkh')
         
         //*** WAVE 1 ***
         call InitAssaultGroup()
         call CampaignAttackerEx( 2,2,3, 'ntkw')
         call CampaignAttackerEx( 2,2,2, 'ntka')
         call SuicideOnPlayerEx(M1,M1,M1,user)
         
         //*** WAVE 2 ***
         call InitAssaultGroup()
         call CampaignAttackerEx( 2,3,4, 'ntkw')
         call CampaignAttackerEx( 2,2,3, 'ntka')
         call CampaignAttackerEx( 1,1,2, 'ntkh')
         call SuicideOnPlayerEx(M2,M2,M2,user)
         
    loop
         //*** WAVE 3 ***
         call InitAssaultGroup()
         call CampaignAttackerEx( 2,3,4, 'ntkw')
         call CampaignAttackerEx( 2,2,3, 'ntka')
         call CampaignAttackerEx( 1,1,2, 'ntkh')
         call SuicideOnPlayerEx(M1,M1,M1,user)
    endloop
endfunction

I tried to run "Trigger - Run AI Ready <gen> (Ignoring Conditions) and on the after middle cinematic, AI - Send Player 2/6/12 (Blue/Orange/Brown) the AI Command (0,0), but nothing works. Is there any problem? TY.
 
But I used custom units, so I used the apostrophe to make it work.
Since you're referring them inside globals, there is no need to refer to them using their 'rawcode' inside the main function. You can simple refer to them by their names (e.g: bandit)
Other than that, I don't see something particulary wrong with your script. But you may want to run it through a Syntax Checker to be sure. Also make sure the names of your variables do not conflict with existing variables inside common.ai
 
And I got a second problem... I check the JASSDEMO and checking the syntaxes, but no errors found and it won't respond again.
JASS:
//============================================================================
//  EC: IEP2 06 -- gray player -- AI Script
//============================================================================
globals
        player user = PlayerEx(9)
        constant integer Shield_Grunt = 'whgs'
        constant integer Spear_Thrower = 'whst'
        constant integer Wolf_Hunter = 'whar'
        constant integer WH_Demolisher = 'whdh'
        constant integer WH_Raider = 'whra'
        constant integer WH_Shaman = 'whsm'
        constant integer Stormbringer = 'whnc'
        constant integer WH_Warlock = 'whwc'
        constant integer WH_Frost_Wolf = 'whfw'
        constant integer WH_Gladiator = 'whgl'
        constant integer WH_Champion = 'whch'
        constant integer WH_Wind_Rider = 'whri'
        constant integer Hero_WOTW = 'Obth'
        constant integer WH_Burrow = 'whbw'
endglobals
//============================================================================
//  main
//============================================================================
function main takes nothing returns nothing

     call CampaignAI('whbw',null)
     call SetReplacements(1,2,3)
     call SetSlowChopping(false)
     call SetPeonsRepair(true)
     
     call CampaignDefenderEx(3,4,5,'whgs')
     call CampaignDefenderEx(3,3,4,'whst')
     call CampaignDefenderEx(3,3,4,'whar')
     call CampaignDefenderEx(1,1,3,'whsm')
     call CampaignDefenderEx(1,1,2,'whnc')
     
          call WaitForSignal()
          
          //*** WAVE 1 ***
          call InitAssaultGroup()
          call CampaignAttackerEx(2,3,4,'whgs')
          call CampaignAttackerEx(1,2,3,'whst')
          call SuicideOnPlayerEx(M1,M1,M1,user)
          
          //*** WAVE 2 ***
          call InitAssaultGroup()
          call CampaignAttackerEx(2,3,4,'whgs')
          call CampaignAttackerEx(1,2,3,'whst')
          call CampaignAttackerEx(2,2,2,'whra')
          call CampaignAttackerEx(1,1,2,'whsm')
          call SuicideOnPlayerEx(M2,M2,M2,user)
          
          //*** WAVE 3 ***
          call InitAssaultGroup()
          call CampaignAttackerEx(2,3,4,'whgs')
          call CampaignAttackerEx(1,2,3,'whst')
          call CampaignAttackerEx(1,1,2,'whsm')
          call CampaignAttackerEx(1,1,1,'whdh')
          call SuicideOnPlayerEx(M3,M3,M3,user)
                    
          loop
           //*** WAVE 4 ***
           call InitAssaultGroup()
           call CampaignAttackerEx(3,4,5,'whgs')
           call CampaignAttackerEx(2,3,4,'whst')
           call CampaignAttackerEx(1,2,3,'whar')
           call CampaignAttackerEx(1,1,2,'whnc')
           call SuicideOnPlayerEx(M1,M1,M1,user)
           
           //*** WAVE 5 ***
           call InitAssaultGroup()
           call CampaignAttackerEx(3,4,5,'whgs')
           call CampaignAttackerEx(2,3,4,'whst')
           call CampaignAttackerEx(1,2,3,'whar')
           call CampaignAttackerEx(1,1,2,'whnc')
           call CampaignAttackerEx(1,1,2,'whsm')
           call CampaignAttackerEx(1,1,1,'whdh')
           call CampaignAttackerEx(1,1,1,'Obth')
           call SuicideOnPlayerEx(M2,M2,M2,user)
           
           //*** WAVE 6 ***
           call InitAssaultGroup()
           call CampaignAttackerEx(3,4,5,'whgs')
           call CampaignAttackerEx(2,3,4,'whst')
           call CampaignAttackerEx(1,2,3,'whar')
           call CampaignAttackerEx(1,1,2,'whnc')
           call CampaignAttackerEx(1,1,2,'whsm')
           call CampaignAttackerEx(1,1,1,'whdh')
           call CampaignAttackerEx(1,1,2,'whwc')
           call CampaignAttackerEx(2,2,3,'whfw')
           call SuicideOnPlayerEx(M3,M3,M3,user)
           
           //*** WAVE 7 ***
           call InitAssaultGroup()
           call CampaignAttackerEx(3,4,5,'whgs')
           call CampaignAttackerEx(2,3,4,'whst')
           call CampaignAttackerEx(1,2,3,'whar')
           call CampaignAttackerEx(1,1,2,'whnc')
           call CampaignAttackerEx(1,1,2,'whsm')
           call CampaignAttackerEx(1,1,2,'whch')
           call CampaignAttackerEx(1,1,2,'whgl')
           call CampaignAttackerEx(1,1,2,'whwc')
           call CampaignAttackerEx(2,2,3,'whfw')
           call SuicideOnPlayerEx(M4,M4,M4,user)
           
           //*** WAVE 8 ***
           call InitAssaultGroup()
           call CampaignAttackerEx(3,4,5,'whgs')
           call CampaignAttackerEx(2,3,4,'whst')
           call CampaignAttackerEx(1,2,3,'whar')
           call CampaignAttackerEx(1,1,2,'whnc')
           call CampaignAttackerEx(1,1,2,'whsm')
           call CampaignAttackerEx(1,1,2,'whch')
           call CampaignAttackerEx(1,1,2,'whgl')
           call CampaignAttackerEx(1,1,1,'whdh')
           call CampaignAttackerEx(1,1,2,'whwc')
           call CampaignAttackerEx(2,2,3,'whfw')
           call CampaignAttackerEx(2,2,3,'whri')
           call CampaignAttackerEx(1,1,1,'Obth')
           call SuicideOnPlayerEx(M5,M5,M5,user)
          endloop
endfunction
JASS:
//============================================================================
//  EC: IEP2 06 -- purple player -- AI Script
//============================================================================
globals
        player user = PlayerEx(4)
        constant integer Hero_DK = 'Udea'
        constant integer Deceiver = 'nhdc'
        constant integer Skeletal_Marksman = 'nskm'
        constant integer Frost_Revenant = 'nrvs'
endglobals

//============================================================================
//  main
//============================================================================
function main takes nothing returns nothing

     call CampaignAI(ZIGGURAT_1,null)
     call SetReplacements(1,2,3)
     call SetSlowChopping(false)
     call SetPeonsRepair(true)
    
     call CampaignDefenderEx(6,6,6,GHOUL)
     call CampaignDefenderEx(3,4,5,CRYPT_FIEND)
     call CampaignDefenderEx(1,1,2,NECRO)
     call CampaignDefenderEx(1,1,2,BANSHEE)
     
     call WaitForSignal()
     
     //*** WAVE 1 ***
          call InitAssaultGroup()
          call CampaignAttackerEx(3,4,5,GHOUL)
          call CampaignAttackerEx(1,2,3,CRYPT_FIEND)
          call CampaignAttackerEx(0,1,2,NECRO)
          call SuicideOnPlayerEx(M1,M1,M1,user)
          
          //*** WAVE 2 ***
          call InitAssaultGroup()
          call CampaignAttackerEx(3,4,5,GHOUL)
          call CampaignAttackerEx(1,2,3,CRYPT_FIEND)
          call CampaignAttackerEx(0,1,2,NECRO)
          call CampaignAttackerEx(1,1,1,MEAT_WAGON)
          call CampaignAttackerEx(1,1,2,'nskm')
          call SuicideOnPlayerEx(M2,M2,M2,user)
          
          loop
              //*** WAVE 3 ***
              call InitAssaultGroup()
              call CampaignAttackerEx(3,4,5,GHOUL)
              call CampaignAttackerEx(1,2,3,CRYPT_FIEND)
              call CampaignAttackerEx(0,1,2,NECRO)
              call CampaignAttackerEx(1,1,1,MEAT_WAGON)
              call CampaignAttackerEx(0,1,2,BANSHEE)
              call CampaignAttackerEx(1,1,2,'nhdc')
              call SuicideOnPlayerEx(M2,M2,M2,user)
              
              //*** WAVE 4 ***
              call InitAssaultGroup()
              call CampaignAttackerEx(3,4,5,GHOUL)
              call CampaignAttackerEx(1,2,3,CRYPT_FIEND)
              call CampaignAttackerEx(0,1,2,NECRO)
              call CampaignAttackerEx(1,1,1,MEAT_WAGON)
              call CampaignAttackerEx(0,1,2,BANSHEE)
              call CampaignAttackerEx(1,2,3,ABOMINATION)
              call CampaignAttackerEx(1,1,1,'Udea')
              call CampaignAttackerEx(1,1,2,'nskm')
              call SuicideOnPlayerEx(M3,M3,M3,user)
              
              //*** WAVE 5 ***
              call InitAssaultGroup()
              call CampaignAttackerEx(3,4,5,GHOUL)
              call CampaignAttackerEx(1,2,3,CRYPT_FIEND)
              call CampaignAttackerEx(0,1,2,NECRO)
              call CampaignAttackerEx(1,1,1,MEAT_WAGON)
              call CampaignAttackerEx(0,1,2,BANSHEE)
              call CampaignAttackerEx(1,2,3,ABOMINATION)
              call CampaignAttackerEx(1,1,2,FROST_WYRM)
              call CampaignAttackerEx(1,1,2,'nrvs')
              call CampaignAttackerEx(1,1,2,'nskm')
              call SuicideOnPlayerEx(M4,M4,M4,user)
              
              //*** WAVE 6 ***
              call InitAssaultGroup()
              call CampaignAttackerEx(3,4,5,GHOUL)
              call CampaignAttackerEx(1,2,3,CRYPT_FIEND)
              call CampaignAttackerEx(0,1,2,NECRO)
              call CampaignAttackerEx(1,1,1,MEAT_WAGON)
              call CampaignAttackerEx(0,1,2,BANSHEE)
              call CampaignAttackerEx(1,2,3,ABOMINATION)
              call CampaignAttackerEx(1,1,2,FROST_WYRM)
              call CampaignAttackerEx(1,1,2,'nrvs')
              call CampaignAttackerEx(1,1,2,'nskm')
              call CampaignAttackerEx(1,1,2,'nhdc')
              call CampaignAttackerEx(1,1,1,'Udea')
              call SuicideOnPlayerEx(M5,M5,M5,user)
           endloop
endfunction
Acolytes cannot collect gold and overcrowded peons are mining gold, not cutting lumber.
 

Attachments

  • Problem 1.png
    Problem 1.png
    4.4 MB · Views: 38
  • Problem 2.png
    Problem 2.png
    4 MB · Views: 35
From the pictures it looks like nothing is moving?

If so, start from the beginning: is the ai script properly loaded? For the undead, did you try it with vanilla ziggurats in the undead map?

To make sure your script is loaded, try using something like:
JASS:
call DisplayTextToPlayer(your_user,0,0,"my script loaded!")
see if something displays on your screen, indicating the AI is actually loaded.

In general it's a good debugging habit to put those print statements at key points in your script.
 
Back
Top