Przejdź do głównej zawartości

Crumbs i debugowanie

Awarie klienta w FiveM mówią prawie nic. Crumbs to ostatnie rzeczy, które się wydarzyły przed nią, zapisane w KVP, żeby przetrwały awarię.

Dołącz w manifeście:

client_script '@bs_core/shared/sh_crumbs.lua'

i zostawiaj crumbs tam, gdzie coś może pójść nie tak:

Crumb('radiotower', 'spawn prop %s at %.1f %.1f', model, x, y)

Ciąg jest formatowany tylko gdy crumbs są włączone, więc jest tani. Konfiguracja w bs_core:

Config.Crumbs = {
enabled = true,
keep = 40, -- entries kept
saveMs = 2000, -- KVP write interval
}

Po awarii przy następnym starcie w F8 wypisywane jest [crumbs] last session:. /bs_crumbs wypisuje bieżącą sesję. Eksporty: Crumb(tag, msg), CrumbsOn(), Crumbs().

Dobre miejsca na crumb: przed tworzeniem encji, ładowaniem modeli/słowników animacji, doczepianiem propów, każdą natywką na encji, której może już nie być.

bs_core ma BS.Log.info/warn/error/debug(tag, msg), poziom z Config.Framework.logLevel. W innych zasobach nie masz BS.Log, dopóki nie dołączysz frameworka; zwykły print z nazwą zasobu wystarczy.

KomendaGdzie
/bs_crumbsclientcrumbs tej sesji
/refreshuiclientzamknij każdy panel, zwolnij fokus NUI
/znet, /zsync, /zdiagserverstan zombie, zobacz Zombie
/znetc, /zgait, /zanim, /poolsclientpedy zombie na twoim kliencie, pula pedów
/hotbardebugpasek szybkiego dostępu ekwipunku
/prefsdebugserverpreferencje admina
bsconfig_activekonsolaaktywny profil F1

Plus standardowe komendy FiveM: resmon 1 i profiler record.

Wiele konfiguracji ma flagę debug = false (Skills.Recoil.debug, Zombies.Net.debug, Guard.Settings.debug, Inventory.BodyRender.debug). Włączaj tę, której potrzebujesz, nie wszystkie.

  • co zrobiłeś i czego oczekiwałeś
  • linie konsoli serwera wokół zdarzenia
  • F8 dla problemów klienta, crumbs dla awarii
  • dla zombie: wynik /znet i /zsync