- Joined
- Oct 2, 2021
- Messages
- 33
Hey, I'm kinda new here (and in the world of code in general). I tried remaking the RoC Undead mission: Siege of Dalaran. The AI I remade by replacing units and building with different ones works on normal difficulty but not hard. I think it changes with difficulty but I'm not sure how, can you help? (attack waves are fine but the building part doesn't work)
For reference(all custom units are custom buildings with the same functions (ex: h605 is the town hall),all of them are respectively placed according to the original.
JASS:
//============================================================================
// Undead 07 -- Purple player (Light Blue) -- AI Script
//============================================================================
globals
player user = Player(6)
endglobals
//============================================================================
// main
//============================================================================
function main takes nothing returns nothing
debug set do_debug_cheats = true
call CampaignAI(ELF_FARM,null)
call SetReplacements(2,2,4)
set do_campaign_farms = false
call SetCaptainHome(ATTACK_CAPTAIN,-2924,-3633)
call SetCaptainHome(DEFENSE_CAPTAIN,-2184,-3257)
call SetBuildUnitEx( 0,0,1, 'h605' )
call SetBuildUnitEx( 3,3,3, BLOOD_PEASANT )
call SetBuildUnitEx( 0,0,1, ELF_HIGH_BARRACKS )
call SetBuildUnitEx( 0,0,1, 'h608' )
call SetBuildUnitEx( 0,0,1, 'h60C' )
call SetBuildUnitEx( 0,0,1, 'h609' )
call SetBuildUnitEx( 7,7,7, BLOOD_PEASANT )
call SetBuildUnitEx( 0,0,1, 'h606' )
call SetBuildUnitEx( 0,0,1, 'h60A' )
call SetBuildUnitEx( 0,0,1, 'h60B' )
call CampaignDefenderEx( 1,1,1, HIGH_SWORDMAN )
call CampaignDefenderEx( 0,0,1, BALLISTA )
call CampaignDefenderEx( 1,1,1, HIGH_ARCHER )
call WaitForSignal()
//*** WAVE 1 ***
call InitAssaultGroup()
call CampaignAttackerEx( 4,4,6, HIGH_SWORDMAN )
call CampaignAttackerEx( 1,1,2, HIGH_ARCHER )
call CampaignAttackerEx( 0,0,2, PRIEST )
call SuicideOnPlayerEx(M4,M4,M2,user)
call SetBuildUpgrEx( 0,0,1, UPG_MELEE )
call SetBuildUpgrEx( 0,0,1, UPG_STR_MOON )
call SetBuildUpgrEx( 0,0,1, UPG_PRAYING )
call SetBuildUpgrEx( 0,0,1, UPG_MASONRY )
//*** WAVE 2 ***
call InitAssaultGroup()
call CampaignAttackerEx( 4,4,5, HIGH_SWORDMAN )
call CampaignAttackerEx( 1,1,3, HIGH_ARCHER )
call CampaignAttackerEx( 0,0,2, BALLISTA )
call CampaignAttackerEx( 1,1,2, PRIEST )
call SuicideOnPlayerEx(M8,M8,M7,user)
call SetBuildUpgrEx( 0,0,1, UPG_BOWS )
call SetBuildUpgrEx( 0,0,1, UPG_MOON_ARMOR )
call SetBuildUpgrEx( 0,0,1, UPG_ARMOR )
call SetBuildUpgrEx( 1,1,1, UPG_PRAYING )
call SetBuildUpgrEx( 1,1,1, UPG_DEFEND )
//*** WAVE 3 ***
call InitAssaultGroup()
call CampaignAttackerEx( 0,0,4, HIGH_SWORDMAN )
call CampaignAttackerEx( 5,5,8, HIGH_ARCHER )
call CampaignAttackerEx( 1,1,2, BALLISTA )
call CampaignAttackerEx( 1,1,2, PRIEST )
call SuicideOnPlayerEx(M6,M6,M6,user)
call SetBuildUpgrEx( 1,1,2, UPG_MELEE )
call SetBuildUpgrEx( 1,1,2, UPG_STR_MOON )
//*** WAVE 4 ***
call InitAssaultGroup()
call CampaignAttackerEx( 5,5,10, HIGH_SWORDMAN )
call CampaignAttackerEx( 2,2,4, BALLISTA )
call CampaignAttackerEx( 1,1,2, PRIEST )
call SuicideOnPlayerEx(M8,M8,M7,user)
call SetBuildUpgrEx( 1,1,2, UPG_MOON_ARMOR )
call SetBuildUpgrEx( 1,1,2, UPG_ARMOR )
loop
//*** WAVE 5+ ***
call InitAssaultGroup()
call CampaignAttackerEx( 1,1,3, HIGH_SWORDMAN )
call CampaignAttackerEx( 5,5,7, HIGH_ARCHER )
call CampaignAttackerEx( 1,1,2, BALLISTA )
call CampaignAttackerEx( 0,0,2, PRIEST )
call SuicideOnPlayerEx(M6,M6,M6,user)
//*** WAVE 6+ ***
call InitAssaultGroup()
call CampaignAttackerEx( 4,4,7, HIGH_SWORDMAN )
call CampaignAttackerEx( 2,2,3, HIGH_ARCHER )
call CampaignAttackerEx( 2,2,3, PRIEST )
call SuicideOnPlayerEx(M8,M8,M7,user)
endloop
endfunction
For reference(all custom units are custom buildings with the same functions (ex: h605 is the town hall),all of them are respectively placed according to the original.
JASS:
//============================================================================
// Undead 07 -- Purple player (Light Blue) -- AI Script
//============================================================================
globals
player user = Player(6)
endglobals
//============================================================================
// main
//============================================================================
function main takes nothing returns nothing
debug set do_debug_cheats = true
call CampaignAI(HOUSE,null)
call SetReplacements(2,2,4)
set do_campaign_farms = false
call SetCaptainHome(ATTACK_CAPTAIN,-2924,-3633)
call SetCaptainHome(DEFENSE_CAPTAIN,-2184,-3257)
call SetBuildUnitEx( 0,0,1, TOWN_HALL )
call SetBuildUnitEx( 3,3,3, PEASANT )
call SetBuildUnitEx( 0,0,1, BARRACKS )
call SetBuildUnitEx( 0,0,1, LUMBER_MILL )
call SetBuildUnitEx( 0,0,1, HUMAN_ALTAR )
call SetBuildUnitEx( 0,0,1, BLACKSMITH )
call SetBuildUnitEx( 7,7,7, PEASANT )
call SetBuildUnitEx( 0,0,1, KEEP )
call SetBuildUnitEx( 0,0,1, WORKSHOP )
call SetBuildUnitEx( 0,0,1, SANCTUM )
call CampaignDefenderEx( 1,1,1, FOOTMAN )
call CampaignDefenderEx( 0,0,1, MORTAR )
call CampaignDefenderEx( 1,1,1, RIFLEMAN )
call WaitForSignal()
//*** WAVE 1 ***
call InitAssaultGroup()
call CampaignAttackerEx( 4,4,6, FOOTMEN )
call CampaignAttackerEx( 1,1,2, RIFLEMAN )
call CampaignAttackerEx( 0,0,2, PRIEST )
call SuicideOnPlayerEx(M4,M4,M2,user)
call SetBuildUpgrEx( 0,0,1, UPG_MELEE )
call SetBuildUpgrEx( 0,0,1, UPG_RANGED )
call SetBuildUpgrEx( 0,0,1, UPG_PRAYING )
call SetBuildUpgrEx( 0,0,1, UPG_MASONRY )
//*** WAVE 2 ***
call InitAssaultGroup()
call CampaignAttackerEx( 4,4,5, FOOTMEN )
call CampaignAttackerEx( 1,1,3, RIFLEMAN )
call CampaignAttackerEx( 0,0,2, MORTAR )
call CampaignAttackerEx( 1,1,2, PRIEST )
call SuicideOnPlayerEx(M8,M8,M7,user)
call SetBuildUpgrEx( 0,0,1, UPG_GUN_RANGE )
call SetBuildUpgrEx( 0,0,1, UPG_LEATHER )
call SetBuildUpgrEx( 0,0,1, UPG_ARMOR )
call SetBuildUpgrEx( 1,1,1, UPG_PRAYING )
call SetBuildUpgrEx( 1,1,1, UPG_DEFEND )
//*** WAVE 3 ***
call InitAssaultGroup()
call CampaignAttackerEx( 0,0,4, FOOTMEN )
call CampaignAttackerEx( 5,5,8, RIFLEMAN )
call CampaignAttackerEx( 1,1,2, MORTAR )
call CampaignAttackerEx( 1,1,2, PRIEST )
call SuicideOnPlayerEx(M6,M6,M6,user)
call SetBuildUpgrEx( 1,1,2, UPG_MELEE )
call SetBuildUpgrEx( 1,1,2, UPG_RANGED )
//*** WAVE 4 ***
call InitAssaultGroup()
call CampaignAttackerEx( 5,5,10, FOOTMEN )
call CampaignAttackerEx( 2,2,4, MORTAR )
call CampaignAttackerEx( 1,1,2, PRIEST )
call SuicideOnPlayerEx(M8,M8,M7,user)
call SetBuildUpgrEx( 1,1,2, UPG_LEATHER )
call SetBuildUpgrEx( 1,1,2, UPG_ARMOR )
loop
//*** WAVE 5+ ***
call InitAssaultGroup()
call CampaignAttackerEx( 1,1,3, FOOTMEN )
call CampaignAttackerEx( 5,5,7, RIFLEMAN )
call CampaignAttackerEx( 1,1,2, MORTAR )
call CampaignAttackerEx( 0,0,2, PRIEST )
call SuicideOnPlayerEx(M6,M6,M6,user)
//*** WAVE 6+ ***
call InitAssaultGroup()
call CampaignAttackerEx( 4,4,7, FOOTMEN )
call CampaignAttackerEx( 2,2,3, RIFLEMAN )
call CampaignAttackerEx( 2,2,3, PRIEST )
call SuicideOnPlayerEx(M8,M8,M7,user)
endloop
endfunction
Last edited: