Перейти к содержимому

Добавление предметов и торговцев

Предметы лежат в bs_inventory/config/config_items.lua, в Items.Definitions. При старте они синхронизируются в bs_item_definitions, так что править нужно только файл.

my_tin = { label = 'Tinned Peaches', category = 'food', weight = 0.4, w = 1, h = 1, stack = 5,
usable = true, value = 14, data = { hunger = 25, thirst = 5 } },
  • w / h - размер в сетке, stack - максимум на слот, value - каталожная стоимость, вокруг которой сбалансированы торговцы.
  • data зависит от категории: heal, hunger, thirst для расходников, weapon = 'WEAPON_X' для оружия, handled = true, когда предмет расходует другой resource.
  • Иконки берутся из bs_ui/html/js/icons.js. Без иконки используется общая, всё равно работает.
  • Хочешь перевод? Для label можно завести ключ в bs_inventory/locales/<lang>.lua, см. Языки.

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

Чтобы проверить, выдай его себе через F10 > ITEMS или из кода:

exports.bs_inventory:GiveItem(src, 'my_tin', 3)

Рецепты лежат в том же файле. Рецепт с factionBase = true создаётся только в радиусе флага твоей фракции.

Торговцы находятся в bs_traders/config/config_traders.lua, Traders.Traders. Каждый размещается относительно безопасной зоны:

trader_sandy = {
label = 'Camp Trader', role = 'trader', clothing = true,
zone = 'sandy_camp', offset = vector3(-6.0, 4.0, 0.0), heading = 30.0,
model = 'a_m_m_farmer_01', scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
buys = { { item = 'scrap_metal', price = 3 } },
sells = { { item = 'my_tin', price = 20, stock = 30 } },
},
  • buys - то, что торговец платит игрокам, sells - то, что игроки могут купить, stock ограничивает количество.
  • В поставляемом файле sells держатся около 1,4-1,5 от value предмета, а buys ниже него. Придерживайся этого, иначе экономика быстро ломается.
  • role = 'quest' с missions = { ... } делает выдающего задания, миссии лежат в Traders.Missions.
  • Global.traderPriceMultiplier в F1 масштабирует все цены скупки.

Перезапусти bs_traders, чтобы применить. Если ты менял безопасную зону, страница карты на сайте рисуется вручную по этим файлам, так что сама она не подтянется.