В mission.script есть строка в методе event void OnObjectDestroyed(String _ObjectID)
if(KillList_Primary2.size() == 0)
{
CompleteObjective(3);
if (m_MissionObjectives[2][2] == MOSID_Completed)
CompleteObjective(0);
}
это и есть комплит последнего обжектива, по смерти всех штугов в деревне. см файл MissionC1M4.rsr (тонкий момент в скрипте обжективы считают от нуля а в ресурсах от 1 т.е 3 обжектив в скрипте в текстах 4й)
А вверху mission.script есть строки
Array KillList_Primary2 = ["GermanVysochany_StugG40_1", "GermanVysochany_StugG40_2", "GermanVysochany_StugG40_3"];
соответственно добавленный штуг должен быть внесен в этот массив т.к. из него удаляются убитые штуги и обжектив выполнится когда массив обнулится.
Однако это не самый лучший вариант - это подошло если бы мы добавали штугов в деревню а не в первую волну. Если же мы хотим добавить штуги в первую волну, то подсчет их смертей ведется в
методе event void OnObjectDestroyed(String _ObjectID)
.
.
.
if(_ObjectID.IsStartsWith("German_Column_Pz4"))
{ // если имя убитого начинается с German_Column_Pz4
Component GermanLG = GetObject("CC1M4GermanVysochany_GroupTank");
// взять компонент и проверить не пустой ли он?
if(GermanLG == null)
{
// logError("Component German_LightGroup == null!!");
return;
}
GermanLG.RefreshUnitsList();
if(GermanLG.m_Units.size() == 0)
{
// взять компонент и проверить скока юнитов осталось в нем жив ли кто?
GerLightGroupDie = true;
//вобщем все умерли, можно выпускать еще
if(isDebug)
logError("GermanLG.size() == 0");
}
И чтобы смерти штугов в группе T4 корректно обсчитывались им придется присвоить имена начинающиеся с German_Column_Pz4 (или изменить условие вверху) Я бы лучше добавил бы в группу т4 , тогда не пришлось бы мучится с изменениями. Кроме того таск для штуга и т4 наследуется от разных базовых тасков - один от танка другой от сау... по этому есть шанс что штуг с танковым таском будет вести себя не слишком адекватно.