Руководство по изготовлению модов для казаков

Модификация игры Казаки, Создание мода к игре Казаки

РУКОВОДСТВО ПО ИЗГОТОВЛЕНИЮ МОДОВ ДЛЯ КАЗАКОВ
 Вступление: Первое правило создания МОД-ов — НЕ БОЙТЕСЬ ЭКСПЕРИМЕНТИРОВАТЬ.Измените немножко здесь и чуть-чуть там. Вначале вы будете делать ошибки, но только так вы научитесь. Именно так научился я. Совершенство достигается практикой. Поэтому откройте ваш Notepa/Wordpad и приступайте. Только, прежде чем что-либо сделать убедитесь, что вы сохранили резервные копии оригинальных файлов Казаков. Также обратите внимание, что в этой статье термин юнит употребляется как в отношении собственно юнита, так и здания. 

Содержание:
1. Типы файлов
2. Анатомия NDS-файлов
3. Как изменить графику юнита
4. Как добавить юнит
5. Как вставить отредактированные файлы в игру

1. Типы файлов: (Back to top)

NRES.DAT : Этот тип нам интересен. Его можно редактировать текстовым редактором, например Notepad. Он управляет многими вещами. UNITS/FARM например это величина устанавливающая сколько юнитов можно иметь в еденичном обиталище. Он также устанавливает позицию управляющей иконки и многие другие вещи.

GP-файлы : Это графические файлы для спрайтов юнитов и других картинок. В настоящее время полный формат этих файлов не известен и поэтому их нельзя редактировать без рабочих инструментов GSC.

LST-файлы : Среди этих файлов представляют интерес NATIONS.LST и ORDERS.LST. Если вы хотите добавить дополнительные нации (если ОЧЕНЬ хотите, даже Baddog не пытался осуществить такую масштабную работу), то NATIONS.LST это файл которым вы должны редактировать первым. ORDERS.LST также легко редактируем и интересен постольку, поскольку задает размер формации, ее форму и бонусы построения. Оба эти файла вполе доступны для понимания.

MD-файлы : Это файлы спецификации юнитов. Возможно это именно те фалы, ковряя которые вы потратите набольшее количество времени. Вы должны хорошо знать их. Большая часть содержания понятна сама по себе. Особо следует отметить переменную NAME в этом файле. Именно этот NAME будет использован в NDS файле для получения характеристик юнита включая его графику, хит-поинты, атаку и др.

NDS-файлы :Файл спецификации нации. Подробности ниже. 

TXT-файлы : Представляют интерес COMMENT.TXT, TEXT/MDLIST.TXT и NMLIST.TXT. COMMENT.TXT это типа файл-перевода который задает описания различных кнопок, типа апгрейдов. Конечно в различных языковых версиях он будет различаться. TEXT/MDLIST.TXT то же самое, но для названий юнитов. Остается NMLIST.TXT. Это важный файл. Если вы хотите добавить новые юниты (т.е. новые MD-файлы), Вы должны добавить новую строку в этот файл, в противном случае игра рухнет.

*** Важно помнить, что все эти файлы взаимосвязанны. Изменения в одном могут повлиять на работу других. ***

2. Анатомия NDS-файлов: (Back to top)

Это файлы наций. Эти файлы заслуживают подробного рассмотрения. Файлы имеют текстовый формат и редактируются любым текстовым редактором. Они разделены на несколько секций. Последующие примеры взяты из файла AUSTRIA.NDS

[MEMBERS] : эта секция имеет отношение к юнитам и зданиям доступным данной нации. Слева стоят действительные имена игорвых едениц (юнитов и зданий, далее ИЕ) которые будут использоваться позднее в NDS-файлах. Не важно какое идентификатор вы присвоите ИЕ, главное, чтобы его окончание в скобках соответствовало признаку нации например, (AU) для Австрии. Правая часть соответствует отображаемому в игре имени ИЕ описанному в соответствующем MD-файле как переменная NAME для данной еденицы. Например, в AUSTRIA.NDS : Kreposnoi_pruss(au) Kreposnoi_pruss относится к ИЕ под именем Kresposnoi_pruss(au), использующей характеристики юнита Kreposnoi_prus, описаного в файле KRP.MD.

[FIXED_PRODUCE] : эта секция устанавливает, что можно построить/произвести и отвечает за наличие соответствующих иконок. Например, в файле AUSTRIA.NDS первая после заголовка [FIXED_PRODUCE] строка : Kreposnoi_pruss(au) 18. Это означает, что ИЕ Kresposnoi_pruss(au) (Австрийский крестьянин) может осуществить 18 действий. Следующие 18 строк как раз и описывают его возможности. Следующей строкой стоит : Center_Austria(au) 2 2 H. ГорЦентр может быть построен крестьянином и иконка горцентра будет помещена во вторую колонку и второй ряд соответствующего меню. Буква H обозначает категорию ГорЦентр, (H — ГорЦентр, A — Академия и др. ).

[ENABLED] : список ИЕ доступных в начале игры . Например доступны казармы 17в, но не 18в.

[UPGRADES] : этот обширный раздел включает различные апгрейды для данной нации. Не беспокойтесь о том, где эти апгрейды делаются — это описано в следующем разделе файла. типичный вид строки: Pikiner_evro(au)ATTACK ATAKA1 #POSITION 0 1 #LEVEL 2 Pikiner_evro(au)ATTACK #COST 2 FOOD 200 GOLD 50 #TIME 500 DAMAGE WEAPONKIND PIKA Pikiner_evro(au) +1

Здесь, Pikiner_evro(au)ATTACK = имя апгрейда, ATAKA1 = иконка для апгрейда, #POSITION 0 1 = позиция иконки (колонка, ряд), #LEVEL 2 = уровень апгрейда, Pikiner_evro(au)ATTACK = имя используемое в файле COMMENT.TXT, #COST 2 FOOD 200 GOLD 50 = само собой, #TIME 500 = время на апгрейдж, DAMAGE WEAPONKIND PIKA Pikiner_evro(au) = действие апгрейда, +1 = количественный эффект апгрейда.

[UPGRADEPLACE] : указывает место где апгрейд происходит. Формат сходен с Fixed_Produce, сначала указывается ИЕ и число его апгрейдов, следующие строчки характеризуют апгрейды данной ИЕ.Например, PorE(au) 5 определяет 5 апгрейдов Австрийского порта. Апгрейды определяются непосредственно за этим.

[UPGRADEENABLE] : апгрейды доступные в начале игры.

[UPGRADELINKS] : описывает последовательность апгрейдов. Наиболее сложный пример MAINAU 13 Kirasir(au)ATTACK Kirasir(au)SHIELD Gusar_evro(au)ATTACK Gusar_evro(au)SHIELD Dragun_18(au)ATTACK Dragun_18(au)SHIELD KUZ04AU Melnica(au)GETRES2 shahta(au)INSIDE5 shahta(au)INSIDE6 shahta(au)INSIDE7 AKA25AU PRS(au)INSIDE. Сие означает, что по завершении апгрейда MAINAU (переход в 18в) сиановятся доступны 13 апгрейдов. Большинство других строк определяют только один последующий апгрейд.

[DISABLED_UPGRADES] : секция определяет доступность апгрейдов по определенным условиям. Хороший пример, MAINAU (18век), закрашен серым пока не выполнены все условия перехода.

[ACCESSCONTROL] : определяет условия которые необходимо выполнить для получения доступа к апгрейду/ИЕ. Например, MAINAU 7 Kuznica(au) Konushnia_Swesair(au) akademia_E(au) Kazarma_evro(au) Cercov_Poland(au) Rinok(au) artileri_depo(au) означает, что до того как вы сможете нажать кнопку MAINAU, вы должны построить семь зданий перечисленных после цифры 7.

[UNITLOCK] : определяет юниты которые должны производиться в ограниченном количестве. Например, PERES_KOR(au) 10 PERES_KOR(au) означает, что вы не сможете построить больше 10 паромов.

[CANSETDEST] : здания перечисленные здесь будут иметь точку сбора.

[PRIVATE] : апгрейды указанные здесь будут влиять на одну ИЕ для которой произведен апгрейд. Это используется для шахт и башен.

[SPECIAL_UPGRADE] и [SPECIAL_UNIT] : применимы только для ПДК. Устанавливает флаги для различных видов начала игры «С большой армией», «Уже в 18-м веке», «Без пушек, башен и стен» и других. Юниты и апгрейды перечисленные здесь позволяют движку игры знать исключать ли их при выполнении определенных условий.

[COUNTRY] : видимо предназнаен для редактора. Содержит юниты данной нации сгруппированные по типам: здания, кавалерия, артиллерия и др.

[OFFICERS] : определяет условия построения формаций.

3. Как изменить графику юнита: (Back to top)

Разобравшись с различными типами файлов, давайте попробуем что-нибудь простенькое, например изменим графику наемника-драгуна. Для этого вам нужен файл DR2DIP.md, определяющий характеристики этого юнита. Допустим, мы меняем его графику на графику французкого драгуна . Французу соответствует DRF.MD. Вам потребуется изменить строчки от ICON до GEOMETRY. Любители острых компьютерных ошушений могут попробовать и отредактировать некоторые характеристики. После этого вернните отредактированный файл DR2DIP.MD в игру и вы обнаружите новую графику ВАШЕГО наемного драгуна. Как вставлять файлы в игру, читайте дальше.

4. Как добавлять юниты: (Back to top)

Это уже продвинутый уровень МОДа. Сначала надо продумать что вы хотите добавить к какой нации вы хотите добавить юнит и каком виде (доступность юнита, уровни апгрейдов и т.д.). Тут появляется дополнительный шаг который вам также необходимо сделать. Поскольку вы вводите новые файлы вам необходимо помнить что новые MD-файлы должны быть приведены в файле NMLIST.TXT и его описании данном в TEXT\MDLIST.TXT. Теперь переходите к NDS-файлу нации к которой вы собираетесь добавлять новый юнит. К этому процессу надо относиться как к рождению ребенка в вашей семье. Вы должны решить каким будет его имя, где он будет рождаться, какое положение он займет в семье, а так же его потенциальная роль когда он вырастет. Имя указывается в секции [MEMBERS]. Место рождения в [FIXED_PRODUCE]. Доступность в начале игры в [ENABLED] и так далее по всем разделам NDS-файла. После редактирования верните эти файлы в игру и (если все зделано правильно) вы должны обнаружить в игре свой новый юнит.

5. Как вернуть отредактированные файлы в игру: (Back to top)

Простейший способ — использовать Cossacks Mod Menager который я разработал. Все, что вам нужно — это сгенерировать GSC-файл с отредактированными вами файлами используя GSC File Utility, но назвать ваш файл YOURNAME.MODS (замените YOURNAME на ТО-ЧТО-ВАМ-НРАВИТСЯ). Затем скопируйте файл в директорию Cossacks и выйдите из Cossacks Mod Manager. С другой стороны, вы можете использовать традиционный путь создавая новый patch0*.gs1 или mods01.gs1 (если уже инсталлирован MOD1) затем копировать это добро в директорий Cossacks. Если вы поступаете так, не забудьте сохранить оригинальные файлы. При использовании patch0*.gs1 или mods01.gs1 соблюдайте следующие правила. Движок Казаков ищет файлы с характеристиками юнитов сначала в patch0*.gs1. Эти значения имеют более высокий приоритет, чем в ALL.GSC. Конечно если характеристики юнита не найдены в PATCH0*.GS1 движек возьмет эти значения из ALL.GSC. Если соответствующие значения не будут найдены в одном из NDS файлов игршка рухнет. Это правило слегка изменяется если установлен MOD1. Вначале просматривается MODS01.GS1 и MODS.GS1, затем — PATCH02.GS1, и в наконце — ALL.GSC. GS1 и GSC файлы под другими именами просто игнорируются движком. Если у вас только ЕВ также игнорируются MODS01.GS1 и MODS.GS1.

 Было немало написано и прочитано — остается только засучить рукава и попытаться самому модифицировать Казаков. Happy Cossacking my fellow friends.

Идем дальше:
В основном все однотипно но вот мы доходим до мушкетеров (member := ‘musketeer’;) и видим следующее:

case cid of
      _aus : member := 'musketeeraus';
      _spa : member := 'musketeerspa';
      _rus : member := 'strelet';
      _ukr : member := 'serdiuk';
      _pol : member := 'musketeerpol';
      _tur : member := 'jannisary';
      _alg : member := '';
      _net : member := 'musketeernet';
      else
      member := 'musketeer';
   end;
   if (member<>'') then
   begin
      var posx : Integer = 2;
      if (cid=_ukr) then
      posx := 0;
      case cid of
         _aus : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_avstr
         _fra : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 100, 50, True, 2, 3000, 500, True, 3, 2500, 750, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
         _eng : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 1900, 150, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
         _spa : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Strelec_Spain
         _rus : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Strelec
         //_ukr : SetUpgStructFoodGoldIronCoal(upgstruct, upgplace, member, 2, 22000, 800, 0, 0, True, 3, 32400, 5800, 0, 0, True, 4, 42010, 6800, 0, 0, True, 5, 52300, 1800, 7400, 0, True, 6, 45000, 300, 14500, 0, True, 10, 62400, 0, 0, 39200, blacksmith, ''); // Kozacki_Strelec
         _ukr : SetUpgStructFoodGoldIronCoal(upgstruct, upgplace, member, 2, 22000, 800, 0, 0, True, 3, 32400, 5800, 0, 0, True, 4, 42010, 6800, 0, 0, True, 5, 52300, 1800, 7400, 0, True, 6, 45000, 300, 14500, 0, True, 0, 0, 0, 0, 0, blacksmith, ''); // C3 changes (remove last upg to damage and protection
         _pol : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 500, 125, True, 1, 1250, 275, True, 2, 2500, 650, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_polsha
         _swe : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 1000, 200, True, 1, 2000, 200, True, 2, 100, 200, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
         _pru : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
         _ven : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
         _tur : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Ianithar
         _alg : ;
         _den : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
         _net : SetUpgStructFoodGold(upgstruct, upgplace, member, 1, 2000, 100, True, 1, 1000, 300, True, 2, 500, 700, True, 0, 0, 0, True, 0, 0, 0, True, 0, 0, 0, blacksmith, ''); // Mushketer_ev
      end;
      AddUpgradePack(country, upgstruct, ctypeDamageBullet, gc_upg_tooltiptype_shooterdmg, posx, 1, True, ind, linkind);
      case cid of
         _aus : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Mushketer_avstr
         _fra : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 2, 200, 75, 200, True, 2, 705, 250, 250, True, 2, 4560, 300, 450, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Mushketer_ev
         _eng : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 220, 50, 100, True, 2, 505, 140, 200, True, 3, 3670, 100, 350, True, 1, 1000, 1720, 100, True, 1, 2060, 1900, 400, True, 1, 5900, 1150, 700, blacksmith, ''); // Mushketer_ev
         _spa : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Strelec_Spain
         _rus : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Strelec
         //_ukr : SetUpgStructFoodGoldIronCoal(upgstruct, upgplace, member, 1, 3706, 0, 2350, 0, True, 2, 12060, 0, 7850, 0, True, 3, 36706, 0, 14000, 0, True, 4, 36706, 0, 22350, 0, True, 5, 37060, 0, 34350, 0, True, 6, 55706, 0, 0, 51350, blacksmith, ''); // Kozacki_Strelec
         _ukr : SetUpgStructFoodGoldIronCoal(upgstruct, upgplace, member, 1, 3706, 0, 2350, 0, True, 2, 12060, 0, 7850, 0, True, 3, 36706, 0, 14000, 0, True, 4, 36706, 0, 22350, 0, True, 5, 37060, 0, 34350, 0, True, 0, 0, 0, 0, 0, blacksmith, ''); // C3 changes (remove last upg to damage and protection
         _pol : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 125, 150, 100, True, 2, 375, 100, 200, True, 3, 2570, 300, 450, True, 1, 2556, 1150, 400, True, 1, 3060, 1550, 100, True, 1, 3700, 1850, 600, blacksmith, ''); // Mushketer_polsha
         _swe : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 450, 550, 300, True, 2, 405, 150, 20, True, 3, 3570, 100, 290, True, 1, 1956, 1250, 700, True, 1, 1660, 1750, 400, True, 1, 4700, 1750, 100, blacksmith, ''); // Mushketer_ev
         _pru : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Mushketer_ev
         _ven : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Mushketer_ev
         _tur : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Ianithar
         _alg : ;
         _den : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Mushketer_ev
         _net : SetUpgStructFoodGoldIron(upgstruct, upgplace, member, 1, 170, 50, 100, True, 2, 405, 150, 200, True, 3, 3570, 100, 350, True, 1, 1556, 1350, 100, True, 1, 1060, 2050, 400, True, 1, 5700, 1350, 700, blacksmith, ''); // Mushketer_ev
      end;
      AddUpgradePack(country, upgstruct, ctypeProtection, gc_upg_tooltiptype_infdef, posx, 2, True, ind, linkind);
   end;

Это переключатель, который показывает, что для Украины (cid=_ukr) улучшения сердюка будут располагаться в нулевом столбце (posx := 0) а не во втором (Integer = 2), так как у Украины нет пикинеров и сердюк расположен в нулевом столбце.
Так же будет и для других юнитов с отличным от используемого массива положением.


Разработчики пишут:
// make last attack upgrade to increase grenade damage
// последний апгрейд атаки улучшает урон от гранат.

Тот же принцип, что и с польским пикинером, только для атаки.
Само собой улучшать таким образом можно только тот тип атаки, который у юнита уже есть.

Дальше идем до кода для казаков реестровых и донских, мамлюков, сипахов и затесавшегося туда польского рейтара (ищем: _rus : member := ‘cossackdon’;).
Что тут интересного, разработчики показывают новый тип переключателя:
//var cUpgType : Integer = _misc_SwitchInt(ctypeDamagePike, ctypeDamageSword, (cid=_pol));
Что он делает, ну если бы был включен, переключает для польского рейтара((cid=_pol)) улучшения атаки с используемого типа пики на тип мечи.

Ну и последнее для юнитов:
Что же делать если мы хотим добавить свой тип защиты для дальнейшего использования?
Идем по адресу: // _country_InitUnitsUpgrades
Добавляем после кода:

Идем ниже:
procedure AddUpgradePack(var country : TCountry; upgstruct : TUpgStruct; upgradetype, tooltiptype, x, y : Integer; bEnabled : Boolean; var ind, linkind : Integer);
Добавляем после:

И в начале этого кода добавляем 6 вместо 5, так как у нас добавился новый тип защиты.
Все, теперь вы можете выдавать юнитам улучшения защиты только против стрел.

Альтернативная ссылка: Скачать модострой Казаки. Состоит из двух частей.

Инструкция создана на internetwars.ru
Cоставили AWAR, Erofey, King Augustus

ПРОГРАММЫ ДЛЯ РАБОТЫ С ФАЙЛАМИ «КАЗАКОВ»
GSCUtil:
Вся графика в «Казаках» и настройки юнитов находятся в файле ALL.GSC.
Открыть его можно с помощью утилиты GSCUtil.exe.
В ALL.GSC спрятана графика, настройки и файлы оригинальных Казаков, Ваши файлы после модификации примут вид mods.gs1 mods.gs2 и т.д. в частности в моде Беддога Казаки империя 1.37 с 19 веком = mods.gs1

Как работать с утилитами GSC Util?
1. Запускаем программу и выполняем следующие команды:
File-Open;
В диалоговом окне выбираем файл (*.gsc, или *gs1);
2. Ставим галочку «Extract as»;
Файлы в папках будут отображаться в виде папка и файл
Это необходимо для дальнейшей сборки.
3. Выставить алгоритм расшифровки. По умолчанию программа настроена на английские ресурсы, так что если у вас английская версия — выбираем опцию «Default», а если русская — выбираем версию «Scheme01»;
Признак кодирования файла — звездочка перед ним.
4. Прописать путь, куда все поместиться;
5. Нажать Select ALL;
6. Нажать Extract.

Чтобы игра заработала в дальнейшем после внесенных изменений (замены графики или параметров юнитов) вам снова нужно собрать файл ALL.GSC
Если изменить что-то в ALL.GSC не факт, что это проявиться в Империи – возможно отредактированный файл уже есть в более старшем .gs1, замечено что приаретет имеют молодые файлы над старшими.

Порядок обратной упаковки:
Запускаем программу и выполняем следующие команды:
1. Ставим галочку «File Generator»;
2. Прописываем название файла  в строке путь;
прописываем имя генерируемого файла ALL.GSC

Не обязательно All.gsc, можно любой mods0*.gs1 (от 1 до 4)  или patch0*.gs1 (от 1 до 2), главное – какой будет грузиться первым).
3. Открываем окно с нашими файлами, выделяем все и обязательно мышкой
тянем в окно GSCUtil;
4. Нажимаем Generate;
Вновь собранный файл находится в папке gscutil\gscutil\generated

Описание модов в Казаках или как сделать мод к игре Казаки своими силами.
 

    Вступление: Первое правило создания МОД-ов — НЕ БОЙТЕСЬ ЭКСПЕРИМЕНТИРОВАТЬ.Измените немножко здесь и чуть-чуть там. Вначале вы будете делать ошибки, но только так вы научитесь. Именно так научился я. Совершенство достигается практикой. Поэтому откройте ваш Notepa/Wordpad и приступайте. Только, прежде чем что-либо сделать убедитесь, что вы сохранили резервные копии оригинальных файлов Казаков. Также обратите внимание, что в этой статье термин юнит употребляется как в отношении собственно юнита, так и здания.
 

Содержание:
1. Типы файлов
2. Анатомия NDS-файлов
3. Как изменить графику юнита
4. Как добавить юнит
5. Как вставить отредактированные файлы в игру

1. Типы файлов:

NRES.DAT : Этот тип нам интересен. Его можно редактировать текстовым редактором, например Notepad. Он управляет многими вещами. UNITS/FARM например это величина устанавливающая сколько юнитов можно иметь в еденичном обиталище. Он также устанавливает позицию управляющей иконки и многие другие вещи.

GP-файлы : Это графические файлы для спрайтов юнитов и других картинок. В настоящее время полный формат этих файлов не известен и поэтому их нельзя редактировать без рабочих инструментов GSC.

LST-файлы : Среди этих файлов представляют интерес NATIONS.LST и ORDERS.LST. Если вы хотите добавить дополнительные нации (если ОЧЕНЬ хотите, даже Baddog не пытался осуществить такую масштабную работу), то NATIONS.LST это файл которым вы должны редактировать первым. ORDERS.LST также легко редактируем и интересен постольку, поскольку задает размер формации, ее форму и бонусы построения. Оба эти файла вполе доступны для понимания.

MD-файлы : Это файлы спецификации юнитов. Возможно это именно те фалы, ковряя которые вы потратите набольшее количество времени. Вы должны хорошо знать их. Большая часть содержания понятна сама по себе. Особо следует отметить переменную NAME в этом файле. Именно этот NAME будет использован  в NDS файле для получения характеристик юнита включая его графику, хит-поинты, атаку и др.

NDS-файлы :Файл спецификации нвации. Подробности ниже.

TXT-файлы : Представляют интерес COMMENT.TXT, TEXT/MDLIST.TXT и NMLIST.TXT. COMMENT.TXT это типа файл-перевода который задает описания различных кнопок, типа апгрейдов. Конечно в различных языковых версиях он будет различаться. TEXT/MDLIST.TXT то же самое, но для названий юнитов. Остается NMLIST.TXT. Это важный файл. Если вы хотите добавить новые юниты (т.е. новые MD-файлы), Вы должны добавить новую строку в этот файл, в противном случае игра рухнет.

*** Важно помнить, что все эти файлы взаимосвязанны. Изменения в одном могут повлиять на работу других. ***

2. Анатомия NDS-файлов:

Это файлы наций. Эти файлы заслуживают подробного рассмотрения. Файлы имеют текстовый формат и редактируются любым текстовым редактором. Они разделены на несколько секций. Последующие примеры взяты из файла AUSTRIA.NDS

[MEMBERS] : эта секция имеет отношение к юнитам и зданиям доступным данной нации. Слева стоят действительные имена игровых единиц (юнитов и зданий, далее ИЕ) которые будут использоваться позднее в NDS-файлах. Не важно какое идентификатор вы присвоите ИЕ, главное, чтобы его окончание в скобках соответствовало признаку нации например, (AU) для Австрии. Правая часть соответствует отображаемому в игре имени ИЕ описанному в соответствующем MD-файле как переменная NAME для данной еденицы. Например, в  AUSTRIA.NDS : Kreposnoi_pruss(au) Kreposnoi_pruss относится к ИЕ под именем  Kresposnoi_pruss(au), использующей характеристики юнита Kreposnoi_prus, описаного в файле KRP.MD.

[FIXED_PRODUCE] : эта секция устанавливает, что можно построить/произвести и отвечает за наличие соответствующих иконок. Например, в файле AUSTRIA.NDS первая после заголовка [FIXED_PRODUCE] строка : Kreposnoi_pruss(au) 18. Это означает, что ИЕ Kresposnoi_pruss(au) (Австрийский крестьянин) может осуществить 18 действий. Следующие 18 строк как раз и описывают его возможности. Следующей строкой стоит : Center_Austria(au) 2 2 H. ГорЦентр может быть построен крестьянином и иконка горцентра будет помещена во вторую колонку и второй ряд соответствующего меню. Буква H обозначает категорию ГорЦентр, (H — ГорЦентр, A — Академия и др. ).

[ENABLED] : список ИЕ доступных в начале игры . Например доступны казармы 17в, но не 18в.

[UPGRADES] : этот обширный раздел включает различные апгрейды для данной нации. Не беспокойтесь о том, где эти апгрейды делаются — это описано в следующем разделе файла. типичный вид строки: Pikiner_evro(au)ATTACK ATAKA1 #POSITION 0 1 #LEVEL 2 Pikiner_evro(au)ATTACK #COST 2 FOOD 200 GOLD 50 #TIME 500 DAMAGE WEAPONKIND PIKA Pikiner_evro(au) +1

Здесь, Pikiner_evro(au)ATTACK = имя апгрейда, ATAKA1 = иконка для апгрейда, #POSITION 0 1 = позиция иконки (колонка, ряд), #LEVEL 2 = уровень апгрейда, Pikiner_evro(au)ATTACK = имя используемое в файле COMMENT.TXT, #COST 2 FOOD 200 GOLD 50 = само собой, #TIME 500 = время на апгрейдж, DAMAGE WEAPONKIND PIKA Pikiner_evro(au) = действие апгрейда,  +1 = количественный эффект апгрейда.

[UPGRADEPLACE] : указывает место где апгрейд происходит. Формат сходен с Fixed_Produce, сначала указывается ИЕ и число его апгрейдов, следующие строчки характеризуют апгрейды данной ИЕ.Например, PorE(au) 5 определяет 5 апгрейдов Австрийского порта. Апгрейды определяются непосредственно за этим.

[UPGRADEENABLE] : апгрейды доступные в начале игры.

[UPGRADELINKS] : описывает последовательность апгрейдов. Наиболее сложный пример MAINAU 13 Kirasir(au)ATTACK Kirasir(au)SHIELD Gusar_evro(au)ATTACK Gusar_evro(au)SHIELD Dragun_18(au)ATTACK Dragun_18(au)SHIELD KUZ04AU Melnica(au)GETRES2 shahta(au)INSIDE5 shahta(au)INSIDE6 shahta(au)INSIDE7 AKA25AU PRS(au)INSIDE. Сие означает, что по завершении апгрейда MAINAU (переход в 18в) сиановятся доступны 13 апгрейдов. Большинство других строк определяют только один последующий апгрейд.

[DISABLED_UPGRADES] : секция определяет доступность апгрейдов по определенным условиям. Хороший пример,  MAINAU (18век), закрашен серым пока не выполнены все условия перехода.

[ACCESSCONTROL] : определяет условия которые необходимо выполнить для получения доступа к апгрейду/ИЕ. Например, MAINAU 7 Kuznica(au) Konushnia_Swesair(au) akademia_E(au) Kazarma_evro(au) Cercov_Poland(au) Rinok(au) artileri_depo(au) означает, что до того как вы сможете нажать кнопку MAINAU, вы должны построить семь зданий перечисленных после цифры 7.

[UNITLOCK] : определяет юниты которые должны производиться в ограниченном количестве. Например, PERES_KOR(au) 10 PERES_KOR(au) означает, что вы не сможете построить больше 10 паромов.

[CANSETDEST] : здания перечисленные здесь будут иметь точку сбора.

[PRIVATE] : апгрейды указанные здесь будут влиять на одну ИЕ для которой произведен апгрейд. Это используется для шахт и башен.

[SPECIAL_UPGRADE] и [SPECIAL_UNIT] : применимы только для ПДК. Устанавливает флаги для различных видов начала игры «С большой армией», «Уже в 18-м веке», «Без пушек, башен и стен» и других. Юниты и апгрейды перечисленные здесь позволяют движку игры знать исключать ли их при выполнении определенных условий.

[COUNTRY] : видимо предназнаен для редактора. Содержит юниты данной нации сгруппированные по типам: здания, кавалерия, артиллерия и др.

[OFFICERS] : определяет условия построения формаций.

3. Как изменить графику юнита:

Разобравшись с различными типами файлов, давайте попробуем что-нибудь простенькое, например изменим графику наемника-драгуна. Для этого вам нужен файл DR2DIP.md, определяющий характеристики этого юнита. Допустим, мы меняем его графику на графику французкого драгуна . Французу соответствует DRF.MD. Вам потребуется изменить строчки от ICON до GEOMETRY. Любители острых компьютерных ошушений могут попробовать и отредактировать некоторые характеристики. После этого вернните отредактированный файл DR2DIP.MD в игру и вы обнаружите новую графику ВАШЕГО наемного драгуна. Как вставлять файлы в игру, читайте дальше.

4. Как добавлять юниты:

Это уже продвинутый уровень МОДа. Сначала надо продумать что вы хотите добавить к какой нации вы хотите добавить юнит и каком виде (доступность юнита, уровни апгрейдов и т.д.). Тут появляется дополнительный шаг который вам также необходимо сделать. Поскольку вы вводите новые файлы вам необходимо помнить что новые MD-файлы должны быть приведены в файле NMLIST.TXT и его описании данном в TEXT\MDLIST.TXT. Теперь переходите к NDS-файлу нации к которой вы собираетесь добавлять новый юнит. К этому процессу надо относиться как к рождению ребенка в вашей семье. Вы должны решить каким будет его имя, где он будет рождаться, какое положение он займет в семье, а так же его потенциальная роль когда он вырастет. Имя указывается в секции  [MEMBERS]. Место рождения в [FIXED_PRODUCE]. Доступность в начале игры в [ENABLED] и так далее по всем разделам NDS-файла. После редактирования верните эти файлы в игру и (если все зделано правильно) вы должны обнаружить в игре свой новый юнит.

5. Как вернуть отредактированные файлы в игру:

Простейший способ — использовать Cossacks Mod Menager который я разработал. Все, что вам нужно — это сгенерировать GSC-файл с отредактированными вами файлами используя GSC File Utility, но назвать ваш файл YOURNAME.MODS (замените YOURNAME на ТО-ЧТО-ВАМ-НРАВИТСЯ). Затем скопируйте файл в директорию Cossacks и выйдите из Cossacks Mod Manager. С другой стороны, вы можете использовать традиционный путь создавая новый patch0*.gs1 или mods01.gs1 (если уже инсталлирован MOD1) затем копировать это добро в директорий Cossacks. Если вы поступаете так, не забудьте сохранить оригинальные файлы. При использовании patch0*.gs1 или mods01.gs1 соблюдайте следующие правила. Движок Казаков ищет файлы с характеристиками юнитов сначала в patch0*.gs1. Эти значения имеют более высокий приоритет, чем в ALL.GSC. Конечно если характеристики юнита не найдены в PATCH0*.GS1 движек возьмет эти значения из ALL.GSC. Если соответствующие значения не будут найдены в одном из NDS файлов игршка рухнет. Это правило слегка изменяется если установлен MOD1. Вначале просматривается MODS01.GS1 и MODS.GS1, затем — PATCH02.GS1, и в наконце — ALL.GSC. GS1 и GSC файлы под другими именами просто игнорируются движком. Если у вас только ЕВ также игнорируются MODS01.GS1 и MODS.GS1.


 

   
Материал взят с сайта.

Эта статья предназначена для тех, кто хочет попробовать свои силы в создании модов для игры «Казаки». Вы узнаете о программном обеспечении, которое необходимо использовать, а также о базовых принципах создания модификаций.

Казаки — популярная стратегическая игра, которую можно улучшить, создав свой собственный мод. Что такое мод? Это изменение игры, которое добавляет новые карты, юниты или изменяет игровой процесс. Создание собственного мода для Казаков может занять значительно время, но результат может быть впечатляющим.

Первым шагом является установка двух программ: С++ и фреймворка Microsoft .NET. Как только они установлены, следует скачать исходный код для игры. Исходный код нужен для того, чтобы работать с ним, добавлять новые функции и изменять существующие.

Вторым шагом является настройка среды разработки. Для этого необходимо установить Visual Studio, среду разработки для C++. Затем следует открыть исходный код игры в Visual Studio и начать работу с ним.

Третьим шагом является изменение кода игры. Чтобы создать новые элементы, такие как карты, юниты или здания, необходимо изменить существующие файлы или добавить новые. Однако необходимо помнить, что изменение кода игры может привести к ошибкам, поэтому перед внесением изменений рекомендуется создать резервную копию.

Четвертым шагом является использование инструментов для создания графики и звука. Если вы хотите добавить новые текстуры, звуковые эффекты или модели, то вам понадобится специальное программное обеспечение, например, 3D Max или Photoshop.

Пятый шаг — тестирование мода. После того, как все изменения были внесены, нужно протестировать мод, чтобы убедиться, что он работает правильно. Разработчики могут использовать внутриигровые инструменты для тестирования мода.

Шестой и последний шаг — публикация мода. Если вам удалось создать уникальный и интересный мод, то он заслуживает публикации. Игроки по всему миру будут рады использовать вашу модификацию и наслаждаться игрой в «Казаки» в новом формате.

В заключение, создание модов для «Казаков» может быть очень интересным и развлекательным занятием. Следуйте описанным шагам и получите собственный необычный результат. Будьте готовы к новым вызовам и изменениям в своей любимой игре!

.

Утилиты для создания МОДа к Казакам

GSC File Utility v.1.11 
Прога для разворачивания/создания файлов *.GSC

COMDLG32.DLL    COMCTL32.DLL

COMCTL32.DLL и COMDLG32.DLL нужны если вываливается ошибка при запуске GSC File Utility v.1.11. Смотря какая ошибка всплывёт :)

Разверните и положите его в системную папку (для 9х в Windows\System; для NT в Windows\System32)

Mod Manager
 Эту прога очень удобна для запуска модификаций к Казакам

MD Editor (Rodak)
простенькая программа для редактирования MD файлов в Казаках. Пока не совершенна, поэтому будет совершенствоваться

Сайт создателя

Мои попытки вставки новой графики в игру Казаки

1 новая нация в ней 2 замены графики юнитов (медик и пушка)

Для включения мода используйте Mod Manager

При появлении ошибки нажимайте ОК и Пропустить

 

Модифицирование

Понравилась статья? Поделить с друзьями:
  • Audi a4 2005 2008 руководство по ремонту
  • Стабилизатор zhiyun smooth 4 инструкция на русском
  • Медицинская желчь инструкция по применению для чего применяется взрослым отзывы
  • Демократия как стиль руководства
  • Троксевазин гель инструкция по применению для чего отзывы