Skip to content

Exports y eventos

API pública de Cuxial Casino: valor de las fichas, exports de asientos, eventos de zona y de asiento, y las statebags que pueden leer otros recursos.

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.

lua
---@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.

lua
---@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.

lua
---@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.

lua
---@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
end

game 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.

lua
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.

lua
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.

StatebagValor
Player(src).state.casinoPostPuesto 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.

ox_inventory/data/items.lua
lua
['whiskey'] = {
    label = 'Whiskey',
    weight = 500,
    client = {
        status = { drunk = 20 },   -- dos copas
        anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' },
        usetime = 5000,
    },
},

© Cuxial