Jump to content

Разработка миссии на основе Simulator Scripting Engine


Recommended Posts

Posted

BAntDit подскажи пожалуйста, можно ли средствами SSE задать координаты существующего триггера (переместить триггер)?

 

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

Если триггер переместить нельзя, то есть идея сделать несколько триггеров и на этапе инициализации рандомно привязывать CargoPlace к одному из этих триггеров.

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

  • Replies 544
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)
BAntDit подскажи пожалуйста, можно ли средствами SSE задать координаты существующего триггера (переместить триггер)?

 

Нет, собственно это и не нужно. Координаты CargoPlace можно задать и без триггерной зоны. Триггерная зона это просто такой способ получить координаты нужной точки.

 

сть идея сделать несколько триггеров и на этапе инициализации рандомно привязывать CargoPlace к одному из этих триггеров.

 

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

 

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

 

Пользоваться так:

1. Запускаешь миссию (в редакторе).

2. Расставляешь в ней триггерные зоны - в тех местах координаты которых ты хочешь получить.

3. Запускаешь миссию и ждешь две секунды.

4. Завершаешь миссию, потом переходишь в папку где сохраняются логи.

Координаты зон записываются в файл: dcs.log

 

в таком виде: имя зоны: имя, x: ..., y: ...

 

пример:

INFO SCRIPTING: POINT NAME: point1, x: -291600, y: 631800

INFO SCRIPTING: POINT NAME: point3, x: -272114.28571429, y: 621457.14285714

 

Эти сохраненные координаты потом можно использовать при написании скриптов без необходимости привязываться к каким-либо триггерным зонам или статическим объектам.

save_points.miz

Edited by BAntDit
  • 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

  • 3 weeks later...
Posted

Можно ли в одной миссии использовать несколько наводчиков и несколько артиллерийских групп?

 

На данный момент создал 2 артиллерийские батареи и 2 беспилотника-наводчика, и назначил каждой батарее по своему беспилотнику в качестве наблюдателя, и для каждой батареи - создал отдельные списки целей. Но так не работает, цели не обнаруживаются не передаются и артиллерия не стреляет. Это я где-то ошибаюсь или просто так делать нельзя?

art_mission.miz

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

Posted

Шпасибо BAntDit за скрипты...есть пару вопросов

 

 

1) при перевозки юнитов, управляемые юниты становятся неуправляемые

 

2) может к к перевозке юнитов подключить авиация?..Ил-76 нелетаб, но можно заменить на первое время какой-нибудь летаб..

Posted (edited)

Bantdit можешь глянуть, что случилось. После патча 1.2.8, если вызвать groupDestroy, а потом попытаться родить группу снова (в твоем скрипте ф-ция respawnPlane (addGroup)) то получаем стабильный краш. Еще раз повторюсь, в 1.2.7 работало нормально.

Edited by Sinsir

[sIGPIC][/sIGPIC]

http://action-games.at.ua

  • 2 weeks later...
Posted

Заметил, что группы не подбираются на вертолетных площадках. Высадить группу на верт-площадку можно, а вот подобрать её от туда уже нельзя - в меню соответствующий пункт не появляется. С этим можно как-то бороться?

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

Posted (edited)

У меня такой вопрос:

Как средствами ССЕ получить/изменить очки коалиции?!

Объясню для чего.

Делаю миссию (для миссиоделов).

- При установке триггерной зоны в названии которой есть слово "Захват" (например "н.п. Сухуми (Захват)") каждые 5 минут проверяется наличие юнитов (реализовано).

- Высчитывается количество юнитов каждой коалиции в зонах с названиями включающими слово "Захват" (реализовано)

- Каждой из коалиций добавляютя очки по количеству юнитов в вышеуказанных зонах (как?!!!)

- Стоит условие по достижении одной из коалиций 150 очков - конец миссии (штатно триггером)

пытался присвоить эту информацию через mission.mission.goals - я так понял, это для оффлайна, cdata {predicates {score, side}} - вообще не понял как работают.

Помогите!!!

Цель создания такой миссии (файла со скриптом) думаю ясны - смена стратегии набивания шкурок на удержание и захват территории минимально затратными для миссиодела средствами.

Edited by StarLey_Andrew
Posted

А если, как вариант, увеличивать значение флагов, вместо очков или вместе с очками. значение флага больше - конец миссии.

Posted

Вариант конечно. Но тогда придется писать полностью альтернативный подсчет очков. А хотелось бы пользоватся штатными средствами.

Posted (edited)
Вариант конечно. Но тогда придется писать полностью альтернативный подсчет очков. А хотелось бы пользоватся штатными средствами.

 

ИМХО флаг может быть удобней.

Скажем если к задаче "захват" приплюсуем и другие задачи к примеру уничтожение обьектов.

Тогда штатно в редакторе можно задать флаг увеличить если склад уничтожен и тп.

 

Второе : ориентироватся на кол-во юнитов в зоне не очень правильно. В смысле начисления очков особенно если таких зон несколько,

лучше ориентироватся на время удержания зоны. И скажем за одну минуту начислять одно очко . (В арме 3 кинг оф хол работает подобным образом ).

Правила захвата по кол-ву юнитов тоже может быть не очень корректным , что ценнее 1 танк или 3 бтр ?

Edited by димок

Будьте осторожнее в своих желаниях.

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

Posted (edited)
ИМХО флаг может быть удобней.

Второе : ориентироватся на кол-во юнитов в зоне не очень правильно. В смысле начисления очков особенно если таких зон несколько,

лучше ориентироватся на время удержания зоны. И скажем за одну минуту начислять одно очко . (В арме 3 кинг оф хол работает подобным образом ).

Правила захвата по кол-ву юнитов тоже может быть не очень корректным , что ценнее 1 танк или 3 бтр ?

Сделал с флагом, именно по причине того, что реализуется начисление "очков" не только за шкурки.

Сейчас тестирую. По второму в целом так и есть, чем больше времени и большее количество юнитов (включая пехоту, т.е. удержание н.п. тремя танками дает несоизмеримо меньше, чем взвод пехоты приехавший на 3-х БТР. Как и должно быть ) в зоне удержания. Т.е. 5 красных юнитов удерживают н.п. 8 минут, тогда если периодичность вызова скрипта 2 минуты получаем 5 красн. *(8 мин./2мин.периода) = 20 очков красным. Если в одной и той-же зоне 3 красных и 5 синих стоят 4 минуты тогда получаем (5 син. - 3 красн)*(4 мин/ 2мин.период) = 4 очка синим (т.к. их больше). Т.о. нужно выбить из зоны врага и удерживать ее максимально долго для большего получения очков. Регулировать скорость начисления очков за захват можно посредством изменения периодичности вызова скрипта расчета очков за захват (здесь 2 мин.период) . Сегодня позже смогу пример с пояснениями в сеть выкинуть. Пример он всяко лучше тысячи слов :)

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

Edited by StarLey_Andrew
Posted

Хотелка:

Надо предусмотреть 2 вида зон

1) нейтральные - зона изначально нейтральная и подсчет ведется как ты пишешь.

2) тыловые зоны очки за удержание начисляются только команде противника.

 

Кста есть скрипт бантдита по зонам но там другой принцип - при вхождении в зону юнита противника зона считается захваченной (нет подсчета кол-ва юнитов). Скрипт нужен -?

Будьте осторожнее в своих желаниях.

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

Posted (edited)
Хотелка:

Надо предусмотреть 2 вида зон

1) нейтральные - зона изначально нейтральная и подсчет ведется как ты пишешь.

2) тыловые зоны очки за удержание начисляются только команде противника.

 

Кста есть скрипт бантдита по зонам но там другой принцип - при вхождении в зону юнита противника зона считается захваченной (нет подсчета кол-ва юнитов). Скрипт нужен -?

Пока так

http://forums.eagle.ru/showpost.php?p=1994117&postcount=1

ближайшие пару дней гляну как реализовать хотелку №2, потому что она логична.

Edited by StarLey_Andrew
Posted
Как средствами ССЕ получить/изменить очки коалиции?!

 

Средствами SSE никак.

Вопрос понимался много раз, хотелка была wish list-ах тестерской части форума, но видимо так и сгинула в большой массе других хотелок.

 

Есть и другие актуальные \ не реализованных хотелоки по SSE (как минимум три) - попробую уточнить их судьбу на данях.

Крайняя версия 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

Posted

Заметил, что группы не подбираются на вертолетных площадках. Высадить группу на верт-площадку можно, а вот подобрать её от туда уже нельзя - в меню соответствующий пункт не появляется. С этим можно как-то бороться?

 

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

Крайняя версия 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

Posted
Bantdit можешь глянуть, что случилось. После патча 1.2.8, если вызвать groupDestroy, а потом попытаться родить группу снова (в твоем скрипте ф-ция respawnPlane (addGroup)) то получаем стабильный краш. Еще раз повторюсь, в 1.2.7 работало нормально.

На примере какой миссии можно посмотреть?

Крайняя версия 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

Posted
Bandit

Краш так и работает (372) ??

 

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

А были случай воспроизведения этого креша в 1.2.8?

Крайняя версия 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

Posted

2) может к к перевозке юнитов подключить авиация?..Ил-76 нелетаб, но можно заменить на первое время какой-нибудь летаб..

 

Высадку с ИЛ-76 я помогал реализовать для ZORG-а и у него в итоге все заработало.

У меня его миссий не осталось, но можешь поинтересоваться у ZORG-а может ли он дать рабочий пример.

Крайняя версия 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

Guest ZORG
Posted (edited)

Да, пример есть... вот

Edited by ZORG
  • 3 weeks later...
Posted

Прошу простить за дублирование сообщения, но разработчикам миссий может быть интересно!

"В очередной раз приветствую всех.

Хорошие новости, я закончил рабочие миссии сразу по нескольким направлениям.

Первое и главное - Миссия "celeukazanie_golosom.miz" (вместо celeukazanie.miz, отличия ниже) Теперь файл полностью рабочий!

Отличие от предыдущей версии:

- убрано все лишнее (загрузки пехоты и т.д.)

- теперь в радиоменю есть пункт "запросить данные о противнике" при выборе которого наземные силы докладывают о видимом противнике)

- файл АВТОМАТИЧЕСКИ назначает всем наземным группам, существующим на момент подключения файла задачу докладывать о противнике

(т.е. если на момент подключения файла существует отряд пехоты, который в течении миссии Вы погрузили в вертолет, выгрузили на предполагаемом пути движения то этот о противнике)

Кроме того переделан файл on_transport_hit (подробнее в миссии auto_init_and_on_transport_hit.miz)

теперь:

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

-если группа на марше, то:

1. если атаковал ЛА и до него меньше 5 км. - выгружаются ПЗРК

2. если до противника менее 6 км. и есть миномет, то минометы выгружаются

3. пехота на марше выгружается если до противника менее 500 м.

Все это можно увидеть в миссиях из первого сообщения ветки СА http://forums.eagle.ru/showpost.php?p=1994117&postcount=1

Внутри файлов есть файлы ридми с разъяснениями, традиционно каждое действие комментируется."

Posted

На основе скрипта StarLey_Andrew сделал скрипт автоматического создания погрузочных зон для вертолетов.

Зона погрузки создается автоматически вокруг юнитов Урал-4320-31 (для синих - ГАЗ-3308) , М-113 и Бараки1 (не статик, а юнит), т.е. для создания погрузочной зоны нужно просто поставить Урал, ГАЗон, М-818 или бараки1 в нужном месте!

Для погрузки доступны группы:

"Десант" - 6 десантников(бойцов, солдат) с АК (М4) + 3 гранатометчика (пулеметчика)

"ПЗРК" - Игла (Стингер) стрелок + командир + 2 бойца с АК

"Минометы" - 3 миномета (для UH-1 - 2 миномета) + 2 бойца на миномет

Грузить можно в Ми-8 и UH-1 (задача для юнитов любая: транспорт, непоср. поддержка войск и т.д.), высота не больше 5м, скорость не больше 12 км/ч.

С Урала, ГАЗона и М-113 доступна 4 раза, с бараков - 20 раз для каждой группы.

Радиус загрузки: Урал, ГАЗ, М-113 - 75м, барак - 200м

Недостатки:

- погрузочная зона не двигается след за юнитами, а остается в точке юнита на момент запуска миссии;

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

auto_cargo_plac.lua

Posted (edited)
...

Зона погрузки создается автоматически вокруг юнитов Урал-4320-31 (для синих - ГАЗ-3308) , М-113 и Бараки1 (не статик, а юнит), т.е. для создания погрузочной зоны нужно просто поставить Урал, ГАЗон, М-818 или бараки1 в нужном месте!

...

Недостатки:

- погрузочная зона не двигается след за юнитами, а остается в точке юнита на момент запуска миссии;

...

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

_country.vehicle

на другой код

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

local _unit_name = _unit:getName(); --присваиваем имя юнита переменной
local _pogruzka = string.find(_zone_razv_name, "погрузки"); --проверяем есть ли в названии "погрузки", если нет, то _pogruzka = nil (не путать с арифметическим нулем!)
if _pogruzka ~= nil then --если есть
          --то что нужно сделать
       end

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

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

А в целом вообще такой скрипт - бесспорно помощь ленивым миссиоделам (хотя пока все расставишь, замучаешься, а уж каждому юниту прописать хоть по 2 строчки кода, так вообще утомляет), а тут подцепил файлик и на выходе получил полноценный бой.

BAntDit, дело то твое живет!

Edited by StarLey_Andrew
Posted (edited)

Сделал функцию автоматически добавляющую зону погрузки любому статическому объекту имеющему в названии слово "Погрузка".

Например вы установили статический объект - "вертолетная площадка-Тент" (или саму площадку даже лучше) и назвали ее "Штаб полка (Погрузка)"

И для вертолетов соответствующей коалиции будут доступны погрузки по шаблонам для этой вертушки.

ProfessorRider, только я не понял, делается ли вообще :renewCargoPlacesList(); ?

Если у кого под рукой есть вертолет, протестируйте файл пожалуйста.

__________________________

06.06.14 - удален

Edited by StarLey_Andrew
Posted (edited)

Потестил. Работать не хочет :(

Зона погрузки не создается. При включенных сообщениях выбирает коалицию и начинает бесконечно перебирать страны.

только я не понял, делается ли вообще :renewCargoPlacesList(); ?

По идее зоны обновляются после каждого взлета (или посадки, не помню уже)

Edited by ProfessorRider
  • Recently Browsing   0 members

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