В тылу врага: Руководство по созданию модов

Итак, Руководство по созданию модов в игре «В тылу врага Лис пустыни»
» Часть 1:
ОГЛАВЛЕНИЕ:
  1. Создание мода, общие ведомости
  2. Добавление техники в мод.
  3. Робота с .MDL файлами.
  4. Создание орудия.
  5. Настройки стрелкового оружия и добавление его в мод.
  6. Робота с .DEF файлами.
Итак, начнем небольшой курс по созданию модов для игры «В тылу врага Лис пустыни». Данный материал предназначается для начинающих, тех, кто только осваивает данный процесс.
  1. Часто я вижу вопросы, связанные с созданием модов в игре ЛП (лис пустыни). Я попытаюсь детально рассказать, как сделать мод, надеюсь, вам будет понятно и интересно.
Для начала вам нужно придумать название для вашего будущего мода, я не буду утруждаться и назову свой мод «SERIY mod», дальше нам нужно создать папку с названием нашего мода, не забудьте установить файл менеджер, так как создание мода в проводнике крайне утомительный процесс. В созданной нами папке придётся создать еще несколько папок, в которых будут содержаться ресурсы мода.
В созданной нами папке создайте папку resource, в ней будут храниться все ресурсы нашего мода, в папке resource создайте папки entity, set, map.
Где entity – папка для добавления техники.
Set- папка для добавления новых видов пехоты, снарядов, орудий и ручного оружия, то есть в етой папке хранятся мелкие настройки.
Map- здесь хранятся карты для сетевой и одиночной игры.
  1. Итак, переходим непосредственно к созданию мода, то есть заполнению его полезными ресурсами.
Для начала добавим в мод пару танков:
Создаем путь в нашем моде для добавления танка комета
resource\entity\ \-vehicle\tank_medium\
tank_medium – тип танка(в данном случае средний)
также есть tank_heavy – тяжелый(сюда ,если потребуется ,будем добавлять тяжелые танки) и tank_light – папка для добавления в нее легких танков, также есть папки для добавления другой техники, они нам сейчас не нужны, но я в вкратце о них расскажу:
airborne – папка для добавления самолетов
btr – папка для добавления БТРов(234 пума, Ба-11)
car – здесь находятся машины(газики, кюбели)
marine – морской транспорт(корабли, катера)
cannon – здесь находятся пушки
train – здесь поезда, вагоны, вообщем ЖД транспорт.
Далее в созданной нами папке Set создаем папку multiplayer, а в ней создаем папку units, тоесть получается директория. SERIY mod \resource\set\multiplayer\units\
На данном етапе нам надо обратится к ресурсам оригинальной игры
Проходим по направлению:
1С\В тылу врага 2 - Лис Пустыни\4.pat\set\multiplayer\units\
От сюда копируем файли vehicles.set, soldiers.set, tanks_expense.set по аддресу SERIY mod \resource\set\multiplayer\units\ .
tanks_expense.set – в данном файле находится техника которая доступна в режиме ТТ(только танки).
vehicles.set – здесь находится вся техника, которая доступна в игре.
soldiers.set – здесь находится пехота, которая доступна в игре.
Теперь добавляем нашу технику в игру.Я хочу добавить танк Комета.
Открываем файл vehicles.set, Ищем строку в которой прописай любой средний танк(так как комета тоже средний танк), я возьму строку с Т-34
{"t34_1" ("v" c(120) t(all tankm vehicle) s(rus) n(4) g(m2) sc(25) b(ht) i(2) cw(0) cp(0)) {cost 29} {fore -2}} ; tanks only
Где:
"t34_1" – название танка
V – группа в которой танк находится, по другому называется макрос.Собственно, v это и есть специальная группа для танков.Также есть v+, но данный макрос дает возможность не только садить в танк танкистов и настраивать их количество, но добавлять сопровождение танку.
s(rus) – какой стороне конфликта будет доступен данный танк.
n(4) – количество танкистов сидящих в танке.
i(2) – место в группе
b(ht) – группа, определяет в какой вкладке выбора техники того или иного типа в игре будет находится танк.
sc(25) – сколько очков за уничтожение данного танка получит враг.
{cost 29} – цена юнита.
Для начала этого будет достаточно.
Теперь подгоняем нашу комету в список техники.
{"comet" ("v" c(180) t(all tankh vehicle) s(eng) n(4) g(h1) sc(29) b(ht) i(26) m(2) cw(0) cp(0)) {cost 60} {fore -1}} ; tanks only
Вот теперь сохраняем и закрываем файл vehicles.set.
Перейдем к локализации танка.
Создаем папку в самом каталоге с модом и называем ее localization тоесть должно получится SERIY mod\ localization, далее нам снова придеться обратиться к оригинальным файлам игры, переходим по направлению
1С\В тылу врага 2 - Лис Пустыни\localization.pak\
Отсюда копируем в ранее созданную нами папку localization файл desc.lng
Теперь открываем данный только что скопированный файл, ищем строку
}
{"entity", (отвечает за локализацию техники), далее выбираем любое попавшиеся место в списке и пишем там:
{"comet" "A34 Comet"}
Теперь сохраняем файл и закрываем его.
Танк успешно перенесен в мод.
  1. В данном разделе я расскажу, как сделать что бы танк \ машина могла транспортировать пушки.
Для начала найдем интересующий нас танк, то есть тот танк в .MDL файле которого нам нужно прописать возможность транспортировки пушек.
Я возьму комету.
Код отвечающий за возможность транспортировки пушек
}
{bone "link2"
{Matrix34
-1 0 0
0 -1 0
0 0 1
-59.3321 0.0189269 14.7938
}
Искать его необходимо в .MDL файле любой машины ,в которой изначально возможна транспортировка пушек(находится в ресурсах оригинальной игры).
Далее открываем .MDL файл нашего танка и после например
}
{bone "Basis"
{parameters "WheelRadius=0.4;"}
{Orientation
1.0000 0.0000 0.0000
0.0000 -1.0000 0.0000
0.0000 0.0000 1.0000
}
Копируем наш код, получается:
}
{bone "Basis"
{parameters "WheelRadius=0.4;"}
{Orientation
1.0000 0.0000 0.0000
0.0000 -1.0000 0.0000
0.0000 0.0000 1.0000
}
{bone "link2"
{Matrix34
-1 0 0
0 -1 0
0 0 1
-59.3321 0.0189269 14.7938
}
Не забываете, здесь представлен только кусок .MDL файла.
Я просто показал после какого кода наш код нужно(можно) ставить.
После выполнения копирования сохраняем .MDL файл и теперь наш танк может транспортировать пушки.
  1. Создаем директории в папке с нашим модом, что бы получилось
SERIY mod\resource\set\stuff\gun\
Тут будет находится наше орудие
Теперь приступаем непосредственно к созданию орудия.
Я хочу сделать орудие для гаубицы которая бы стреляла 203мм снарядами по навесной траектории.
Вот так я создал орудие стреляющие 203мм снарядами по навесной траектории:
{from "pattern gun" ; "155mm_gpf"
{filling "bullet203"}
{fireSound "gun/howitzer/155mm_gpf"}
{reloadSound "gun_r04"}
{rechargeTime 30}
(mod "mp"
{rechargeTime 30}
)
("heavy_howitzer")
}
Где:
" ; "155mm_gpf" – для какой пушки \танка предназначено данное орудие
{fireSound "gun/howitzer/155mm_gpf"} – звук выстрела
{reloadSound "gun_r04"} – звук перезарядки
{rechargeTime 30} – время перезарядки
Назвал я его 203b4, возьмите за образец орудие из оригинальной игры, и сделайте свое на его основе..
Теперь надо подключить его к пушке, для примера я возьму английскую пушку 155gpf
Создаем путь в нашем моде
SERIY mod \resource\entity\-vehicle\cannon\155gpf
Далее из директории(пути)
1С\В тылу врага 2 - Лис Пустыни\resource\entity\e1.pak\-vehicle\cannon\155gpf\
Копируем файл 155gpf.def(если изменения есть только в одном файле, то можно копировать только его) по созданному нами пути, то есть
SERIY mod \resource\entity\-vehicle\cannon\155gpf , теперь открываем данный файл(155gpf.def) блокнотом и находим в нем строки:
}
{Weaponry
{place "gun"
{weapon "155mm_gpf" filling "bullet155 fg" 1}
{Rotate}
("abm_howitzer")
Далее просто меняем:
{weapon "155mm_gpf" filling "bullet155 fg" 1}
На
{weapon "203b4" filling "bullet203" 1}
Получилось:
{Weaponry
{place "gun"
{weapon "203b4" filling "bullet203" 1}
{Rotate}
("abm_howitzer")
Далее необходимо добавить в инвентарь пушки 203мм снаряды, в 155gpf.def
Находим строки:
}
{extender "inventory"
{box
{item "bullet155 fg" 25}
}
Тут меняем
{item "bullet155 fg" 25}
На
{item "bullet203" 30}
Получается:
{extender "inventory"
{box
{item "bullet203" 30}
}
Теперь сохраняем 155gpf.def и закрываем блокнот. Пушка готова к применению. Помните, данное орудие я сделал всего лишь для образца.
  1. Далее мы добавим пару автоматов в наш мод.
Обратимся в ресурсы оригинальной игры, для того что бы посмотреть в какой папке находится оружие. Сейчас я распишу в каких директориях находятся автоматы, пистолеты, винтовки, гранаты, пулеметы, огнеметы.
1С\В тылу врага 2 - Лис Пустыни\resource\game.pak\set\stuff\flame\ - здесь огнеметы
1С\В тылу врага 2 - Лис Пустыни\resource\game.pak\set\stuff\grenade\ - здесь гранаты
В тылу врага 2 - Лис Пустыни\resource\game.pak\set\stuff\mgun\ - здесь пулеметы
1С\В тылу врага 2 - Лис Пустыни\resource\game.pak\set\stuff\pistol\ - пистолеты
1С\В тылу врага 2 - Лис Пустыни\resource\game.pak\set\stuff\rifle\ - винтовки
1С\В тылу врага 2 - Лис Пустыни\resource\game.pak\set\stuff\smg\ - автоматы
Все оружие для японских войск в патче 1.16.4 находится в файле 4.pat, искать в set\stuff\
Далее создаем в такую директорию в нашем моде:
SERIY mod \resource\set\stuff\ smg – сюда будем копировать файлы автомата.
Из Панцер мода 1.5 с согласия автора переносим файлы стена с глушителем(его файл называется stensilenced) в файлы нашего мода, то есть по направлению:
SERIYmod\resource\set\stuff\smg.
Также нам надо копировать entity автомата в наш мод, в панцер моде 1.5 entity стена находится по направлению
Panzer-mod v1.5 Opposing Fronts\1.pat\entity\-weapon\
Создаем такой путь в нашем моде:
SERIY mod\resource\entity\inventory\-weapon\
И копируем туда из Panzer-mod v1.5 Opposing Fronts\1.pat\entity\-weapon\
Папку stensilenced.
Далее нам надо локализировать автомат. Для этого в ранние перенесенным в ресурсы нашего мода файле desc.lng (он находится в SERIY mod\ localization)
Находим строку:
}
{"weapon" (отвечает за локализацию оружия)
Выбираем место в перечне локализации оружия и вписываем туда:
{"stensilenced" "Sten"}
Теперь автомат локализован, но надо его добавить в инвентарь пехоте.
Создаем в нашем моде путь:
SERIY mod \resource\set\breed\mp\eng\ - сюда мы будем добавлять перевооруженную пехоту, я решил перевооружить английских разведчиков. Теперь из 1С\В тылу врага 2 - Лис Пустыни\2.pat\set\breed\mp\eng\(оригинальные файлы игры)
Копируем в наш мод файл scout.set в наш мод по направлению
SERIY mod \resource\set\breed\mp\eng\
Далее открываем блокнотом перенесенный в наш мод файл scout.set
Его содержание:
{breed
{skin "eng-smg"}
{portrait "eng_smg"}
{nationality eng}
{icon "scouts"}
{icon_priority 2}
{armors
{head helmet2_eng}
}
{perks
{"health" "150%"
}
{"power" "300%"
}
{"vision" mp_specnaz
}
{"stealth"}
{"speed" 1.2}
{"melee" expert
}
{"avoidance" expert
}
{"pistol" expert
}
{"smg" expert
}
{"rifle" basic
}
{"mgun" basic
}
{"rocketlauncher" none}
}
{inventory
{item "de_lisle" filled}
{item "bandage" 5}
{item "dynamite" 2}
{item "ammo rifle" 48}
{item "grenade smoke" 2}
{item "knife_union" 3}
{in_hands 0}
}
}
Где
{skin "eng-smg"} – скин(шкурка, вид юнита)
{portrait "eng_smg"} – его портрет(лицо)
{nationality eng} – национальность
{icon "scouts"} – иконка вызова
{armors
{head helmet2_eng}
} – его броня
{perks
{"health" "150%"
}
{"power" "300%"
}
{"vision" mp_specnaz
}
{"stealth"}
{"speed" 1.2}
{"melee" expert
}
{"avoidance" expert
}
{"pistol" expert
}
{"smg" expert
}
{"rifle" basic
}
{"mgun" basic
}
{"rocketlauncher" none}
} – перки, возможности, характеристики
{inventory
{item "de_lisle" filled}
{item "bandage" 5}
{item "dynamite" 2}
{item "ammo rifle" 48}
{item "grenade smoke" 2}
{item "knife_union" 3}
{in_hands 0} – его инвентарь
}
}
Теперь просто заменяем строку
{item "de_lisle" filled}
На
{item "stensilenced" filled}
Также нам надо теперь добавить ему в инвентарь патроны для автомата, для этого заменяем строку
{item "ammo rifle" 48}
на
{item "ammo smg" 300}
Получилось
{inventory
{item "stensilenced" filled}
{item "bandage" 5}
{item "dynamite" 2}
{item "ammo pistol" 300}
{item "grenade smoke" 2}
{item "knife_union" 3}
{in_hands 0}
}
}
Теперь файл scout.set выглядит так:
{breed
{skin "eng-smg"}
{portrait "eng_smg"}
{nationality eng}
{icon "scouts"}
{icon_priority 2}
{armors
{head helmet2_eng}
}
{perks
{"health" "150%"
}
{"power" "300%"
}
{"vision" mp_specnaz
}
{"stealth"}
{"speed" 1.2}
{"melee" expert
}
{"avoidance" expert
}
{"pistol" expert
}
{"smg" expert
}
{"rifle" basic
}
{"mgun" basic
}
{"rocketlauncher" none}
}
{inventory
{item "stensilenced" filled}
{item "bandage" 5}
{item "dynamite" 2}
{item "ammo pistol" 300}
{item "grenade smoke" 2}
{item "knife_union" 3}
{in_hands 0}
}
}
Теперь английский разведчик будет иметь стен с глушителем.
Теперь я расскажу, как редактировать настройки оружия.
Выберите нужный вам файл с настройками автомата \ винтовки, я возьму все тот же стен с глушителем (stensilenced).
Содержание файла:
{from "pattern smg"
{filling "ammo pistol" 64}
{entity "StenSilenced"}
{spreading
{SpreadRadius 1}
{SpreadPower 2}
}
{recoveryTime 0.12} ; s
{healthDamage 100}
{fireSound "pistol/silent/welrod"}
}
Где:
{filling "ammo pistol" 64} – тип патронов которіе будут применятся оружием.
{recoveryTime 0.12} ; s – время перезарядки
{healthDamage 100} – наносимый им урон
{fireSound "pistol/silent/welrod"}- звук выстрела
}
Меняйте данные настройки как Вам захочется и потом сохраняйте данный файл.
  1. Теперь я расскажу о работе с .DEF файлами(а именно о работе с DEF файлами техники).
Откроем .DEF файл уже перенесенной в наш мод кометы , вот его содержание:
{entity
(include "/properties/tank.ext")
(include "/properties/shadow/tank.inc" scale(1.3))
(include "/properties/selection/vehicle.inc" scale(1.2))
{props "medium"}
{volume "body1"
{component "body"}
{tags "body"}
}
{volume "body2"
{component "body"}
{tags "body"}
}
{volume "turret"
{component "turret"}
}
("armor_medium" turret(90 70 25 20) body(80 40 35 20))
("armor_engine" t(10 32 32 20))
("crew_4_human")
{extender "enumerator"}
{boarder
{anm "left"
{forward {begin "board_cromwell"}}
{reverse {end "emit_tank_1_hold"}}
}
{anm "right"
{forward {begin "board_cromwell"}}
{reverse {end "emit_tank_1_hold"}}
}
{anm "armor"
{forward {begin "board_MiddleArmor"} {end "seat_armor"}}
{reverse {end "emit_tank_1"}}
}
}
("seat_human" place(seat1) bone(seat01) door(emit3) animation(armor))
("seat_human" place(seat2) bone(seat02) door(emit4) animation(armor))
("seat_human" place(seat3) bone(seat03) door(emit5) animation(armor))
("seat_human" place(seat4) bone(seat04) door(emit6) animation(armor))
{extender "inventory"
{box
{item "ammo mgun" 3400}
{item "ammo bullet76 ap" 41}
{item "ammo bullet76 fg" 36}
}
}
{Weaponry
("restore_ik_time")
{place "gun"
{RestoreIKAfterAim}
{weapon "76mm_mk4" filling "ammo bullet76 ap" 1}
("abm_22_sharp")
}
{place "mgun1"
{type "mgun_hull"}
{weapon "besa" filled}
{foresight "foresight4"}
{gunner "driver"}
{charger "driver"}
{basic}
}
{place "mgun"
{type "mgun_coaxial"}
{weapon "besa" filled}
{basic}
}
}
{mass 31000}
{Chassis
("tank_trace" fx("tracks_mid") step(0.53) len(0.32))
{Locomotion ("locomotion")
{MaxSpeed 35}
{maxSpeedAtMaxTurn 14}
{StartTime 9}
{BrakeTime 1.5}
{StopTime 2.2}
{TurnRadius 13}
{TurnTime 5.9}
{TurnStart 3}
{TurnStop 0.5}
{Gears 0.1 0.2 0.3 0.5 1.0}
{RearGears 0.2 0.5}
}
{FuelBag
{volume 454}
{rate 18.16}
{remain 454}
{fuel "fuel"}
}
}
{Extension "comet.mdl"}
{texmod "2"}
{bone "gun_rot"
{speed 0.0035}
}
{bone "turret"
{speed 0.0055}
}
}
Рассмотрим нужные нам строки этого файла:
("armor_medium" turret(90 70 25 20) body(80 40 35 20)) – броня
Где:
turret(90 70 25 20) – броня башни
body(80 40 35 20)) – броня корпуса
{extender "inventory" - инвентарь
{box
{item "ammo mgun" 3400} – пулеметные патроны
{item "ammo bullet76 ap" 41} – бронебойные снаряды
{item "ammo bullet76 fg" 36 – фугасные снаряды
}
}
{Weaponry – орудие танка
("restore_ik_time")
{place "gun"
{RestoreIKAfterAim}
{weapon "76mm_mk4" filling "ammo bullet76 ap" 1}
("abm_22_sharp")
}
Где:
weapon "76mm_mk4" – название орудия(какое орудие стоит на танке)
" filling "ammo bullet76 ap" 1 - какой тип боеприпаса будет заряжен в орудие
}
{place "mgun1" – расположение и тип пулеметов
{type "mgun_hull"}
{weapon "besa" filled}
{foresight "foresight4"}
{gunner "driver"}
{charger "driver"}
{basic}
}
{place "mgun"
{type "mgun_coaxial"}
{weapon "besa" filled}
{basic}
}
}
Где:
{type "mgun_hull"} – курсовой пулемет.
{weapon "besa" filled} – тип пулемета, который будет стоять(применятся, стрелять) в танке.
{gunner "driver"} – кто стрелок данного пулемета.
{type "mgun_coaxial"} – пулемет спаренный с пушкой, находится в башне.
{mass 31000} – масса и ходовые настройки танка
{Chassis
("tank_trace" fx("tracks_mid") step(0.53) len(0.32))
{Locomotion ("locomotion")
{MaxSpeed 35}
{maxSpeedAtMaxTurn 14}
{StartTime 9}
{BrakeTime 1.5}
{StopTime 2.2}
{TurnRadius 13}
{TurnTime 5.9}
{TurnStart 3}
{TurnStop 0.5}
{Gears 0.1 0.2 0.3 0.5 1.0}
{RearGears 0.2 0.5}
}
Где:
{mass 31000} – масса танка.
{MaxSpeed 35} – максимальная скорость.
{StartTime 9} – время, за которое танка разгонится до максимальной скорости.
{BrakeTime 1.5} – время полного торможения.
{TurnRadius 13} – радиус поворота.
{TurnTime 5.9} – максимальное время поворота танка.
{TurnStart 3} – время, за которое танка начнет поворот.
{TurnStop 0.5} – время, за которое танк остановится в повороте.
}
{FuelBag – топливный бак
{volume 454}
{rate 18.16}
{remain 454}
{fuel "fuel"}
}
}
{Extension "comet.mdl"} – ссылка на модель(шкурку танка) и время подъема и опускания орудия вверх, вниз, и скорость поворота башни.
{texmod "2"}
{bone "gun_rot"
{speed 0.0035}
}
{bone "turret"
{speed 0.0055}
}
}
Где:
{bone "gun_rot"
{speed 0.0035} – время подъема и опускания орудия вверх, вниз.
}
{bone "turret"
{speed 0.0055} – скорость поворота башни.
}
}
Теперь можете менять настройки любого .DEF файла по данным пунктам, не забудьте сохранять изменения в файлах.
» Часть 2:
ОГЛАВЛЕНИЕ:
  1. Добавление новых типов пехоты в мод.
  2. Создание сопровождения технике.
  3. Настройка фугасных снарядов.
  1. Так, как я забыл написать об этом в предыдущей версии моего FAQ, то сделаю это сейчас.
Как и в первой части данного руководства создаем папку с модом и деррикторию для добавления новых типов пехоты(см. часть 1) или просто добавляем нужные нам файлы в уже существующий мод - SERIY mod. Я выбираю второй вариант, для начала нужно обратиться в оригинальные ресурсы игры по направлению:
В тылу врага 2 - Лис Пустыни\2.pat\set\breed\mp\
Там будут несколько папок:
Eng
Ger
Jap
Rus
Usa
Я хочу довить новый тип пехоты, а именно партизана для русских, по этому захожу по направлению:
В тылу врага 2 - Лис Пустыни\2.pat\set\breed\mp\Rus
От туда в моем мод по направлению:
SERIY mod\resource\set\breed\mp\
Создаем папку «Rus», что бы получилось:
SERIY mod\resource\set\ breed\mp\Rus
Далее из дерриктории
В тылу врага 2 - Лис Пустыни\2.pat\set\breed\mp\Rus
Переносим первую понравившийся файл, я переношу rifle.set
В наш мод по направлению:
SERIY mod\resource\set\breed\mp\Rus
Далее открываем этот файл, вот его содержимое:
{breed
{skin "rus-smguner"}
{portrait "rus_smg1"}
{nationality rus}
{icon "riflemans"}
{icon_priority 0}
{armors
{head "fieldcap_rus"}
}
{perks
{"health" "150%"
}
{"power" "100%"
}
{"vision" "mp_soldier"
}
{"pistol" "basic"
}
{"speed" 0.9
}
{"smg" "none"
}
{"mgun" "none"
}
{"rifle" "basic"
}
{"rocketlauncher" none}
{"melee" advanced}
}
{inventory
{item "mosin" filled}
{item "ammo rifle" 50}
{item "bandage" 4}
{item "grenade f1" 1}
{item "sandbag_kit" 1}
{in_hands 0}
}
}
Где:
{skin "rus-smguner"} – общий вид(шкурка) солдата.
{portrait "rus_smg1"} – его портрет в левом нижнем углу экрана.
{nationality rus} – национальность.
{icon "riflemans"} – иконка юнита в столбике подконтрольных на данный момент игроку юнитов.
{armors – броня, защита, которая присутствует на теле солдата
{head "fieldcap_rus"} – каска, которая будет надета на голову юниту.
{perks – перки(возможности) юнита.
{"health" "150%" - здоровье
}
{"power" "100%" – энергия бега
}
{"vision" "mp_soldier"
}
{"pistol" "basic" – уровень владение пистолетом.
}
{"speed" 0.9 – максимальная скорость бега.
}
{"smg" "none" – уровень владения автоматом, пистолетом-пулеметом.
}
{"mgun" "none" – уровень владения пулеметом.
}
{"rifle" "basic" – уровень владения винтовкой.
}
{"rocketlauncher" none} – уровень владения гранатометом.
{"melee" advanced}
}
{inventory – инвентарь юнита
{item "mosin" filled} – винтовка мосина(1 шт.)
{item "ammo rifle" 50} – патроны к винтовке мосина(50 шт.)
{item "bandage" 4} – бинты(4 шт.)
{item "grenade f1" 1} – гранаты ф-1(1 шт.)
{item "sandbag_kit" 1} – инструмент для создания собственного окопа для стрельбы лежа
{in_hands 0} – код отвечающий за оружие в руках во время вызова юнита.
}
}
Теперь приступаем к редактированию этого файла стрелка с целью переделать его в файл партизана. Вот что получилось у меня:
{breed
{skin "rus_partizan"}
{portrait "rus_partizan"}
{nationality rus}
{icon "riflemans"}
{icon_priority 0}
{perks
{armors
{head warden_furcap}
}
{"health" "250%"
}
{"power" "100%"
}
{"vision" "mp_soldier"
}
{"pistol" "basic"
}
{"speed" 0.9
}
{"smg" "basic"
}
{"mgun" "basic"
}
{"rifle" "basic"
}
{"rocketlauncher" basic}
{"melee" advanced}
}
{inventory
{item "shotgun" filled}
{item "ammo ptr" 60}
{item "warden_furcap" }
{item "bandage" 4}
{item "grenade molotov_coctail" 2}
{item "grenade f1" 3}
{item "dynamite" }
{in_hands 0}
}
}
Инвентарь:
{inventory
{item "shotgun" filled} – дробовик(1 шт.)
{item "ammo ptr" 60}- патроны 12.7 птр, используються в обрезе охотничьего ружья(сделано разработчиками втв)(60 шт.)
{item "warden_furcap" } – шапка-ушанка(1 шт.)
{item "bandage" 4} – Бинт(4 шт.)
{item "grenade molotov_coctail" 2} – коктейль Молотова(2 шт.)
{item "grenade f1" 3} – гранаты ф-1(3 шт.)
{item "dynamite" } – динамит(1 шт.)
{in_hands 0}
}
}
Теперь сохраняем изменения в файле и меняем его название на «Partizan.set»
Теперь нам надо внести этого солдата в доступные для вызова юниты в мультиплеер и локализировать его.
Открываем:
В тылу врага 2 - Лис Пустыни\2.pat\set\multiplayer\units\
Можно так же:
В тылу врага 2 - Лис Пустыни\4.pat\set\multiplayer\units\
И выбираем файл «soldiers.set», далее копируем его в наш мод по направлению:
SERIY mod \resource\set\multiplayer\units\
Терерь приступаем к его редактированию, всю начинку данного файла я выложить не могу, по этому покажу всего несколько строк для примера:
(define "kamikaze" – название юнита
{tags "kamikaze %side spec infantry man"} – специализация(в данном случае специальные войска)
{score 4} - 0чки за уничтожение данного юнита врагом
{cp 3} - это CP, сколько CP юнит занимает от общего количества доступных средств.
{order 130} – приоритет. У кого чисто больше – иконка того выше.
{basic}
{breed}
{cost 2} – цена
Теперь делаем на основе этого кода новый тип пехоты так, как нам это нужно:
(define "Partizan"
{tags "partizan %side infantry man"}
{score 16}
{cp 9}
{order 140}
{cw 0.5}
{basic}
{breed}
{cost 2}
)
{"mp/rus/Partizan" ("Partizan" side(rus))}
Где:
{cw 0.5} - это вес на флаге, чем больше тем быстрее данный юнит захватывает флаг.
Сохраняем изменения в файле и новый тип пехоты готов, он это еще не все, теперь нужно подключить его к мультиплееру. Для этого скопируем из:
В тылу врага 2 - Лис Пустыни\2.pat\set\multiplayer\units\
В:
SERIY mod \resource\set\multiplayer\units\
Файл «squads.set»
В открываем его и ищем вот такой текст:
("squad_with3types" side(rus) name(riflemans) c(30) g(reg_2) c1(rifle:3) c2(rifle2:2) c3(rifle3:1) b(squad1) t(all infan_squad riflemans) cost(7) f(1))
("squad_with3types" side(ger) name(riflemans) c(30) g(reg_2) c1(rifle:3) c2(rifle2:2) c3(rifle3:1) b(squad1) t(all infan_squad riflemans) cost(7) f(1))
("squad_with3types" side(usa) name(riflemans) c(30) g(reg_2) c1(rifle:3) c2(rifle2:2) c3(rifle3:1) b(squad1) t(all infan_squad riflemans) cost(7) f(1))
("squad_with3types" side(eng) name(riflemans) c(30) g(reg_2) c1(rifle:3) c2(rifle2:2) c3(rifle3:1) b(squad1) t(all infan_squad riflemans) cost(7) f(1))
("squad_with3types" side(jap) name(riflemans) c(30) g(reg_2) c1(rifle:3) c2(rifle2:2) c3(rifle3:1) b(squad1) t(all infan_squad riflemans) cost(7) f(1))
("squad_with3types" side(rus) name(smgs) c(30) g(reg_1) c1(smg:3) c2(smg2:2) c3(smg3:1) b(squad1) t(all infan_squad smgs) cost(8) f(1))
("squad_with3types" side(ger) name(smgs) c(30) g(reg_1) c1(smg:3) c2(smg2:2) c3(smg3:1) b(squad1) t(all infan_squad smgs) cost(8) f(1))
("squad_with3types" side(usa) name(smgs) c(30) g(reg_1) c1(smg:3) c2(smg2:2) c3(smg3:1) b(squad1) t(all infan_squad smgs) cost(8) f(1))
("squad_with3types" side(eng) name(smgs) c(30) g(reg_1) c1(smg:3) c2(smg2:2) c3(smg3:1) b(squad1) t(all infan_squad smgs) cost(8) f(1))
("squad_with3types" side(jap) name(smgs) c(30) g(reg_1) c1(smg:3) c2(smg2:2) c3(smg3:1) b(squad1) t(all infan_squad smgs) cost(8) f(1))
("squad_with1types" side(rus) name(mgs) c(30) g(reg_s) c1(mgun:1) b(squad1) t(all infan_squad mgunners use_charge) cost(5) f(1))
("squad_with1types" side(ger) name(mgs) c(30) g(reg_s) c1(mgun:1) b(squad1) t(all infan_squad mgunners use_charge) cost(5) f(1))
("squad_with1types" side(usa) name(mgs) c(30) g(reg_s) c1(mgun:2) b(squad1) t(all infan_squad mgunners use_charge) cost(6) f(1))
("squad_with1types" side(eng) name(mgs) c(30) g(reg_s) c1(mgun:2) b(squad1) t(all infan_squad mgunners use_charge) cost(6) f(1))
("squad_with1types" side(jap) name(mgs) c(30) g(reg_s) c1(mgun:2) b(squad1) t(all infan_squad mgunners use_charge) cost(6) f(1))
На этой строке я покажу, за что отвечают коды примененные в ней:
("squad_with1types" side(jap) name(mgs) c(30) g(reg_s) c1(mgun:2) b(squad1) t(all infan_squad mgunners use_charge) cost(6) f(1))
side(jap) – сторона конфликта, которой будет принадлежать юнит
name(smgs) – название юнита
c1(mgun:2) – составляющие части отряда, проще говоря какие юниты в нем будут находиться и сколько(тут 2 пулеметчика)
b(squad1) к какому макросу принадлежит отряд, от этого зависит как нужно заполнять код для добавление юнита в мультиплеер(находиться в этом же файле: )
Макросы:
)
(define "squad_1"
("squad_with1types" side(rus) name(%name) c1(%c1) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with1types" side(ger) name(%name) c1(%c1) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with1types" side(usa) name(%name) c1(%c1) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with1types" side(eng) name(%name) c1(%c1) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
)
(define "squad_2"
("squad_with2types" side(rus) name(%name) c1(%c1) c2(%c2) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with2types" side(ger) name(%name) c1(%c1) c2(%c2) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with2types" side(usa) name(%name) c1(%c1) c2(%c2) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with2types" side(eng) name(%name) c1(%c1) c2(%c2) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
("squad_with2types" side(jap) name(%name) c1(%c1) c2(%c2) c(%c) co(%co) g(%g) b(%b) t(%t) cost(%cost) f(%f))
)
t(all infan_squad mgunners use_charge) – обозначение отвечающие за то, что это отряд пулеметчиков
cost(6) – цена
Эту часть файла я показал для примера.
По примеру (уже добавленным юнитам) мы добавляем нашего партизана русским:
("squad_with3types" side(rus) name(partizan) c(30) g(reg_2) c1(partizan:1) b(squad1) t(all infan_squad partizan) cost(20) f(-3))
Так же в этом файле есть строка, после которой пишутся юниты имеющие специализацию:
;///////////////////////////// Specialized infantry ///////////////////
("squad_1" name(ap_miners) c(30) g(min) c1(antipersonel_miner:4) b(squad2) t(all infan_squad ap_miners use_charge) cost(8) f(1))
("squad_1" name(at_miners) c(30) g(min_2) c1(antitank_miner:4) b(squad2) t(all infan_squad at_miners use_charge) cost(8) f(1))
("squad_1" name(sappers) c(30) g(min_3) c1(saper:2) b(squad2) t(all infan_squad sappers use_charge) cost(3) f(0))
Напомню:
На специализацию юнита указывает строка в коде отмеченная красным.
Указываеться при создании нового юнита в файле «soldiers.set»
(define "at_rifle"
{tags "at_rifle %side spec infantry man"}
{score 6}
{cp 3}
{order 130}
{basic}
{breed}
{cost 2}
)
{"mp/rus/at_rifle" ("at_rifle" side(rus))}
Теперь наш партизан доступен для вызова в мультиплеере, но нам еще надо его локализировать.
Для этого из:
В файле «desc.lng» который находиться в ранние созданной нами папке:
SERIY mod\localization
Находим строки:
}
{"mp"
{"rus"
После них идет локализация пехоты принадлежащей к советскому союзу:
{"antipersonel_miner" "ПП минер"}
{"antitank_miner" "ПТ минер"}
{"bazooker" "гранатометчик"}
{"engineer" "инженер"}
{"flamer" "огнеметчик"}
{"mgun" "пулеметчик"}
{"oficer" "офицер"}
{"rifle" "стрелок"}
{"saper" "сапер"}
{"scout" "разведчик"}
{"smg" "автоматчик"}
{"sniper" "снайпер"}
{"sturmovik" "штурмовик"}
{"tankman" "танкист"}
{"tankman2" "танкист"}
{"tankman3" "танкист"}
{"vehicle_supporter" "солдат"}
{"at_rifle" "бронебойщик"}
{"home_guard" "партизан"}
{"elite" "морпех"}
{"elite2" "морпех"}
{"elite3" "морпех"}
{"rifle2" "стрелок"}
{"rifle3" "стрелок"}
{"smg2" "автоматчик"}
{"smg3" "автоматчик"}
{"sturmovik2" "штурмовик"}
{"sturmovik3" "штурмовик"}
}
Между двумя любыми строками из этого блока мы вставляем вот такой код:
{"Partizan" "Партизан"}
Что бы получилось:
{"antipersonel_miner" "ПП минер"}
{"antitank_miner" "ПТ минер"}
{"bazooker" "гранатометчик"}
{"engineer" "инженер"}
{"Partizan" "Партизан"}
{"flamer" "огнеметчик"}
{"mgun" "пулеметчик"}
{"oficer" "офицер"}
}
После добавления нашего партизана в этот список я решил не писать его полностью, что бы сэкономить время и размер мануала.
Теперь партизан локализирован, но предстоит еще локализировать его как составляющую отряда, для этого в этом же файле «desc.lng» находим строки(пример будут сделан фрагментом а не всем что находиться после {"squad": )
}
{"squad"
{"smgs(usa)" "Автоматчики"}
{"smgs(rus)" "Автоматчики"}
{"smgs(ger)" "Автоматчики"}
{"riflemans(usa)" "Стрелки"}
{"riflemans(rus)" "Стрелки"}
}
Где:
smgs(usa) – сторона к которой пренадлежит отряд.
Выбираем место и вписываем:
{"Partizan(rus)" "Партизан"}
Получаеться:
}
{"squad"
{"smgs(usa)" "Автоматчики"}
{"smgs(rus)" "Автоматчики"}
{"smgs(ger)" "Автоматчики"}
{"riflemans(usa)" "Стрелки"}
{"riflemans(rus)" "Стрелки"}
{"Partizan(rus)" "Партизан"}
}
Сохраняем изменения в файле и теперь наш партизан добавлен в меню выбора юнитов в мультиплеере и локализирован.
Теперь создаем для него описание.
Из:
В тылу врага 2 - Лис Пустыни\localization.pak\
Копируем в:
SERIY mod\ localization
Файл «info.lng»
В нем находиться описание и характеристика техники, а так же описание пехоты.
Вот фрагмент этого файла:
{tags
{"squad"
{"smgs(rus)" "Бойцы вооружены пистолетами-пулеметами системы Шпагина, несколькими противопехотными гранатами и противотанковой РПГ 40. ППШ снабжен большим магазином на 71 патрон и особенно эффективен на близких и средних дистанциях. Отряд из шести автоматчиков может быть с успехом использован как для штурма вражеских позиций, так и для охраны полевых орудий и танков."}
{"riflemans(rus)" "Отряд из шести рядовых бойцов вооружен парой противопехотных гранат и стандартными винтовками Мосина. Такое оружие имеет отличную дальность стрельбы, но маленький магазин и сравнительно небольшую скорострельность, поэтому отряды стрелков действуют особо эффективно на дальних и средних дистанциях боя, а при резком сокращении расстояния они становятся довольно уязвимы для автоматчиков и штурмовых групп противника."}
{"mgs(rus)" "Высокая убойная сила и скорострельность ручного пулемета Дегтярева обеспечивают дружественной пехоте отличную огневую поддержку и делают пулеметчика серьезной угрозой для живой силы противника. При стрельбе из укрытия либо из положения лежа оружие устанавливается на специальные опоры, что приводит к резкому увеличению точности и плотности огня."}
}
Теперь мы вписываем описание нашего партизана, у меня оно получилось таким:
{"Partizan(rus)" "Бойци которые не попали или избежали службы в красной армии, но ведущие подпольную борьбу с фашистскими захватчиками, собираються небольшими группами и пускают поезда под откос, взрывают мосты, нападают на вражеские патрули или колонны войск. В своем арсенале имеют мало оружия, по этому пользуються обрезом охотничьего ружья, имеют несколько гранат, коктейли Молотова и динамит. Незаменимый атрибут таких бойцов - шапка ушанка. "}
Вписываем его между уже созданных строк и сохраняем файл. Описание для данного юнита теперь можно посмотреть в игре.
  1. Для этого в файле:
SERIY mod\resource\set\multiplayer\units\vehicles.set
Редактируем код, отвечающий за добавление в мультиплеер нужного нам юнита, я хочу отредактировать код для пушки pak40.
В файле vehicles.set создаём макрос:
(define "vh" - имя, делаем своё
("generic_v" c(%c) sc(%sc) t(%t %s) g(%g) i(%i) b(%b) cw(%cw) cp(%cp))
{content "* ( mp/%s/tankman:%n ) mp/%s/vehicle_supporter:%m"}
)
( mp/%s/tankman:%n ) - это танкисты, n - количество
mp/%s/vehicle_supporter:%m" - это и есть юниты, которые будут рядом, в данном случае vehicle_supporter, можно менять,
m - количество
Затем в технике которой нужно ставишь вызов этого макроса, например
{"pak40" ("v+" c(90) t(all cannon fixed) s(ger) n(2) m(3) g(vh_cn5) sc(13) a(2) b(vh_cn) i(5) cw(4) cp(0)) {cost 13} {fore 1}}
Т.е. при покупке Pak40, в ней будут сидеть 2 танкиста, а рядом 3 человека.
Сохраняем файл и все готово.
Если нужно, что бы пушку сопровождали к примеру не 3 автоматчика, а 2 автоматчика и 1 стрелок делаем макрос так:
(define "vh"
("generic_v" c(%c) sc(%sc) t(%t %s) g(%g) i(%i) b(%b) cw(%cw) cp(%cp))
{content "* ( mp/%s/tankman:%n mp/%s/smg:2 mp/%s/rifle:1")}
)
Где:
smg:2 mp/%s/rifle:1 - и есть 2 автоматчика и 1 стрелок, но можно менять количество стрелков и автоматчиков уже у добавленной техники если smg:2 mp/%s/rifle:1 заменить на соответствующие макросы.
  1. В отличии от бронебойных снарядов мощность которых задаеться в настройках орудия, мощность фугасных снарядов нужно настраивать в их .def файлах.
Я хочу изменить мощность 100мм фугасного снаряда использующегося в ПТ САУ су-100.
Копируем из:
В тылу врага 2 - Лис Пустыни\2.pat\set\stuff\shell\
В созданную директорию в нашем моде:
SERIY mod\resource\set\stuff\shell\
Файл «bullet100.fg.ammo»
Открываем его текстовым редактором(блокнотом):
{from "pattern fg" – тип снаряда
{tag "big" "size2" "88to105"} – теги снаряда
{mass 20} - масса
{inventory
{size 4 1} - размер
}
("fg" args 6.5)
; anti-apc
{damage add blastwave
{energy 3.5} – энергия взрыва
{area 3 4} – площадь поражения
}
{entity "shell_fg_105"}
}
Я написал почти все что нам нужно(или когда-нибудь понадобиться)для редактирования ОФ снарядов.
Я решил сделать снаряд мощьнее и получилось:
{from "pattern fg"
{tag "big" "size2" "88to105"}
{mass 20}
{inventory
{size 4 1}
}
("fg" args 6.5)
; anti-apc
{damage add blastwave
{energy 5}
{area 4 5}
}
{entity "shell_fg_105"}
}
Сохраняем файл и теперь мощность данного снаряда изменена
» Часть 3:
Мануал предназначен для тех, кто читал первую и вторую его части.
  1. Создание новой армии(стороны конфликта).
Я решил воспользоваться ресурсами самостоятельной игры «Черные бушлаты» для создания новой стороны конфликта в игре В тылу врага 2 лис пустыни. Мод называем. например, «Romania».
С начало создаем в папке нашего мода такие направления:
Romania\set\multiplayer\armies\
Romania\interface\pages\multi\
Romania\set\multiplayer\units\
Создаем армию тут:
Romania\set\multiplayer\armies\
Из:
В тылу врага 2 - Лис Пустыни\4.pat\set\multiplayer\armies\
Копируем в:
Romania\set\multiplayer\armies\
Файл «jap.set»
Переименовываем его в «Rom.set»
Далее меняем настройки внутри:
{army
{id 5}
{title "mp/army/jap"} – название папки где будет храниться юнитлист.
{icon "/interface/pages/multi/flag_jap"} – ссылка на флаг нации
{flag "/interface/scene/common/flag_japan"} – ссылка на флаг который находиться в левом нижнем углу экрана во время игры(этого параметра в ЛП нет, он просто остался еще с втв 2, его забыли убрать).
}
На:
{army
{id 6}
{title "mp/army/ rom "}
{icon "/interface/pages/multi/flag_rom"}
{flag "/interface/scene/common/flag_rom"}
}
Как оказалось флаг Румынии в ЧБ отсутствует, по этому я решил взять флаг Германии, как союзника Румынии во Второй Мировой войне, из:
В тылу врага 2 - Лис Пустыни\resource\game.pak\interface\pages\multi\
Копируем файл «flag_ger.tga»
В
Romania\interface\pages\multi\
Переименовываем его в:
«flag_rom.tga»
Теперь создаем путь:
Romania\set\multiplayer\units\
Копируем в него из:
В тылу врага 2 - Лис Пустыни\4.pat\set\multiplayer\units\
Файлы:
vehicles.set - техника
squads.set – добавляем новый вид пехоты
soldiers.set – подключаем пехоту к мультиплееру.
И далее добавляем юниты в игру как написано в первой и второй частях данного мануала.
Теперь нужно локализовать новую сторону конфликта, для этого создаем путь:
Romania\localization\
В котором уже находиться файл: «desc.lng» (в нем мы локализовали технику и пехоту).
Добавляем по этому направлению из:
В тылу врага 2 - Лис Пустыни\localization.pak\
Файл
«#dlg_mp.lng»
В нем находим строки:
{"army"
{"ger" "Германия"}
{"rus" "СССР"}
{"usa" "США"}
{"jap" "Япония"}
{"eng" "Великобритания"}
}
И дописываем в них нашу вновь созданную сторону конфликта:
{"army"
{"ger" "Германия"}
{"rom" "Румыния"}
{"rus" "СССР"}
{"usa" "США"}
{"jap" "Япония"}
{"eng" "Великобритания"}
}
Сохраняем и локализация новой стороны конфликта готова.
Так же можете перенести в:
Romania\localization\
Из:
В тылу врага 2 - Лис Пустыни\localization.pak\
Файл: «info.lng» - в нем находиться описание юнитов.
Но еще нужно создать иконки для вызова юнитов в мультиплеере, для этого из:
Черные бушлаты\resource\game.pak\interface\scene\unit_icon\
В только что созданный нами путь:
Romania\resource\interface\scene\unit_icon
Копируем нужные нам иконки солдат и техники.
Примеры здесь я приводить не буду, так как искать и вписывать сюда все иконки техники и солдат Румынии слишком долго, но дам совет:
Названия иконок соответствуют названиям юнитов, которым они принадлежат, а у иконок Румынской пехоты в конце названия стоит: «(rom)», например:
oficer_st(rom)_00
Теперь новая сторона конфликта создана, осталось только подключить мод и играть.

Просмотров: 7 181

reALien #1 - 8 лет назад 0
оформлено ужасно и нечитаемо, нужны всякие заголовки, отступы, блоки с кодом и т.п., что бы не утыкаться в стену текста
Wulfrein #2 - 8 лет назад 0
ятп он еще не закончил
SpiritWolf #3 - 8 лет назад 0
reALien, исправлю. Нужно время
Mud_Flow #4 - 8 лет назад 0
На бест вей форуме токеже есть.
SpiritWolf #5 - 8 лет назад 0
Ну вообще то это создавалось при участии меня
SW_ добавил:
Это так для заметочки. И не важно что где расположено. Главное что вся важная информация будет здесь
SpiritWolf #6 - 8 лет назад 0
reALien:
оформлено ужасно и нечитаемо
Вообще, тем, кому это реально нужно, могут и почитать даже в таком оформлении
Tannenfels #7 - 8 лет назад 0
bb:Я дождался! Будет на сайте раздел про мою любимую игру!