Cuxial Casino expone el valor de sus fichas, quién está sentado y dónde, cuándo un jugador entra o sale de una zona, y algunas statebags. Todo lo demás es interno.
Exports de servidor
GetChipValues
Devuelve el valor en dólares de cada ítem de ficha, sin la ficha promocional. Sirve para contar las fichas como patrimonio o para ponerles precio en otro recurso.
---@return table<string, integer>
local values = exports.cuxial_casino:GetChipValues()
-- { casino_chip_10 = 10, casino_chip_50 = 50, ..., casino_chip_10k = 10000 }GetPlayerSeat
Devuelve el asiento en el que está sentado un jugador, o nil.
---@param src integer
---@return string? seatId
local seatId = exports.cuxial_casino:GetPlayerSeat(source)GetSeatOccupant
Devuelve el id de servidor del jugador sentado en un asiento, o nil.
---@param seatId string
---@return integer? src
local src = exports.cuxial_casino:GetSeatOccupant(seatId)Un id de asiento tiene la forma modelo|x|y|z|índice, con las coordenadas de la máquina o la mesa en decímetros.
Exports de cliente
GetSeat
Devuelve el asiento del jugador local, o nil.
---@return { kind: string, game: string, model: string, seatId: string, seatIndex: integer, entity: integer }?
local seat = exports.cuxial_casino:GetSeat()
if seat and seat.game == 'blackjack' then
-- el jugador está en una mesa de blackjack
endgame indica el juego del asiento, por ejemplo slots, blackjack, roulette, threecard, poker, horses o lounge para sofás y sillones. entity es el handle de ese momento; no lo guardes.
Eventos de cliente
Eventos locales, lanzados en el cliente del propio jugador.
cuxial_casino:client:zoneEnter / zoneExit
Se lanzan cuando el jugador entra o sale de una de las zonas del casino.
AddEventHandler('cuxial_casino:client:zoneEnter', function(id, access)
-- id: 'casino', 'private', 'gold', 'staff2', 'boss', 'penthouse_lobby', 'penthouse', ...
-- access: 'public', 'vip', 'diamond', 'staff' o 'boss'
end)
AddEventHandler('cuxial_casino:client:zoneExit', function(id, access)
end)cuxial_casino:client:seated / stood
Se lanzan cuando el jugador se sienta o se levanta, con la misma tabla que devuelve GetSeat.
AddEventHandler('cuxial_casino:client:seated', function(seat)
print(('sentado en %s'):format(seat.game))
end)
AddEventHandler('cuxial_casino:client:stood', function(seat)
end)Statebags
Solo las escribe el servidor y se replican a todos los clientes.
| Statebag | Valor |
|---|---|
Player(src).state.casinoPost | Puesto de un empleado de servicio: 'dealer', 'cashier', 'bartender', 'security', o false. |
Player(src).state.casinoDrunk | { n, left, win, v } mientras el jugador va borracho: n copas, left milisegundos restantes. nil sobrio. |
Bebidas de otros recursos
Cualquier ítem de ox_inventory con estado drunk suma a la borrachera del casino, en todo el mapa. Diez puntos son una copa; los valores negativos quitan borrachera.
['whiskey'] = {
label = 'Whiskey',
weight = 500,
client = {
status = { drunk = 20 }, -- dos copas
anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' },
usetime = 5000,
},
},