ЧАСТЬ ВТОРАЯ: делаем XML теги.
Вся работа с xml делиться на три части:
1. Добавление файла с иконками в Modbuddy.
2. Описание атласа.
3. Создание ссылки на атлас в описании юнита.
Итак, поехали.
Запускаем ModBuddy!
1. Сначала надо добавить файл с иконками в проект.
В Solution Explorer наводим мышку на ваш проект или папку где будет лежать ваш файл (но папка должна быть частью проекта), жмем правую кнопку и выбираем из меню "Add" - "Existing Item".

В открывшемся окне находим ваш файл с иконками. Жмем кнопку "Add". Файл добавился в проект.
Далее, необходимо выделить его в Solution Explorer'e и в окошке Properties (снизу от Solution Explorer'a) в переменной "Import into VFS" выставить значение "True".

Забудете выставить True - иконки в игре не будет видно!
Файл добавили.
2. Теперь мы должны создать описание самого атласа.
В игре описания атласов храняться в файле %папка с игрой%\assets\Gameplay\XML\GameInfo\CIV5IconTextureAtlases.xml Нам же, в xml файл своего мода нужно добавить вот такой код.
Код:
<IconTextureAtlases> <!-- название таблицы-->
<Row>
<Atlas>MY_UNIT_FLAG_ATLAS</Atlas> <!-- название атласа -->
<IconSize>32</IconSize> <!-- размер иконки в пикселях. НЕ изменять-->
<Filename>MyIcon32.dds</Filename> <!-- название файла с иконками -->
<IconsPerRow>4</IconsPerRow> <!-- иконок в строке -->
<IconsPerColumn>4</IconsPerColumn> <!-- иконок в столбце -->
</Row>
</IconTextureAtlases>
- Название своему атласу вы вольны придумать любое.
- Размер иконок изменять не нужно.
- Путь к файлу с иконками указывать не нужно, достаточно просто имени, расширение должно быть указано.
- По моим экспериментам, цифры "количество иконок" могут отличаться от истинного количества строк и столбцов в файле без какого либо ущерба, но все же лучше придерживаться правильности во избежание.
Описание атласа готово.
3. Наконец, мы должны сказать юниту, что это его атлас.
Переходим к xml коду своего юнита. Ключевыми тегами для нас являются:
Код:
<UnitFlagIconOffset>0</UnitFlagIconOffset>
<UnitFlagAtlas>MY_UNIT_FLAG_ATLAS</UnitFlagAtlas>
- Отсчет иконок ведется с нуля. Первая иконка в вашем графическом файле - это нулевая иконка.
- Я говорил уже что все иконки у юнитов "тянутся" с одного атласа. Это атлас с именем "UNIT_FLAG_ATLAS", он задается для всех юнитов по умолчанию при их создании (см. описание таблицы Units в файле %папка с игрой%\assets\Gameplay\XML\Units\CIV5Units.xml). Если вы создаете свой юнит по образцу, скопировав описание другого юнита, то этого тега в его описании не будет и вам нужно будет создать его.
Пример кода создания юнита:
Код:
<Units>
<Row>
<Class>UNITCLASS_SLAVE</Class>
<Type>UNIT_SLAVE</Type>
<Cost>-1</Cost>
<Moves>2</Moves>
<Capture>UNITCLASS_SLAVE</Capture>
<Domain>DOMAIN_LAND</Domain>
<DefaultUnitAI>UNITAI_WORKER</DefaultUnitAI>
<Description>TXT_KEY_UNIT_SLAVE</Description>
<Civilopedia>TXT_KEY_CIV5_ANTIQUITY_WORKER_TEXT</Civilopedia>
<Strategy>TXT_KEY_UNIT_WORKER_STRATEGY</Strategy>
<Help>TXT_KEY_UNIT_SLAVE_HELP</Help>
<AdvancedStartCost>20</AdvancedStartCost>
<WorkRate>100</WorkRate>
<CombatLimit>0</CombatLimit>
<UnitArtInfo>ART_DEF_UNIT__WORKER</UnitArtInfo>
<UnitArtInfoEraVariation>true</UnitArtInfoEraVariation>
<UnitFlagIconOffset>0</UnitFlagIconOffset> <!-- тут изменяем значение тега -->
<PortraitIndex>1</PortraitIndex>
<IconAtlas>UNIT_ATLAS_1</IconAtlas>
<UnitFlagAtlas>MY_UNIT_FLAG_ATLAS</UnitFlagAtlas> <!-- тут добавляем тег -->
</Row>
</Units>
- Жирным шрифтом выделены части которые необходимо изменить, что бы "линкануть" описание атласа юниту.
Важно: если вы хотите изменить иконку уже существующему юниту, то создавать ему тег "UnitFlagAtlas" не нужно, он уже есть, необходимо его "проапдетить", т.е. обновить. "Апдейтим" сразу оба параметра.
Пример кода:
Код:
<Units>
<Update>
<Where Type="название_юнита"/>
<Set>
<UnitFlagAtlas>MY_UNIT_FLAG_ATLAS</UnitFlagAtlas> <!-- название вашего атласа -->
<UnitFlagIconOffset>0</UnitFlagIconOffset> <!-- порядковый номер иконки -->
</Set>
</Update>
</Units>
КОНЕЦ: ну вот и все готово!
Собираем проект, запускаем игру, запускаем мод. Иконка должна быть.