Jump to content

Помощь разработчику миссий


StarLey_Andrew

Recommended Posts

Всем, привет. Напишите, пожалуйста, кому не трудно, простенькие скрипты-примеры.  Думаю, кто в этом разбирается - это пара пустяков. А меня ой как выручите))).

1. Пока игрок в триггерной зоне 1 - флаг поднят. При отсутствии игрока в зоне 1 - флаг убирается.
2. Пока игрок в триггерной зоне 1 ИЛИ в триггерной зоне 2 - флаг поднят. При отсутствии игрока в СРАЗУ ОБОИХ указанных зонах (нет в триггерной зоне 1 И нет в триггерной зоне 2) - флаг убирается.


Edited by ДУБЛЁР
Link to comment
Share on other sites

  • ED Team
1 час назад, ДУБЛЁР сказал:

1. Пока игрок в триггерной зоне 1 - флаг поднят. При отсутствии игрока в зоне 1 - флаг убирается.
2. Пока игрок в триггерной зоне 1 ИЛИ в триггерной зоне 2 - флаг поднят. При отсутствии игрока в СРАЗУ ОБОИХ указанных зонах (нет в триггерной зоне 1 И нет в триггерной зоне 2) - флаг убирается.

ПОВТОРЯЮЩИЕСЯ триггеры (2 шт.):

1. условия - флаг 1 ложен, игрок в зоне 1

[или]

условия - флаг 1 ложен, игрок в зоне 2

 

действие: флаг 1 установить.

 

2. условие - флаг 1 истинен, игрок вне зоны 1, игрок вне зоны 2

 

действие: флаг 1 убрать

Link to comment
Share on other sites

Здравствуйте.  Начал осваивать редактор,  есть правило - "ГРАНИЧНОЕ УСЛОВИЕ срабатывает один раз каждый раз при попадании юнита в зону."    А мне нужно наоборот, чтобы  триггер срабатывал, если  объект (например, самолет игрока)  вышел из зоны.  Будет ли  правильно работать этот триггер в таком случае?  

 

Link to comment
Share on other sites

27 минут назад, SL PAK сказал:

ПОВТОРЯЮЩИЕСЯ триггеры (2 шт.):

 

SL PAK, спасибо. Изначально так и было реализовано. Но когда количество проверяемых условий только для одного триггера около 20-30 шт для поднятия одного какого-то флага… И для снятия этого флага мне нужно в отдельном триггере вбивать столько же условий, но с противоположным знаком, при этом ничего не упустив из виду, не накосячив…вот здесь я и вспомнил про скрипты: забил один раз свою кучу условий, и пусть скрипт сам следит за их выполнением. Простые примеры я привёл для того, чтобы было понятнее, какая логика мне нужна. 

Link to comment
Share on other sites

  • ED Team
1 час назад, Akavoy сказал:

Здравствуйте.  Начал осваивать редактор,  есть правило - "ГРАНИЧНОЕ УСЛОВИЕ срабатывает один раз каждый раз при попадании юнита в зону."    А мне нужно наоборот, чтобы  триггер срабатывал, если  объект (например, самолет игрока)  вышел из зоны.  Будет ли  правильно работать этот триггер в таком случае?  

 

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

  • Thanks 1
Link to comment
Share on other sites

Доброго времени суток.

Помогите, пожалуйста, понять, что пропускаю или не учитываю при работе с функциями на создание и удаление пунктов меню.
Триггером "Старт Миссии", задаю действие "Выполнить скрипт". Скриптом создаю пару пунктов в меню F10, а так же вкладываю в них подпункты.

local A = missionCommands.addSubMenu('Колонны')
 local A1 = missionCommands.addCommand('Одна колонна', A,function() trigger.action.setUserFlag('C1',1) end)
 local A2 = missionCommands.addCommand('Две колонны', A,function() trigger.action.setUserFlag('C1',2) end)
local B = missionCommands.addSubMenu('Задания')
 local B1 = missionCommands.addCommand('Миссия 1', B,function() trigger.action.setUserFlag('M1',1) end)

Меню создается как и задумано. При выполнении условий, подпункты первого пункта удаляются функциями ниже, но подпункт второго пункта не удаляется...

missionCommands.removeItem({['A'] = 'Колонны', ['A1'] = 'Одна колонна'})
missionCommands.removeItem({['A'] = 'Колонны', ['A2'] = 'Две колонны'})

missionCommands.removeItem({['B'] = 'Задания', ['B1'] = 'Миссия 1'})
Link to comment
Share on other sites

Подскажите, а в редакторе есть простая клавиша "отменить последнее действие" или хоткей какой-нибудь для этого?
Типа ctrl+z. Просмотрел мануал, но не нашел такого.

Link to comment
Share on other sites

  • ED Team
1 час назад, Twantick сказал:

Подскажите, а в редакторе есть простая клавиша "отменить последнее действие"

Нет отмены действия. В настройках РАЗНЫЕ можно включить автосохранение в редакторе, например каждую минуту. Загрузка сохранений в меню редактора ФАЙЛ - ОТКАТИТЬ.

Link to comment
Share on other sites

Как сделать, чтобы в брифинге в разделе "ИЗВЕСТНЫЕ УГРОЗЫ" не перечислялись юниты противника,  а было указано - "нет данных", "угрозы неизвестны", или вообще ничего не было?

Link to comment
Share on other sites

  • ED Team
28 минут назад, Akavoy сказал:

Как сделать, чтобы в брифинге в разделе "ИЗВЕСТНЫЕ УГРОЗЫ" не перечислялись юниты противника,  а было указано - "нет данных", "угрозы неизвестны", или вообще ничего не было?

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

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Кто подскажет.Как сделать чтобы маркерный дым не пропадал по прошествии определенного времени?

Отправлено с моего Redmi Note 9 Pro через Tapatalk

Link to comment
Share on other sites

В 15.12.2022 в 17:57, SL PAK сказал:

Нет отмены действия. В настройках РАЗНЫЕ можно включить автосохранение в редакторе, например каждую минуту. Загрузка сохранений в меню редактора ФАЙЛ - ОТКАТИТЬ.

Ну меня больше не сохранение волнует.
Часто случается - делаешь вэйпоинты, чет там редактируешь добавляешь кучу всего, потом случайно клацаешь del промахнувшись по юниту или группе и эта группа со всем удаляется.

Link to comment
Share on other sites

  • ED Team
1 час назад, Akavoy сказал:

Доброго времени. Подскажите, как поставить флаг, подтверждающий, что десант на борту? 

У десанта, чтобы грузился, в расширенных действиях ППМ обычно создают задачу "Погрузка в транспорт". Там же под задачей нужно создать команду "Выполнить скрипт" и в окне для скрипта написать скрипт поднимающий флаг, например флаг 1: trigger.action.setUserFlag(1, true)

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

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

Или часто этот скрипт ставят в расширенных действиях ППМ сверху, чтобы юнит поднял флаг пройдя этот ППМ.

  • Thanks 2
Link to comment
Share on other sites

С Наступающим!
Подскажите, пожалуйста, а каким скриптом, в расширенных действиях ППМ, можно скомандовать группе появится, если такая группа создана с задержкой активации?

Link to comment
Share on other sites

  • ED Team
49 минут назад, MagicRiggs сказал:

каким скриптом, в расширенных действиях ППМ, можно скомандовать группе появится

Праздник к нам приходит.

Активация группы с именем 101:

trigger.action.activateGroup(Group.getByName('101'))

  • Thanks 1
Link to comment
Share on other sites

Подскажите, пожалуйста, как поставить флаг, если объект (вертолет) сел на  палубу корабля?  Если корабль неподвижен,  все просто - ставишь кружок или прямоугольник на нужное место, условия - скорость ниже единицы,  высота такая-то (высота палубы).  А как быть, если корабль движется?  Зона -только круг, привязанный к центру корабля.  Здесь параметры высоты и скорости уже не помогут, ведь  вертолет может быть не на палубе.

Link to comment
Share on other sites

  • ED Team
2 часа назад, Akavoy сказал:

Подскажите, пожалуйста, как поставить флаг, если объект (вертолет) сел на  палубу корабля? 

Это нужен скрипт отслеживающий событие посадка. Тут были сообщения про это и я дублировал их там. Код не мой, пояснять по нему особо не могу.

 

Сам я пытался упростить этот код чтобы фиксировалась любая посадка игрока на полосу или площадку. Не помню работает ли это как надо, так как писал это по наитию. Не программист.

myHandler = {} 
function myHandler:onEvent(event)
    local unit = event.initiator
    if event.id == world.event.S_EVENT_LAND and event.initiator == world.getPlayer() then trigger.action.setUserFlag(101, 1) 
    end
end

world.addEventHandler(myHandler)

Если нужно проверять не игрока, а поднимать флаг по любой посадке в миссии, то удалить проверку условия про игрока: and event.initiator == world.getPlayer(). Или вписать туда проверку нужного объекта (как это сделать - думать, смотря код по ссылке выше).

  • Thanks 1
Link to comment
Share on other sites

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

"Рыцарь онлайна - капризный слепыш"

Ryzen 5800x3d, 64Gb ddr4 3600Mhz Cl16, RTX3080 12Gb, Acer Predator XB271HK 2160p

Link to comment
Share on other sites

Господа

Дано : 96 наземных групп Ground-1...96 с задержкой активации. В триггерах активации каждой группы, каждые 900 секунд с шансом в 50%. 

Вопрос : Можно ли 96 триггеров оптимизировать в один скрипт ? 

Спасибо

Link to comment
Share on other sites

2 hours ago, 303 said:

Господа

Дано : 96 наземных групп Ground-1...96 с задержкой активации. В триггерах активации каждой группы, каждые 900 секунд с шансом в 50%. 

Вопрос : Можно ли 96 триггеров оптимизировать в один скрипт ? 

Спасибо

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

Для это понадобится собрать все эти группы в таблицу, потом запланировать функцию, которая будет выполняться каждые 900 секунд и бегать циклом по этой таблице и активировать с шансом лежашие там группы.

Группы можно добавлять руками (мне было бы лень), можно придумать префикс в их названии и добалять все, которые его содержат. Получить их можно двумя способами:
 - через функцию coalition.getGroups
 - бегать циклом по таблице env.mission, что сложнее, но быстрее. С учетом, того что надо сделать один раз, скоростью я бы пренебрег.

Планирование функций осуществляется методом timer.scheduleFunction.

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

Скрытый текст

Hardware: AMD 5900x, 64Gb RAM@3200MHz, NVidia RTX3070 8Gb, Monitor 3440x1440(21:9), Samsung 980pro 1Tb NVMe SSD, VKB Gunfighter+MCGU, Virpil Throttle CM3, VKB T-Rudder, TrackIR.

 

Link to comment
Share on other sites

Здравствуйте. Проблема в редакторе миссий с линией визирования ПАН. Выставил ПАН в метре от цели - всё равно пишет "Нет линии визирования". Помогите разобраться в чём дело.

Spoiler

2023-01-09_00-30-44.png


Edited by Роман А.
Link to comment
Share on other sites

  • ED Team
21 минуту назад, Роман А. сказал:

Проблема в редакторе миссий с линией визирования ПАН. Выставил ПАН в метре от цели - всё равно пишет "Нет линии визирования". Помогите разобраться в чём дело.

Проверил, визирует ПАН исправно. При отсутствии линии визирования в оранжевой строке должно указываться расстояние на котором возможно визирование. У вас этого нет. Используете старую версию симулятора?

Link to comment
Share on other sites

2 hours ago, SL PAK said:

Используете старую версию симулятора?

Прикрепил скриншот, я так понимаю последняя. Если переместить дальше, то показывает что расстояние "> 3m" или как-то так. Если использую БПЛА как ПАН, то более менее работает (может вдруг отключить лазер в самый ответственный момент)

Spoiler

2023-01-10_13-50-15.png

 


Edited by Роман А.
Link to comment
Share on other sites

  • Recently Browsing   0 members

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