Zum Inhalt springen

Items und Trader hinzufügen

Items stehen in bs_inventory/config/config_items.lua unter Items.Definitions. Beim Start werden sie nach bs_item_definitions synchronisiert, du bearbeitest also nur die Datei.

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 ist die Rastergröße, stack das Maximum pro Slot, value der Katalogwert, um den die Trader ausbalanciert sind.
  • data hängt von der Kategorie ab: heal, hunger, thirst für Verbrauchsgüter, weapon = 'WEAPON_X' für Waffen, handled = true, wenn eine andere Resource es verbraucht.
  • Icons kommen aus bs_ui/html/js/icons.js. Ohne Icon gibt es ein generisches, es funktioniert trotzdem.
  • Soll es übersetzt werden? Das Label kann einen Schlüssel in bs_inventory/locales/<lang>.lua bekommen, siehe Sprachen.

Starte bs_inventory neu, wenn es ruhig ist (die Inventare der Leute laden neu). Mehr dazu auf der Seite Inventar und für Code unter Items & Inventar.

Zum Testen gib es dir selbst über F10 > ITEMS oder per Code:

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

Rezepte stehen in derselben Datei. Ein Rezept mit factionBase = true lässt sich nur im Flaggenradius deiner Fraktion herstellen.

Trader stehen in bs_traders/config/config_traders.lua, Traders.Traders. Jeder wird relativ zu einer Safe Zone platziert:

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 ist, was der Trader den Spielern zahlt, sells, was Spieler kaufen können, stock begrenzt es.
  • Die mitgelieferte Datei hält Verkaufspreise bei etwa dem 1,4- bis 1,5-Fachen des Item-value und Ankaufspreise darunter. Bleib dabei, sonst kippt die Wirtschaft schnell.
  • role = 'quest' mit missions = { ... } macht einen Auftraggeber, die Missionen stehen in Traders.Missions.
  • Global.traderPriceMultiplier in F1 skaliert alle Ankaufspreise.

Starte bs_traders neu, um es zu übernehmen. Wenn du eine Safe Zone geändert hast: Die Kartenseite auf der Website wird von Hand aus diesen Dateien gezeichnet und zieht deshalb nicht von allein nach.