Jump to content

DCS: World Scripting Engine


Recommended Posts

  • ED Team

DCS: World Scripting Engine значительно расширяет возможности редактора миссий, позволяя управлять объектами ИИ по собственным законам и правилам.

 

Бета документация на английском. Находится в процессе разработки.

 

Обновление 2020-01-10

Документация перемещена в FAQ

https://www.digitalcombatsimulator.com/en/support/faq/scripting_engine/


Edited by const

Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу

Link to comment
Share on other sites

  • Replies 169
  • Created
  • Last Reply

Top Posters In This Topic

1. Можно ли сделать, что бы группа или юнит генерился в произвольный момент, но точно рядом с другим юнитом?

Пример: На АИ колонну налетают штурмовики, колонна рассредотачивается и рядом генерятся несколько бойцов с ПЗРК

 

2. Можно ли сделать, что бы АИ наземной группы в зависимости от разных событий следовали на разные ППМ?

Пример: Взвод танков движется из точки 1 в точку 2. По дороге теряет 70% танков и отступает на исходную позицию

 

3. Можно ли как нибудь выдернуть событие, юнит Х обнаружил юнита Y?

Пример: Наземная ДРЛО обнаружила ЛА противоположной стороны. На аэродромме генерятся перехватчики.


Edited by Bars21
Link to comment
Share on other sites

  • ED Team

4. Отследить место гибели юнита. Например, самолёт сбит, на этом месте спавнить сбитого лётчика.

5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков?

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

1. Можно ли сделать, что бы группа или юнит генерился в произвольный момент, но точно рядом с другим юнитом?

Пример: На АИ колонну налетают штурмовики, колонна рассредотачивается и рядом генерятся несколько бойцов с ПЗРК

 

2. Можно ли сделать, что бы АИ наземной группы в зависимости от разных событий следовали на разные ППМ?

Пример: Взвод танков движется из точки 1 в точку 2. По дороге теряет 70% танков и отступает на исходную позицию

 

3. Можно ли как нибудь выдернуть событие, юнит Х обнаружил юнита Y?

Пример: Наземная ДРЛО обнаружила ЛА противоположной стороны. На аэродромме генерятся перехватчики.

 

1. В версии 1.2.3 нет.

2. Можно. Скриптами можно динамически задать любой маршрут (если интересно могу выложить пример).

3. Можно, но в версии 1.2.3 это очень условно (например я сейчас делаю проверку расстояния от ЛА до РЛС с учетом высоты и с учетом не скрылся ли ЛА за неровностями рельефа).

 

4. Отследить место гибели юнита. Например, самолёт сбит, на этом месте спавнить сбитого лётчика.

5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков?

 

4. Детектировать место гибели юнита можно.

5. Не знаю :)


Edited by BAntDit

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Link to comment
Share on other sites

  • ED Team
5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков?

Пока наземка заряжается только от грузовиков, складов и на аэродромах.

Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу

Link to comment
Share on other sites

  • ED Team
Пока наземка заряжается только от грузовиков, складов и на аэродромах.

Ну это пока. А на будущее надо бы подумать, как от самого транспортника, так и от ящиков, которые он может перевозить.

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков?

Пока нет. Система снабжения пока скриптами не охвачена.

 

3. Можно, но в версии 1.2.3 это очень условно (например я сейчас делаю проверку расстояния от ЛА до РЛС с учетом высоты и с учетом не скрылся ли ЛА за неровностями рельефа).

Это будет поддерживаться следующей версии. В текущей 1.2.4 - нет. В будущем можно будет спросить у любого юнита видит или помнит ли он конкретного противника, а также получить список видимых / известных врагов.

Сейчас можно только строить свои предположения оценивая дальность и проверяя линию видимости, как это делает Bandit. Но это ненадёжно.

Link to comment
Share on other sites

Скриптами можно динамически задать любой маршрут (если интересно могу выложить пример).

Да, конечно интересно.

 

В будущем можно будет спросить у любого юнита видит или помнит ли он конкретного противника, а также получить список видимых / известных врагов.

Отличные новости!

Link to comment
Share on other sites

Ну это пока. А на будущее надо бы подумать, как от самого транспортника, так и от ящиков, которые он может перевозить.

Ящик (который притащит UH-1H Huey ) он же если не ошибаюсь будет относится к "наземке" тоесть можно будет просто ему дописать "GT.warehouse = true"

Вот тестил на новом объекте camo tent перезарядка работает... типа от ящиков.

У вас же самолет дает топливо другому самолету! Может как то от из этой "заправки" скопировать, переделать систему пополнения "ammo" наземки из UH-1H Huey когда он приземлится...

Короче просто идея и мнение... :)

 

6yc5Fmt1.jpg

 

Не говорите что мне надо делать и я не скажу куда вам надо идти…

| Asus Z390 | Core i5 9600K | HyperX Fury 32Gb | RTX 2070 | 1TB HDD + Intel Optane memory 32Gb | Thrustmaster F-16C Viper Add-on Grip+TWCS Throttle | Dell WMR | Oculus Quest 2 |

Link to comment
Share on other sites

... Это будет поддерживаться следующей версии. В текущей 1.2.4 - нет. В будущем можно будет спросить у любого юнита видит или помнит ли он конкретного противника, а также получить список видимых / известных врагов.

На конец, именно то, что я ожидал. Обязательно это хорошая новость.

антонио.

Link to comment
Share on other sites

Скриптами можно динамически задать любой маршрут (если интересно могу выложить пример).

 

Да, конечно интересно.

 

и отправлять ее по заданному маршруту?

---------------------------

Готово. Выложил пример BTR Racing :) - http://forums.eagle.ru/showpost.php?p=1728782&postcount=54

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Link to comment
Share on other sites

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

И можно ли определить языковую версию клиента?


Edited by Bambr

Intel Core i3-530 2,93 ГГц, NVIDIA GTX660, Corsair XMS3 DDR-III DIMM 8 Gb KIT 4*2Gb, LCD 1920x1080

Link to comment
Share on other sites

  • 3 weeks later...
Давайте сначала дождёмся релиза DCS: World 1.2.4.

 

Понимаю, что сейчас ведутся работы по исправлениям багов и доработки патча, но если найдется время - объясните как все-же динамически рождать технику?

[sIGPIC][/sIGPIC]

http://action-games.at.ua

Link to comment
Share on other sites

DCS World 1.2.4

 

В DCS: World 1.2.4 скриптовая система была расширена множеством новых функций, пакетов и классов.

 

Ниже дан список изменений от 1.2.3 до 1.2.4

 

Object.getCategory() function was added

Multiple functions were moved from Unit to Object

Object.destroy() function was added

Object.getDesc() function was added

CoalitionObject intermediate class was added

StaticObject.getByName static function was added

Unit.getPlayerName() function was added

Unit.getAmmo() function was added

Airbase class was added

Weapon.getLauncher() and Weapon.getTarget() functions were added.

Descriptors for Unit, Weapon, Airbase, StaticObject and SceneryObject

Group.isExist() function was added

Group.getCategory() and Group.getCoalition() functions were added

Group.activate() and Group.destroy() functions were added

coalition.getPlayers() function was added

coalition.getGroups() function was added

coalition.getStaticObjects() function was added

coalition.addGroup() function was added

coalition.addStaticObject() function was added

world.getAirbases() and coalition.getAirbases() functions were added

land.getSurfaceType function was added

trigger.action.setAITask() and trigger.action.pushAITask() functions was added

Some new main tasks for airborne units / groups are now available: Land, Follow, Escort

FAC tasks are now available: FAC_AttackGroup, FAC_EngageGroup, FAC

missionCommands singletone was added

AI namespace added. It contains constants used in Controller functions

 

Пожалуйста прочитайте обновлённый документ.

Link to comment
Share on other sites

Подскажите, какие способы получения информации от игроков есть? Ну т.е. могу ли я перехватить сообщение в чате, ...

Нет. А зачем?

 

... создавать динамические пункты в меню радио,

Можно. Можно создавать многоуровневое меню. Теперь эти меню работают и в сетевой игре.

 

создавать модальные окна?

Зачем вам такие окна? С каким содержимым? Если для отладки, то для этого есть ряд ф-ций в env.

 

И можно ли определить языковую версию клиента?

Нет. Это в скриптовой системе совсем не нужно, поскольку такие вещи не относятся к игровому миру. Если нужно локализовать строки в зависимости от языковой версии, то это нужно поддерживать в самой системе триггеров. Сейчас этого нет.

 

Понимаю, что сейчас ведутся работы по исправлениям багов и доработки патча, но если найдется время - объясните как все-же динамически рождать технику?

Завтра.

Link to comment
Share on other sites

Пример динамического рождения группы и установки маршрута

 

Ув. Святой.

Как динамически рождать колонну бронетехники и отправлять ее по заданному маршруту?

 

Понимаю, что сейчас ведутся работы по исправлениям багов и доработки патча, но если найдется время - объясните как все-же динамически рождать технику?

 

- Сначала нужно пропатчить скрипт игры"Scripts/UI/RadioCommandDialogPanel/CommandMenu.lua" приложенным файлом. Была найдена проблема с подменю с одинаковыми командами и исправлена.

 

- Приложена миссия "Ground group control.miz" со скриптом "Ground group control.lua" внутри.

- Скрипт запускается триггером на старте миссии.

- Игрок должен взять роль красного командующего.

- В меню F10 появится подменю "Create group", через которое можно создать группу бронетехники с выбранным кол-вом юнитов выбранного типа, которую можно размещать в выбранном направлении относительно цели - наземной группы синих. Группа создаётся без маршрута и, соответственно, никуда не движется.

- После рождения группу можно заставить: двигаться к цели, остановиться, двигаться в исходную точку или уничтожить. После уничтожения группы можно создать новую и повторить цикл.

Ground group control.miz

CommandMenu.lua

Link to comment
Share on other sites

Нет. А зачем?

Зачем вам такие окна? С каким содержимым? Если для отладки, то для этого есть ряд ф-ций в env.

Хочу построить стратегию. Хочу поставить статик-здание в качестве завода. Выводить модальное окно (или через спец. команды чата), где можно выбрать какой вид техники респаунить.

Intel Core i3-530 2,93 ГГц, NVIDIA GTX660, Corsair XMS3 DDR-III DIMM 8 Gb KIT 4*2Gb, LCD 1920x1080

Link to comment
Share on other sites

Святой сделай пожалуйста скрипт чтобы можно было рождать пехоту из Хюи. Подлетел, сел, высадил пехоту или ПЗРК-шников или минометчиков и улетел.

Mi-8MTV2 The border campaign

Ka-50 2 Pandemic campaign

Mi-24P The border - prequel campaign

 

Asus pro gaming Z-170, i5-6600K-4.3GHz, SSD M2 NVME 1Tb, HDD 1Tb, GTX 1080Ti, RAM 32GB, Oculus Quest 2, LG Ultrawide 2560x1080.

Link to comment
Share on other sites

сделай пожалуйста скрипт чтобы можно было рождать пехоту из Хюи

 

Я сейчас занимаюсь этим. Можно будет перевозить пехоту куда угодно как в Huey так и в БТР-ах.

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Link to comment
Share on other sites

скрипт чтобы можно было рождать пехоту из Хюи.

 

Я сейчас занимаюсь этим.

 

Все готово!

Сделал миссию для возможности транспортировки грузов и пехоты на UH-1H.

Изначально собирался сделать и для БТР-ов, но пока только для вертолетов

(для БТР-ов перевозку пехоты тоже уже так то сделал, но пока не тестировал).

 

Прежде чем, объяснять как это работает и как добавлять в ваши миссии, предлагают

хорошенько протестировать предлагаемый механизм в online-е.

Я сейчас все протестировал локально, есть мелкие не дочеты, но вцелом все работает.

Очень важно протеcтировать механизм Online так он использует большое количество

функции SSE, которые в Online ещё ни разу не тестировались...

 

Для тестирования я запустил миссию на своем сервере (BAntDit Test Server), а также прикрепил миссию к этому посту - если хотите, можете запустить миссию на своем сервере.

 

Не большое описание тестовой миссии с картинками:

 

1. В миссии вам доступно 4 слота с вертушками UH-1H на аэродроме Сенаки.

 

2. В тестовой миссии вам предлагается перевозить отряд пехоты с минометами: 5 человек + 2 миномета (в тесноте да не в обиде :) )

 

Прежде чем кого-то куда то везти, нужно подобрать тех, кого вы собираетесь перевозить.

Не далеко от аэродрома расположил небольшую базу - белый барак, вышка,

пехота, техника. Эта база - cargo place, т.е. самое место, где можно подобрать отряд для десантирования. См. скрины:

attachment.php?attachmentid=81194&d=1368178566

attachment.php?attachmentid=81195&d=1368178919

 

Для того, чтобы подобрать отряд для перевозки вы должны зависнуть на высоте не более 4 меторов в зоне Cargo place (в радиусе 150 метров от вышки).

 

3. Если все сделали правильно то увидите надпись:

attachment.php?attachmentid=81201&d=1368179474

 

Если не правильно, то тоже увидите, но другую :) - будет, что типа: "Погрузка прервана, высота не удерживается."

(загрузка длится примерно 20 сек., когда стараешься удерживать

20 секунд вертушку ровно - это время кажется вечностью :) )

 

Удерживайте вертолет ровно, пока не выйдет надпись, что погрузка завершена:

attachment.php?attachmentid=81203&d=1368180198

 

4. После погрузки можете лететь куда угодно,выбирать место где хотите высадить отряд.

Для того, чтобы высадить отряд, нужно также зависнуть на высоте не более 4 метров, следить чтобы скорость не превысила 5 м/c. (выгрузка потребует примерно также 20 сек.) Также будут отображаться надписи со статусом выгрузки.

Если что-то пойдет не так - вы об узнаете:

attachment.php?attachmentid=81204&d=1368180905

 

Если все пройдет нормально. Рядом с вашей вертушкой будет создан отряд:

attachment.php?attachmentid=81206&d=1368181285

 

-----------------------

Вообщем-то все, успехов в тестировании :joystick: - лично я разбил штук 50 вертушек, прежде чем у меня стало получаться )))

 

В online даже страшновато тестировать, боюсь багов сперва полезет не мало...

 

Миссия прикреплена к посту.

cargo_place.thumb.png.2ebcc6a59cab34b3a3306a23fc474510.png

cargo_place_2.thumb.png.0aee13188002847ac60b25006dae9890.png

loading_cargo.thumb.png.47f7574f97176afc564b463bc7ed0e5c.png

loading_complite.thumb.png.5293e92bc91a5065185a24f7189b2bbd.png

unloading_fail.thumb.png.90086cd294b207c6246b497747eb7e4e.png

unload_success.thumb.png.eb0eb4cb2f5af9f99d5c9c91444be847.png

cargo_moving_test.miz

  • Like 1

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Link to comment
Share on other sites

Спасибо Bandit вечером протестирую и отпишу.

А можно реализовать все это через меню радиокоманд? Например в Cargo place есть несколько типов групп, автоматчики, расчет ПЗРК и минометчики, сел через меню выбрал тип группы и полетел к месту высадки, сел и через меню разгрузился.

 

Еще вопрос, в текущем скрипте учитывается вес загрузки?

Mi-8MTV2 The border campaign

Ka-50 2 Pandemic campaign

Mi-24P The border - prequel campaign

 

Asus pro gaming Z-170, i5-6600K-4.3GHz, SSD M2 NVME 1Tb, HDD 1Tb, GTX 1080Ti, RAM 32GB, Oculus Quest 2, LG Ultrawide 2560x1080.

Link to comment
Share on other sites

А можно реализовать все это через меню радиокоманд?

 

Можно, но вообще я специально старался сделать реализацию не зависимою от радиоменю, по некоторым причинам:

 

1. Мне не очень нравится радиоменю, т.к. оно завязывается на флаги (а хотелось бы, чтобы вместо флагов были callback функции c соответствующими аргументами)

 

2. Не удобно копаться в радиоменю одновременно удерживая вертолет в висении :)

--------------------------------

Например в Cargo place есть несколько типов групп, автоматчики, расчет ПЗРК и минометчики, сел через меню выбрал тип группы

 

Сейчас это тоже возможно, можно создать несколько Cargo place-ов (мест погрузки) - одну для загрузки ПЗРК, другую для автоматчиков и т.д. Над какой игрок зависнет, такой отряд и загрузит.

 

--------------------

Для погрузки выгрузки пехоты в БТР-ы, кстати, по любому радиоменю буду использовать, там без вариантов - посмотрим, если окажется удобно, сделаю также для вертушек.

 

Сейчас главное протестировать то, что есть - как уже говорил используется куча функции, которые в Online ещё не тестировались.

--------------------

 

Еще вопрос, в текущем скрипте учитывается вес загрузки?

 

Нет, на аэродинамику скриптом я влиять не могу.

 

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

выгрузит уже подобранный.

 

Вообще, я сделал так: Cargo place настраивается в скрипте - т.е. задается шаблон перевозимого груза (отряда), может ли UH-1 реально перевозить такой груз, который

задан в шаблоне - это остается на совести миссиодела - какие шаблоны укажет создатель миссии, такие грузы вертушка и будет возить.

 

вечером протестирую

 

Кстати я свой сервак тестовый не могу держать постоянно запущенным, так что

если у кого-то есть возможность запустить эту тестовую миссию у себя, тоже было бы не плохо.


Edited by BAntDit

Крайняя версия MSF 1.0.1 (для 1.2.6.): http://forums.eagle.ru/attachment.php?attachmentid=89817&d=1382379803

 

Новая версия MSF 1.0.2 beta: http://forums.eagle.ru/attachment.php?attachmentid=93422&d=1390584292

 

Миссия для тестирования возможностей MSF 1.0.2: http://forums.eagle.ru/attachment.php?attachmentid=91514&d=1386954362

----

Руководство по MSF (не полная версия для MSF 1.0.2): http://forums.eagle.ru/attachment.php?attachmentid=92959&d=1389558825

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...