Exports
HZ-Bets es standalone-first: la lógica del núcleo y la interfaz viven enteramente en el recurso y exponen un contrato único, pequeño y estable. Cada punto de entrada (comando, atajo de teclado, NPC, teléfono) llama a la misma puerta.
Exports de cliente
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
La pestaña de administración solo se renderiza si el servidor confirma que el jugador es administrador.
Leer el tablero en vivo
El tablero se pública en GlobalState y es legible por cualquier recurso — sin necesidad de callback:
local board = GlobalState.hzbets_board -- { serverNow, active = {…}, settled = {…} }
local scorers = GlobalState.hzbets_scorers -- top scorers (when OpenLigaDB is on)
Así es exactamente como el complemento de teléfono lee los datos sin ningún acoplamiento con las interioridades de HZ-Bets.
Integración con teléfono / externa
Un adaptador de teléfono no necesita ningún cambio en HZ-Bets. Este:
- lee
GlobalState.hzbets_boardpara el tablero en vivo, y - reenvía la colocación de apuestas / "mis apuestas" a través de los mismos callbacks de hz_lib que usa la interfaz de escritorio (el servidor sigue siendo la única autoridad).
exports['hz_bets']:OpenBets()
La interfaz nunca depende de la presencia de un teléfono. Tanto si se abre desde un comando, un NPC o la pantalla de inicio de un teléfono, habla con el mismo motor con autoridad del servidor.
