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:

  1. liest GlobalState.hzbets_board fuer das Live-Board und
  2. leitet die Wettplatzierung / „Meine Wetten" ueber dieselben hz_lib-Callbacks weiter, die die Desktop-UI verwendet (der Server bleibt die einzige Autoritaet).
Der offizielle HZ-Bets App for QS Smartphone-Begleiter (qs-smartphone) ist genau das — ein schlanker, sicherer Adapter. Um aus einem anderen Handy-Framework per Deeplink zu verlinken, richten Sie den Open-Handler seiner App auf:

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.