Skip to content

Exports y eventos

API pública de Cuxial Multichar: exports y eventos para revisar las solicitudes de personajes menores desde tus recursos.

La API pública cubre las solicitudes de personajes menores, para que un panel de administración o una herramienta de staff pueda listarlas, aprobarlas y gestionarlas. Todos los exports son de servidor.

Estos exports no comprueban quién los llama. Verifica el permiso de staff en tu propio recurso antes de llamar a FamilyReview o a FamilySetGrowth.

Los exports necesitan family.enabled = true. Con los menores desactivados, FamilyPending devuelve 0 y el resto no se debe llamar.

El objeto solicitud ​

FamilyGet, FamilyList y el evento cuxial_multichar:family:Changed devuelven solicitudes con esta forma:

CampoTipoContenido
citizenidstringCitizenid del menor
statusstringpending, approved, rejected o revoked
bondstringbiological o adopted
father, mothertable / nil{ citizenid, name, onlineId }. onlineId es el ID de servidor del progenitor si se está jugando con ese personaje
motivationstringTexto escrito por el jugador
childtable{ firstname, lastname, dob, age, gender, nationality }. gender es 0 (hombre) o 1 (mujer)
playerNamestringNombre del jugador que la envió
licensestringLicencia del jugador
onlineIdnumber / nilID de servidor del jugador si está conectado
reviewedBy, reviewNotestring / nilQuién la revisó y la nota
reviewedAt, createdAtnumberFechas en milisegundos. reviewedAt es nil hasta que la solicitud se revisa
growthtable / nil{ enabled, height, max, min, shrink, adult }. Solo en solicitudes aprobadas

Exports ​

FamilyPending ​

Número de solicitudes a la espera de revisión.

lua
---@return integer
local pendientes = exports.cuxial_multichar:FamilyPending()

FamilyGet ​

Una solicitud por citizenid.

lua
---@param citizenid string
---@return table? solicitud
local solicitud = exports.cuxial_multichar:FamilyGet('ABC12345')

FamilyList ​

Lista paginada de solicitudes. Recibe una tabla con estos campos, todos opcionales:

ParámetroTipoContenido
statusstringpending (por defecto), approved, rejected, revoked, history o all
searchstringFiltra por citizenid, nombre del jugador o nombre del personaje
pagenumberPágina, desde 1
pageSizenumberFilas por página. Por defecto 25, máximo 100

Devuelve { rows, total, page, pages, counts }. counts contiene pending, approved, rejected, revoked y online.

lua
local resultado = exports.cuxial_multichar:FamilyList({ status = 'pending', page = 1 })

for _, solicitud in ipairs(resultado.rows) do
    print(solicitud.citizenid, solicitud.child.firstname, solicitud.status)
end

FamilyReview ​

Aprueba, rechaza o revoca una solicitud. Recibe una tabla:

ParámetroTipoContenido
citizenidstringCitizenid del menor
decisionstringapprove o reject para solicitudes pendientes. revoke para las aprobadas
notestringNota opcional que ve el jugador. Hasta 300 caracteres
reviewertable{ name } del miembro del staff. Si falta, se guarda como Staff

Devuelve true, o una cadena de error: 'not_found' (no hay solicitud para ese citizenid), 'bad_state' (la decisión no encaja con el estado actual) o 'bad_decision' (decisión desconocida).

lua
local resultado = exports.cuxial_multichar:FamilyReview({
    citizenid = 'ABC12345',
    decision = 'approve',
    note = 'Bienvenido',
    reviewer = { name = GetPlayerName(source) },
})

Si se revoca un menor con el que se está jugando, ese jugador vuelve a la selección.

FamilySetGrowth ​

Fija las reglas de estatura de un menor aprobado. Recibe una tabla. Cada llamada guarda las cuatro reglas: las que omitas se guardan como false, y max como la estatura actual.

ParámetroTipoContenido
citizenidstringCitizenid del menor
enabledbooleanDeja al jugador cambiar su estatura con el comando de crecimiento
maxnumberEstatura máxima en cm. No puede ser menor que la actual ni mayor que 200
shrinkbooleanDeja al jugador bajar de su estatura actual
adultbooleanQuita el escalado: el personaje usa el tamaño adulto

Devuelve true, o una cadena de error: 'not_found' (no hay solicitud para ese citizenid), 'bad_state' (la solicitud no está aprobada) o 'bad_range' (max fuera de rango).

lua
exports.cuxial_multichar:FamilySetGrowth({
    citizenid = 'ABC12345',
    enabled = true,
    max = 165,
    shrink = false,
    adult = false,
})

Eventos ​

cuxial_multichar👪Changed ​

Evento de servidor. Se dispara cuando una solicitud se crea, se revisa, se cambia con FamilySetGrowth o se borra. Recibe el objeto solicitud, con status en 'deleted' cuando el personaje se ha borrado.

lua
AddEventHandler('cuxial_multichar:family:Changed', function(solicitud)
    -- solicitud.status: 'pending', 'approved', 'rejected', 'revoked' o 'deleted'
    print(solicitud.citizenid, solicitud.status)
end)

State bag ​

cuxialScale se fija en el jugador mientras juega con un menor aprobado. Contiene el factor de escala (estatura dividida entre la estatura adulta de referencia). Es nil para el resto, y para los menores marcados como adult. Está replicado, así que los clientes también pueden leerlo.

lua
local escala = Player(source).state.cuxialScale

© Cuxial