Arma 3 полезные скрипты для сценариев
Содержание
- Подобрать "объект"
- "Подышать на объект"
- Закрыть двери в объекте
- Повреждение объекта
- Удаление
- Урон по объекту
- Увеличить или уменьшить объект
- Прикрепить флаг к чему либо
- Прикрепить объект, транспорт, турель к чему либо
- Динамическая прорисовка объектов
- Анимация движения объект
- Обнаружение цели
- Удаление объекта после опустошения
- Список команд
- Примеры некоторых команд
- Цветной текст
- Статья AAN(новости)
- Своя картинка на объекте
- Своя картинка на задании либо в "разведки" миссии
- Своя картинка и текст на листе, газете и прочее или интел с картинкой
- Текст с картинкой
- Плавное появление картинки на экране
- Нашивка
- Маркер-указатель
- Динамические маркеры
- Телепорт на заданный маркер
- Динамическая точка возрождения
- Эффект будто резко встал с дивана
- Затемнение экрана
- Черный экран
- Рамки как в кино
- Эффект синего ПНВ
- Концовка
- Загрузочный экран
- Эффект будто вас ранило
- Землетрясение
- Общие сведения
- Радио
- Зацикливание звука
- Закрыть двери у транспорта
- Заблокировать инвентарь транспорта
- Частичное ограничение дверей транспорта
- Очистить инвентарь транспорта
- Ограничение водительской двери транспорта
- Заглушить транспорт
- Бесконечные патроны
- Бесконечный боезапас
- Фонарик у бота
- Включаем фары у транспорта
- Мерцающие фонари
- Освещение
- Главная задача
- Условия
- Description
- Сейв зона
- Сохранение инвентаря после смерти
- Радиомолчание группы
- Добавление / Удаление предмета в инвентаре
- Отношения сторон
- "Вызов подкрепления" у противника
- Засада
- Контроль и атака
- Движение юнита в бою
- Задать скорость юниту
- Задать скорость для транспорта
- Задать высоту полёта
- Запрещает юниту отступать
- Стрельба по объектам
- Подавляющий огонь
- Пополнение боеприпасов на "ходу"
- Простые модули
- Комбинация модулей
- Артобстрел
- Артобстрел v.2
- Пуск крылатой ракеты
- Пуск крылатой ракеты v.2
- Пуск ракеты по лазеру
- Сброс ящиков/турелей/транспорта с парашютом
- Десант
Работа с объектом
В инициализации объекта прописываем следующее:
heli - имя переменной
Вбиваем предмету с которым вы хотите работать(машина например) имя переменной и просто ставим в редакторе как вам угодно, затем пишем волшебную команду в инициализации предметах которые будут на машине
Например - можно делать вот такие танки
- Создаем триггер
- Создаем объект и сохраняем его в композиции - называем ее например Mis
В активацию
И далее просто заносим наши вновь поставленные объекты в папочку Mis
ВАЖНО! Перенос объектов в композицию происходит только в левом окне с элементами. То есть жмем на объект один раз - он выделяется(можно выделять несколько), а далее зажав ЛКМ мы его переносим.
Переносы работают криво, объяснять думаю нет смысла - сами поймете когда будете этим заниматься
- Создаем 4 модуля Ключ расширенной кривой
- Создаем 2 модуля Отрезок
- Создаем 2 модуля Расширенная кривая
- Тепловоз (Train)
У меня так. a1 и a1_2 и другая пара b1 и b1_2
Синхронизируем между собой по паре (Отрезок -> кривая)
Далее делаем следующее с 2 отрезками и называем их line1 и line2
Значение длины и скорости воспроизведения тоже подогнаны под свой вкус
Синхронизируем кривые с ключами И ОБЯЗАТЕЛЬНО с тепловозом (им.перем Train) a1 и b1 синхронизируем с кривой которая идет на line2
a1_2 и b1_2 синхронизируем с кривой которая идет на line1
В итоге должно получится что кривая соединяет 2 ключа, поезд и отрезок
- Далее, чтобы запустить движение - создаем 2 "консоли" . Одна движение в точку B, другая реверс.
Если так нужен будет поворот, снижение и повышение высот, то попробуйте просто полетать рядом с анимационной линией с зажатым шифтом. Игра вам предложит сделать там точку следующего отталкивания, а там уже легко подогнать все. Синхронизирует оно само (оно умное). Не забывайте сделать это и на реверсе!!
Выглядят они так
- Создаем триггер
- Создаем "Создать задание" и синхронизируем
currentWeapon Player == "binocular" and cursorObject == VIP
VIP - имя переменной мужика
binocular - бинокль (ванильный). Чтобы заменить его - выбираем в арсенале другой бинокль и жмем CTRL+C и меняем значение бинокля.
Как только перекрестие бинокля пересекается с моделькой нужного персонажа, триггер срабатывает.
- Создаем триггер
Пишется в инициализации в данном случае
Работа с текстом
globalChat
groupChat
vehicleChat
commandChat
systemChat
hint
hintC
hintSilent
BIS_fnc_guiMessage
BIS_fnc_dynamicText
BIS_fnc_infoText
BIS_fnc_textTiles
BIS_fnc_typeText
BIS_fnc_typeText2
BIS_fnc_EXP_camp_SITREP
BIS_fnc_showNotification
BIS_fnc_showSubtitle
BIS_fnc_WLSmoothText
Можно менять шрифт, см https://community.bistudio.com/wiki/FXY_File_Format
Если нужно чтобы тот кто говорит был жив пишем в условие это
call{player inArea thistrigger && alive имя перем;}
"Stratis, 2035-07-14 0130<br />A dark night ahead…" call BIS_fnc_titleText;
[
[
["После попадания в голову 50 калибром, ", "align = 'center' shadow = '1' size = '0.7' font='PuristaBold'"],
["Морг", "align = 'center' shadow = '1' size = '0.7'", "#aaaaaa"],
["","<br/>"], ["10 минут спустя...","align = 'center' shadow = '1' size = '1.0'"]
]
] spawn BIS_fnc_typeText2;
hint "Чтобы убрать оружие из рук.\nВозьми рпг в руки и резко упади на землю."
Можно добавить картинку
hint parseText "<img image='ваша_картинка.paa' <img size='20' /><br/><br/><t size='1.2'>Ваш_текст.</t>";
Цвет и размер можно настраивать под свой вкус.
Это мой вариант
Работа с картинками
Кидаем в папку с миссией свою картинку в формате .jpg, но желательно в paa.
Далее указываем путь к ней
Пишем и делаем все как вам удобно и в описании пишем следующее:
width и height можно менять
Вот так выглядит у меня
sna.jpg - картинка, которая будет видна при приближении
Если вместо картинки нужен просто цвет, то например #(argb,8,8,3)color(1,0,1,1)
Пишем дальше в инициализацию того же объекта
Делаем все как было описано раннее
Пишем:
Большой акцент на числа 38 и 3 - именно столько идет(в секундах) монолог в моем сценарии
- Картинка(желательно в .paa вообще любую картинку можно впаять)
- Триггер(необязательно)
Маркер
- Создаем сам маркер и называем его. В моем случае Paros, маркер можно брать любой.
В условие
- Создаем сам маркер(я брал "Пусто" чтобы его не было видно) и пишем в нем имя переменной MyMarker
Альтернатива (с затемнением)
- Точку возрождения (ТВ) (любую, хоть маркер)
- Триггер
Прописываем имя переменной ТВ, в моем случае respawn_east
Далее в триггере пишем
Другие фракции
Экран
1 - затухание (0 - обратное)
5 - длительность
1 - размытие (0 - нету)
Вернуть экран обратно
Включить
эффекты помимо синего фильтра - асе
Создаем следующие файлы в папке с миссией
- nvg.sqf
- init.sqf
- модуль Закончить сценарий
- Триггер
- description.ext
Маркеры тут
https://community.bistudio.com/wiki/Arma_3:_CfgMarkers
Что получается
egl_lv426flat - название вашей карты (см.название файла вашей миссии, после точки)
[1] call BIS_fnc_earthquake;
либо так
[1] remoteExec ["BIS_fnc_earthquake"];
Музыка и звук
Создаем в папочке миссии папку и называем ее sound
Название должно строго соответствовать как в Description(или наоборот)
Формат файла должен быть .ogg
Вызов музыки можно делать в зависимости, как вы приписали ее выше. 3 вариантами.
playmusic "theend";
Ob1 say3D ["music", 50];
И все. Заходим проверяем, слушаем.
От Братишки
В инициализацию объекта пишем:
Кидаем туда нашу музыку
Задаем имя переменной объекту (в моем случае c1)
И в инициализации вбиваем это
Он необходим для зацикливания коротких звуковых дорожек. Например, для озвучивания гула двигателя, тиканья часов, звуков сирены и так далее.
В файлах миссии создаем:
- initServer.sqf
- description.ext
- папка sound
Ну и все. После всего этого заходим в арму, ставим переменные и радуемся. Их можно добавлять хоть до бесконечности.
Транспорт
lockstate:
0-разблокировано
1-по умолчанию
2-заперто
3-заблокирован для игрока
В инициализации
Фонарики, фары, лампы
Только включает фонарик. Добавлять надо ручками!
Лампы
Фонарик на оружии
Цветовая модель - RGB
Можно использовать формат цифр, например [214,60,26]
CfgIdentities
У игроков по умолчанию ставится его лицо в настройках
В инициализации пишется следующая команда:
this setFace "лицо"; Узнаем тут
Или тут
https://community.bistudio.com/wiki/Arma_3_CfgIdentities
В инициализации пишется следующая команда:
this setspeaker "голос"; Узнаем тут
Лицо, голос, позывной группы, тон голоса, маска(ну то что на лице игрока)
Выглядит это вот так:Теперь, мы молодцы поставили эти значения - что дальше?
Дальше мы создаем триггер(можете хоть на всю карту) и указываем в нем Повторение
!Пишем нашим юнитам имя переменной - например solda
В триггере пишем следующее: solda setIdentity "Pawel"; solda2 setIdentity "Wel";
И все. Проверяем, умераем - смотрим, что все работает прекрасно и радуемся что теперь в нашем африканском сценарии не белые воюют друзья,а темные.
Анимации
^- используется имя переменной
0 = this spawn{_this switchMove "анимация_01";};
- Убираем хп
- Выключаем моделирование
- Триггер
- POLPOX (для удобств)
Создаем 2 триггера
Пишем в первом например
Рекомендую использовать на переходах затемнение экрана
Использование POLPOX позволяет вам точно определить и затестить прямо в редакторе как будет двигаться или стоять юнит, выбор анимаций можете делать прям там, инструкция по применению есть в моде. Необязательно включать его в пресет, все работает без него после теста и без ошибок
Примеры анимаций
При получении урона, бот падает, бросает основное оружие.
- Триггер
- bot_ranen.sqf
sq - игрок
Условие триггера
Бот параллельно звуковому файлу шевелит губами, имитируя речь.
- Триггер
- Duckspeak.sqf
Примечание: Если для звука нужны субтитры, лучше их сразу прописать в description.ext
Триггеры, условие, задача и Description
Служит базой для:
Скриптов;
Воспроизведения звука, голоса, музыки, окружения, слоев интерфейса;
Окончания или поражения для сценария;
И прочего..
Активатором может быть как любой объект(проп) так и человек, игрок, ИИ, группа людей(задать владельца триггера)
Создание задания
"Создать дневниковую запись" - означает Инструктаж, боевая сводка и прочая хрень описывающая действия в которые попали бойцы
"Создать задание" - логично задание,в него входит описание задания и название. Единица, указанная в триггере описанная выше - активирует его и задание будет не выполнено вплоть до того пока не сделаешь условия другого триггера (Да, их нужно минимум 2).
Например: Тебе нужно взорвать дом.
Ставишь 2 триггера - 1 на месте активации, другой на месте выполнения задания.
1 - триггер создает задание, а условия выполнения задания(2 триггера) это отсутствия данного объекта.(Т.е после ПОВРЕЖДЕНИЯ или УНИЧТОЖЕНИЯ объекта задание будет выполнено)
"Установить назначения задания и Установить описание задания" - не знаю зачем это существует, расширенная функция
Создание и состояние задания нужно синхронизовывать между собой, чтобы оно РАБОТАЛО.
Если нужно чтобы триггер активировался не сразу - делаем следующее:Так можно строить целые разговоры из нескольких триггеров и текста.
- Создаем 3 задачи
Идентификатор род.задачи ставим имя - task1
Номер задания - task1
Вторая и третья как задачи и так далее
Идентификатор род.задачи ставим имя - task1
Номер задания - task2 и task3
Для того чтобы сделать вторую главную задачу, делаем тоже самое, только просто меняем имя (task1). Аналогично.
- Логическое ИЛИ
- || или or
- Логическое И
- && или and
- Логическое НЕ
- ! или not
Соответственно к примеру
!alive name
Условие активируется когда объект \ юнит уничтожен - обратное значение alive name
Можно так же задавать условия чтобы активация была засчитана при уничтожении нескольких объектов \ юнитов.
Игрок в зоне триггера
player in thislist
Игрок сел в машину (jeep)
player in jeep
У игрока винтовка в руках
player hasWeapon "класс оружия"
Если необходимо, чтобы триггер был активен сразу то.
call{true}
Рекомендую для сцен в начале сценария, текста, выдачи заданий, либо для анимаций, например, смерть бота и тд.
Переходим в папку с миссией(там должна быть ваша миссия - mission.sqm) и в этой папочке создаем Текстовой документ и теперь переименовываем его. Пишем - description.ext - файл становится "белым", либо нет. Теперь открываем его через Notepad++ или любую другую программу которая в принципе выполняет такую же роль(можете даже вообще не парится и писать все в Текстовом документе и только потом прописать description.ext)
Вот ссылка на Description
https://community.bistudio.com/wiki/Description.ext
Прочие настройки
- Создаем триггер на карте
Далее переходим в файлы миссии и создаем
- inSafeZone.sqf
- leftSafeZone.sqf
Сохраняем. Заходим в обратно в арму и запускаем. Персонаж будучи в триггере не должен брать оружие и наносить урон другим.
ВАЖНОЕ ПРИМЕЧАНИЕ! данные актуальны с модом асе! Для простой версии - напишите вместо 299 - 100, это в inSafeZone
В файлах миссии создаем:
- onPlayerKilled.sqf
- onPlayerRespawn.sqf
- initPlayerLocal.sqf
В файлах миссии создаем:
- InitPlayerLocal.sqf
- Init.sqf
Добавление что-то в жилет, рюкзак и униформу.
Пример, в котором я добавил противогаз в жилет
Добавление в униформу
Поведение ботов
- west = blufor
- east = opfor
- resistance = independent
https://community.bistudio.com/wiki/Side_Relations
Тип - Пропустить точку, активация - в моем случае любой Блюфоровец, в типе активации - обнаружен Независимыми(т.е юнит обнаружил солдата BLUFOR в данном триггере). Логично что в триггере должны быть как те и другие юниты(Кто-то же должен их обнаружить)
И указываем у них(ЕСЛИ связаны с техникой!(Т.е приедут на ней)) 4 маршрутные точки:
1 Точка - ОСТАНОВИТЬСЯ - к ней мы прикрепляем триггер через "Задать активацию точки"
2 Точка - СЕСТЬ - юниты войдут в технику после активации триггера(пока триггер не активен, они будут стоять на 1 точке)
3 Точка - ВЫЙТИ - т.е любое место где вам угодно чтобы юниты высадились
4 Точка - НАЙТИ И УНИЧТОЖИТЬ - либо если что-то далеко то ПЕРЕМЕЩЕНИЕ, а потом НАЙТИ И УНИЧТОЖИТЬ.
Создаем модуль - "Установить режим" и делаем в нем следующее:
И теперь самое простое: синхронизировать между собой это все - группы ботов с модулем "Установить режим" - а модуль с триггером.
Итого что имеем - активатор делает активацию триггера, и боты выходят из пассивного режима в боевой.
Заставляет бота целиться в заданную цель
unit1 doTarget unit2;
Заставляет выбрать оружие
unit1 fireAtTarget [unit2, "wea" ]
wea это код оружия
Заставляет стрелять по выбранной цели
unit1 doFire unit2;
doStop this; - бот останется на месте
Альтернатива.
call{this disableAI "move";} - бот останется на месте и НЕ будет поворачиваться (только 40 градусный сектор перед ним)
Альтернатива.
this DisableAi "PATH" - бот останется на месте и будет поворачиваться на 360 градусов
jeep - имя переменной транспорта
Либо задаем напрямую через this
Скрипт, который заставляет вертолет сразу садиться, а не кружить над посадочной площадкой до бесконечности
- Триггер
- Landing.sqf
Активация где угодно: [_heli, helipad, "LAND"] execVM "Landing.sqf"
target1 - имя переменной(цель) Альтернатива
Альтернатива
от Dominion1859
Отменяет приказ на движение и заставляет юнит начать стрелять.
Поведение ботов ч2
Боевая машина начинает стрелять по цели, пока цель либо техника(сам стрелок) не будет уничтожена.
- Триггер
- Firemis.sqf
[BTR, Tar, currentMuzzle (gunner (BTR)), 60, true] execVM "Firemis.sqf"
Пример в триггере
[BTR, Tar, currentMuzzle (gunner (BTR)), 60, true, "!alive BTRD"] execVM "Firemis.sqf"
- Не восполняются ручные гранаты.
- Если стрелять с турели (не пилонов) "дистанционно" (т.е через "ручное управление огнем") то пополнение боезапаса происходить не будет.
- Большинство ручных гранатометов пополняются "новыми" снарядами, так как отстреленные старые не учитываются игрой.
- fn_ammoMode.sqf
- _this select 0 — <Объект>. Юнит или техника.
- _this select 1 — <Массив>. Массив строк с класснеймами оружия (weapon), боекомплект которых восполняться НЕ будет. По-умолчанию пустой массив (восполняется все).
- _this select 2 — <Массив>. Массив строк с класснеймами стволов (muzzle), боекомплект которых восполняться НЕ будет. По-умолчанию пустой массив (восполняется все).
- _this select 3 — <Массив>. Массив строк с класснеймами магазинов, которые не будут восполняться. По-умолчанию пустой массив (восполняется все).
- Возвращаемое значение: Массив вида ["Тип EH", EH ID].
Поведение ботов ч3
Полезные ссылки
https://steamcommunity.com/sharedfiles/filedetails/?id=623475643
https://steamcommunity.com/sharedfiles/filedetails/?id=723217262
Либо это(Не рекомендую использовать Ахилес и Зевс одновременно, функции они выполняют одинаковые, а некоторые панели будут только мешать(будут накладываться друг на друга))
https://steamcommunity.com/sharedfiles/filedetails/?id=1779063631&searchtext=Zeus
Дополнение к Ахилесу либо к Зевсу
https://steamcommunity.com/sharedfiles/filedetails/?id=1355571744&searchtext=Achilles
Мод добавляющий скрытые предметы
https://steamcommunity.com/sharedfiles/filedetails/?id=1923321700
Для анимаций
https://steamcommunity.com/sharedfiles/filedetails/?id=1341387001
Полезные модули
Диапазон 0.1 ... 120
-Вроде перестает работать если человек умерает(для сетевых режимов с воскрешением)
- Создаем модуль Сектор
Например OPFOR и BLUFOR
Далее сам сектор. Настраивайте под свой вкус и цвет
Мой пример
Обязательно синхронизируйте между собой! Два элемента к сектору!
- Создаем модуль "Управление группами - командир" и "Управление группами - подчиненный"
Каждый модуль подчиненных идет на свою группу\нпс\технику.
И все. Заходим на игровой слот и жмем сочетание клавиш CTRL + SPACE
Ниже появляются группы в моем случае это танк и группа пехоты
- Создаем модуль Мастер игры
- Переходим в панель Логические элементы - Виртуальные объекты - создаем любого Зевса
Ставим обоих и прописываем имя переменной у логики и владельца у модуля
Плюсы
Можно подслушивать разговоры игроков и так же говорить по рации (TaskForceRadio)
Минусы
Взаимодействие с триггерами, а именно - если у вас есть триггеры где используется условие Любой игрок - Зевс тоже игрок - соответственно он может задеть триггер
- Создаем триггер
- Создаем модуль "Ограничение по зоне"
Модуль настраиваем под себя.
Применяем для игровых групп / юнита
Инвертированная граница: Нет > работает если вне триггера; Да > работает если в триггере.
Предупреждение: можно написать что будет предупреждением. Я писал так hint "Вы покидаете территорию сценария. Вас поглотит пустошь."
Санкции: по умолчанию это спаун мины под ногами. Я же пишу так _this setdamage 1;
Синхронизируем. Триггер > модуль > игроки / группы
Погода
time - переход к новому значению(туману)
fog - плотность тумана. Диапазон 0...1
Пример
15 setFog 0.5;
Горный туман, начинается с 70 м ASL и сгущается тем больше, чем выше вы поднимаетесь:
0 setFog [1, -1, 70];
Долина тумана, начинается с 60 м ASL и сгущается больше, чем ниже вы спускаетесь:
0 setFog [1, 1, 60];
Туман на воде:
0 setFog [1, 1, 0];
enableEnvironment [ambientLife, ambientSound, windyCoef]
Постобработка
Вызов поддержки
- Триггер
- Artobstrel.sqf
Пример в триггере
[[1497.998, 6609.139, 150], 15, 50, 15, "BO_GBU12_LGB", [1,2]] execVM "Artobstrel.sqf";
Объяснение
[[X, Y, Z], радиус, высота, количество, "BO_GBU12_LGB", [1,5]] execVM "Artobstrel.sqf";
[X, Y, Z] - координаты цели
радиус - разброс спавна, по-умолчанию 100 метров
высота - высота спавна снарядов, по-умолчанию 200 метров
количество - количество выпускаемых снарядов (по-умолчанию 5)
BO_GBU12_LGB - класс снаряда (технически можно использовать любой объект), по-умолчанию "стреляем" авиабомбой;
1,5 - минимальная и максимальная задержка в спавне снарядов, по-умолчанию задержка от 1 до 5 секунд;
- Триггер
- CruiseMissileLaunch.sqf
Пример в триггере
[Tonk, VLS, 3, 300, false, false, 35] execVM "CruiseMissileLaunch.sqf"
Объяснение
Tonk - название цели, в которую будет запущена ракета
VLS - название конкретной установки VLS
"3" - количество выстрелов, которое сделает VLS. По-умолчанию 1. Максимальный боезапас установки VLS - 36 ракет. 18 обычных и 18 кассетных.
"300" - время, которое ракета будет знать, где находится цель. Если время выйдет до того, как ракета поразит цель - она укнется в землю. По-умолчанию 1000 секунд.
"false" - true или false. Если true, то следующая ракета будет запущена только после попадания предыдущей По-умолчанию true.
"false" - true или false. Если true, то боезапас установки VLS не закончится (логично).
"35" - задержка между запусками. Не может быть меньше 20 секунд (время перезарядки).
- Триггер
- CruiseMissileLaunch.sqf
Пример в триггере
[Tonk, VLS, 3, 300, false, 35, 1] execVM "CruiseMissileLaunch.sqf"
- Примечание 1: Стрельба по объектам возможна если это юниты, техника (включая турели), и другие объекты, кроме тех, что находятся в группе "Структуры" (при игре без модов)
- Примечание 2: Почти все объекты из модов (почти!) могут быть целью сами по себе. Объекты из CUP и Q&T Expansion (даже деревья и здания) спокойно работают мишенями.
- Примечание 3: Если хочется использовать ракеты в качестве поддержки, то в _target прописывать cursorObject или cursorTarget.
- Примечание 4: Для стрельбы кластерными ракетами нужно где-нибудь прописать турели смену магазина (перезарядка будет долгой, очень долгой)
Вызов поддержки ч2
Добавлено условие на досрочное окончание
- Триггер
- Artobstrel.sqf
- Триггер
- CruiseMissileGuided.sqf
[Spotter, VLS, false] execVM "CruiseMissileGuided.sqf";
- Примечание 1: Скрипт строго одноразовый. То есть для возможности повторного пуска ракеты нужно запустить его еще раз
- Примечание 2: Минимальное время между запусками - 16 секунд. Если активировать скрипт еще раз до завершения перезарядки, то ничего не произойдет
- Триггер
- Paradrop.sqf
Пример в триггере
[getPos player, "B_MRAP_01_F", 50, 0, [["arifle_MX_SW_F", 5], ["B_Carryall_ocamo", 5]], true] execVM "Paradrop.sqf";
Вызов поддержки ч3
- Триггер
- Paratroop.sqf
Пример в триггере
[Paragroup, "B_T_VTOL_01_infantry_F", player, 180, 500, 300, 1000] execVM "Paratroop.sqf";
Пример в ините одного из юнитов группы
[group this] execVM "Paratroop.sqf"
Таймер
Стратегическая карта
- Папка scripts
- osm.sqf
1. На предмете, на котором будет кнопка «Открыть стратегическую карту» вешаем это:
this addAction ["Открыть стратегическую карту","scripts\osm.sqf",[false],1,false,true,"","(_target distance _this) < 3"];
2. Перед тем как открыть «Стратегическая карта» , надо дать команду показать на ней места заданий, иначе ошибка. Можно сделать триггер и в "При активации" добавить это :
showAAATask = true;
showArtyTask = true;
showHeloTask = true;
3. Далее создаем 7 маркеров(в моем случае) (я выбирал пустые, чтобы их не было видно на простой карте)
Теперь вписываем в имя переменной mrk_AAA, mrk_Arty, mrk_Helo, base (откуда вы будете стартовать) это для заданий
Так же вписываем в оставшиеся 3 маркера - mrk_startAAA, mrk_startArty, mrk_startHelo это для позиций куда телепортировать игрока.
4. Теперь сам скрипт
На карте
Кампания
- Удобно встраивать моды. Можно просто закрепить, как необходимый контент и все его скачают.
- Дисплей видит только хост.
- Так как это идет как мод, то можно встраивать свои локальные моды. (Не рекомендую публиковать ворованный контент в общий доступ, только для своих ребят.)
- Все миссии в одном "файле", да еще и красиво оформленном.
- Не уверен, но вроде не требует скачивания файлов миссии при загрузке на сценарий.(если конечно кампания скачана)
Первое, что мы должны сделать, это создать свои миссии.
Второе — создаем 5 файлов (можно 4). Не считая файла .pbo.
- Coop
- Missions
- pic(необязательно, для картинки-интро)
- config.cpp
- Description.ext
В Coop должны лежать папка Missions и Description.ext. В папке Missions ваши миссии. В моем случае их 3.
Папка pic у меня служит для картинки-интро. Можете не использовать ее, просто закинув картинку в pbo.
config.cpp лежит так же, как и Coop. Просто в pbo'шнике.
- Бриф нейм вашей миссии из config.cpp
- Название из description.ext вашей миссии. Сделал специально разные названия, чтобы был заметен контраст где откуда берется.
Вот так: briefingName = "Пролог. ВЧ-71882."; - Картинка из description.ext вашей миссии. overviewPicture.
- Текст из description.ext вашей миссии. overviewText.
Обновления рук-ва
Здесь будет информация о последнем обновлении руководства
+Своя картинка на задании в миссии
+Подобрать "интел"
* Небольшое изменение в Важных и "средних" скриптах
* Небольшое изменение в названии последнего скрипта
+Выход из черного экрана
+Плавное появление текста
+Обратный отсчет
+Эффект будто вас ранило
+Еще текстуха
+Статья AAN(новости)
+Своя музыка на машине\радио(объекте)
+Стратегическая карта
+Мод добавляющий скрытые предметы
+Своя картинка и текст на листе, газете и прочее
+Увеличить или уменьшить объект
+Альтернатива текста на экране
+Телепорт на заданный маркер
+Эффект синего ПНВ
+Цветной текст
+Сейв зона
+Альтернатива "радио на объекте"
+Заблокировать инвентарь транспорта
+Альтернатива. Бот перестает двигаться
+Динамическая прорисовка объектов
+Закрыть двери в здании
+Плавное появление картинки на экране
+Включаем фары у транспорта
+Контроль и атака
+Управление группами
+Анимация движения объекта
+Нашивка
+Очистить инвентарь машины
+Условия
*Редактирование скринов(увеличение их в размере), добавление к ним таблиц где это было необходимо
+Еще одна альтернатива на текстуху (Текст посреди экрана)
+Виртуальный Зевс
*Подсказка
*Условия
+Радиопереговоры группы
*Радиомолчание группы
-Рейтинг
+Задать скорость для транспорта
*Сортировка скриптов влияющих на поведение ботов, см. Поведение ботов
*Редактирование
+Артобстрел v.2
+Стрельба по объектам (еще одна альтернатива)
+Подавляющий огонь
+Постобработка
*Принудительная посадка вертолета (скрипт ушел в поведение ботов)
+Пуск ракеты по лазеру
+Постобработка (14 цветов)
*Подавляющий огонь.Альтернатива
+Сброс ящиков/турелей/транспорта с парашютом
+Вызов поддержки ч3
+Десант
+Бесконечный боезапас
*Концовка
+Зацикливание звука
+Добавление / Удаление предмета в инвентаре
*Нашивка
*Закрыть двери у транспорта
*Затемнение экрана(подписал и добавил состояние OUT, помощь комментария)
*Обратный отсчет (стим перестал воровать символ)
// Немного увлекся созданием и обновлением мода. Про рук-во я помню всегда, оно закреплено в профиле, о таком не забудешь☺. Просто щас небольшой кризис в создании сценариев и обновление рук-ва заморозилось.
+Удаление объекта после опустошения
This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.