Inicio › Documentación › 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.
custom/
├── client.lua
└── server.luanotify(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:
function notify(msg, type)
-- type = 'inform' or 'error' or 'success'
lib.notify({
title = locale('notify.title'),
description = msg,
duration = 7000,
position = 'top',
type = type
})
endEjemplo: usando un recurso de notificaciones personalizado:
function notify(msg, type)
TriggerEvent('myNotify:send', msg, type)
endEstos 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:onPlayerEnterZoneSe dispara en el cliente cuando el jugador local entra en una zona.
RegisterNetEvent('origen_zones:client:onPlayerEnterZone', function(zoneName)
-- zoneName: internal name of the zone entered
debugPrint('Entered zone ' .. zoneName)
end)origen_zones:client:onPlayerExitZoneSe dispara en el cliente cuando el jugador local sale de una zona.
RegisterNetEvent('origen_zones:client:onPlayerExitZone', function(zoneName)
-- zoneName: internal name of the zone exited
debugPrint('Exited zone ' .. zoneName)
end)isPlayerStaff(src) → booleanDevuelve 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:
function isPlayerStaff(src)
-- Custom override: check against your own system
return exports['my_permissions']:IsAdmin(src)
endgetPlayerJobName(src) → stringDevuelve 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) → booleanDevuelve 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:
options.whitelistStaff == true y isPlayerStaff(src) devuelve trueoptions.whitelistJobsLos 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.