- Joined
- Dec 19, 2020
- Messages
- 286
Hello everyone!
I'm making a campaign which currently consists of six playable maps and an interlude. The last map gives me troubles. The situation is the following:
- I finished my map and started making the AI of the bases. I currently have three AI's. When testing the map, it crashed. I was not thrown out of WC3, but the screen froze, the game stopped and I could't move the mouse. This didn't happen when I did not have an active AI. So I started experimenting.
I noticed that the AI for two of the players (Snow and Lavender) make the game crash if they attack. The AI of the Light Blue faction does not cause this problem.
So: One AI is functioning, two others keep crashing the game if they get the order to attack. If they do not get the signal to attack (and only defend) then the game doesn't crash.
I tried to find out what makes the game crash, but I'm not getting any further. If someone has suggestions/solutions for this, please let me know
I've added my my campaign file and two of the AI's to this post. The map in the campaign file is called 'map14 Fading Starlight'.
The first AI: 'Frostfang Clan' is the functioning AI. The second AI: 'Army of the Sun' is one of the AI's which I think causes a problem.
If someone needs additional information, feel free to ask here or in a private message.
Regards.
I'm making a campaign which currently consists of six playable maps and an interlude. The last map gives me troubles. The situation is the following:
- I finished my map and started making the AI of the bases. I currently have three AI's. When testing the map, it crashed. I was not thrown out of WC3, but the screen froze, the game stopped and I could't move the mouse. This didn't happen when I did not have an active AI. So I started experimenting.
I noticed that the AI for two of the players (Snow and Lavender) make the game crash if they attack. The AI of the Light Blue faction does not cause this problem.
So: One AI is functioning, two others keep crashing the game if they get the order to attack. If they do not get the signal to attack (and only defend) then the game doesn't crash.
I tried to find out what makes the game crash, but I'm not getting any further. If someone has suggestions/solutions for this, please let me know
I've added my my campaign file and two of the AI's to this post. The map in the campaign file is called 'map14 Fading Starlight'.
The first AI: 'Frostfang Clan' is the functioning AI. The second AI: 'Army of the Sun' is one of the AI's which I think causes a problem.
If someone needs additional information, feel free to ask here or in a private message.
Regards.
// ==========================================================================
// Frostfang Clan - Light Blue
// ==========================================================================
globals
player enemy = PlayerEx(14)
constant integer Peon = 'o00Q'
constant integer Pillager = 'o00X'
constant integer Hunter = 'o00Y'
constant integer Pulverizer = 'o00Z'
constant integer Shaman = 'o010'
constant integer Wolf = 'n00T'
constant integer War_Wolf = 'o019'
constant integer Cromash = 'N00R'
constant integer Elder = 'o01U'
constant integer Ram = 'h00N'
constant integer Wolf_Rider = 'o602'
constant integer Gorfax = 'O00F'
constant integer Stronghold = 'o00K'
constant integer Great_Hall = 'o00H'
constant integer Fortress = 'o00T'
constant integer Barracks = 'o00V'
constant integer Altar = 'o00U'
constant integer Burrow = 'o018'
constant integer Blacksmith = 'o00W'
constant integer Temple = 'o011'
constant integer Wolf_Den = 'o012'
constant integer Ice_Tower = 'o013'
constant integer Glaive_Tower = 'o014'
endglobals
//============================================================================
// main
//============================================================================
function main takes nothing returns nothing
call CampaignAI(Burrow, null)
call SetReplacements(15,15,15)
call SetPeonsRepair (true)
call SetSlowChopping (true)
//*****************************
//*Building/Defense
//*****************************
call SetBuildUnitEx(1,1,1, Fortress)
call SetBuildUnitEx(5,5,5, Peon)
call SetBuildUnitEx(11,11,11, Burrow)
call SetBuildUnitEx(1,1,1, Altar)
call SetBuildUnitEx(1,1,1, Blacksmith)
call SetBuildUnitEx(2,2,2, Barracks)
call SetBuildUnitEx(2,2,2, Temple)
call SetBuildUnitEx(2,2,2, Wolf_Den)
call SetBuildUnitEx(7,7,7, Peon)
call SetBuildUnitEx(2,2,2, Ice_Tower)
call SetBuildUnitEx(1,1,1, Glaive_Tower)
call CampaignDefenderEx(1,1,1, Pulverizer)
call CampaignDefenderEx(2,2,2, Wolf_Rider)
call CampaignDefenderEx(2,2,2, Hunter)
call CampaignDefenderEx(2,2,2, Shaman)
call CampaignDefenderEx(1,1,1, War_Wolf)
call CampaignDefenderEx(2,2,2, Wolf)
call CampaignDefenderEx(1,1,1, Elder)
call CampaignDefenderEx(1,1,1, Cromash)
call CampaignDefenderEx(1,1,1, Gorfax)
call WaitForSignal()
//* Wave 1A *
call InitAssaultGroup()
call CampaignAttackerEx(1,1,1, Elder)
call CampaignAttackerEx(2,2,2, War_Wolf)
call CampaignAttackerEx(3,3,3, Hunter)
call CampaignAttackerEx(2,2,2, Shaman)
call CampaignAttackerEx(3,3,3, Wolf_Rider)
call CampaignAttackerEx(1,1,1, Cromash)
call SuicideOnPlayer(M7,enemy)
loop
//* Wave 1 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, Wolf)
call CampaignAttackerEx(3,3,3, War_Wolf)
call CampaignAttackerEx(4,4,4, Hunter)
call CampaignAttackerEx(1,1,1, Shaman)
call CampaignAttackerEx(1,1,1, Elder)
call SuicideOnPlayer(M6,enemy)
//* Wave 2 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, Ram)
call CampaignAttackerEx(4,4,4, Pillager)
call CampaignAttackerEx(3,3,3, Hunter)
call CampaignAttackerEx(2,2,2, Pulverizer)
call SuicideOnPlayer(M6,enemy)
//* Wave 3 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, Wolf)
call CampaignAttackerEx(2,2,2, Elder)
call CampaignAttackerEx(2,2,2, Hunter)
call CampaignAttackerEx(2,2,2, Shaman)
call CampaignAttackerEx(2,2,2, Wolf_Rider)
call CampaignAttackerEx(1,1,1, Gorfax)
call SuicideOnPlayer(M7,enemy)
//* Wave 4 *
call InitAssaultGroup()
call CampaignAttackerEx(1,1,1, Elder)
call CampaignAttackerEx(2,2,2, War_Wolf)
call CampaignAttackerEx(3,3,3, Hunter)
call CampaignAttackerEx(2,2,2, Shaman)
call CampaignAttackerEx(3,3,3, Wolf_Rider)
call CampaignAttackerEx(1,1,1, Cromash)
call SuicideOnPlayer(M7,enemy)
endloop
endfunction
// Frostfang Clan - Light Blue
// ==========================================================================
globals
player enemy = PlayerEx(14)
constant integer Peon = 'o00Q'
constant integer Pillager = 'o00X'
constant integer Hunter = 'o00Y'
constant integer Pulverizer = 'o00Z'
constant integer Shaman = 'o010'
constant integer Wolf = 'n00T'
constant integer War_Wolf = 'o019'
constant integer Cromash = 'N00R'
constant integer Elder = 'o01U'
constant integer Ram = 'h00N'
constant integer Wolf_Rider = 'o602'
constant integer Gorfax = 'O00F'
constant integer Stronghold = 'o00K'
constant integer Great_Hall = 'o00H'
constant integer Fortress = 'o00T'
constant integer Barracks = 'o00V'
constant integer Altar = 'o00U'
constant integer Burrow = 'o018'
constant integer Blacksmith = 'o00W'
constant integer Temple = 'o011'
constant integer Wolf_Den = 'o012'
constant integer Ice_Tower = 'o013'
constant integer Glaive_Tower = 'o014'
endglobals
//============================================================================
// main
//============================================================================
function main takes nothing returns nothing
call CampaignAI(Burrow, null)
call SetReplacements(15,15,15)
call SetPeonsRepair (true)
call SetSlowChopping (true)
//*****************************
//*Building/Defense
//*****************************
call SetBuildUnitEx(1,1,1, Fortress)
call SetBuildUnitEx(5,5,5, Peon)
call SetBuildUnitEx(11,11,11, Burrow)
call SetBuildUnitEx(1,1,1, Altar)
call SetBuildUnitEx(1,1,1, Blacksmith)
call SetBuildUnitEx(2,2,2, Barracks)
call SetBuildUnitEx(2,2,2, Temple)
call SetBuildUnitEx(2,2,2, Wolf_Den)
call SetBuildUnitEx(7,7,7, Peon)
call SetBuildUnitEx(2,2,2, Ice_Tower)
call SetBuildUnitEx(1,1,1, Glaive_Tower)
call CampaignDefenderEx(1,1,1, Pulverizer)
call CampaignDefenderEx(2,2,2, Wolf_Rider)
call CampaignDefenderEx(2,2,2, Hunter)
call CampaignDefenderEx(2,2,2, Shaman)
call CampaignDefenderEx(1,1,1, War_Wolf)
call CampaignDefenderEx(2,2,2, Wolf)
call CampaignDefenderEx(1,1,1, Elder)
call CampaignDefenderEx(1,1,1, Cromash)
call CampaignDefenderEx(1,1,1, Gorfax)
call WaitForSignal()
//* Wave 1A *
call InitAssaultGroup()
call CampaignAttackerEx(1,1,1, Elder)
call CampaignAttackerEx(2,2,2, War_Wolf)
call CampaignAttackerEx(3,3,3, Hunter)
call CampaignAttackerEx(2,2,2, Shaman)
call CampaignAttackerEx(3,3,3, Wolf_Rider)
call CampaignAttackerEx(1,1,1, Cromash)
call SuicideOnPlayer(M7,enemy)
loop
//* Wave 1 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, Wolf)
call CampaignAttackerEx(3,3,3, War_Wolf)
call CampaignAttackerEx(4,4,4, Hunter)
call CampaignAttackerEx(1,1,1, Shaman)
call CampaignAttackerEx(1,1,1, Elder)
call SuicideOnPlayer(M6,enemy)
//* Wave 2 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, Ram)
call CampaignAttackerEx(4,4,4, Pillager)
call CampaignAttackerEx(3,3,3, Hunter)
call CampaignAttackerEx(2,2,2, Pulverizer)
call SuicideOnPlayer(M6,enemy)
//* Wave 3 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, Wolf)
call CampaignAttackerEx(2,2,2, Elder)
call CampaignAttackerEx(2,2,2, Hunter)
call CampaignAttackerEx(2,2,2, Shaman)
call CampaignAttackerEx(2,2,2, Wolf_Rider)
call CampaignAttackerEx(1,1,1, Gorfax)
call SuicideOnPlayer(M7,enemy)
//* Wave 4 *
call InitAssaultGroup()
call CampaignAttackerEx(1,1,1, Elder)
call CampaignAttackerEx(2,2,2, War_Wolf)
call CampaignAttackerEx(3,3,3, Hunter)
call CampaignAttackerEx(2,2,2, Shaman)
call CampaignAttackerEx(3,3,3, Wolf_Rider)
call CampaignAttackerEx(1,1,1, Cromash)
call SuicideOnPlayer(M7,enemy)
endloop
endfunction
// ==========================================================================
// Army of the Sun - Lavender
// ==========================================================================
globals
player user = PlayerEx(10)
constant integer High_Elven_Worker = 'n00Y'
constant integer Swordsman = 'hhes'
constant integer HE_Archer = 'nhea'
constant integer Ballista = 'e003'
constant integer Lieutenant = 'nbel'
constant integer Judicator = 'h603'
constant integer Elven_Hall = 'h008'
constant integer Elven_Keep = 'h009'
constant integer Elven_Castle = 'h00A'
constant integer Hunters_Quarters = 'e000'
constant integer Research_Centre = 'e001'
constant integer HE_Farm = 'nefm'
constant integer HE_Barracks = 'nheb'
constant integer HE_Altar = 'h00R'
constant integer HE_Mill = 'h601'
constant integer Earth_Tower = 'negf'
constant integer Sky_Tower = 'negm'
endglobals
//============================================================================
// main
//============================================================================
function main takes nothing returns nothing
call CampaignAI(HOUSE, null)
call SetReplacements(5,5,5)
call SetPeonsRepair (true)
call SetSlowChopping (false)
//*****************************
//*Building/Defense
//*****************************
call SetBuildUnitEx(1,1,1, Elven_Castle)
call SetBuildUnitEx(2,2,2, High_Elven_Worker)
call SetBuildUnitEx(3,3,3, HE_Barracks)
call SetBuildUnitEx(9,9,9, HE_Farm)
call SetBuildUnitEx(1,1,1, HE_Mill)
call SetBuildUnitEx(1,1,1, HE_Altar)
call SetBuildUnitEx(1,1,1, Research_Centre)
call SetBuildUnitEx(3,3,3, ARCANE_SANCTUM)
call SetBuildUnitEx(2,2,2, Hunters_Quarters)
call SetBuildUnitEx(1,1,1, ARCANE_VAULT)
call SetBuildUnitEx(10,10,10, High_Elven_Worker)
call SetBuildUnitEx(4,4,4, Earth_Tower)
call CampaignDefenderEx(2,2,2, SPELL_BREAKER)
call CampaignDefenderEx(3,3,3, Judicator)
call CampaignDefenderEx(1,1,1, Lieutenant)
call CampaignDefenderEx(2,2,2, HE_Archer)
call CampaignDefenderEx(2,2,2, PRIEST)
call CampaignDefenderEx(1,1,1, SORCERESS)
call CampaignDefenderEx(1,1,1, BLOOD_MAGE)
call WaitForSignal()
loop
//* Wave 1 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, HE_Archer)
call CampaignAttackerEx(3,3,3, Swordsman)
call CampaignAttackerEx(1,1,1, Lieutenant)
call CampaignAttackerEx(3,3,3, Judicator)
call CampaignAttackerEx(2,2,2, Ballista)
call SuicideOnPlayer(M6,user)
//* Wave 2 *
call InitAssaultGroup()
call CampaignAttackerEx(2,2,2, HE_Archer)
call CampaignAttackerEx(3,3,3, SPELL_BREAKER)
call CampaignAttackerEx(1,1,1, Lieutenant)
call CampaignAttackerEx(2,2,2, Judicator)
call CampaignAttackerEx(2,2,2, PRIEST)
call CampaignAttackerEx(2,2,2, SORCERESS)
call SuicideOnPlayer(M7,user)
//* Wave 3 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, HE_Archer)
call CampaignAttackerEx(2,2,2, SPELL_BREAKER)
call CampaignAttackerEx(1,1,1, BLOOD_MAGE)
call CampaignAttackerEx(3,3,3, Judicator)
call CampaignAttackerEx(2,2,2, PRIEST)
call CampaignAttackerEx(1,1,1, SORCERESS)
call SuicideOnPlayer(M7,user)
endloop
endfunction
// Army of the Sun - Lavender
// ==========================================================================
globals
player user = PlayerEx(10)
constant integer High_Elven_Worker = 'n00Y'
constant integer Swordsman = 'hhes'
constant integer HE_Archer = 'nhea'
constant integer Ballista = 'e003'
constant integer Lieutenant = 'nbel'
constant integer Judicator = 'h603'
constant integer Elven_Hall = 'h008'
constant integer Elven_Keep = 'h009'
constant integer Elven_Castle = 'h00A'
constant integer Hunters_Quarters = 'e000'
constant integer Research_Centre = 'e001'
constant integer HE_Farm = 'nefm'
constant integer HE_Barracks = 'nheb'
constant integer HE_Altar = 'h00R'
constant integer HE_Mill = 'h601'
constant integer Earth_Tower = 'negf'
constant integer Sky_Tower = 'negm'
endglobals
//============================================================================
// main
//============================================================================
function main takes nothing returns nothing
call CampaignAI(HOUSE, null)
call SetReplacements(5,5,5)
call SetPeonsRepair (true)
call SetSlowChopping (false)
//*****************************
//*Building/Defense
//*****************************
call SetBuildUnitEx(1,1,1, Elven_Castle)
call SetBuildUnitEx(2,2,2, High_Elven_Worker)
call SetBuildUnitEx(3,3,3, HE_Barracks)
call SetBuildUnitEx(9,9,9, HE_Farm)
call SetBuildUnitEx(1,1,1, HE_Mill)
call SetBuildUnitEx(1,1,1, HE_Altar)
call SetBuildUnitEx(1,1,1, Research_Centre)
call SetBuildUnitEx(3,3,3, ARCANE_SANCTUM)
call SetBuildUnitEx(2,2,2, Hunters_Quarters)
call SetBuildUnitEx(1,1,1, ARCANE_VAULT)
call SetBuildUnitEx(10,10,10, High_Elven_Worker)
call SetBuildUnitEx(4,4,4, Earth_Tower)
call CampaignDefenderEx(2,2,2, SPELL_BREAKER)
call CampaignDefenderEx(3,3,3, Judicator)
call CampaignDefenderEx(1,1,1, Lieutenant)
call CampaignDefenderEx(2,2,2, HE_Archer)
call CampaignDefenderEx(2,2,2, PRIEST)
call CampaignDefenderEx(1,1,1, SORCERESS)
call CampaignDefenderEx(1,1,1, BLOOD_MAGE)
call WaitForSignal()
loop
//* Wave 1 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, HE_Archer)
call CampaignAttackerEx(3,3,3, Swordsman)
call CampaignAttackerEx(1,1,1, Lieutenant)
call CampaignAttackerEx(3,3,3, Judicator)
call CampaignAttackerEx(2,2,2, Ballista)
call SuicideOnPlayer(M6,user)
//* Wave 2 *
call InitAssaultGroup()
call CampaignAttackerEx(2,2,2, HE_Archer)
call CampaignAttackerEx(3,3,3, SPELL_BREAKER)
call CampaignAttackerEx(1,1,1, Lieutenant)
call CampaignAttackerEx(2,2,2, Judicator)
call CampaignAttackerEx(2,2,2, PRIEST)
call CampaignAttackerEx(2,2,2, SORCERESS)
call SuicideOnPlayer(M7,user)
//* Wave 3 *
call InitAssaultGroup()
call CampaignAttackerEx(3,3,3, HE_Archer)
call CampaignAttackerEx(2,2,2, SPELL_BREAKER)
call CampaignAttackerEx(1,1,1, BLOOD_MAGE)
call CampaignAttackerEx(3,3,3, Judicator)
call CampaignAttackerEx(2,2,2, PRIEST)
call CampaignAttackerEx(1,1,1, SORCERESS)
call SuicideOnPlayer(M7,user)
endloop
endfunction