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.
exports.CuxiaPvP:toggleUI(toggle)| Parámetro | Tipo | Descripción |
|---|---|---|
toggle | boolean | true abre el menú, false lo cierra. |
Devuelve: nada.
-- 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.
local playing = exports.CuxiaPvP:isPlaying()Devuelve: boolean. true desde que carga la partida hasta que termina.
-- Omite tu propia pantalla de muerte durante una partida
if exports.CuxiaPvP:isPlaying() then return endEstado 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.
| Estado | Tipo | Valor |
|---|---|---|
inDuel | number | nil | Id de la partida en la que combate el jugador. nil fuera de una partida. |
spectatingMatch | number | nil | Id 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.
if LocalPlayer.state.inDuel then
-- el jugador local está en una partida
endPara reaccionar cuando un jugador entra o sale de una partida:
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.
| Evento | Cuándo | Se define en |
|---|---|---|
Cada evento de revive.events | Tras cada ronda de duelo, en cada reaparición de Gun Game y al acabar una partida | revive |
av_weather:freeze | Al empezar y al acabar una partida, con weatherSystem = 'av' | weatherSystem |
cd_easytime:PauseSync | Al 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:
AddEventHandler('myserver:pvpRevive', function()
-- revive al jugador local con tu propio script de ambulancia
end)