02 августа 2005
Обновлено 17.05.2023

Казак нашего времени

Казак нашего времени - изображение обложка

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

Неприятели уже готовятся добивать остатки наших войск в ближнем бою. Вот уже кто-то из русских солдат падает наземь, сраженный штыками соперника. Но вдруг откуда ни возьмись сквозь дымовую завесу к нашей армии прорывается отряд-подкрепление, состоящий из… снайперов, пулеметчиков и солдат с ракетницами! Они сразу же вступают в бой. Первые мигом “снимают” вражеских офицеров — их подчиненные в панике. Ракеты летят одна за другой и стирают с лица земли целые отряды противника. Пулеметные очереди добивают выживших.

Французские солдаты вынуждены спасаться бегством. Появляются на поле боя и медики, приводящие в чувство раненых. Нет, это не какой-нибудь Command & Conquer. Это новый мод для “ Казаков 2 ”, который мы сегодня создадим.

Инструктаж

Для реализации намеченного замысла откройте каталог с игрой. Из всего его содержимого нас в первую очередь интересует директория \ Data , а точнее находящийся в ней файл weapon.nds (несет в себе параметры оружия, которым наделены юниты) и подкаталоги \Text (содержит файлы с текстами игровых надписей и сообщений) и \UnitsMD (здесь хранятся файлы с основными характеристиками боевых единиц).

Остановимся подробнее на последнем. Все находящиеся в нем файлы имеют расширение .md и могут быть поделены на несколько видов. В большинстве случаев это деление основано на национальной принадлежности юнита, которому посвящен файл. Приставка Aus в его имени свидетельствует о том, что он соответствует австрийским войскам, Egp — египетским, Eng — британским, Frn — французским, Pru — прусским, Rus — русским, Tur — турецким. После одного из этих префиксов следует сокращенное наименование юнита. Однако по нему сложно определить, что же это за воин.

В этом вам поможет файл mdlist.txt из директории \Data\Text. Его можно условно поделить на две части. Первая несет в себе строки вида: X\Y.MD.HINT {…}{…}Z{…}{…}\A (на месте многоточий стоят буквы и цифры, которые не представляют для нас интереса), где X — каталог с .md -файлом, Y — имя последнего, Z — название юнита, которое вы видите при наведении курсора мыши на кнопку для найма воина, A — подсказка, появляющаяся рядом с наименованием юнита. Введя имя .md -файла в строке поиска текстового редактора, вы поймете по значению Z, какой боевой единице соответствует файл.

Во второй части файла mdlist.txt вы найдете строчки, схожие по структуре с теми, что мы разобрали чуть выше. Однако здесь имеются только элементы X , Y и Z , причем Z означает наименование юнита, которое отображается в левой нижней части экрана при выборе его кликом мыши.

Машина времени

Теперь немного о структуре файла weapon.nds. Нам нужен первый и самый большой его раздел (или, по-другому, блок), озаглавленный как MEMBERS (имена блоков заключаются в квадратные скобки). В нем имеется девять столбцов, семь из них могут быть нам полезны. Первый хранит в себе названия оружия (чтобы понять, каким оружием пользуется юнит, загляните в значение параметра WEAPON из файла weapon.nds ). Второй столбец отвечает за анимацию оружия, третий — за силу атаки, четвертый — за радиус ее действия, шестой — за тип гравитации, восьмой — за быстроту атаки, девятый — за число циклов в ней.

Начнем с добавления в игру юнитов из несколько более поздней эпохи. Оригинальности и полезности игроку им уж точно не занимать. Кроме того, эти бойцы как нельзя лучше вписываются в концепцию современного мода. Иными словами, с ними действие игры пусть и немного, но все же приблизится к нашему времени. Итак, встречайте.

Пулеметчик

Первый новичок — пулеметчик — получается из мушкетера (в австрийской и египетской вариациях — фузилера и янычара соответственно) посредством корректировки ряда параметров. Этому юниту соответствуют файлы AusMus.md , EgpMus.md , EngMus.md , PruMus.md и RusMus.md. В каждом из них (или, если вас интересуют только определенные нации, только в отводящихся им файлах) вы должны произвести следующие преобразования.

Первым делом увеличьте вдвое значение атрибута DAMAGE 1 (отвечает за урон от огнестрельной атаки). За параметром ATTACK_PAUSE (пауза между двумя огнестрельными атаками) закрепите число 50 , ведь наш герой как-никак вооружен пулеметом. После этого оружие юнита существенно прибавит в скорострельности.

Обязательно поднимите стоимость боевой единицы, чтобы в игре не намечалось явного дисбаланса из-за введения в нее сильной и в то же время дешевой боевой единицы. В этом вам поможет характеристика PRICE , которой вы должны придать значение 2 FOOD 20 IRON 5. Первый его компонент (2) обозначает количество разных ресурсов, которое требуется для найма юнита, второй (FOOD) называет первый из этих ресурсов, третий (20) — нужное количество этого ресурса, четвертый (IRON) — второй ресурс, пятый (5) — требуемое количество второго ресурса. Здешние наименования ресурсов выглядят следующим образом: FOOD — еда, IRON — железо, GOLD — золото, COAL — уголь, WOOD — дерево. Точно таким же способом задается значение параметра RASTRATA_NA_VISTREL 1 (определяет, сколько и какие ресурсы расходуются при совершении юнитом атаки), которое в случае с пулеметчиком должно выглядеть так: 1 IRON 1.

Кроме того, необходимо немного продлить процесс тренировки юнита, так как он стал значительно сильнее. Добавьте 10 к числу, соответствующему характеристике BUILDSTAGES , и цель будет достигнута.

Теперь улучшим оружие новоиспеченного пулеметчика. Найдите в файле weapon.nds строку, начинающуюся с сочетания SHOTFOGSTARTPISTOLSLABII. В предпоследний ее столбец внесите число 2 , а в последний — 10. В результате пули станут летать значительно быстрее, а сам солдат будет стрелять очередью из 10 выстрелов.

Переименуем юнит и перепишем текст, всплывающей при клике на него подсказки. Для этого найдите в файле mdlist.txt все строки со следующим текстом: MUS.MD.HINT. Напишите в них на месте компонента Z (см. выше) слово “Пулеметчик” (то же самое сделайте со строчками, содержащими это же сочетание, но без “.HINT”), а на месте A — “Сильная огнестрельная атака, вооружен пулеметом” (без кавычек в обоих случаях). При желании вы можете прописать и свой текст.

Пулеметчик готов к бою. Это универсальный юнит: он силен как в ближнем бою, так и в бою на дальней дистанции.

Снайпер

Современная модификация, пожалуй, была бы неполной, если бы в ней не было снайпера. Последний займет место егеря, который наиболее схож с ним по своим боевым характеристикам. Напомню, что егерю выделены файлы FRNEGRNG.MD , ENGEGR.MD , PRUEGR.MD , AUSEGR.MD , RUSEGR.MD и EGPEGR.MD. В них вам нужно скорректировать ряд атрибутов.

Значения параметров DAMAGE 1 и ATTACK_RADIUS 1 (радиус атаки — минимальный и через пробел максимальный) следует увеличить соответственно до 250 и “ 0 2000 ” (без кавычек). После этого пуля, пущенная из винтовки юнита, будет убивать среднестатистического оппонента с одного-двух попаданий и сможет лететь на значительно большие расстояния. Здоровье снайпера ( LIFE ) следует установить на отметку 90 , а скорость тренировки ( BUILDSTAGES ) — на 80. Далее определите стоимость найма юнита ( PRICE ) как PRICE 2 FOOD 120 IRON 40 , а затраты на выстрел ( RASTRATA_NA_VISTREL 1 ) — как 1 IRON 1. Важно также повысить зоркость бойца ( VISION ) до 10 и удлинить продолжительность перезарядки ( ATTACK_PAUSE 1 ) до 1800.

Кроме того, нужно убрать у снайпера способность атаковать здания — все-таки пуля снайперской винтовки не должна причинять сколько-нибудь значимого ущерба броне укреплений, пусть и наполеоновских времен. Для этого пропишите в характеристике CANKILL значение “ 1 BODY ”.

Теперь переделаем винтовку юнита, обратившись к файлу weapon.nds. В строке, начинающейся с сочетания SHOTFOGSTARTPISTOLSILNII , поставьте число 5 в предпоследний столбец. Это существенно увеличит скорость полета пули, пущенной из снайперской винтовки.

Последняя стадия превращения егеря в снайпера — переименование юнита. Это делается точно так же, как и в случае с солдатом-ракетчиком (см. одноименную главу), за исключением того, что вместо Z должен стоять текст “Снайпер”, а вместо A — “Сильная дальнобойная огнестрельная атака”.

В итоге мы получили отменного юнита. Единственные его минусы — длительная перезарядка и невозможность разрушить стены — компенсируются зоркостью и способностью отстреливать врагов на почтительном расстоянии.

Ракетометчик

Следующий современный вид войск, который мы встроим в игру, — это солдаты с ракетницей. Получить подобный юнит проще всего из воинов-стрелков, например из мушкетера или егеря (у англичан он зовется горцем, у египтян — туарегом). Остановимся на последнем варианте, чтобы не пришлось исключать из игры добавленного чуть ранее пулеметчика. Егерь представлен следующими файлами: FRNEGRNG.MD , ENGEGR.MD , PRUEGR.MD , AUSEGR.MD , RUSEGR.MD , EGPEGR.MD. В них вам нужно подправить значения ряда атрибутов.

Сначала перевооружите солдата, присвоив атрибуту WEAPON 1 значение ROCKETKON. К слову сказать, ракеты, которыми стреляет новый ствол юнита, являются секретным орудием убийства. В игре они есть, но ни одна боевая единица их не использует. Зато им нашлось место в нашем моде.

Следующий шаг на пути создания нового солдата — увеличение скорости перезарядки его оружия. Добиться этого можно приданием показателю ATTACK_PAUSE 1 значения 2000. Также замените число, соответствующее атрибуту DAMAGE 1 , на 450. После этого снизьте скорость передвижения солдата (параметр BRANDOMSPEED ) до 12 , а быстроту поворота туловища ( ROTATE ) — до 14 , ведь наш новобранец все-таки вооружен тяжелым оружием.

Настало время подобрать для сильного солдата подходящую цену. 2 FOOD 150 IRON 50 в значении параметра PRICE — как раз то, что нужно. Что касается атрибута RASTRATA_NA_VISTREL 1 , то для него оптимальным вариантом, пожалуй, является сочетание 1 IRON 2.

Необязательным, но крайне желательным этапом при добавлении в игру этого юнита является правка файла weapon.nds. Это поможет вам сделать ракетницу по-настоящему грозным оружием. Отыщите строку, где первый столбец содержит сочетание ROCKETKON. В ее третью колонку вставьте значение 450 , в четвертую — 40 , а в предпоследнюю — 30.

Не забудьте присвоить бойцу подходящее имя. Делается это так же, как и в случае с пулеметчиком, только теперь вам нужно вносить изменения в строки с текстом EGR.MD.HINT (как вариант — EGRNG.MD.HINT ) и просто EGR.MD (а также EGRNG.MD ). На месте Z в них должно оказаться словосочетание “Солдат с ракетницей”, на месте A (это относится исключительно к строкам со словом “HINT”) — “Сильная огнестрельная атака, стреляет ракетами”. Теперь вы можете использовать в бою этого юнита. Правда, он, прямо скажем, недешевый и несколько медлительный. Зато как нельзя лучше подходит как для массового уничтожения противника, так и для осады вражеских укреплений.

Подрывник

Еще один современный нам юнит, который мы вставим в игру, — это подрывник. Мы заменим им гренадера (он тоже взрывает здания, но не так эффективно). Нам понадобятся файлы FRNGRE.MD , ENGGRE.MD , PRUGR.MD , AUSGRE.MD , RUSGRE.MD.

Откройте поочередно каждый из этих файлов и произведите в них следующие изменения. В значение атрибута WEAPON 2 впишите сочетание NUCL2. В результате юнит научится производить сильные взрывы. Параметру ATTACK_RADIUS 2 придайте значение “ 0 5 ” (без кавычек), чтобы подрывник взрывался вместе с гранатами, а не кидал их в соперников. Также поднимите стоимость найма подрывника ( PRICE ) до отметки 3 FOOD 80 IRON 25 GOLD 10.

Далее обратитесь к файлу weapon.nds. В строке, начинающейся со столбца с сочетанием NUCL2 , вставьте в четвертую колонку число 100. Тем самым вы значительно увеличите радиус взрыва, который раздается при атаке этим юнитом. Наконец, переименуйте бойца в подрывника-смертника уже знакомым вам способом (напомню, что для этого вам нужно подкорректировать текст в строках файла mdlist.txt , которые несут в себе имена файлов, посвященных гренадеру). Итак, мы создали юнит, способный производить невероятные по силе взрывы. Однако чтобы сделать это, ему требуется подойти вплотную к объекту атаки, что не так-то просто.

Вести с фронтов

Мы встроили в игру несколько оригинальных воинов. С ними геймплей станет разнообразнее и интереснее. Кроме того, эти юниты (в особенности пулеметчик, снайпер, солдат с ракетницей и подрывник-смертник) помогут вам сделать современную модификацию.

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

При создании новых юнитов обязательно следите за тем, чтобы они не испортили игровой баланс. Например, хорошо вооруженный боец должен иметь какие-то недостатки, будь то слабое здоровье, слабая рукопашная атака, высокая цена, продолжительный процесс подготовки или что-то еще. Будет баланс — будет и играбельность.

Искусство врачевания

Если вас не особо привлекает перспектива создания современной модификации, предлагаю “слепить”, что называется, юнит на все времена. Речь идет о медике. В принципе, целительные функции в игре возложены на священника (он присутствует только у трех наций: французов, турок и россиян), но это слишком уж нереалистично. Лучше пусть будет отдельный юнит, специализирующийся только на лечении раненых, а священник сосредоточится на поднятии боевого духа солдат.

Переквалифицируем знаменосца в медика. Первый, в общем-то, и не является очень уж нужным игроку юнитом, ведь у него в игре есть “старший брат” — конный знаменосец, который исполняет те же функции, но при этом значительно быстрее передвигается.

Чтобы осуществить это превращение, вам придется “перепотрошить” файлы FRNFLG.MD , ENGFLG , PRUFLG , AUSFLG , RUSFLG. В каждом из них произведите следующие изменения. Сначала отыщите строку WEAPONKIND 0 MECH и замените в ней слово MECH на MEDIK. Это позволит юниту получить навыки лечения своих сослуживцев. К слову сказать, этим же действием вы можете обучить искусству врачевания любой род войск. Далее исправьте значения показателей PRICE и BUILDSTAGES соответственно на 2 FOOD 150 GOLD 450 и 150.

Также обратите внимание на правку названия юнита и связанной с ним подсказки. В строчках, содержащих сочетания FLGNG.MD и FLGNG.MD.HINT , укажите вместо компонента Z слово “Медик”, а вместо A (в строках со словом “HINT”) — словосочетание “Лечит солдат”.

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

Попробуем избавить священника от функций медика, заменив их рукопашной атакой. Для этого в файлах FRNPOP.MD , TURPOP.MD и RUSPOP.MD исправьте значение характеристики WEAPONKIND 0 на MECH. Также уменьшите радиус атаки ( ATTACK_RADIUS 0 ) до комбинации “ 0 80 ”. Урон ( DAMAGE 0 ) следует выставить на отметку 40. Характеристике BUILDSTAGES присвойте значение 800. Наконец, придайте параметрам LIFE (здоровье) и PRICE (цена) соответственно значения 150 и 2 FOOD 100 GOLD 200. Поп стал живучее и дешевле, что вполне справедливо ввиду потери им целительных способностей.

Комментарии
Чтобы оставить комментарий, Войдите или Зарегистрируйтесь