Итак, Бастонь пройдена. В скрипте я закомментил строки 34-74, в результате миссия проходится, правда есть некоторые странные моменты.
1. Я так и не получил скриптовую поддержку авиации, хотя мессага о том, что вся авиация передаётся под моё командование была. Но здесь есть небольшая фигня - к моменту срабатывания этой функции Бастонь была полностью под моим контролем. Более того, с момента вхождения в город мне были доступны истребители, но по каким-то особым правилам - кнопка становилась активной при появлении авиации противника. При этом с моей стороны автоматически стартовала пара мессеров и ещё пара была доступна по кнопке вызова. Ударную авиацию я так и не получил, хотя по мессагам нужная функция сработала.
2. ИМХО, но с юго-востока не было атаки на саму Бастонь. Так как сам город я занимал с севера - северо-запада, то она могла пройти незамеченной во время уличных боёв - там контратак хватало.
3. Не состоялась атака на правый фланг, но там может быть связано всё с тем, что одновременно с занятием правого фланга, я вышел к арене цели "Наступление" и миссия завершилась победой, захват Бастони при этом засчитали, следовательно условия завершения миссии я выполнил, но не по сценарию.
4. Так как проходил карту не в том порядке, то часть функций по отражению попыток противника протащить подмогу в город, не отработала. Увы, когда проходил, как-то забыл, что надо следовать сценарию. Старался пройти с наименьшими потерями - и получилось, однако.
Сам файл:
Если вдруг ссылка на файл файл протухнет, то вот содержимое: Ardennen.lua
Ну и фотофакт прохождения - специально выставил в проблемной зоне и подождал 20 минут - ничего не подорвалось:
До этого разная техника в этом месте проезжала/тусовалась - тоже никаких подрывов.
Но в самом скрипте меня весьма насторожили следующие участки:
Код:function DelGerUnit1() if (GetIGlobalVar("temp.ArmGer3",0)==1) then RunScript("DelUnit2",30000); Suicide(); else RunScript("DelUnit1",30000); Suicide(); end; end; function Proverka18() if ((GetNMinesInScriptArea("mine1")==0) and (GetNMinesInScriptArea("mine2")==0)) then RunScript("Armee7",60000); KillScript("DelUnit1"); KillScript("DelUnit2"); Suicide(); else RunScript("Udar9a",30000); RunScript("Armee5",60000); RunScript("Armee7",120000); KillScript("DelUnit1"); KillScript("DelUnit2"); Suicide(); end; end; function CheckProriv1() local count = 0; for unit=601,620 do count = count + GetNScriptUnitsInArea(unit,"Proriv"); end; if (count >= 5) then DisplayTrace("Значительные силы противника прорвались в город."); DisplayTrace("Вы не сумели выполнить задачу по блокаде."); DisplayTrace("Командование пока не отстраняет Вас от операции, но надеется,"); DisplayTrace("что остальные поставленные перед Вами задачи будут выполнены с честью!"); RunScript("Objective4b",3000); RunScript("DelUnit3",40000); KillScript("Armee9"); KillScript("Armee11"); Suicide(); end; end; function StopAtaka15() RunScript("DelUnit3",40000); KillScript("Ataka16"); KillScript("Ataka17"); KillScript("Vihod18"); KillScript("Vihod19"); KillScript("Vihod20"); KillScript("Vihod21"); KillScript("Vihod22"); KillScript("Vihod23"); KillScript("Vihod24"); KillScript("Vihod25"); KillScript("Podkrep30"); KillScript("Podkrep31"); KillScript("Podkrep32"); KillScript("Podkrep33"); KillScript("Podkrep34"); KillScript("Podkrep35"); KillScript("Podkrep36"); KillScript("Podkrep37"); Suicide(); end;
Так что надо бы достучаться до камрада ilyaka, который в титрах указан как автор адаптации и изменений. Может я там таки что-то и поломал в итоге. Ну или пусть нынешние скриптописатели разъяснят каким образом влияют эти зоны DelUnitна вон те куски. Я только по поводу атаки более-менее понял пока что.