Exports
HZ-Bets est standalone-first : la logique du coeur et l'interface vivent entierement dans la ressource et exposent un petit contrat stable. Chaque point d'entree (commande, raccourci, PNJ, telephone) appelle la meme porte.
Exports client
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
L'onglet admin ne s'affiche que si le serveur confirme que le joueur est un admin.
Lire le tableau en direct
Le tableau est publie dans GlobalState et est lisible par n'importe quelle ressource — aucun callback necessaire :
local board = GlobalState.hzbets_board -- { serverNow, active = {…}, settled = {…} }
local scorers = GlobalState.hzbets_scorers -- top scorers (when OpenLigaDB is on)
C'est exactement ainsi que le compagnon telephone lit les donnees, sans aucun couplage avec les internes de HZ-Bets.
Integration telephone / externe
Un adaptateur telephone n'a besoin d'aucune modification de HZ-Bets. Il :
- lit
GlobalState.hzbets_boardpour le tableau en direct, et - transmet le placement des paris / "mes paris" via les memes callbacks HZ-Bridge que l'interface bureau (le serveur reste l'autorite unique).
exports['HZ-Bets']:OpenBets()
L'interface ne depend jamais de la presence d'un telephone. Qu'elle soit ouverte depuis une commande, un PNJ ou un ecran d'accueil de telephone, elle parle au meme moteur a serveur autoritaire.
