Описание ошибки:
Неправильная работа функции API GameDef.gpPostMissionLoad(ISectionFile x).
Стабильность обнаружения:
Всегда.
Пояснение ошибки:
- При загрузке подмиссии через gpPostMissionLoad(ISectionFile x), когда объект ISectionFile наполнен вручную, а не загружен из файла, не создаются пользовательские типы колонн техники.
- Если содержимое ISectionFile сначала сохранить в файл, а потом создать подмиссию через gpPostMissionLoad(string path) - такие колонны создаются.
- Если содержимое ISectionFile сначала сохранить в файл, потом загрузить в ISectionFile и создать подмиссию через gpPostMissionLoad(ISectionFile x) - такие колонны создаются.
- Колонны стандатртного образца (не CustomChiefs) создаются правильно в любом случае.
Пример содержимого объекта ISectionFile:
Код:
[CustomChiefs]
Armor.Custom_DE1 $core/icons/tank.mma
[Armor.Custom_DE1]
Tank.SdKfz_222
Tank.Panhard_178_25
[Chiefs]
DEPartrolAF01 Armor.Custom_DE1 de
[DEPartrolAF01_Road]
275050.25 207294.09 38.40 0 2 8.33
275286.50 207158.53 38.40 0 2 1.00 TARGETATTACK
275495.91 206988.80 38.40
Сообщение об ошибке в файле log.txt
Код:
[1372] ERROR [AI] Mission: Can't create chief 'DEPartrolAF01'[class:Armor.Custom_DE1]. Object reference not set to an instance of an object.
Пример кода:
Код:
var secfile = GamePlay.gpCreateSectionFile();
secfile.add("CustomChiefs", "Armor.Custom_DE1", "$core/icons/tank.mma");
secfile.add("Armor.Custom_DE1", "", "Tank.SdKfz_222");
secfile.add("Armor.Custom_DE1", "", "Tank.Panhard_178_25");
secfile.add("Chiefs", "DEPartrolAF01", "Armor.Custom_DE1 de");
secfile.add("DEPartrolAF01_Road", "", "275050.25 207294.09 38.40 0 2 8.33");
secfile.add("DEPartrolAF01_Road", "", "275286.50 207158.53 38.40 0 2 1.00 TARGETATTACK");
secfile.add("DEPartrolAF01_Road", "", "275495.91 206988.80 38.40");
// Не работает
GamePlay.gpPostMissionLoad(secfile);
// Работает
string path ="$user/missions/Single/Subm_01.mis";
secfile.save(path);
GamePlay.gpPostMissionLoad(path);
// Работает
secfile.save(path);
GamePlay.gpPostMissionLoad(GamePlay.gpLoadSectionFile(path));