Постоянная артиллерия на вашей карте
Введение
В данном руководстве мы научимся создавать постоянный артиллеристкий огонь по заданым вами координатам в вашем моде. C использованием entities.blk
Является скорее переводом темы Bazsi37: [Guide] Constant Artillery on your map - Game Mods - Enlisted — official forum
Если вы новичок в модмейкерстве Enlisted, ознакомьтесь с темами на двух языках (какой вам удобнее):
Английский:
Conquest Mission Guide - Game Mods - Enlisted — official forum
[Guide] Entity Modding (Entites.BLK) - Mods - Enlisted — official forum
Русский:
Официальное руководство по созданию миссии «Вторжение»
https://docs.google.com/document/d/e/2PACX-1vTlKvMEPxhh2we3Vdb8sJOsyQq-rh5TuOuASHJWl_z-7y_yx2Oxn65fc-CYzyLxoGF3AwkchJDDc2m9/pub
Руководство от @schyrikami
(недо)Гайд по редактору: Киллер фичи и пути к их созданию - Игровые моды - Архив - Enlisted — официальный форум
Приступим.
Руководство и наши действия
Чтобы добавить постоянный артиллерийский огонь по координате с заданным радиусом, вы можете использовать entity
artillery_strike_requester

spawnPeriod - это время между вызовами
StrikeTemplate менять не нужно. Но другие значения можно найти в
Array artillery__allTemplates
Чтобы изменить радиус огня, скопируйте код в созданной в папке с модом entities.blk: (пояснения к сущностям приведены внутри кода в виде комментариев //):
Код (Тык)
artillery{
_override:b=yes //Потверждаем изменения
_use:t="replicating"
artillery_zone__radius:r=240.0 //Размер круга на миникарте
artillery__dispersion:r=240.0 //Разброс снарядов в заданом круге. Рекомендуется устанавливать значение равное или ниже чем параметр выше.
artillery__adjustmentDispersion:r=24.0 //Разброс пристрелочных снарядов.
artillery__shotsDone:i=0 //Не трогайте этот параметр! Даже не смотрите на него!
artillery__shotsCount:i=160 //Выстрелов за вызов.
artillery__adjustmentsShotsCount:i=3 // Размер пристрелочных выстрелов
artillery__timeToFirstShot:r=10.0 //Время до первого выстрела. Отсчет идет сразу после появления круга.
artillery__nextShotTime:r=-1.0 // -1 чтобы отключить. скорость стрельбы зависит от скорострельности артиллерийского орудия, представленного ниже.
artillery__timeBetweenAdjustmentsShots:r=1.0 //Время между пристрелочными выстрелами
artillery__timeBetweenShots:r=0.6 // Время между обычными выстрелами
artillery__gunTempl:t="artillery_gun" //Какой объект (entity) отвечает за орудие.
artillery__autoShootTempl:t="auto_shoot"
artillery__adjustmentGunTempl:t="adjustment_artillery_gun" //Какой объект (entity) отвечает за пристрелочное орудие.
artillery__sourcePos:p3=0.0, 0.0, 0.0
artillery__targetPos:p3=0.0, 0.0, 0.0
artillery__calledByTeam:i=0
"artillery__callerEid:eid"{
}
"artillery__offender:eid"{
}
}
artillery_gun{
_override:b=yes //Потверждаем изменения
_use:t="tankgun_76mm_l11" //Используется орудие Л-11 в обычной игре.
_use:t="hit_effect_group_artillery"
gun__ammo:i=111 //я считаю, что это значение должно быть равно или больше, чем shotCount в приведенном выше объекте.
gun__maxAmmo:i=111 //Должно быть равно параметру выше.
killLogName:t=""
item__name:t="Artillery"
gun__blk:t="content/tanks/gamedata/weapons/artillery.blk"
gun__locName:t="Artillery"
gun__shotFreq:r=0.1
artillery__calledByTeam:i=0 //0 Включает урон обоим командам. 1 Не будет калечить 1 команду и т.д.
"gun__shellsAmmo:array"{
ammo:i=111
}
"gun__ammoSetsInfo:shared:array"{
"HE:array"{
"shell:object"{
blk:t="content/tanks/gamedata/weapons/shells/ussr/76mm_artillery_he.blk" //Путь к снаряду.blk. Оно нам еще пригодится.
name:t="76mm_of_350m"
type:t="he_frag_tank"
}
}
}
"gun__offender:eid"{
}
"gun_sound__shotPath:shared:object"{
_tags:t="sound"
enemy:t="enemy/weapon/cannon/artillery"
}
"artillery__callerEid:eid"{
}
}
Чтобы отредактировать снаряды, которые выпускает artillery_gun, вам следует выполнить поиск снарядов внутри датамайна игры:
Ссылка на него (тык)
GitHub - Dunge0n-Master1/enlisted-datamine: Enlisted game datamine
Теперь, давайте сделаем так, чтобы артиллерийский удар вызывал взрывы 12 бомб весом 1000 фунтов в радиусе 120 метров каждые 120 секунд.
Сначала отредактируем параметры:
artillery_zone__radius
И
artillery_dispersion установить значение 120
Затем мы ищем бомбу весом 1000 фунтов в datamine: (Вы ищете исключительно файлы BLKX.)

Скопируйте этот файл в свою папку с модом и переименуйте его в BLK. У BLK может быть любое имя, которое вы хотите. Я решил переименовать его в 1000lbspam.blk :

Файл, если вы по каким-то причинам не можете его найти.
1000lb_anm_65a_1.blk.txt (987 байтов)
Переименуйте по вашему желанию или как в этом руководстве. Закиньте в папке с вашим модом.
BLK должен находится в той же папке, что и scene.blk. Это необязательно, он может находиться где угодно, главное, чтобы он находился внутри папки мода.
Внутри объекта artillery_gun измените путь к файлу снаряда, чтобы он указывал на только что скопированный BLK:
....
"HE:array"{
"shell:object"{
blk:t="%ugm/1000lbspam.blk" //%ugm — путь к вашей папке мода. Неизменчив. 1000lbspam.blk имя вашего файла.
name:t="76mm_of_350m"
type:t="he_frag_tank"
}
...
Откройте свой мод в редакторе (ModsEditor.bat), поместите artillery_strike_requester туда, куда вы хотите, и откройте вкладку свойств:
Измените параметр
spawnPeriod к значению 120.Готово. Теперь
artillery_strike_requester будет взрывать бомбы весом 1000 фунтов в указанном месте. Это тот радиус, который вы определили.
Не все снаряды или бомбы сработают. Некоторые из них могут вести себя не так, как ожидалось.
Излишне говорить, что это также повлияет на отряды радистов. Вам нужно будет создать отдельный entity, если вы хотите сохранить их в стоковом состоянии.
Заключение
- Да. Мы желаем видеть больше руководств по модмейкерству Enlisted.
- Нет. Мы не желаем видеть это.
Удачи в ваших модмейкерских делах!
