Skip to content

Exports y eventos

API pública de Cuxial PvP: exports para abrir el menú y estado para saber quién está en partida.

Abre el menú desde tus propios recursos y averigua si un jugador está combatiendo o mirando una partida. Cuxial PvP tiene dos exports de cliente y dos valores de estado del jugador; no expone exports de servidor.

Exports de cliente ​

toggleUI ​

Abre o cierra el menú. La llamada se ignora mientras el jugador está en una partida.

lua
exports.CuxiaPvP:toggleUI(toggle)
ParámetroTipoDescripción
togglebooleantrue abre el menú, false lo cierra.

Devuelve: nada.

lua
-- Abre el menú con tu propio comando
RegisterCommand('arena', function()
    exports.CuxiaPvP:toggleUI(true)
end, false)

isPlaying ​

Indica si el jugador local está en una partida.

lua
local playing = exports.CuxiaPvP:isPlaying()

Devuelve: boolean. true desde que carga la partida hasta que termina.

lua
-- Omite tu propia pantalla de muerte durante una partida
if exports.CuxiaPvP:isPlaying() then return end

Estado del jugador ​

Los dos valores están replicados, así que se pueden leer en el cliente y en el servidor. Trátalos como de solo lectura.

EstadoTipoValor
inDuelnumber | nilId de la partida en la que combate el jugador. nil fuera de una partida.
spectatingMatchnumber | nilId de la partida que el jugador está mirando. nil cuando no es espectador.

El id de una partida es también el routing bucket en el que corre.

lua
if LocalPlayer.state.inDuel then
    -- el jugador local está en una partida
end

Para reaccionar cuando un jugador entra o sale de una partida:

lua
AddStateBagChangeHandler('inDuel', nil, function(bagName, _, value)
    local player = GetPlayerFromStateBagName(bagName)
    if player == 0 then return end

    if value then
        -- entró en la partida con id `value`
    else
        -- salió de la partida
    end
end)

Eventos que Cuxial PvP lanza a otros scripts ​

Son eventos de cliente enviados a los scripts elegidos en data/config.lua.

EventoCuándoSe define en
Cada evento de revive.eventsTras cada ronda de duelo, en cada reaparición de Gun Game y al acabar una partidarevive
av_weather:freezeAl empezar y al acabar una partida, con weatherSystem = 'av'weatherSystem
cd_easytime:PauseSyncAl empezar y al acabar una partida, con weatherSystem = 'cd'weatherSystem

Los eventos de revivir se lanzan sin argumentos. Para conectar un script que necesite otra cosa, añade tu propio evento a revive.events y gestiónalo:

lua
AddEventHandler('myserver:pvpRevive', function()
    -- revive al jugador local con tu propio script de ambulancia
end)

© Cuxial