Przejdź do głównej zawartości

Pomocnik stosowania konfiguracji

@bs_config/shared/apply.lua sprawia, że zmiany z F1 docierają do twojego zasobu.

Ostatni wspólny skrypt, po twoich plikach konfiguracji:

shared_scripts { 'config/config.lua' }
-- ...
shared_script '@bs_config/shared/apply.lua'
  • Przy starcie i przy każdej zmianie serwer wysyła ładunek { _global = {...}, <resource> = { ['Path.To.key'] = value } } przez bs_config:apply.
  • Pomocnik bierze część dla twojego zasobu i poprawia twoje globalne tabele w miejscu: MyRes.Settings.reward = 75.
  • Dotyka tylko kluczy, które już istnieją z tym samym typem. Nigdy nie wymyśla konfiguracji.
  • Gdy nadpisanie jest usuwane, przywraca oryginalną wartość.
  • Po każdym zastosowaniu wywołuje bs_config:changed:<resource>, żebyś mógł zareagować:
AddEventHandler('bs_config:changed:' .. GetCurrentResourceName(), function()
rebuildSomething()
end)
local mult = BSConfigGet('Global.xpMultiplier', 1.0) -- globals or your own paths, no export call
-- or from anywhere:
local size = exports.bs_config:Get('bs_factions:Factions.Squad.maxSize')

Eksporty: Get(key, default), GetPayload(), GetActiveProfile(), po obu stronach.

Poprawienie tabeli wystarczy, gdy twój kod czyta tabelę za każdym razem:

-- live: sees the new value next call
local function reward() return RadioTower.Settings.reward end

To nie wystarczy, gdy kopiujesz ją do zmiennej lokalnej przy ładowaniu:

-- cached: F1 changes do nothing until restart
local REWARD = RadioTower.Settings.reward

bs_config wykrywa ten wzorzec (najwyższego poziomu local x = Cfg.key) i oznacza ustawienie jako „restart”. Lepiej czytać tabelę.

Dodaj wiersze do bs_config/shared/schema.lua. Id to <resource>:<path>, z typem, min/max/step, kategorią, opisem i flagą live. Wartość domyślna jest czytana z twojego pliku w czasie działania, wartość fb w schemacie to tylko zapas. Dodawaj tylko klucze, które naprawdę istnieją w twojej konfiguracji.