Добавлен ImbaState
Доброго времени суток!
Я впервые решил написать простенький "ИИ для кампании" на JASS, но столкнулся с проблемой: компьютер продолжает АФКшить.
Я впервые решил написать простенький "ИИ для кампании" на JASS, но столкнулся с проблемой: компьютер продолжает АФКшить.
Вот, собственно, сам скрипт:
globals
player BloodElves = Player(0)
endglobals
//==================================================
// CONFIGURE
//==================================================
function ConfigureAI takes nothing returns nothing
call SetSlowChopping( true )
call SetPeonsRepair( true )
endfunction
//==================================================
// MAIN
//==================================================
function main takes nothing returns nothing
call CampaignAI( ZIGGURAT_1, null )
call SetCaptainHome( ATTACK_CAPTAIN, 3730, -3450 )
call ConfigureAI()
//====================
// UNITS
//====================
call SetBuildUnit( 1, NECROPOLIS_1 )
call SetBuildUnit( 1, ACOLYTE )
call SetBuildUnit( 1, UNDEAD_MINE )
call SetBuildUnit( 1, UNDEAD_ALTAR )
call SetBuildUnit( 3, CRYPT )
call SetBuildUnit( 2, GRAVEYARD )
call SetBuildUnit( 5, ACOLYTE )
call SetBuildUnit( 1, CRYPT_LORD )
call SetBuildUnit( 13, ZIGGURAT_1 )
call SetBuildUnit( 13, ZIGGURAT_FROST )
call SetBuildUnit( 1, NECROPOLIS_2 )
call SetBuildUnit( 1, DAMNED_TEMPLE )
call SetBuildUnit( 1, NECROPOLIS_3 )
call CampaignDefenderEx( 11, 11, 11, GHOUL )
call CampaignDefenderEx( 3, 3, 3, NECRO )
call CampaignDefenderEx( 19, 19, 19, CRYPT_FIEND )
call CampaignDefenderEx( 1, 1, 1, CRYPT_LORD )
//====================
// ATTACK
//====================
call WaitForSignal()
set allow_signal_abort = true
//*** WAVE 1 0min***
call InitAssaultGroup()
call CampaignAttackerEx( 4, 4, 4, GHOUL )
call CampaignAttackerEx( 2, 2, 2, CRYPT_FIEND )
call CampaignAttackerEx( 1, 1, 1, NECRO )
call SuicideOnPlayer(M1, BloodElves )
//*** WAVE 2 3min***
call InitAssaultGroup()
call CampaignAttackerEx( 6, 6, 6, GHOUL )
call CampaignAttackerEx( 3, 3, 3, CRYPT_FIEND )
call CampaignAttackerEx( 1, 1, 1, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 3 6min***
call InitAssaultGroup()
call CampaignAttackerEx( 7, 7, 7, GHOUL )
call CampaignAttackerEx( 3, 3, 3, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 4 9 min***
call InitAssaultGroup()
call CampaignAttackerEx( 7, 7, 7, GHOUL )
call CampaignAttackerEx( 4, 4, 4, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 5 12min***
call InitAssaultGroup()
call CampaignAttackerEx( 7, 7, 7, GHOUL )
call CampaignAttackerEx( 4, 4, 4, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call CampaignAttackerEx( 1, 1, 1, CRYPT_LORD )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 6 15min***
call InitAssaultGroup()
call CampaignAttackerEx( 8, 8, 8, GHOUL )
call CampaignAttackerEx( 4, 4, 4, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 7 18min***
call InitAssaultGroup()
call CampaignAttackerEx( 8, 8, 8, GHOUL )
call CampaignAttackerEx( 4, 4, 4, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call CampaignAttackerEx( 1, 1, 1, CRYPT_LORD )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 8 21min***
call InitAssaultGroup()
call CampaignAttackerEx( 8, 8, 8, GHOUL )
call CampaignAttackerEx( 4, 4, 4, CRYPT_FIEND )
call CampaignAttackerEx( 3, 3, 3, NECRO )
call CampaignAttackerEx( 1, 1, 1, CRYPT_LORD )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 9 24min***
call InitAssaultGroup()
call CampaignAttackerEx( 8, 8, 8, GHOUL )
call CampaignAttackerEx( 4, 4, 4, CRYPT_FIEND )
call CampaignAttackerEx( 3, 3, 3, NECRO )
call CampaignAttackerEx( 1, 1, 1, CRYPT_LORD )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 10 27min***
call InitAssaultGroup()
call CampaignAttackerEx( 10, 10, 10, GHOUL )
call CampaignAttackerEx( 6, 6, 6, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 11 30min***
call InitAssaultGroup()
call CampaignAttackerEx( 10, 10, 10, GHOUL )
call CampaignAttackerEx( 8, 8, 8, CRYPT_FIEND )
call CampaignAttackerEx( 2, 2, 2, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 12 33min***
call InitAssaultGroup()
call CampaignAttackerEx( 10, 10, 10, GHOUL )
call CampaignAttackerEx( 10, 10, 10, CRYPT_FIEND )
call CampaignAttackerEx( 3, 3, 3, NECRO )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 13 36min***
call InitAssaultGroup()
call CampaignAttackerEx( 10, 10, 10, GHOUL )
call CampaignAttackerEx( 10, 10, 10, CRYPT_FIEND )
call CampaignAttackerEx( 3, 3, 3, NECRO )
call CampaignAttackerEx( 1, 1, 1, CRYPT_LORD )
call SuicideOnPlayer(M3, BloodElves )
//*** WAVE 14 LETS GO***
call ForeverSuicideOnPlayer( M2, BloodElves )
call SuicideUnits( GHOUL, NECRO, SKEL_WARRIOR, CRYPT_FIEND, CRYPT_LORD, 0, 0, 0, 0 )
endfunction
Делал, опираясь на тутор от Moyack, а еще на ИИ Близов из 5-й главы Альянса RoC (оборона Харглена).
Писал ИИ в JassCraft'е, если это принципиально :)
Вот сам триггер:
Писал ИИ в JassCraft'е, если это принципиально :)
Вот сам триггер:
Триггер запускается, я проверял.
Импортировал вот так:
Импортировал вот так:
Игрок 7 (зеленый) есть, что в свойствах игрока, что на карте. В ресурсах проблемы нет, ибо давал триггерно их. Да и будь дело в этом, пеоны хотя бы ресурсы начали добывать. Но они бездействуют.
Помогите разобраться, пожалуйста!
Вот сам файл ИИ, если нужно:
Принятый ответ
Нашел ошибку:
В функции SuicideUnits (в самом низу) должно находиться строго 10 значений. У меня 9. Если приписать еще 0, то все работает.
В функции SuicideUnits (в самом низу) должно находиться строго 10 значений. У меня 9. Если приписать еще 0, то все работает.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
В функции SuicideUnits (в самом низу) должно находиться строго 10 значений. У меня 9. Если приписать еще 0, то все работает.