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:

  1. lee GlobalState.hzbets_board para el tablero en vivo, y
  2. 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).
El complemento oficial HZ-Bets App for QS Smartphone (qs-smartphone) es exactamente esto — un adaptador ligero y seguro. Para hacer deep-link desde otro framework de teléfono, apunte el handler de apertura de su app a:

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.