мод кинуть в папку, в лаунчере подключать как локальный мод. не забыть отключить перед играми
добавляет в эден эдиторе в меню "Tool" ("Инструменты") опцию Export vehicle setup
Используется для быстрого экспорта в виде скрипта сетапов техники и ее основных настроек (лок, топливо, хп, аммо). Для использования расставить то что будет спавнить в сетапе, выделить и нажать на пункт меню. В буфер обмена будет скопирован код вида:
(в целом работает на любые объекты кроме ботов-те на укрепления и тп. в примере выше-лодка и горгона)
!Важно: не экспортится инвентарь, сетапы пилонов и не создается бот для беспилотников. Это пока нужно дописывать в получившийся файл самому (про то как-в оригинальном посте)
Проверить получившийся код можно выполнив его из консоли отладки запустив миссию
Сообщение отредактировал BendeR - Суббота, 15.05.2021, 14:48
маленький апдейт тулзы из предыдущего поста: ССЫЛКА
-пофикшен экспорт хп -добавлено автоматическое создание ботов для бпа -добавлен экспорт инвентаря -добавлен экспорт пилонов
известные баги и недоработки: -не перекодируются русские названия техники в комментарии в начале каждого "блока" (удалите кракозябры и живите спокойно) -не экпортятся ace-настройки и содержимое инита (просто перенесите код в блок соответствующей техники заменив все ваши this на _veh подумав о локальности: код будет выполнен только на сервере)
например задержка доступа к бпла или заправке самолетов/другой техники:
где в строчке uiSleep(1800); задаем нужное время в секундах после окончания фризтайма. аналогично можно написать с топливом заменив в коде выше строчку createVehicleCrew _veh; на
Код
_veh setFuel 1;
(в этом случае код должен идти после строчки _veh setFuel 0; которую удалять не нужно
Сообщение отредактировал BendeR - Суббота, 15.05.2021, 15:50
Продолжение развития темы с томагавкми. Теперь оживляем корабельную и любую другую арту (те можно повтыкать условных нейтральных градов и тп) Скрипт брать ТУТ примеры вызова:
(3й пример чисто чтобы показать как последовательно вызвать 2 и больше залпов) Селить можно в тригеры, единственное но-выполнять на стороне сервера (в тригере галочка "только сервер"), в иниты со всякими "waituntil" и тд
По параметрам: Два обязательных: 1) Массив арт (каждой арте присвоили имя, если надо в инит поставили this setVariable ["WMT_Side", sideLogic]; чтоб не отображалась в списках техники). Можно в теории использовать любую арту-минометы, самоходки, рсзо и тп 2) Цель. одна цель, можно пустой тригер, любой объект и тп у которого можно вернуть положение функцией position
Опциональные: 1) Количество залпов. По умолчанию каждая арта стрельнет по разу и успокоится 2) Дополнительный разлет (в десятках метров. те ставим 10-получаем сто). По-дефолту многая ванильная арта ужасно точная. Позволяет решить эту проблему или создать вид обстрела большой области 3) класснейм снаряда. У каждого свои. По-умолчанию-ХЕ-шки от ванильных корабельных орудий, в примере выше-касеты от них же разные классы снарядом (магазинов если быть точным, количество указано) для той же корабельной арты:
4) задержка между выстрелами отдельных орудий, с 5) задержка между залпами, с
Общий принцип работы: создать в арте ботов-экипажников, отстреляться, удалить ботов. Так что перезарядка между длительными залпами или при стрельбе "штучными" зарядами типа тех же касет на совести картодела
Сообщение отредактировал BendeR - Суббота, 28.08.2021, 11:40
В общем еще один скрипт который пережил стадию "я знаю как сделать" длившуюся 1.5 года, и еще 2 часа моего времени потраченое на Помойку3) Сделан по причине невозмоности на играх адекватно юзать ванильный VLS: должны сойтись звезды чтобы кто то подсветил цель лазером, а у руля лаунчера оказался человек умеющий пользоваться даталинком. Поэтому родился скрипт...
АКТУАЛЬНАЯ ПОСЛЕДНЯЯ ВЕРСИЯ с мануалом ТЕПЕРЬ В ОТДЕЛЬНОЙ ТЕМЕ в разделе Мастерская->Инструкции! LINK
Стрельба из VLS (ПУ крылатых ракет Venator) с простым указанием цели на карте
Недостатки скрипта: 1) не выбирает типа ракет для стрельбы, по-умолчанию заряжены HE. Переключить на кластеры можно самому скриптом 2) не следит за оставшимся бк в ПУ. Количество доступных пусков задается внутри скрипта переменной VLS_MISSILE_CNT
Как все это "приготовить" поселить в init.sqf традиционным способом:
Код
[] execVM "vls.sqf";
и отредактировать в vls.sqf строки
Код
if (isNil "VLS_USERS") then { VLS_USERS = [b_ks]; };
(список тех кто может использовать)
Код
if (isNil "VLS_LAUNCHER") then { VLS_LAUNCHER = VLS; };
(имя переменной пусковой установки)
Код
if (isNil "VLS_MISSILE_CNT") then { VLS_MISSILE_CNT = 3; publicVariable "VLS_MISSILE_CNT";};
(начальное значение количества пусков. Рекомендую выставить в 0 и выдавать вручную скриптами или тригерами когда нужно)
и если планируется время полета ракет больше 30с (вообще можно использовать как "ограничитель" дальности)
Код
private _dummy_ttl=30;
небольшой пример "ручной" раздачи ракет для init.sqf, о которой я писал выше, используя переменные wmt:
Код
[] spawn { if (!isServer) exitWith{}; waitUntil {uisleep 0.5;!isNil("WMT_pub_frzState")};//Все почему-то забывают waitUntil {uisleep 1;WMT_pub_frzState>=3};//Ждать окончания фриза VLS_MISSILE_CNT = VLS_MISSILE_CNT+1; publicVariable "VLS_MISSILE_CNT";//Выдаем waitUntil {uisleep 0.5;!isNil("WMT_Global_LeftTime")};//Вроде бесполезно, но на всякий случай waitUntil {uisleep 1;((WMT_Global_LeftTime select 0)<=4800)};//За 80 минут до окончания миссии VLS_MISSILE_CNT = VLS_MISSILE_CNT+1; publicVariable "VLS_MISSILE_CNT";//Выдаем waitUntil {uisleep 1;((WMT_Global_LeftTime select 0)<=600)};//За 10 минут до окончания миссии VLS_MISSILE_CNT = VLS_MISSILE_CNT+2; publicVariable "VLS_MISSILE_CNT";//Выдаем };
Updt: фикс для исправления пропадания функции огибания рельефа местности у ракет на больших дистанциях -убрано удаление ботов в ПУ, теперь просто при попытке подключения терминалом-юзера выкидывает и возможность подключения блочится. -обновлена тестовая миссия, теперь можно "пощупать" дамаг и точность по пехоте и ванильной технике
Сообщение отредактировал BendeR - Среда, 21.06.2023, 22:53
v1.2 скрипта пуска крылатых тактических ракет (ссылки в предыдущем посте) -добавлена возможность создавать ограничения для стрельбы в виде зон разрешения и запрета -добавлено настраеваемое и отключаемое оповещение о пуске
HowTo зоны стрельбы Если на миссии не присутствует зон разрешения стрельбы-вся карта доступна для стрельбы, за исключением зон запрета 1) Простой метод: создать их на карте маркерами с названиями начинающимися на vls_ex для зон запрета стрельбы и vls_in для зон разрешения стрельбы. При старте скрипт сам их найдет и начнет использовать 2) Сложный метод (подходит для созданий динамических зон, их удалению и добавлению по ходу миссии): редактировать значения переменных VLS_EXCLUSION_ZONES и VLS_ALLOW_FIRE_ZONES (можно на сервере с отправкой через publicVariable). Можно использовать не только маркера, но и все возможные типы, поддерживаемые функцией inArea
HowTo сообщения о пуске Выключить полностью: в скрипте в строке с
Код
#define SHOW_NOTIFICATION
заменить true на false
Выбрать стороны для которых сообщение отбражается: в скрипте отредактировать массив в строчке
Код
if (isNil "VLS_NOTIFICATION_SIDES") then { VLS_NOTIFICATION_SIDES = [blufor]; };
(его так же можно менять как переменную по ходу миссии, например при выполнение сторонами каких-то целей)
Ну а ниже этой строчки-настройки самого сообщения. Все так же как в функции BIS_fnc_showNotification. Про нее проще почитать в вики и создать внешний вид сообщение под себя в description.ext
Ах да-все есть в миске доступной по ссылке в предыдущем посте. Распакуйте и переносите к себе. Там же можно оценить урон по технике и пехоте
Сообщение отредактировал BendeR - Среда, 01.09.2021, 15:54
v1.3 скрипта пуска крылатых тактических ракет (ссылки в предыдущем посте) -фикс стрельбы на выделенном сервере (локальность пустышки-цели) -добавлена возможности изменения списка игроков, управляющих ПУ из сторонних скриптов
known bugs (не работают оповещания если сервер-игрок)
HowTO: Изменение списка использующих VLS общий список по прежнему живет в VLS_USERS. Все кто может (или будет мочь использовать ПУ вписываются туда) Следующая за ним строчка VLS_CURRENT_USERS. По дефолту значение равно VLS_USERS (те все кто в первом списке могут стрелять если кол-во ракет в переменной VLS_MISSILE_CNT>0). Вот ее и надо менять (на сервере. те если засунули в какой нить addAction, который вызывается локально-не забудьте publicVariable)
Сообщение отредактировал BendeR - Четверг, 09.09.2021, 23:23
А потом перезарядка аж 5 минут. Так что до следующего патча армы (где добавят ряд новых команд управления и контроля времени перезарядки) вам придется отключить возможность стрелять и сделать задержку на перезарядку самим, скриптом
Сообщение отредактировал BendeR - Суббота, 11.09.2021, 11:15
Ну это уж сама миска. Возьми скрипт отдельно по ссылке, посели в инит вызов, создай ПУ с именем VLS и бота с именем b_ks, все заработает по идеи. Дальше уже по гайдику настраивай
Сообщение отредактировал BendeR - Суббота, 11.09.2021, 11:47
фиксит: -баг с дисконектом подключенного (после которого нельзя повторно подключиться к беспилотнику) -фары у стомперов и их аналогов (теперь можно юзать их ночью без тупого бота постоянно включающего весь свет)
отключает: -сенсоры ("точки" на радаре) у всех -лцу у дартеров -мозги аи (автоматическую стрельбу турели по видимым целям) у стомперов и тп (маршрутный автопилот оставлен)
v1.4 скрипта пуска крылатых тактических ракет -таймеры заменены на проверку новой командой обновления 2.06 (weaponReloadingTime) LINK (!WARN нужно закоментить 26ю строчку в скрипте. там где playsound. ну или поменять класс звука на свой вкус. Ну или просто убрать нотификейшены выставив VLS_NOTIFICATION_SIDES=[]. позже перезалью подчищенную версию)
теперь можно спокойно переключаться на кластерные ракеты и обратно не заморачиваясь с таймером из за перезарядки в 5 минут. делается это командами (вторая-опциональна, скидывает оставшееся время перезарядки в 0)
выставление минимальной прорисовки автоматом при загрузке может быть полезно на респах или в загруженых объектами зонах для облегчения прогрузки/перезахода игрока
селить в initPlayerLocal.sqf
Код
if ((player inArea "mkr_zone1")||(player inArea "mkr_zone2")) then { waitUntil {uisleep 0.5;!(isNil("WMT_Options_ViewDistance")||isNil("WMT_Options_ViewDistance_Preset"))}; WMT_Options_ViewDistance_Preset=WMT_Options_ViewDistance find (selectMin WMT_Options_ViewDistance); ["updateViewDistance"] spawn WMT_fnc_handlerOptions; };
(в коде выше проверка для маркеров с именами mkr_zone1 и mkr_zone2. можно сделать по своему вкусу)
Сообщение отредактировал BendeR - Четверг, 04.11.2021, 16:48
Экспортилка слотинга в CSV под формат таблички RBC Работает для фиксированного формата названий отделений заданных после символа "@" у командира Примеры:
Код
1. Командир отделения РХБЗ (MX GL, RCO) @Альфа 1-5 РХБЗ пехота [Березино]
@Альфа 1-1 Тип отделения (транспорт1, транспорт 2... ) [Место респаун]
Немного комментариев: наличие (...) опционально. Если их нет-скрипт укажет "без транспорта" в таблице место респауна, тип отделения и его обозначение с двумя цифрами через "-" обязательны в указанной в шаблоне последовательности Номера только из 2х цифра, те 21-2 или 4-32 не допустимы Часть перед @ любая на ваш вкус и формат
HowTO: Необходимо запустить миссию в мультиплеере (это важно, скрипт использует переменную playableUnits доступную только в МП), встать на любой слот запустить миссию и стартануть в игру с брифинга Скопировать содержимое скрипта в консоль отладки и выполнить. Если все наименования отделений правильны-в буфер обмена будет скопировано содержимое для CSV-файла вида:
Если где то косяк-скрипт в сообщение покажет номер отделения где что то указано не верно Так же подсчитывается количество игровых слотов в отделениях, отделения типа БПА и тп где нет игровых слотов в итоговую таблицу не попадают
Дальше сохраняем в текстовый файл и импортируем его хоть в гуглдокс, хоть в гребаный эксель-любые таблицы понимают CSV (пример готовой таблички)
немного пошаманив склепал хорошую альтернативу всех задолбавшей функции BIS_fnc_establishingShot для катсцен на миссиях. Ионка использована только как демо возможности делать катсцены на движке во время пролетов камеры
_cams-массивчик элементов формата : [[координата камеры], [куда смотрит камера],время для перехода от предыдущего вида к этому, угол обзора камеры] cam_effect_on_deep_freeze=false; не забыть выставить в true-тогда катсцена начнет работать за 60с до конца дипфриза. если false-то после начала фриза (не важно-дипфриз или нет) нужны только пролеты камеры-последний спавн можно спокойно удалить updt: вызывать в initplayerlocal
Сообщение отредактировал BendeR - Понедельник, 15.11.2021, 18:34
катсцена прерывается пользователем по нажатию пробела
вызывать в initplayerlocal.sqf в самом скрипте заполнить переменные _cams (в примере в исходнике-сделан выбор для синей и красной стороны. исходная карта для этого набора-Ливония)
_cams-массивчик элементов формата : [[координата камеры], [куда смотрит камера],время для перехода от предыдущего вида к этому, угол обзора камеры]
hint: я использовал 2 безразмерных тригера как точки для камеры и ее взгляда-выставив их просто копировал координаты через меню пкм в эдене
параметры вызова скрипта: [выполнять на хадрфризе, время старта катсцены] параметры опциональны (однако в релизной миссии должен быть выставлен в true первый) 1) 1й параметр для отладки не выставляется (false по-умолчанию, сцена проигрывается всегда до окончания простого фриза, true-только на хардфризе) 2) время старта-в секундах до окончания дипфриза. 90с (1:30) по умолчанию
Глобальные переменные (к которым можно привязать свои фейд-ту-блеки, эффекты камер и тп) cam_effect_camera -собственно сама камера, к ней можно обращаться и тп, только осторожно cam_playback_stage -"стадия" выполнения катсцены. 0-инициализация и прогрузка первой камеры (5с), 1-воспроизведение, 2-остановлено пользователем, 3-остановлено по завершению сцены
Сообщение отредактировал BendeR - Понедельник, 22.11.2021, 21:57