Exports
HZ-Bets ist standalone-first: Die Kernlogik und die UI liegen vollstaendig in der Ressource und legen einen kleinen, stabilen Vertrag offen. Jeder Einstiegspunkt (Befehl, Tastenbelegung, NPC, Handy) ruft dieselbe Tuer auf.
Client-Exports
exports['hz_bets']:OpenBets(tab) -- open the app. tab is optional: 'events' | 'mybets' | 'admin'
exports['hz_bets']:CloseBets() -- close it
exports['hz_bets']:Toggle() -- open if closed, close if open
exports['hz_bets']:IsOpen() -- boolean
-- or fire the event from anywhere:
TriggerEvent('hz_bets:open') -- optionally pass a tab
Der Admin-Tab wird nur gerendert, wenn der Server bestaetigt, dass der Spieler ein Admin ist.
Das Live-Board lesen
Das Board wird in GlobalState veroeffentlicht und ist von jeder Ressource lesbar — kein Callback noetig:
local board = GlobalState.hzbets_board -- { serverNow, active = {…}, settled = {…} }
local scorers = GlobalState.hzbets_scorers -- top scorers (when OpenLigaDB is on)
Genau so liest der Handy-Begleiter die Daten, ohne jegliche Kopplung an die Interna von HZ-Bets.
Handy- / externe Integration
Ein Handy-Adapter benoetigt keinerlei Aenderung an HZ-Bets. Er:
- liest
GlobalState.hzbets_boardfuer das Live-Board und - leitet die Wettplatzierung / „Meine Wetten" ueber dieselben hz_lib-Callbacks weiter, die die Desktop-UI verwendet (der Server bleibt die einzige Autoritaet).
exports['hz_bets']:OpenBets()
Die UI haengt niemals davon ab, dass ein Handy vorhanden ist. Ob aus einem Befehl, von einem NPC oder vom Handy-Startbildschirm geoeffnet — sie spricht mit derselben server-autoritativen Engine.
