Как сделать лего пейдей

Lego samodelka furgon payday2

Лего самоделка фургон payday2 Подробнее

Как сделать лего пейдей

LEGO PAYDAY 2: Big Bank robbery Подробнее

Как сделать лего пейдей

Самоделка: Лего кэмпер / MOC: Lego camper Подробнее

Как сделать лего пейдей

LEGO homemade van #4 / LEGO самоделка фургон #4 Подробнее

Как сделать лего пейдей

Самоделка #49 / как сделать полицейский фургон Подробнее

Как сделать лего пейдей

Лего мини фигурки по игре PAYDAY 2 и одна фигурка сталкера Подробнее

Как сделать лего пейдей

Lego постапокалипсис самоделка, фургон с мороженным Подробнее

Как сделать лего пейдей

Самоделка: Лего продуктовый фургон / MOC: Lego grocery truck Подробнее

Как сделать лего пейдей

Lego Wolf PayDay 2 Custom Minifigure [PlayHunterChan] Подробнее

Как сделать лего пейдей

Как сделать лего пейдей

LEGO PAYDAY 2: BANK ROBBERY Подробнее

Как сделать лего пейдей

LEGO самоделка Мини фургон Подробнее

Как сделать лего пейдей

Делаем Скорую помощь (модифицированная модель Lego Creator set 40079 ) Подробнее

Как сделать лего пейдей

Как сделать лего пейдей

Моя первая самоделка лего фургон Подробнее

Как сделать лего пейдей

Lego Animation Payday 2 Bank Job Подробнее

Как сделать лего пейдей

Lego PayDay 2 ( original ) Подробнее

Как сделать лего пейдей

Lego payday2 bank heist Подробнее

Как сделать лего пейдей

Lego custom minifigure: dallas Подробнее

Как сделать лего пейдей

Лего Броневой фургон (самоделки) Подробнее

Источник

Как сделать лего пейдей

Как сделать лего пейдей

Этот гайд полностью расскажет, как создать своё собственное ограбление.

Это просто, я обещаю!

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Как сделать лего пейдей

Не всем нравятся новые ограбления? Не было бы это хорошо, если бы ты мог создать своё ограбление, полностью с нуля?

Прежде чем ты сможешь сделать своё ограбление, тебе нужно будет сделать несколько вещей прежде этого.

ЗАМЕТКА: Система создания была изменена с тех пор как был написан этот гайд. Сейчас вам нужно использовать BeardLib и BeardLib-Editor. Вы можете использовать и старый формат, но я этого вам не советую.

Дальше вы должны получить файлы ядра, без этого ваше ограбление не будет работать. ViciousWalrus решил взять эти файлы с новым обновлением формата. Если вы хотите использовать старый формат, вы должны скачать ограбление Transfer Frenzy [drive.google.com] и изменить файлы ограбления на те, которые вам захочется.

Я не могу перезалить файлы ядра, потому-что я не имею на это право. Контент будет помечен как “украденный”.

И наконец, убедитесь что вы скачали BLT и BeardLib чтобы загрузить ваше ограбление в игру.

У PayDay 2 свой способ сохранения информации о ограблении. У каждого оно хоть немного, но отличается. Так что, когда вы начнёте работать над ограблением, вы должны будете искать нужные файлы и создавать новые локации.

Все существующие ограбления хранятся в levels/narratives/*. Там вы можете найти всех работодателей, так-же как и отдельные ограбления. Вы можете найти такие папки как “bain”, “dentist” и “vlad”, но также есть “h_firestarter” (это аббревиатура к “hector_firestarter”) и “h_watchdogs”

Когда вы начнёте осматривать файлы, вы в конце концов столкнётесь с папкой, которая сожержит файлы, названные например: world.world, continents.continents и mission.mission

НЕ ОБРАЩАЙТЕ НА НИХ ВНИМАНИЕ

Эти файлы не связаны с моддингом и чисто служат для ссылок к другим файлам, которые очень важны.

Найдите папку: world. Это (почти) всегда единственная директория которая нужна для моддинга.

Когда вы нашли путь в папку world, откройте её, в ней вы найдёте файлы которые вам нужны. Это должны быть 2 файла:
— world.continent
— world.mission

Файл world.continent содержит весь реквизит на карте. Где это находится, какие есть экземпляры. Это всё там.

Файл world.mission содержит данные о миссии. Что когда должно произойти, какие области я должен пройти, что я должен включить/выключить.

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

Расшифруйте world.mission и world.continent как показано ниже

world.mission расшифровывается из BINARY в GENERIC_XML
world.continent расшифровывается из BINARY в CUSTOM_XML

*НО* Обязательно надо расшифровывать mission в GENERIC_XML, или игра будет крашиться!

И наконец, откройте Core.lua, следуйте инструкциям как извлечь файлы надлежащим образом. Это не должно быть сложно, так-что я не буду заострять на этом внимание.

Когда у вас будут все файлы в папке /level, вы можете начинать их редактировать!

Если вы ещё не добавили его, то зайдите в Core.lua и начните редактировать переменные.

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

Готов редактировать? Хорошо.

В первую очередь нужно расставить реквизит. С этого момента вы можете изменять события. [events]

Вы должны поместить весь реквизит в файл continent. Местоположения сейфов, денег, весь лут и т.д.. В файле missions вы отключаете некоторые локации в начале миссии, и изменяете их порядок. Так-что запомните: всё должно быть в файле continent, даже то, что вы можете не видеть.

Файл continent очень простой. Там всего-лишь 2 зоны где вы можете работать:
— instances
— generic_props

В основном я буду фокусироваться на реквизите, потому-что с ним легче работать Instances я обсужу немного больше чем реквизит, это всё ниже.

Пропы могут быть такими же, как и выглядят в файле continent:

Есть несколько основных параметров:

continent
Это директория файла continent. Вы можете оставить это как есть.
— hide_on_projection_light
Должен этот проп отдавать тень когда на него направлен фонарик?
— disable_on_ai_graph
В большинстве случаев используется для дверей
— mesh_variation
Это определяет последовательность, которая должна выполняться при создании пропа.
Подробнее об этом ниже.
— name
Название пропа.
— name_id
Придумай рандомное слово. И поставь его сюда. Это ничего не делает.
— position
Позиция пропа.
— rotation
Вращение пропа в квантерионе.
— unit_id
Уникальный идентификатор. Должно быть числом. Используется для определения пропа в файле файлах миссии.

Очень легко добавить проп. Просто зайдите в папку units/, и вы сможете легко добавить проп, вместе с его местоположением.

ВНИМАНИЕ: ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ПРОПЫ КОТОРЫЕ ВКЛЮЧЕНЫ В ПАКЕТ (ИЛИ ЖЕ В ОГРАБЛЕНИЕ КОТОРОЕ ВЫ МОДИФИЦИРУЕТЕ) ЕСЛИ ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬ ДРУГИЕ ПРОПЫ, ТО ВЫ ДОЛЖНЫ СНАЧАЛА СКАЧАТЬ ПАКЕТ В КОТОРОМ ЕСТЬ ЭТОТ ПРОП (другими словами, если вы хотите коробку с проводами, то вам нужно скачать пакет из 2 дня поджигателя).

В Core.lua есть пример, как скачать пакет. Не скачивайте и используйте много пакетов в одно время, это может привести к ошибкам в игре, особенно если они большие. Если у вас это случилось, то просто перезапустите игру.

Небольшая информация о пропах:

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

При изменении положения, важно обнаружить и отслеживать базовые оси (что направление х-положительное, у-положительное и z-положительное). Просто переместите известный проп в <х + 100, у + 100, z>, и проверьте направление в котором он двинулся. Теперь вы можете поставить своё положение, так как направление z-положительное всегда направляет вверх.

200 юнитов это примерно 1 метр, и я обнаружил, что большинство коробок около 30 в толщину. Сейфы где-то около 100x100x100. Большинство дверей уже предварительно оборудованы, чтобы прямо встать в стену.

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

Почти все пропы были разработаны, чтобы вращаться вокруг оси Z. Пропы, которые висят на стене (например, картины), однако, всегда должны быть повёрнуты вокруг оси X или оси Y в первую очередь, прежде чем встанут лицевой стороной вертикально. Когда вы столкнетесь с этой ситуацией, вы должны просто скопировать и вставить кватернион для лучшего результата.

Вы также можете использовать онлайн-конвентер в квантерион, если вы хотите:
http://quat.zachbennett.com/

Примечание: Ни один проп не имеет общее происхождение. Это означает, что некоторые пропы будут вращаться вокруг переднего левого угла, а другие вокруг центра, а другие в крайне странных местах, которые заставят вас думать: «Что?». Рекомендуется сначала повертеть, чем перевести на точное место, чтобы избежать потери времени.

Так выглядит код инстанса:

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

Что касается index_size и start_index; Инстансы всегда должны “выделять” определённое количество индексов. Это то, что значит index_size. Это используется для хранение всех под-инстансов для инстанса (другими словами, инстанс коробки с проводами имеет: дверь, провод и коробку; для это всего нужно заранее подготовленное место). Вы обычно можете оставить index_size, чтобы оно просто было.

start_index ДОЛЖЕН совпадать с index_size предыдущего инстанса. Если, например, инстанс 0 имел index_size = 20, и его start_index = 0, значит, что следующий инстанс ОБЯЗАН быть с start_index = 20.

Вот несколько примеров ниже, вы поймёте суть:

Больше говорить об инстансах нечего. Они намного более упрощенны, чем пропы, но гораздо менее настраиваемые.

Файл mission является ядром ограбления. Оно содержит все аспекты миссии, собранные в элементы. Для начала, файл mission может выглядеть очень сложно, но как только вы научитесь работать с системой, он окажется очень лёгким методом.

Все миссии начинаются с элемента 0: запуск. Это всегда MissionScriptElement, который служит для других событий. Вы можете настроить различные вещи, такие как задержки, другие элементы, и многое другое.

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

Части объектов (Ну или же просто «элементы») в строчках кода выглядят так:

Также можно создавать свои части объектов (Ну или импортировать уже созданные), но если вы допустите ошибку в пути или коде, то ни к чему хорошему это не приведет, а именно: лаги, баги, вылеты программы, вылеты игры и все в таком духе.

Вот это «ХэХэХэ» есть ничто иное, как последовательность чисел. Ну допустим вот такой пример-количество на этом подобъекте «10», значит следующий должен иметь «11», потому, что это, собственно, его индекс. Если напортачить тут, то случатся труднопоправимые баги, в лучшем случае оно просто не загрузится.

Значит, эти строчки отвечают за тип элемента, который вы хотите использовать. Есть лист спецфайлов для элементов с их описанием. Это лучше копировать, так как каждый файл отвечает за свой тип. Вот здесь ошибку придется искать долго: «Вроде написал правильно, а ей что-то не нравится.»

Это название элемента чисто для вас, допустим нужно вставить что-то быстро при помощи «Ctrl+F», да или просто отсортировать элементы по вашему удобству (Для удобства пишите понятные названия).

Это свой уникальный текст I.D.. Оно нужно для работы частей элемента. Проверяйте, чтобы число не заходило за 200000, это лимит файла «world.world».

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

Активация триггеров для разных элементов, например: «ElementAreaTrigger» с «Enabled=true» будет работать, но если написать «Enabled=false», то, соответственно, активирован он не будет. Это длится то следующего триггера/ов.

Используется только при запуске.

Тут идет проверка элементов. Активные помечаются, выключенные игнорируются.

Вот мы и добрались до сердца элементов, до их двоичной сути. «Собственно это что?»-Спросите вы. Этот файл отвечает за триггер места (ElementAreaTrigger), он дает команду активации или же дизактивации триггера в определенном месте и совмещение его работы с другими (Этот включен, а этот не включен, ну и наоборот). После происходит выключение триггера при помощи «Element random». Для него нужно выбрать значение.

Delay-Время, записываемое в секундах.
Id-I.D. для работы элемента, должно быть посоеловательным числом I.D. предыдущего элемента.

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

Еще одна полезная особенность этого элемента является то, что вы можете игнорировать его переключая его с “включен” на “выключен”. Если это происходит, когда элемент вызывается, он не будет выполняться до тех пор, как флаг «ignore_disabled» будет выключен

ElementRandom
Этот элемент используется для рандомизации вещей. Имеет специфический флаг под названием «amount», который определяет, сколько вещей он должен выбрать из «on_executed» таблицы. Он будет выполнять эти отдельные элементы.

ElementToggle
Переключает флаг «enabled» другого элемента или нескольких других элементов, либо на «on», либо на «off».

ElementAreaTrigger
Запускает «on_executed» как только «instigator» входит в указанную область. «Инстигатором» может быть либо игрок, лут, бот, транспортное средство или даже враг. Под флагом «amount», вы можете указать, сколько должно присутствовать, или «all», если вы имеете в виду игроков.

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

Обратите внимание, что этот элемент не должен активироваться во время ограбления. До тех пор пока включен флаг true, этот элемент будет активным. Если вы не хотите, чтобы он был активным всё время, вы можете его включить или выключить с помощью ElementToggle.

ElementWaypoint
Ставит вэйпоинт, если его ещё нет. На указанную позицию.

Возможные вэйпоинты:
— pd2_escape
— pd2_generic_interact
— pd2_computer
— pd2_goto
— pd2_wire_cutter

Вэйпоинт будет поставлен только один раз, до тех пор как флаг “enabled” включен.

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

Используется для удаления вэйпоинта.

ElementExperience
Дайте XXX потенциального опыта игроку. Общий опыт будет такой, какой вы написали в Main.lua.
Какое вы количество опыты напишите, таким он будет на нормальном уровне сложности.

ElementCarry
Используется для защиты и удаления лута или машин для побега с ограбления.

ElementObjective
Этот элемент делает 2 действия. Один для активации цели, а другой для завершения задачи. Цель, которую вы хотите активировать должна быть указана в файле mm.objectives.objective, который уже есть в ядре, который вы скачали ранее.

Завершение цели ничего не делает, она только удаляет цель из листа, который вы видите при нажатии Tab. Тем не менее, рекомендуется это делать.

ElementSpawnEnemyDummy
Этот элемент спавнит определенного противника на карте, как только выполняется. «amount» определяет, сколько должно заспавнится противников

ElementSpecialObjective
Это используется, чтобы дать определенные особые цели для конкретных врагов / ботов. Это включает в себя такие вещи, как: исследовать эту позицию, охотится на игроков, присоединиться к другим ботам и многое другое. Здесь есть много вариантов, чтобы повозится.

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

difficulty_easy = Normal
difficulty_normal = Normal
difficulty_hard = Hard
difficulty_overkill = Very hard
difficulty_overkill_145 = Overkill
difficulty_overkill_290 = Death wish

ElementCounter

Этот элемент просто считает вещи. Он не делает ничего особенного; Вам понадобятся другие элементы для этого.

ElementCounterOperator
Позволяет либо «add» или «subtract» конкретное «amount» из указанного ElementCounter.

ElementCounterFilter
Если этот элемент включается, элемент будет проверять указанный счетчик, чтобы увидеть, если он удовлетворяет заданным условиям. Если это так, то будет работать «on_executed» часть элемента.

Вы можете использовать следующие условия:
— «equal»
— «greater_than»
— «greater_than_or_equal»

ElementCounterTrigger
Этот элемент является таким же, как и ElementCounterFilter, помимо этого он будет автоматически запускать элементы (при условии, что «enabled» включен).

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

ElementUnitSequence
Это используется для запуска последовательности или анимации, которая указана в пропе. Может быть использован, чтобы отобразить деньги из сейфа, после того, как дрель открыла его, например.

ElementUnitSequenceTrigger
Этот элемент противоположен тому, который указан выше. Этот элемент срабатывает, как только проп запускает указанную последовательность. Может использоваться для проверки, открыта ли дверь, например, или проверить, разрезан ли провод

ElementEnemyDummyTrigger
Проверяет, является ли конкретное событие происходит без какого либо объекта. Это обычно используется для проверки смертей, например, снайперов. Так что это может заспавнить ещё одного снайпера, или что-нибудь другое.

ElementInstanceInputEvent
Этот элемент работает точно так же, как и ElementUnitSequence, но только для инстансов.

ElementInstanceOutputEvent
Этот элемент работает точно так же, как и ElementUnitSequenceTrigger, но только для инстансов.

Для того, чтобы получить доступ ко всем этим данным, вы должны найти нужный проп в папке units/*. Потом вам нужно расшифровать файл sequence_manager в папке пропа в GENERIC_XML. Когда вы его откроете, вы увидите все последовательности которые этот проп может активировать.

Есть 2 категории последовательностей: включаемые и не включаемые. Это указано флагом в описании последовательности. Включаемые последовательности могут быть активированы с помощью ElementUnitSequence, в то время как не включаемые могут быть прочитаны с помощью ElementUnitSequenceTrigger.

Это то, что вы можете также указать в параметре «mesh_variation» в файле continent.

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

Спасибо за прочтение гайда!

Я писал его очень долго, и я думаю что я могу прорекламировать мои собственные ограбления, которые я использовал источником информации для этого гайда:

Жду вас на Last Bullet [modworkshop.net] со своими ограблениями!

Спасибо Mr. Чувак за перевод раздела Elements

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *