Поиск сообщества
Показаны результаты для тегов 'ARMA 3'.
Найдено: 18 результатов
-
Просмотр файла Pirate Bay Вводная: КМП США необходимо уничтожить пиратскую группировку и захватить бухту. Количество слотов: КМП США (88) Техника: Форма: Пираты (72) Техника: Форма: Добавил MaDnEss Добавлено 28.04.2019 Категория WOG Количество участников 160 Год 2010 Время на миссию 120 Погодные условия Ясно, 05:00 Условие победы атаки Захват зон, уничтожение вражеской стороны Техника атаки Условие победы защиты Удержание зон, уничтожение вражеской стороны, по истечению времени Техника обороны Особенности миссии Тип WOG Остров Мальден 2035 Режим Захват/оборона Сторона WEST USMC Сторона EAST Сторона RESISTANSE Пираты Сторона атаки West Сторона обороны Resistance Тепловизор Выключен / OFF
- 76 ответов
-
- malden
- pirate bay
-
(и ещё 3 )
C тегом:
-
В данной теме предлагаю публиковать видео с Больших Игр.
- 912 ответа
-
Шпаргалка начинающего картодела - Алгоритм создания МП-миссий для WOG3
Sandy опубликовал тема в Картостроение
Алгоритм создания МП-миссий для WOG3 в 3D редакторе EDEN Необходимые программы: игра Arma 3 с набором аддонов для WOG3 (кубовог) текстовый редактор - Notepad++ или другой по вкусу любимый интернет-браузер графический редактор - Paint, Gimp или другой по вкусу программа для распаковки/запаковки файлов игры - PBO Manager (для продвинутых - Poseidon Tools или Mikero's Dos Tools) ИДЕЯ МИССИИ Первое и, наверное, самое сложное, что необходимо сделать - это придумать собственно идею интересной миссии, о чём она будет, на каком острове, тип миссии (захват/оборона зоны, доставка техники/объектов/ВИПа, охрана/уничтожение техники/ объектов/ ВИПа и т.п.), её сюжет и примерный сценарий, какие ключевые локации будут использованы в миссии и т.п. ПОДГОТОВИТЕЛЬНЫЕ ДЕЙСТВИЯ Составляем некое подобие "технического задания" на создание миссии (инструментарий тут индивидуален: кто-то предпочитает классику и ему привычны бумага и карандаш, а другой спит с планшетом и ему подавай Google Docs). Прикидываем/считаем, сколько юнитов персонажей и техники будет в миссии и в техзадании указываем все отделения и приписанную к ним технику. Расписываем, какие именно отделения и где стартуют, в каком порядке они будут отображаться в лобби. Определяемся, будут ли использоваться какие-либо ключевые для миссии объекты. Делаем наброски текстов для брифинга (вводная, задачи сторон, дополнительная информация, разведданные, условности и т.п.). Не забываем, что по форме судят о содержании и небрежно составленные тексты могут вызвать у игроков чувство отторжения к миссии еще на этапе брифинга. Создаем картинку для экрана загрузки миссии loadscreen (в формате *.paa или *.jpg) с соотношением сторон 2:1 (рекомендованный размер изображения 1024x512 пикселей, размер файла до 80KB). При желании можно конвертировать файлы из формата *.jpg в формат *.paa утилитой TexView 2 из состава пакета Arma 3 Tools (Steam-Библиотека-Инструменты), но это не обязательно, т.к. движок Arma 3 научился понимать формат *.jpg и для экрана загрузки его достаточно. Всё, теперь можно приступать к собственно созданию миссии. Запускаем Arma 3 с набором аддонов для WOG3 , т.е. также как и при заходе на сервер для очередной игры. Также в строку запуска можно добавить параметр -showScriptErrors для отображения ошибок скриптов. Дальнейший порядок действий может быть произвольным, но логичным представляется следующий. СОЗДАНИЕ, СОХРАНЕНИЕ, ПЕРВОНАЧАЛЬНАЯ НАСТРОЙКА МИССИИ 1) Из главного меню игры заходим в редактор (SINGLEPLAYER > EDITOR), выбираем остров и запускаем 3D редактор нажатием кнопки CONTINUE. Тем, кто впервые заходит в 3D редактор, стоит сразу произвести его первоначальную настройку (Settings > Preferences) по своему усмотрению, например, так: Рекомендуется также просмотреть встроенный туториал (Help > Tutorials…) и почитать официальную документацию по редактору. 2) Сразу сохраняем файл миссии (Scenario > Save As…) в формате wog_mission_for_dummies_1a_190 в папке MPMissions (мы ведь создаём мультиплеерную миссию). Проверяем, что снята галочка с бинаризации файла (бинаризировать файл мы будем уже в самом конце, когда миссия будет готова, при её экспорте в мультиплеер). Все дальнейшие действия будут демонстрироваться на примере гипотетической миссии "Миссия для чайников", в которой присутствуют 2 стороны: FIA (атака, 100 слотов) и CSAT (оборона, 90 слотов), задача FIA захватить базу CSAT, используется только транспортная техника. Подробнее о правилах оформления миссии для WOG3 внимательно читаем в соответствующей теме на форуме. В дальнейшем после существенных правок в миссии не забываем периодически сохраняться (сочетание клавиш Ctrl+S). В редакторе также есть функция автосохранения, частота которого настраивается в Settings > Preferences. Доступ к сохранённым миссиям осуществляется подобным же образом (Scenario > Open...). После первого сохранения будет создана папка миссии, которая будет находиться в папке того профиля, под которым мы зашли в редактор и сохранили миссию, например: C:\Users\имя_пользователя\Documents\Arma 3 - Other Profiles\имя_профиля\MPMissions\wog_mission_for_dummies_1a_190.Название_Острова В этой папке должны храниться все файлы миссии. Каждый раз при создании/переименовании миссии средствами редактора создаётся новая папка миссии с новым названием. Во вновь созданной папке изначально присутствует только основной файл миссии mission.sqm, который генерируется редактором. Остальные файлы необходимо добавлять/создавать вручную. 3) Подключаем и настраиваем модули WMT/Main и WMT/Time (для чего эти модули нужны и как их настроить читаем в документации по WMT - тема на форуме, тема на форуме 2, github). Для этого, находясь в редакторе, переключаемся в режим редактирования модулей (клавиша F5 - Systems > Modules), и щелчком ЛКМ выбираем из списка необходимые модули и перетаскиваем их на любое пустое место на карте. Двойной щелчок ЛКМ по поставленному на карту модулю открывает диалоговое окно его настроек. Не забываем пройтись по всем параметрам модулей, т.к. настройки по умолчанию в настоящее время, как правило, не соответствуют требованиям к миссиям для WOG3. Для удобства редактирования миссии параметр модуля WMT/Time - Prepare time (min) можно временно выставить в ноль, чтобы при прогрузке в игру для проверки миссии не было фризтайма, но перед окончательным сохранением не забываем вернуть стандартное значение - 3 минуты. 4) Настраиваем основные параметры миссии. В старом 2D редакторе почти все эти параметры настраивались(ются) во внешних файлах, таких как description.ext, init.sqf и др. Теперь часть настроек в новом 3D редакторе перенесли в раздел Attributes. Тем не менее, кому удобнее по старинке использовать внешние файлы, могут продолжать это делать, т.к. параметры миссии, указанные во внешних файлах, имеют приоритет на параметрами, заданными в 3D редакторе. Однако необходимо иметь в виду, что по новым требованиям к миссиям использование внешнего файла description.ext имеет ограничения. a) Редактируем раздел Общие настройки (Attributes > General...) Заполняем и настраиваем поля как на скриншоте: Название миссии для меню выбора миссий и лобби мультиплеера, в формате: wog Миссия для чайников 1a 190 Автор миссии Картинка для меню выбора миссий Текст описания миссии для меню выбора миссий Картинка для экрана загрузки Краткий текст или слоган для экрана загрузки Снимаем галочку “Enable Saving” (обязательно) Консоль отладки “Available only in editor” (обязательно) Если в миссии присутствует сторона RESISTANCE/INDEPENDENT (зелёные), определяем их дружественность/враждебность со сторонами BLUFOR (синие) и/или OPFOR (красные). По новым требованиям сторона зелёных должна быть враждебна всем. Снимаем галочку “Binarize the Scenario File” (но не забываем, что её нужно будет поставить обратно перед экспортом миссии в мультиплеер) b) Редактируем раздел Настройки Мультиплеера (Attributes > Multiplayer...) Заполняем и настраиваем поля как на скриншоте: Подраздел Type не трогаем и оставляем всё по умолчанию Краткое описание миссии для лобби мультиплеера (по шаблону: <фракция атаки> vs <фракция обороны>) Поставить галочку “Enable AI” Тип респауна изменить на “Switch to Spectator”, поставить галочку “Spectator” c) Редактируем раздел Окружение (Attributes > Environment...) Заполняем и настраиваем поля: указываем внутриигровые дату и время начала миссии настраиваем погоду по своему усмотрению d) Раздел Уборка мусора (удаление тел и обломков техники) (Attributes > Garbage Collection...) не трогаем и оставляем всё по умолчанию. После этого останется только указать название миссии для экрана загрузки в файле description.ext и первоначальную настройку миссии можно считать завершённой. //файл description.ext onLoadName = "Миссия для чайников"; //Название миссии для экрана загрузки Как всё должно выглядеть в меню выбора миссий Как всё должно выглядеть лобби мультиплеера Как всё должно выглядеть на экране загрузки миссии РЕДАКТИРОВАНИЕ ФАЙЛОВ В корневом каталоге миссии создаем/копируем/редактируем файлы description.ext, init.sqf, briefing.sqf (скачать примеры файлов). Туда же помещаем картинку loadscreen.jpg (назвать её можно и как-то иначе). Для брифинга используем те самые тексты, о подготовке которых мы позаботились заранее. Не забываем, что разделы брифинга в игре будут отображаться в обратном порядке, в отличие от того, в котором они указаны в файле брифинга. Для корректного отображения кириллицы файлы брифинга необходимо сохранять в кодировке UTF-8. В брифинге можно использовать теги гипертекстовой разметки html, например: Для перевода строки используется тег <br /> Ссылка на маркер на карте оформляется тегом <marker name='имя_маркера'>где-то здесь</marker> Цвет шрифта меняется тегом <font color='#FFCC33'>важный текст</font> , где #FFCC33 - hex-код нужного цвета Картинки вставляются при помощи тега <img image='my_cat.jpg' /> Размер картинки можно подогнать внутри тега <img> атрибутами ширины и высоты, например, <img image='my_cat.jpg' width='300' height='100' /> Если планируется кастомизация экипировки и снаряжения персонажей и/или техники, для упорядочивания кучи скриптов имеет смысл создать отдельные папки, где будут храниться эти самые скрипты (например, tpl\nato_at.sqf или tmplt\fia_sl.sqf). Если есть картинки для брифинга и их больше одной, их тоже можно закинуть в отдельную папку (например, pics\vip_csat.jpg). РАССТАНОВКА ЮНИТОВ 1) Расставляем юниты (в режиме F1 - Objects) персонажей и техники. Отделения желательно сразу создавать в том порядке, в котором они будут отображаться в лобби (если в процессе редактирования мы нафакапили с порядком отделений, есть способы это исправить). Окно редактирования свойств объектов в 3D редакторе вызывается двойным щелчком ЛКМ по объекту или выбором пункта Attributes... из контекстного меню объекта, которое в свою очередь открывается по щелчку ПКМ по объекту. Редактируем параметры персонажей. Первый поставленный на карту персонаж будет иметь параметр Object: Control / Player (checked, активно), Playable (checked, неактивно) - его менять не обязательно. Всем остальным персонажам необходимо прописывать в свойствах параметр Object: Control / Playable. Отличить, кем контролируется персонаж, можно по цвету обрамления вокруг иконки персонажа: красный - Player, лиловый - Playable, без обрамления - AI. Командирам отделений в параметре Role Description указываем их роль и приписанную технику (в круглых скобках), а при необходимости и место старта или другую важную информацию (в квадратных скобках), например, 1: Командир отделения (Мотострелки, MSE-3 Marid) [база Пиргос]. При необходимости подобные настройки можно делать и у других членов отделения, так как этот параметр помогает определиться игрокам при выборе слотов в лобби мультиплеера. Если отделение формируется из одиночных юнитов, их необходимо группировать в одно отделение. Стандартные отделения из пресетов выбираются в режиме редактирования композиций (F2 - Compositions). Если отделения одинаковые, то настроив полностью одно отделение, можно его скопировать и вставить еще одно такое же на карту без утомительного редактирования свойств каждого юнита. Не забываем, что технику на карту, как правило, необходимо ставить пустой (без ботов). Для этого перетаскивать объект из Assets браузера необходимо с зажатой клавишей Alt (иконка объекта при этом изменится с цвета фракции на желтую). Кстати, в Виртуальном Гараже можно заранее проверить вместимость любой техники, чтобы потом не было неудобных ситуаций, когда кому-то из отделения не хватает места в приписанной технике. Отделения и технику необходимо расставлять на разумном расстоянии друг от друга. 2) При необходимости редактируем инвентарь, внешний вид и другие параметры юнитов персонажей и техники. Экипировку персонажей можно редактировать непосредственно из 3D редактора. Для этого по щелчку ПКМ по объекту в контекстном меню выбираем пункт Edit Loadout... и, сделав необходимые изменения, подтверждаем их нажатием кнопки ОК. Кастомизацию персонажей можно также делать и по старинке - через внешний файл в формате *.sqf. Для этого, находясь в Арсенале, проводим необходимую кастомизацию персонажа. Экспортируем результат в буфер обмена нажатием кнопки WOG:EXPORT и выходим из Арсенала без сохранения изменений нажатием кнопки CANCEL (или ESC). Из буфера обмена сохраняем всё в файл формате *.sqf, например, tpl\nato_at.sqf в папку с миссией. В инит персонажа прописываем строку this call compile preprocessFileLineNumbers "tpl\nato_at.sqf"; Подобные действия можно произвести и с техникой (или любым другим объектом), правда уже без помощи Арсенала. Например, если нужно убрать содержимое инвентаря, сделать ретекстур, добавить конкретные предметы в инвентарь, урезать/модифицировать вооружение, задать уровень урона или топлива, или любые другие настройки, то необходимый код прописывается в скрипте *.sqf, файл которого подключается в ините конкретного объекта таким же образом. Необходимые класс-неймы и функции ищем в документации Arma 3 Assets, RHS или ACE3. Инвентарь техники можно также редактировать непосредственно из 3D редактора. Для этого двойным щелчком ЛКМ по объекту открываем окно его свойств (или по щелчку ПКМ по объекту в контекстном меню выбираем пункт Attributes...) и изменяем необходимые позиции в разделе Object: Equipment Storage. В любом случае не забываем, что в инвентаре техники желательно очищать дефолтное наполнение и помещать туда только необходимое. Моды также добавляют и другие настраиваемые параметры для техники. Например, в разделе Object: ACE Options можно назначить любую технику ремонтной (что позволяет выполнять полный ремонт инженерам) или медицинской. А некоторые виды техники из RHS в разделе Object Specific - Object: имеют настраиваемый камфуляж или вид боеприпасов. 3) При необходимости расставляем дополнительные объекты (дома, бункеры, укрепления, мебель, мусор, неподвижную технику и т.п.). Благо теперь в 3D редакторе это можно делать простым перетаскиванием. При этом, если объекты ставятся друг на друга (например, ноутбук на стол) либо не в дефолтной ориентации по осям (при использовании виджетов трансформации), рекомендуется в свойствах этих объектов отключать симуляцию, иначе при прогрузке в игровой мир эти объекты могут проваливаться, отскакивать друг от друга или менять своё положение по "законам физикса". Если планируется серьезное строительство с использованием большого количества объектов, например, при постройке укреплённой базы, то имеет смысл вынести все эти объекты, разумеется кроме ботов, техники и ящиков с экипировкой, в отдельный файл (например, base.sqf) в папке с миссией, скрипт которого потом вызывать через init.sqf командой [] execVM "base.sqf"; (для экспорта объектов в скрипт можно использовать Runtime 3D Editor by [STELS]Zealot ). МАРКЕРЫ И МОДУЛИ ЗАДАЧ Расставляем и синхронизируем необходимые маркеры (F6) и модули платформы WMT (F5) в зависимости от задач (захват зоны WMT/Task:Point + WMT/Task:Capture Points, доставка объектов WMT/Task:Arrive, уничтожение ВИПа WMT/Task:VIP, уничтожение объекта WMT/Task:Destroy и т.п.). Например, для нашей миссии по захвату зоны необходимы: 1) Маркеры-флаги (F6 - Markers > Icons) места старта сторон, назовём их wmt_fia1_del и wmt_csat1_del. Префикс wmt_ и окончание _del в имени маркеров необходимы, чтобы эти маркеры исчезали сразу после фризтайма. 2) Маркер зоны (F6 - Markers > Areas), назовём его zone1 3) Модули (F5 - Systems > Modules) задач WMT/Task:Point (в нашем случае один, т.к. зона всего одна, а так нужен по одному на каждую зону) и WMT/Task:Capture Points (для подсчёта захваченных зон и завершения миссии). Синхронизируем модули. Для этого вызываем контекстное меню модуля WMT/Task:Point щелчком ПКМ, выбираем Connect > Sync To и протягиваем появившуюся линию связи к модулю WMT/Task:Capture Points. Синхронизация конкретно этих модулей более не является обязательной и её наличие или отсутствие ни на что не влияет, т.к. условие не проверяется в коде модуля. В миссию по необходимости можно ставить и другие модули (например, ACE3), но прежде сверяемся со списком разрешённых модулей, указанным в требованиях к миссиям. ПОЛЕЗНЫЕ ТРЮКИ Пустая техника Принадлежность техники Техника противника в брифинге Маркеры для определенной стороны ДВ-рация в гражданской технике Шифрование ДВ в технике ПРОВЕРКА И ЭКСПОРТ МИССИИ В МУЛЬТИПЛЕЕР Проверяем работу миссии в мультиплеере. Для этого, находясь в 3D редакторе, в панели меню выбираем Play > Play in Multiplayer (MP). Далее всё как обычно - создаем сервер, становимся на слот и запускаем миссию. Ищем ошибки, начиная от порядка отделений в лобби и текста брифинга для всех сторон и заканчивая проверкой корректности работы скриптов (например, выдачи экипировки) и срабатывания триггеров выполнения задач. Такой способ называется проверка миссии на "локальном сервере". В большинстве случаев этого достаточно. Но если в миссии используются скрипты и триггеры помимо стандартных модулей WMT, проверку миссии рекомендуется осуществлять на т.н. "выделенном сервере", который можно также запускать на своем ПК. Однако описание процесса установки и настройки выделенного сервера выходят за рамки данной статьи (желающие могут ознакомиться с гайдом на официальном форуме или wiki разработчиков). Если миссия проверена и готова, снова заходим в раздел Общих настроек миссии (Attributes > General…), ставим галочку "Binarize the Scenario File", в последний раз сохраняемся (Ctrl+S) и экспортируем её в мультиплеер (Scenario > Export > Export to Multiplayer). Редактор запакует миссию в формате *.pbo и сохранит её в папке MPMissions в корневой папке игры, например по адресу: C:\Programs (x86)\Steam\steamapps\common\Arma 3\MPMissions\. ПРОФИТ Загружаем файл миссии *.pbo на файлообменник (желательно с неограниченным временем хранения, например, Dropbox или Яндекс.Диск), создаем тему на форуме ВОГа в разделе для А3 и ждём, когда миссию проверят и поставят в ротацию. Полезные ссылки: Руководство по редактору Arma 3 для начинающих Справочник BI wiki - редактор миссий (F1 юниты, F2 группы, F3 триггеры, F5 синхронизация, F6 маркеры, F7 модули) Миссии из полигона WOG3 Требования к миссиям для ВОГа Справочник wiki BIStudio - файл Description.ext Справочники по WMT (тема на форуме, тема на форуме 2, github) Сохранение результата кастомизации инвентаря в Арсенале Справочник wiki BIStudio - класс-неймы доступных объектов Arma 3 Assets Раздел на форуме по документации ACE3 Модули ACE3 Класс-неймы ACE3 Класс-неймы RHS Аддон 3-d редактора @3d_editor by [FRWL] Ezhuk Runtime 3D Editor by [STELS]Zealot Гайд по настройке выделенного сервера -
https://steamcommunity.com/sharedfiles/filedetails/?id=1472073760
-
ТЕХНИКУ ЭКИПАЖУ! Описание: Скрипт предназначен для ограничения доступа лиц, не причисленных к экипажу, от управления специализированной техникой. Принцип работы очень прост - вешаем Event Handler (Обработчик событий) на нужную технику/класс техники и каждый раз, когда в указанную вами технику кто то будет садиться, класс-нейм этого человека будет сравниваться с указанным в массиве. Список использованных команд и выражений: worldSize nearEntities ! && forEach addEventHandler moveOut switch assignedVehicleRole Рассмотрим пример: В данном примере рассмотрим принцип реализации скрипта и для наземной техники и для воздушных судов (вертолетов). В init.sqf вставляем следующий код: Разберем его по частям для того, чтобы понять, что за что отвечает: _arrayOfVeh = [worldSize/2,worldSize/2] nearEntities ["Tank", worldSize/sqrt 2]; _arrayOfHeli = [worldSize/2,worldSize/2] nearEntities ["Helicopter", worldSize/sqrt 2]; typesOfVehCrew = ["wog_ksor_sergeant", "wog_ksor_officer_armored", "wog_ksor_driver_armored", "wog_ksor_crew_commander", "wog_ksor_crew_gunner", "wog_ksor_crew_driver", "wog_army_ucp_crew_commander", "wog_army_ucp_crew_gunner", "wog_army_ucp_crew_driver", "wog_army_ucp_squadleader", "wog_army_ucp_officer", "wog_army_ucp_Plsg"]; typesOfVehHeli = ["wog_ru_Helipilot"]; EjectSeat = {if !(typeOf (_this select 1) in typesOfVehCrew) then {moveOut (_this select 1)};}; 1. Зададим 4 массива: а) _arrayOfVeh && _arrayOfHeli - с помощью nearEntities из центра карты будем искать всю технику с родительскими классами "Tank" (это танки, БМПшки и пр.) и "Helicopter" (соответственно вертолеты). Центр карты задаем в виде: [worldSize/2,worldSize/2] где worldSize - это функция (или скорее переменная), которая возвращает длину/ширину карты. Ну и соответственно делим длину и ширину на 2, таким образом получая координаты x и y для центра; последний worldSize/2, который идет в массиве после классов "Tank" и "Helicopter", есть радиус описанной окружности вокруг квадрата: б) Все, с наполнением массивов техникой мы покончили. Теперь зададим вручную два новых массива typesOfVehCrew и typesOfVehHeli. Если честно, сейчас я и не припомню, почему они не приватные. Видимо на момент написания возникали проблемы с их чтением в EH (Event Handler - будет объяснено ниже). В первый массив мы записываем класс-неймы (не путать с названием бойца) бойцов, которые могут управлять боевой наземной техникой с классом "Tank". В данном примере, это офицеры (КО) и непосредственно экипаж. Во второй массив вносим пилотов. 2. Зададим функцию EjectSeat, которая понадобится нам позже. Для тех, кто не совсем понимает, в чем разница между функцией и переменной, попытаюсь на пальцах объяснить разницу не претендуя на преподавательское искусство, ибо сам в некоторых моментах не силен -_- (в конце концов, можете сами почитать =)): Переменная, это такая коробочка на которой написано название. Она хранит в себе какой-то объект (число, массив, символ). Функция - фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. a = 1; - переменная _b = worldSize; - приватная переменная c = [0,1,2,3]; - переменная doCount = { count с; }; - функция. В ней содержит код, который посчитает кол-во элементов в массиве c Вторая часть: Здесь мы создаем 3 Event Handler'a Если мы обратимся к английскому словарю и дословно переведем Event - событие и Handler - обработчик, то получим Обработчик событий. Принцип его действия в арме довольно таки прост. Товарищи из BIS заранее подготовили для нас список действий, на которые можно повесить Event Hadler, дабы выполнять по завершению указанного действия свой код. Вам нужно зарядить снаряд в РПГ после выстрела? Воспользуйтесь EH на действие Fired. Хотите дать под пятую точку тому, кто не должен сидеть на месте стрелка танка? EH на GetIn в вашем распоряжении! Обращаю ваше внимание на то, что разные EH отрабатывают на разных объектах. Так например EH на действии "GetIn" должен висеть только на технике (таково его изначальное устройство и функционал). А вот если вы будете использовать "GetInMan" , то EH отрабатывать на человеке, а не на технике. Запутались? Это легко! EH "GetIn" в нашем примере работает на массив из техники -> _arrayOfHeli и _arrayOfVeh. Когда любой боец будет залезать в данную технику, EH будет передавать определенный массив данных. Для нас это будет выглядеть так: [класс техники, в которую залез боец, место которое он занял в машине (стрелок, водитель, пассажир), имя бойца, позиция на турели (у каждой техники это разный массив)]. EH "GetInMan" будет работать только на указанного/-ых вами игроков. Вам нужно сделать так, чтобы VIP не мог залезть в технику и уехать? Самое время повесить на него EH! Теперь, самое важное. Как я уже написал выше, когда вы создаете в своей миссии какой-либо EH, то после того, как будет совершено действие, на которое EH повешен, этот самый EH передаст игроку массив данных, которым вы сможете оперировать в своих целях. Разберемся на самом первом EH из примера: { _x addEventHandler ["GetIn", { if (((_this select 1) == "driver") && !((typeOf (_this select 2)) in typesOfVehCrew)) then { moveOut (_this select 2); }; }]; } forEach _arrayOfVeh; Синтаксис для создания EH: объект addEventHandler [Тип, {команда/код на выполнения после действия определенного типа}] _x это зарезервированная переменная для многих команд, в том числе и для команды forEach Таким образом, команда forEach будет перебирать каждый/-е объект/-ы из массива, который будет указан после него. Для того, чтобы нам не подставлять каждый раз класс-нейм техники, мы просто берем каждый класс-нейм автоматически с помощью forEach и подставляем его на место _x. Список таких переменных как _x и соответствующие им команды вы можете глянуть в блоге KK. Итак, создаем (addEventHandler) EH на действие "GetIn" (Войти в технику) и прикрепляем этот EH на все элементы массива _arrayOfVeh, каждый из которых подставится сам вместо _x. Дело за малым. Теперь, когда кто то залез в технику, мы должны понять, есть ли у него разрешение на то, чтобы сесть в эту технику и, если нет, то выгоняем. Еще раз напоминаю вам вид массива, который мы получим конкретно на EH "GetIn": [класс техники в которую залез боец, место которое он занял в машине (стрелок, водитель, пассажир), имя бойца, позиция на турели (у каждой техники это разный массив)] или на англ. [vehicle (object), position, unit, turret] Записываем простенькое условие: if (((_this select 1) == "driver") && !((typeOf (_this select 2)) in typesOfVehCrew)) then { moveOut (_this select 2); }; Если (игрок залез на водителя && игрок не находится в списке typesOfVehCrew) тогда { выкинуть этого игрока из машины}; где && - это символьная альтернатива союзу И; символ "!" является отрицанием, т.е. заменяет собою отрицание "не", _this select цифра - считываем нужный элемент массива. Нумерация элементов во всех массивах начинается с 0. В нашем массиве 4 элемента - [0,1,2,3]. Ну и далее по аналогии делаем тоже самое для вертолетов и для отслеживания на наземной технике момента, чтобы игрок не мог сесть еще и на стрелка. Заключительная часть: Нам осталось разобрать последнюю часть кода, которая отвечает за создание EH на действие "SeatSwitched" (пересесть): { _x addEventHandler ["SeatSwitched", { _assignedVehicleRoleArray = assignedVehicleRole (_this select 1); switch (_assignedVehicleRoleArray select 0) do { case "driver": { //driver call EjectSeat; }; case "Turret": { switch (str (_assignedVehicleRoleArray select 1)) do { case "[0]": { //gunner call EjectSeat; }; default {}; }; }; default {}; //cargo }; }]; } forEach _arrayOfVeh; Создание EH происходит по стандарту. Массив, который выводит EH: [техника на которую закреплен EH, место на которое пересел игрок, некорректно отрабатывающийся параметр] или на англ. [vehicle, unit1, unit2]; [0, 1, 2]; Создадим приватную переменную, в которую по действию "пересесть" будет записываться массив с названием места и номером туррели, на которое пересел игрок (т.к. в вертолете невозможно пересесть со стрелка на пилота и обратно, то данный EH подключаем только на наземную технику). Затем, используем switch. Эта команда будет искать в "case'-ах совпадения и если таковые будут найдены, то будет выполнен код. В нашем случае это работает так: //Переносы строк в представленном описании сделаны для вашего удобства при чтении switch (условие: выбрать 0й элемент массива _assignedVehicleRoleArray, в котором указано название места, на которое пересел игрок) делай { если условие совпадает с "driver" то тогда вызвать функцию EjectSeat, которая проверит, указан ли класс-нейм бойца, за которого играет игрок в качестве экипажа или нет и если нет, то выкинет его из техники }; Тот же самый ход был проделан и со стрелком, но там брали 1й элемент массива, т.к. с 0м при пересадке на стрелка были какие-то проблемы. На этом все. Хотелось охватить и представить как можно больше информации и донести ее доступно, дабы ею могли действительно воспользоваться. Надеюсь, получилось достаточно информативно и в то же время не сильно скомкано. Особую благодарность хотелось бы вынести г-у @StDIABLO, который помог во всем этом деле разобраться. P.S. Не уверен в корректной работе некоторых EH, в частности "SeatSwitched", ибо их работоспособность зависит от BIS'ов. Для более прошареных игроков - используйте альтернативные функции CBA
- 19 ответов
-
- WOG³
- StDIABLO&Co
-
(и ещё 2 )
C тегом:
-
mWOG Простреливаемая улица 143 (Переделка миссии "На улице война" под формат mWOG) Остров: Бекетов Число слотов: 143 (77vs66) Время на миссию: 100 мин Стороны: <Атака>МСВ vs Повстанцы<Оборона> Погодные условия: Ясно, 18:00 Вводная: Недавно случился коррупционный скандал связанный с местной властью. Мэр города и его администрация путем афер переписали на себя участки земли в центре города, однако это утекло в СМИ. Народ взбунтовавшись вышел на улицу свергать коррумпированную власть, вместе с перешедшей на сторону народа местной полицией. Однако, столичные покровители виновника сих событий, послали в Бекетов регулярные войска для подавления восстания. Обзор ситуации на карты: Условия победы: Победа Красных: Захвачен центр города. Победа Зеленых: Центр города остается за Зелеными. Доступная техника: Красные: 2х БТР-80 Ми-8 5-7х ГАЗ Тигр БПЛА Зеленые: БРДМ-2 Урал, Шишиги + гражданский транспорт в городе Дополнительно: На пути в городу отряд МСВ попал в засаду, в следствии чего, потерял технику. Сейчас они ожидают эвакуацию. Ссылка на миссию: mwog_prostrelivaemaja_ulizca_1a_143.Beketov.pbo
-
Просмотреть файл Last Stand Вводная: Войска РФ несут тяжелые потери в регионе Такистана, остался единственный опорный пункт Муладост, если красные его потеряют, то война будет окончена. Войска РФ ожидают подкрепления, оно должно пересечь границу Такистана через полтора часа, если красные не сумеют удержать Муладост до подхода подкрепления, они будут разбиты. Автор Makaveli Добавлен 07/21/16 Категория mWOG +1 Количество участников 081 Год 2010 Остров Takistan Тип mWOG Радио оснащение Полное В атаке U.S. Army В обороне ВС РФ Режим Захват/оборона
-
Доброго времени суток! После выхода в свет обновления Apex (11.07.16), BIS'ы полностью отказались от старого 2D редактора в пользу нового 3D EDEN. Как вы уже все наверно знаете, после создания миссии ее предпочтительно забинарить, что позволяет снизить ее объем в некоторых случаях аж в 2 раза. Однако вы можете столкнуться с такой проблемой, как обновление нашей сборки, что не позволит открыть вам вашу миссию в редакторе, т.к. в ней будут присутствовать отсутствующие моды. Возникает целесообразный вопрос: "Что делать?" Ответов на этот вопрос думаю существует много. Я же опишу лишь один способ быстрого разбинаривания mission.sqm для дальнейшей его правки. Шаг 1. Откройте Проводник. На верхней панели нажмите закладку Вид - Параметры. В открывшемся окне снова выберите закладку Вид и в списке найдите и снимите галочку с пункта "Скрывать расширения для зарегистрированных типов файлов" Шаг 2. Откройте Steam - Библиотека - Инструменты и выберите на установку Arma 3 Tools: Шаг 3. Распакуйте вашу_миссию.pbo, если она не распакована, либо перейдите в папку миссии. В этой папке, переименуйте mission.sqm в mission.sqm.bin: Шаг 4. Убедитесь, что Arma 3 Tools установлен. Двойной клик на mission.sqm.bin. У вас откроется окно выбора программы, нажмите "Дополнительно" - "Найти другое приложение на этом компьютере". Теперь в окне проводника пройдите в папку, куда был установлен Arma 3 Tools\СfgConvert и выберите BINToCPP.bat Шаг 5. Вам осталось лишь переименовать mission.sqm.cpp в mission.sqm и поправить в нем список аддонов. Обращаю ваше внимание на то, что теперь вам не нужно каждый раз выбирать программу для разбинаривания. Достаточно будет лишь поменять название файла, добавив к нему .bin и нажать два раза ЛКМ. Файл автоматически разбинарится. Всем добра P.S. Существуют и альтернативные способы, например, использование утилит от MikeAero Уведомление на картоделов: @Barsik @Gollob @Bronenosec @MADBUG @Otto @DenusKO @Ocelot @Zwierdik @GLEB @Sandy @CTPEJIKuH @Aus @Shinral
-
Простое создание объектов вида createSimpleObject в редакторе 3DEN
StDIABLO опубликовал тема в Мастерская
Решил тут запариться и совместить лучшее из редактора (я тащился от локальных/глобальных объектов) ежика с eden Получился аддон http://steamcommunity.com/sharedfiles/filedetails/?id=694171151 В пару кликов меняются параметры объекта и также в паку кликов делается код для скрипта (если делаете в init.sqf) или триггер прям на карте версия пока 0.91 (beta) есть недоработки 1) пока не сделал обратное превращение, сделаю позже обязательно. 2) Иногда неправильно выставляется направление объекта (техника) 3) забил на иконки и локализацию. 4) чек входных данных 5) перезапись триггера и слоя (дабы не плодить новые) Но все пофикшу :) Пинайте :)- 19 ответов
-
- Модификация
- ARMA 3
-
(и ещё 1 )
C тегом:
-
ВНИМАНИЕ! Обновление Arma 3 | 120 Мб Изменения в @WOG3_ACE & @ACE_BETA: Обновлен ACE до версии 3.6.1.0 Обновлен CBA Основной репозиторий: ftp://193.19.118.182/Updater_WOG/ArmA3Sync/WOG/.a3s/autoconfig Резервный репозиторий: ftp://195.62.53.180/WOG_Rep_2/.a3s/autoconfig
-
https://www.youtube.com/watch?v=bmH4IStmWIc
- 3 ответа
-
- wog
- iron front
-
(и ещё 1 )
C тегом:
-
Задам вопрос сюда, т.к. не знаю куда еще логичней обратиться. Мастера-аддоноводы, подскажите, тут такой вопрос(наверное уже проскакивал, но все таки). Можно ли реализовать запуск газотурбинного/дизельного двигателя танка с задержкой? А то танки, как спринтеры на команду марш стартуют с места, что, по моему мнению, не очень.
-
Как известно, в ванильной Аrma 3 довольно малый набор техники за каждую сторону. Возникла идея, дабы облегчить картоделам выбор техники для своих миссий, ретекстурировать технику одной стороны в технику других сторон. Это можно сделать либо приняв готовый аддон, либо создать папочку с текстурками в сборке ... Далее прошу приводить ссылки на аддоны с ретекстурами, которые вы хотели бы видеть на своих картах. Вот пока что нашел я: http://www.armaholic.com/page.php?id=26923 - CSAT AAF Vehicles http://www.armaholic.com/page.php?id=22163 - AAF Desert http://www.armaholic.com/page.php?id=27057 - Black BLUFOR Merlin http://www.armaholic.com/page.php?id=22621 - Blu Mohawk http://www.armaholic.com/page.php?id=27003 - Beazley's MAN truck Tempest retextures http://www.armaholic.com/page.php?id=24989 - BLUFOR IFV-Marid retexture http://www.armaholic.com/page.php?id=25166 - BLUFOR IFV-Mora retexture http://www.armaholic.com/page.php?id=26182 - Warrior FV510 Retextures http://www.armaholic.com/page.php?id=24899 - BLUFOR MBT-Kuma retexture http://www.armaholic.com/page.php?id=26109 - HEMTT Retexture Templates http://www.armaholic.com/page.php?id=26023 - Hunter Retexture templates http://www.armaholic.com/page.php?id=24903 - Meatys reskins - Blufor http://www.armaholic.com/page.php?id=24904 - Meatys reskins - Opfor http://www.armaholic.com/page.php?id=24905 - Meatys reskins - Indfor http://www.armaholic.com/page.php?id=27392 - Afghan National Army http://www.armaholic.com/page.php?id=22075 - Bundeswehr Retexture
-
Боян боянный, моду уже много времени освещён на всех проектах кроме нашего. Добавляю тред исключительно в ходе дискуссий на тему замены РХС миномётов с ванильным вычислителем. ЗЫ. Миномёт ржав, суров, плохо оттекстурирован, и в целом хрен попадёш без многочасовой сноровки - всё как нравиться А2шникам :)
-
Наткнулся на занимательную карту в воркшопе, суть в том, что с помощью нее можно создавать свою миссию через интерфейс Зевса. Архив на все карты: https://www.dropbox.com/s/00gj34q6msl9hpi/TSM_MB.rar?dl=0 Использование: Закидываете миссию в папку АРМЫ в стиме (можно в Missions или MPMissions, разницы никакой) Запускаете миссию Читаете инструкцию по применению Творите (для входа/выхода в режим зевка надо нажать Y) Нажимаете Сохранить миссию Создаете файл mission.sqm и закидываете туда все, что у вас в буфере, т.е. вашу миссию PROFIT Автор миссии: austin_medic
-
Знатоки, подскажите/покажите как сделать собственную ZEUS карту для А3. Надо для ивента, чтобы меньше работы зевсам было.
-
В процессе создания миссии я столкнулся с необходимостью изменения инвентаря у некоторых юнитов. Некоторое время порыскав в интернете и найдя необходимые мне команды я создал name.sqf для КО со след. данными: //sleep 10;_this addWeapon "NVGoggles";removeAllWeapons _this;_this addMagazines ["30Rnd_65x39_caseless_green", 6];_this addWeapon "arifle_Katiba_C_F";_this addPrimaryWeaponItem "optic_Hamr";_this addPrimaryWeaponItem "muzzle_snds_H";_this addItem "FirstAidKit";_this addMagazine "SmokeShell";_this addMagazine "SmokeShellRed";_this addMagazine "HandGrenade"; Другую сделал для остальных юнитов в отряде. В иниты бойцам и лидеру прописал соответствующую ссылку: this call {_this execVM "name.sqf"}; При тестовом запуске всё нормально, инвентарь становится таким, как мне необходимо, но при тесте в сети возникла проблема. Спустя некоторое время я нашел причину: Количество магазинов и аптечек в инвентаре бойцов умножаются на количество присоединившихся/зашедших в игру. Т.е. было 5 магазинов и 1 аптечка - зашел 2й игрок после хоста - стало 10 магазинов и 2 аптечки и т.д. В чем может быть проблема? Используется платформа Zealot'a.