ED Team Chizh Posted April 17, 2013 ED Team Share Posted April 17, 2013 (edited) DCS: World Scripting Engine значительно расширяет возможности редактора миссий, позволяя управлять объектами ИИ по собственным законам и правилам. Бета документация на английском. Находится в процессе разработки. Обновление 2020-01-10 Документация перемещена в FAQ https://www.digitalcombatsimulator.com/en/support/faq/scripting_engine/ Edited January 11, 2020 by const Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу Link to comment Share on other sites More sharing options...
Bars21 Posted April 17, 2013 Share Posted April 17, 2013 (edited) 1. Можно ли сделать, что бы группа или юнит генерился в произвольный момент, но точно рядом с другим юнитом? Пример: На АИ колонну налетают штурмовики, колонна рассредотачивается и рядом генерятся несколько бойцов с ПЗРК 2. Можно ли сделать, что бы АИ наземной группы в зависимости от разных событий следовали на разные ППМ? Пример: Взвод танков движется из точки 1 в точку 2. По дороге теряет 70% танков и отступает на исходную позицию 3. Можно ли как нибудь выдернуть событие, юнит Х обнаружил юнита Y? Пример: Наземная ДРЛО обнаружила ЛА противоположной стороны. На аэродромме генерятся перехватчики. Edited April 17, 2013 by Bars21 Link to comment Share on other sites More sharing options...
ED Team Dzen Posted April 17, 2013 ED Team Share Posted April 17, 2013 4. Отследить место гибели юнита. Например, самолёт сбит, на этом месте спавнить сбитого лётчика. 5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков? [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
BAntDit Posted April 18, 2013 Share Posted April 18, 2013 (edited) 1. Можно ли сделать, что бы группа или юнит генерился в произвольный момент, но точно рядом с другим юнитом? Пример: На АИ колонну налетают штурмовики, колонна рассредотачивается и рядом генерятся несколько бойцов с ПЗРК 2. Можно ли сделать, что бы АИ наземной группы в зависимости от разных событий следовали на разные ППМ? Пример: Взвод танков движется из точки 1 в точку 2. По дороге теряет 70% танков и отступает на исходную позицию 3. Можно ли как нибудь выдернуть событие, юнит Х обнаружил юнита Y? Пример: Наземная ДРЛО обнаружила ЛА противоположной стороны. На аэродромме генерятся перехватчики. 1. В версии 1.2.3 нет. 2. Можно. Скриптами можно динамически задать любой маршрут (если интересно могу выложить пример). 3. Можно, но в версии 1.2.3 это очень условно (например я сейчас делаю проверку расстояния от ЛА до РЛС с учетом высоты и с учетом не скрылся ли ЛА за неровностями рельефа). 4. Отследить место гибели юнита. Например, самолёт сбит, на этом месте спавнить сбитого лётчика. 5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков? 4. Детектировать место гибели юнита можно. 5. Не знаю :) Edited April 18, 2013 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 More sharing options...
ED Team Chizh Posted April 18, 2013 Author ED Team Share Posted April 18, 2013 5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков? Пока наземка заряжается только от грузовиков, складов и на аэродромах. Единственный урок, который можно извлечь из истории, состоит в том, что люди не извлекают из истории никаких уроков. (С) Джордж Бернард Шоу Link to comment Share on other sites More sharing options...
ED Team Dzen Posted April 18, 2013 ED Team Share Posted April 18, 2013 Пока наземка заряжается только от грузовиков, складов и на аэродромах. Ну это пока. А на будущее надо бы подумать, как от самого транспортника, так и от ящиков, которые он может перевозить. [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
Святой Posted April 18, 2013 Share Posted April 18, 2013 5. Наверное это не в эту ветку. Может ли транспортный вертолёт (Хьюи) подвозить БП танкам. Если нет, то от чего они могут заряжаться? Только от грузовиков? Пока нет. Система снабжения пока скриптами не охвачена. 3. Можно, но в версии 1.2.3 это очень условно (например я сейчас делаю проверку расстояния от ЛА до РЛС с учетом высоты и с учетом не скрылся ли ЛА за неровностями рельефа). Это будет поддерживаться следующей версии. В текущей 1.2.4 - нет. В будущем можно будет спросить у любого юнита видит или помнит ли он конкретного противника, а также получить список видимых / известных врагов. Сейчас можно только строить свои предположения оценивая дальность и проверяя линию видимости, как это делает Bandit. Но это ненадёжно. Link to comment Share on other sites More sharing options...
Bars21 Posted April 18, 2013 Share Posted April 18, 2013 Скриптами можно динамически задать любой маршрут (если интересно могу выложить пример). Да, конечно интересно. В будущем можно будет спросить у любого юнита видит или помнит ли он конкретного противника, а также получить список видимых / известных врагов. Отличные новости! Link to comment Share on other sites More sharing options...
Keshman Posted April 18, 2013 Share Posted April 18, 2013 Ну это пока. А на будущее надо бы подумать, как от самого транспортника, так и от ящиков, которые он может перевозить. Ящик (который притащит UH-1H Huey ) он же если не ошибаюсь будет относится к "наземке" тоесть можно будет просто ему дописать "GT.warehouse = true" Вот тестил на новом объекте camo tent перезарядка работает... типа от ящиков. У вас же самолет дает топливо другому самолету! Может как то от из этой "заправки" скопировать, переделать систему пополнения "ammo" наземки из UH-1H Huey когда он приземлится... Короче просто идея и мнение... :) Не говорите что мне надо делать и я не скажу куда вам надо идти… | 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 More sharing options...
Sinsir Posted April 18, 2013 Share Posted April 18, 2013 Ув. Святой. Как динамически рождать колонну бронетехники и отправлять ее по заданному маршруту? [sIGPIC][/sIGPIC] http://action-games.at.ua Link to comment Share on other sites More sharing options...
joker62 Posted April 19, 2013 Share Posted April 19, 2013 ... Это будет поддерживаться следующей версии. В текущей 1.2.4 - нет. В будущем можно будет спросить у любого юнита видит или помнит ли он конкретного противника, а также получить список видимых / известных врагов. На конец, именно то, что я ожидал. Обязательно это хорошая новость. антонио. Link to comment Share on other sites More sharing options...
Святой Posted April 19, 2013 Share Posted April 19, 2013 Ув. Святой. Как динамически рождать колонну бронетехники и отправлять ее по заданному маршруту? Давайте сначала дождёмся релиза DCS: World 1.2.4. Link to comment Share on other sites More sharing options...
BAntDit Posted April 19, 2013 Share Posted April 19, 2013 Скриптами можно динамически задать любой маршрут (если интересно могу выложить пример). Да, конечно интересно. и отправлять ее по заданному маршруту? --------------------------- Готово. Выложил пример 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 More sharing options...
Bambr Posted April 21, 2013 Share Posted April 21, 2013 (edited) Подскажите, какие способы получения информации от игроков есть? Ну т.е. могу ли я перехватить сообщение в чате, создавать динамические пункты в меню радио, создавать модальные окна? И можно ли определить языковую версию клиента? Edited April 21, 2013 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 More sharing options...
Sinsir Posted May 6, 2013 Share Posted May 6, 2013 Давайте сначала дождёмся релиза DCS: World 1.2.4. Понимаю, что сейчас ведутся работы по исправлениям багов и доработки патча, но если найдется время - объясните как все-же динамически рождать технику? [sIGPIC][/sIGPIC] http://action-games.at.ua Link to comment Share on other sites More sharing options...
Святой Posted May 6, 2013 Share Posted May 6, 2013 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 More sharing options...
Святой Posted May 6, 2013 Share Posted May 6, 2013 Подскажите, какие способы получения информации от игроков есть? Ну т.е. могу ли я перехватить сообщение в чате, ... Нет. А зачем? ... создавать динамические пункты в меню радио, Можно. Можно создавать многоуровневое меню. Теперь эти меню работают и в сетевой игре. создавать модальные окна? Зачем вам такие окна? С каким содержимым? Если для отладки, то для этого есть ряд ф-ций в env. И можно ли определить языковую версию клиента? Нет. Это в скриптовой системе совсем не нужно, поскольку такие вещи не относятся к игровому миру. Если нужно локализовать строки в зависимости от языковой версии, то это нужно поддерживать в самой системе триггеров. Сейчас этого нет. Понимаю, что сейчас ведутся работы по исправлениям багов и доработки патча, но если найдется время - объясните как все-же динамически рождать технику? Завтра. Link to comment Share on other sites More sharing options...
Святой Posted May 7, 2013 Share Posted May 7, 2013 Пример динамического рождения группы и установки маршрута Ув. Святой. Как динамически рождать колонну бронетехники и отправлять ее по заданному маршруту? Понимаю, что сейчас ведутся работы по исправлениям багов и доработки патча, но если найдется время - объясните как все-же динамически рождать технику? - Сначала нужно пропатчить скрипт игры"Scripts/UI/RadioCommandDialogPanel/CommandMenu.lua" приложенным файлом. Была найдена проблема с подменю с одинаковыми командами и исправлена. - Приложена миссия "Ground group control.miz" со скриптом "Ground group control.lua" внутри. - Скрипт запускается триггером на старте миссии. - Игрок должен взять роль красного командующего. - В меню F10 появится подменю "Create group", через которое можно создать группу бронетехники с выбранным кол-вом юнитов выбранного типа, которую можно размещать в выбранном направлении относительно цели - наземной группы синих. Группа создаётся без маршрута и, соответственно, никуда не движется. - После рождения группу можно заставить: двигаться к цели, остановиться, двигаться в исходную точку или уничтожить. После уничтожения группы можно создать новую и повторить цикл.Ground group control.mizCommandMenu.lua Link to comment Share on other sites More sharing options...
Sinsir Posted May 7, 2013 Share Posted May 7, 2013 Спасибо за оперативность. С ходу вопрос "роль красного командующего" это ведь нужно иметь установленый модуль СА? [sIGPIC][/sIGPIC] http://action-games.at.ua Link to comment Share on other sites More sharing options...
Bambr Posted May 8, 2013 Share Posted May 8, 2013 Нет. А зачем? Зачем вам такие окна? С каким содержимым? Если для отладки, то для этого есть ряд ф-ций в 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 More sharing options...
=RAF=Armen Posted May 9, 2013 Share Posted May 9, 2013 Святой сделай пожалуйста скрипт чтобы можно было рождать пехоту из Хюи. Подлетел, сел, высадил пехоту или ПЗРК-шников или минометчиков и улетел. Mi-8MTV2 The border campaign Ka-50 2 Pandemic campaign Mi-24P The border - prequel campaign Asus ROG Strix Z-590f, i7-11700K, SSD M2 NVME 2Tb, HDD 4Tb, RTX 3090, RAM 32GB, Oculus Quest 2, Mi Redmi 3440x1440. Link to comment Share on other sites More sharing options...
BAntDit Posted May 9, 2013 Share Posted May 9, 2013 сделай пожалуйста скрипт чтобы можно было рождать пехоту из Хюи Я сейчас занимаюсь этим. Можно будет перевозить пехоту куда угодно как в 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 More sharing options...
BAntDit Posted May 10, 2013 Share Posted May 10, 2013 скрипт чтобы можно было рождать пехоту из Хюи. Я сейчас занимаюсь этим. Все готово! Сделал миссию для возможности транспортировки грузов и пехоты на UH-1H. Изначально собирался сделать и для БТР-ов, но пока только для вертолетов (для БТР-ов перевозку пехоты тоже уже так то сделал, но пока не тестировал). Прежде чем, объяснять как это работает и как добавлять в ваши миссии, предлагают хорошенько протестировать предлагаемый механизм в online-е. Я сейчас все протестировал локально, есть мелкие не дочеты, но вцелом все работает. Очень важно протеcтировать механизм Online так он использует большое количество функции SSE, которые в Online ещё ни разу не тестировались... Для тестирования я запустил миссию на своем сервере (BAntDit Test Server), а также прикрепил миссию к этому посту - если хотите, можете запустить миссию на своем сервере. Не большое описание тестовой миссии с картинками: 1. В миссии вам доступно 4 слота с вертушками UH-1H на аэродроме Сенаки. 2. В тестовой миссии вам предлагается перевозить отряд пехоты с минометами: 5 человек + 2 миномета (в тесноте да не в обиде :) ) Прежде чем кого-то куда то везти, нужно подобрать тех, кого вы собираетесь перевозить. Не далеко от аэродрома расположил небольшую базу - белый барак, вышка, пехота, техника. Эта база - cargo place, т.е. самое место, где можно подобрать отряд для десантирования. См. скрины: Для того, чтобы подобрать отряд для перевозки вы должны зависнуть на высоте не более 4 меторов в зоне Cargo place (в радиусе 150 метров от вышки). 3. Если все сделали правильно то увидите надпись: Если не правильно, то тоже увидите, но другую :) - будет, что типа: "Погрузка прервана, высота не удерживается." (загрузка длится примерно 20 сек., когда стараешься удерживать 20 секунд вертушку ровно - это время кажется вечностью :) ) Удерживайте вертолет ровно, пока не выйдет надпись, что погрузка завершена: 4. После погрузки можете лететь куда угодно,выбирать место где хотите высадить отряд. Для того, чтобы высадить отряд, нужно также зависнуть на высоте не более 4 метров, следить чтобы скорость не превысила 5 м/c. (выгрузка потребует примерно также 20 сек.) Также будут отображаться надписи со статусом выгрузки. Если что-то пойдет не так - вы об узнаете: Если все пройдет нормально. Рядом с вашей вертушкой будет создан отряд: ----------------------- Вообщем-то все, успехов в тестировании :joystick: - лично я разбил штук 50 вертушек, прежде чем у меня стало получаться ))) В online даже страшновато тестировать, боюсь багов сперва полезет не мало... Миссия прикреплена к посту.cargo_moving_test.miz 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 More sharing options...
=RAF=Armen Posted May 10, 2013 Share Posted May 10, 2013 Спасибо Bandit вечером протестирую и отпишу. А можно реализовать все это через меню радиокоманд? Например в Cargo place есть несколько типов групп, автоматчики, расчет ПЗРК и минометчики, сел через меню выбрал тип группы и полетел к месту высадки, сел и через меню разгрузился. Еще вопрос, в текущем скрипте учитывается вес загрузки? Mi-8MTV2 The border campaign Ka-50 2 Pandemic campaign Mi-24P The border - prequel campaign Asus ROG Strix Z-590f, i7-11700K, SSD M2 NVME 2Tb, HDD 4Tb, RTX 3090, RAM 32GB, Oculus Quest 2, Mi Redmi 3440x1440. Link to comment Share on other sites More sharing options...
BAntDit Posted May 10, 2013 Share Posted May 10, 2013 (edited) А можно реализовать все это через меню радиокоманд? Можно, но вообще я специально старался сделать реализацию не зависимою от радиоменю, по некоторым причинам: 1. Мне не очень нравится радиоменю, т.к. оно завязывается на флаги (а хотелось бы, чтобы вместо флагов были callback функции c соответствующими аргументами) 2. Не удобно копаться в радиоменю одновременно удерживая вертолет в висении :) -------------------------------- Например в Cargo place есть несколько типов групп, автоматчики, расчет ПЗРК и минометчики, сел через меню выбрал тип группы Сейчас это тоже возможно, можно создать несколько Cargo place-ов (мест погрузки) - одну для загрузки ПЗРК, другую для автоматчиков и т.д. Над какой игрок зависнет, такой отряд и загрузит. -------------------- Для погрузки выгрузки пехоты в БТР-ы, кстати, по любому радиоменю буду использовать, там без вариантов - посмотрим, если окажется удобно, сделаю также для вертушек. Сейчас главное протестировать то, что есть - как уже говорил используется куча функции, которые в Online ещё не тестировались. -------------------- Еще вопрос, в текущем скрипте учитывается вес загрузки? Нет, на аэродинамику скриптом я влиять не могу. В скрипте просто проверяется, что одновременно может быть загружен всего один отряд в вертолет. Если пилот подобрал отряд, то другой он не подберет, пока не выгрузит уже подобранный. Вообще, я сделал так: Cargo place настраивается в скрипте - т.е. задается шаблон перевозимого груза (отряда), может ли UH-1 реально перевозить такой груз, который задан в шаблоне - это остается на совести миссиодела - какие шаблоны укажет создатель миссии, такие грузы вертушка и будет возить. вечером протестирую Кстати я свой сервак тестовый не могу держать постоянно запущенным, так что если у кого-то есть возможность запустить эту тестовую миссию у себя, тоже было бы не плохо. Edited May 10, 2013 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 More sharing options...
Recommended Posts