Добавление предметов торговцам
Fallout New Vegas G.E.C.K. глазами разработчиков
RJ
11810
0
Как мне добавить предметы в существующий контейнер торговца?
Чтобы избежать несовместимости с другими модами, существует два способа сделать это: первый - создать новый контейнер, владельцем которого будет нужный нам NPC; второй - создать квест/скрипт для добавления нужных предметов в существующий контейнер торговца.
Вам нужно проверить, продает/покупает-ли ваш NPC такой тип предметов, которые вы собираетесь добавить к нему в инвентарь: настраивается это на вкладке AI Data окна редактирования NPC.
Создание нового контейнера, владельцем которого будет нужный нам торговец
- В окне Object в разделе World Objects > Container щелкните дважды на любом объекте с начальным названием VendorContainer - внизу всего списка.
- Дайте контейнеру новое ID (первое текстовое поле в редакторе) и перетащите в список с правой стороны этого контейнера все предметы, которые вы хотите видеть в продаже торговца (удалив из списка те предметы, которые вам не нужны) а также положите в контейнер крышки (деньги), если хотите, чтобы персонаж покупал у вас барахло (таким образом вы увеличиваете количество денег у этого торговца).
- Проверьте установленный флажок Respawns, если вы хотите, чтобы контейнер обновлялся (по умолчанию каждые 3 дня) и щелкните ОК; когда программа спросит у вас, создать или нет новую форму, ответьте Yes.
- В окне Cell View щелкните дважды на названии VendorChestsCell и перетащите в окно Render этой ячейки созданный вами контейнер из окна Object.
- Щелкните на контейнере дважды, уже в окне Render Window и дайте название ссылки (Reference ID) как yourNPCVendorChestRef, установите флажок Persistent Reference и на вкладке Ownership выберите нужного вам NPC из выпадающего списка.
- Для новых NPC вы так же можете щелкнуть дважды на этом NPC в окне Render Window и выбрать нужных сундук на вкладке Merchant Container (для существующих NPC, возможно эта опция уже установлена): в первом выпадающем списке выберите VendorChestCell, потом название ссылки (yourNPCVendorChestRef) во втором выпадающем списке.
Создание квеста/скрипта для добавления вещей в существующий контейнер NPC
- Щелкните правой кнопкой на контейнере, в который вы хотите добавить предметы в World Objects > Container и выберите пункт Use Info.
- Сделайте двойной щелчок на надписи Used in these Cells list, после чего контейнер будет выбран в окне Render Window.
- Сделайте двойной щелчок на контейнере в Render Window и скопируйте Reference ID, чтобы вставить этот ID в скрипт.
- Создайте новый квест с названием yourQuest.
- Установите для квеста Start Game Enabled и приоритет 60 или выше.
- Щелкните ОК в правом нижнем углу, сделайте двойной щелчок на вашем квесте yourQuest, чтобы снова открыть окно квеста.
- Щелкните на кнопке с многоточием около выпадающего списка Script.
- Выберите Script > New в окне Script Edit и выберите опцию Quest в выпадающем меню Script Type (Тип скрипта).
- Введите приведенный ниже текст, редактируя и добавляя строки с названием предметов так как вам нужно, щелкните Save и закройте окно скриптов.
- Выберите созданный вами скрипт в выпадающем меню окна Quest, после сохранения созданного скрипта.
Scn yourQuestAddItemsScr BEGIN GameMode vendorChestReferenceID.addItem itemEditorID count stopquest yourQuest END |
Вот пример реального использования вышеприведенного кода (линии vendorChestReferenceID.addItem itemEditorID):
VendorChestBuriedGobREF.additem Jet 3 |
Примечания
Если вы хотите, чтобы новые предметы обновлялись вместе с остальным инвентарем торговца, вам нужно добавить эти предметы в новый контейнер. Если обновление вам не нужно, вы можете поместить их в контейнер, который не обновляется или добавить в существующий контейнер с помощью скрипта.
Возможные проблемы
Есть одна неприятность при работе с крышечками, когда в торговле происходит баг с отображением привального поведения и игроку перестают платить за предметы. Торговец и дальше берет вещи, но игрок не получает за это деньги. Если у торговца 32767 крышек все будет хорошо. Однако, если у торговца 32768 крышек, торговец будет брать предметы у игрока, но не будет платить за них...