Inicio › Documentación › Personalización · origen_zones

Personalización · origen_zones

La carpeta custom/ contiene ficheros de código abierto excluidos del escrow. Modifícalos para adaptar el recurso a tu framework, tu sistema de notificaciones y tu lógica de control de acceso.

text
custom/
├── client.lua
└── server.lua

custom/client.lua

notify(msg, type)

Envía una notificación al jugador local. Se llama internamente cuando el servidor dispara un evento de notificación.

Parámetro Tipo Descripción
msg string Cuerpo del mensaje de la notificación
type string Tipo de notificación: 'inform' | 'error' | 'success'

La implementación por defecto usa lib.notify de ox_lib. Sustituye el cuerpo para usar tu propio sistema de notificaciones:

lua
function notify(msg, type)
    -- type = 'inform' or 'error' or 'success'
    lib.notify({
        title       = locale('notify.title'),
        description = msg,
        duration    = 7000,
        position    = 'top',
        type        = type
    })
end

Ejemplo: usando un recurso de notificaciones personalizado:

lua
function notify(msg, type)
    TriggerEvent('myNotify:send', msg, type)
end

Hooks de entrada y salida de zona

Estos eventos de red se disparan cada vez que un jugador entra o sale de cualquier zona. Úsalos para añadir lógica propia ligada a las transiciones de zona.

origen_zones:client:onPlayerEnterZone

Se dispara en el cliente cuando el jugador local entra en una zona.

lua
RegisterNetEvent('origen_zones:client:onPlayerEnterZone', function(zoneName)
    -- zoneName: internal name of the zone entered
    debugPrint('Entered zone ' .. zoneName)
end)

origen_zones:client:onPlayerExitZone

Se dispara en el cliente cuando el jugador local sale de una zona.

lua
RegisterNetEvent('origen_zones:client:onPlayerExitZone', function(zoneName)
    -- zoneName: internal name of the zone exited
    debugPrint('Exited zone ' .. zoneName)
end)

custom/server.lua

isPlayerStaff(src) → boolean

Devuelve true si el jugador se considera staff. Se usa para controlar el acceso al panel de administración y a los comandos de gestión de zonas.

Comprueba contra Config.GroupPermissions usando tanto los grupos del framework como los permisos Ace de FiveM.

Parámetro Tipo Descripción
src number ID de servidor del jugador

Ejemplo: añadir una comprobación de staff personalizada:

lua
function isPlayerStaff(src)
    -- Custom override: check against your own system
    return exports['my_permissions']:IsAdmin(src)
end

getPlayerJobName(src) → string

Devuelve el nombre del trabajo del jugador en minúsculas. Devuelve una cadena vacía '' si no se pudo obtener el trabajo.

Se usa internamente en isPlayerWhitelistedForZone para comparar con la opción whitelistJobs de la zona.

Parámetro Tipo Descripción
src number ID de servidor del jugador

isPlayerWhitelistedForZone(src, options) → boolean

Devuelve true si el jugador está en la lista blanca de una zona determinada, con lo que se salta las reglas de aplicación (prevención de daño, desarme, límite de velocidad, etc.).

Parámetro Tipo Descripción
src number ID de servidor del jugador
options table Tabla de opciones de la zona (de la definición de la zona)

La lista blanca se concede cuando se cumple al menos una de estas condiciones:

Los jugadores de la lista blanca se saltan las reglas de aplicación pero siguen estando físicamente dentro de la zona. El export playerInZone() sigue devolviendo true para ellos.