Saltearse al contenido

Añadir objetos y traders

Los objetos viven en bs_inventory/config/config_items.lua, en Items.Definitions. Al arrancar se sincronizan con bs_item_definitions, así que solo editas el archivo.

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 es el tamaño en la cuadrícula, stack el máximo por slot, value el valor de catálogo en torno al cual se equilibran los traders.
  • data depende de la categoría: heal, hunger, thirst para consumibles, weapon = 'WEAPON_X' para armas, handled = true cuando otro resource lo consume.
  • Los iconos salen de bs_ui/html/js/icons.js. Sin icono se usa uno genérico, sigue funcionando.
  • ¿Quieres traducirlo? La label puede tener una clave en bs_inventory/locales/<lang>.lua, ver Idiomas.

Reinicia bs_inventory cuando haya calma (los inventarios de la gente se recargan). Más detalle en la página de Inventario y, para código, en Objetos e inventario.

Para probarlo, dátelo desde F10 > ITEMS, o desde código:

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

Las recetas están en el mismo archivo. Una receta con factionBase = true solo se fabrica dentro del radio de la bandera de tu facción.

Los traders están en bs_traders/config/config_traders.lua, Traders.Traders. Cada uno se coloca relativo a una zona segura:

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 es lo que el trader paga a los jugadores, sells lo que los jugadores pueden comprar, stock lo limita.
  • El archivo incluido mantiene los sells en torno a 1,4 a 1,5 veces el value del objeto y los buys por debajo. Respétalo o la economía se rompe rápido.
  • role = 'quest' con missions = { ... } crea un dador de trabajos, las misiones están en Traders.Missions.
  • Global.traderPriceMultiplier en F1 escala todos los precios de compra.

Reinicia bs_traders para aplicarlo. Si cambiaste una zona segura, la página del mapa de la web se dibuja a mano a partir de estos archivos, así que no se actualiza sola.