Как создать торговца
в Fable: The Lost Chapters
Автор статьи: Torionel
Есть два способа создания торговцев в первой Fable. Первый не особо полезен в практическом плане и может быть интересен только для изучения структуры файлов игры. Если вам просто нужен работающий торговец, сразу переходите ко второму способу.
Способ 1
Товары торговца задаются в дефе CShopDef, и ссылка на него прописана в CREATURE торговца в файле game.bin.
Внутреннее устройство CShopDef
- Откройте CShopDef нужного торговца (можно взять из списка).
- Нажмите в новом окне на CShopDef.
- Первые пять полей можно пропустить: даже имея самые малые познания в английском можно понять, что там указывать.
- Перейдите к полю DefaultStock.
- В поле ItemForSell укажите ID нужного предмета (можно взять из списка).
- Значения остальных 14 полей под этим вы можете заполнить, скопировав значения из других CShopDef, или оставив то, что было. Нас здесь интересует только Amount In Stock (количество предмета в продаже) и Days Until Restocked (через сколько дней после покупки предмет снова появляется у торговца).
- Чтобы добавить еще один предмет в продажу, нажмите Add чуть выше поля, где указывали ID предмета.
Этот способ бесполезен для моддеров, потому что после установки fmp-файла с вашим торговцем и новыми предметами в CShopDef идентификаторы новых предметов не будут совпадать с копией игры, на которой вы делали мод. Хотя на вашей копии всё работать будет.
Способ 2
- Скачайте мод-исходник Scripted Shopkeeper и установите его.
- С помощью Chocolate Box (CBox) создайте этого торговца в нужной локации.
- Чтобы добавить в его ассортимент нужные предметы, поменяйте в его параметрах значения StockItemDefsKeys, StockItemDefsQuantity и StockItemDefsMaxStock.
Скрипт модифицированного торговца следующий:
NewThing AICreature;
Player 2;
UID 18446741873886729499;
DefinitionType "CREATURE_TRADER_STOCKED_SCRIPTED";
ScriptName NULL;
ScriptData "NULL";
ThingGamePersistent FALSE;
ThingLevelPersistent FALSE;
StartCTCPhysicsNavigator;
PositionX 44.23291;
PositionY 121.32250;
PositionZ 31.91408;
RHSetForwardX 0.00000;
RHSetForwardY 1.00000;
RHSetForwardZ 0.00000;
RHSetUpX -0.00216;
RHSetUpY -0.00030;
RHSetUpZ 1.00000;
EndCTCPhysicsNavigator;
StartCTCTargeted;
Targetable TRUE;
EndCTCTargeted;
StartCTCContainerRewardHero;
EndCTCContainerRewardHero;
StartCTCEnemy;
FriendsWithEverythingFlag FALSE;
EnableFollowersEnemyProxy TRUE;
FactionName "";
EndCTCEnemy;
StartCTCShop;
StockItemDefsKeys[0] "OBJECT_****";
StockItemDefsQuantity[0] 1.0;
StockItemDefsMaxStock[0] 1.0;
StockItemDefsKeys[1] "OBJECT_****";
StockItemDefsQuantity[1] 1.0;
StockItemDefsMaxStock[1] 1.0;
EndCTCShop;
Health 200.0;
EnableCreatureAutoPlacing FALSE;
EndThing;
Если захотите вставить его с помощью редактора кода или Блокнота, красные значения надо обязательно изменить.
Больше интересного о Fable — в