Exports, eventos y hooks
El código está protegido con escrow, pero estos exports, eventos y hooks de la config dejan que tus otros scripts trabajen con ZAIDERS Appearance.
Exports del cliente
openShop
Abre un menú donde esté el jugador: el armario de una casa, el vestuario de un trabajo, una zona de ox_target en una tienda.
exports.zaiders_appearance:openShop('clothing') -- la tienda de ropa
exports.zaiders_appearance:openShop('barber') -- la barbería
exports.zaiders_appearance:openShop('tattoo') -- la tienda de tatuajes
exports.zaiders_appearance:openShop('wardrobe') -- outfits y uniformes
exports.zaiders_appearance:openShop('wardrobe', { tab = 'job' }) -- directo a los uniformes del trabajo
exports.zaiders_appearance:openShop('wardrobe', { tab = 'gang' }) -- directo a los uniformes de la bandaDevuelve true cuando el tipo es válido y el menú va en camino, y false con un tipo desconocido. Las reglas de siempre se mantienen: el jugador no puede estar muerto, caído ni esposado, se consulta Config.CanOpenMenu, y el servidor revisa cada pago y cada guardado, abra donde abra el menú.
-- Una zona de ox_target que abre el guardarropa de una comisaría
exports.ox_target:addBoxZone({
coords = vec3(461.5, -998.1, 30.6),
size = vec3(2, 2, 2),
options = {
{
label = 'Vestuario',
icon = 'fa-solid fa-shirt',
groups = 'police',
onSelect = function()
exports.zaiders_appearance:openShop('wardrobe', { tab = 'job' })
end,
},
},
})isOpen
if exports.zaiders_appearance:isOpen() then
-- hay un menú abierto, o abriéndose
endExports del servidor
ownsPed
Si el personaje actual de un jugador tiene un ped de la tienda de peds (comprado, regalado o canjeado con un código):
local tiene = exports.zaiders_appearance:ownsPed(source, 'a_c_chop') -- true o falseEventos del cliente
HUD
Se dispara al abrir y al cerrar un menú o el panel. Tu HUD lo puede escuchar para esconderse:
-- hidden: true al abrir un menú, false al cerrarlo
-- menu: 'clothing', 'barber', 'tattoo', 'wardrobe', 'creator' o 'panel'
AddEventHandler('zaiders_appearance:hud', function(hidden, menu)
-- tu HUD acá
end)Si tu HUD tiene un export para mostrarse y esconderse, no hace falta código: agrégalo en Config.HideHud.resources. Ver la Referencia de la config.
Creador cerrado
Se dispara cuando se cierra el creador de personaje, normalmente justo después de guardar el personaje nuevo:
AddEventHandler('zaiders_appearance:creator:closed', function()
-- por ejemplo, mostrar tu selector de aparición
end)Hooks de la config
shared/config.lua está abierto, así que puedes escribir ahí funciones chicas que corren en el juego del jugador.
Tus notificaciones
Config.Notify = function(text, kind)
-- kind: 'inform', 'success' o 'error'
exports['mis_avisos']:Notify(text, kind)
endTu propia regla para abrir los menús
Config.CanOpenMenu = function()
-- devuelve false para no abrir el menú, por ejemplo en una persecución
return not LocalPlayer.state.enPersecucion
endTu HUD
Config.HideHud = {
enabled = true,
resources = {
{ resource = 'mi-hud', export = 'SetHudVisible' }, -- recibe false al abrir, true al cerrar
{ resource = 'otro-hud', event = 'otro-hud:toggle', hide = false, show = true },
{ resource = 'tercer-hud', export = 'SetVisible', changed = 'tercer-hud:changed' },
},
custom = function(hidden, menu)
-- cualquier otra cosa
end,
}Exports de otros menús de ropa
ZAIDERS Appearance también contesta los exports y eventos de illenium-appearance, fivem-appearance, qb-clothing y de skinchanger y esx_skin de ESX, mientras esos recursos no están prendidos. Los scripts hechos para ellos funcionan sin cambios. Ver Frameworks y compatibilidad.
El formato de la apariencia
La apariencia se guarda en el formato de apariencia de QBCore, el mismo JSON que usan illenium-appearance y qb-clothing, en playerskins.skin (QBCore y Qbox), o en el formato de skinchanger en users.skin (ESX). En el menú, Peds → JSON del personaje copia la apariencia de un personaje en ese formato. Los admins también pueden pegar uno ahí.
