Início › Documentação › Personalização · origen_zones
A pasta custom/ contém ficheiros de código aberto excluídos do escrow. Modifica-os para adaptar o recurso à tua framework, ao teu sistema de notificações e à tua lógica de controlo de acesso.
custom/
├── client.lua
└── server.luanotify(msg, type)Envia uma notificação ao jogador local. É chamada internamente quando o servidor dispara um evento de notificação.
| Parâmetro | Tipo | Descrição |
|---|---|---|
msg |
string |
Corpo da mensagem da notificação |
type |
string |
Tipo de notificação: 'inform' | 'error' | 'success' |
A implementação por omissão usa lib.notify da ox_lib. Substitui o corpo para usares o teu próprio sistema de notificações:
function notify(msg, type)
-- type = 'inform' or 'error' or 'success'
lib.notify({
title = locale('notify.title'),
description = msg,
duration = 7000,
position = 'top',
type = type
})
endExemplo: com um recurso de notificações personalizado:
function notify(msg, type)
TriggerEvent('myNotify:send', msg, type)
endEstes eventos de rede são disparados sempre que um jogador entra ou sai de qualquer zona. Usa-os para adicionar lógica própria associada às transições de zona.
origen_zones:client:onPlayerEnterZoneDisparado no cliente quando o jogador local entra numa zona.
RegisterNetEvent('origen_zones:client:onPlayerEnterZone', function(zoneName)
-- zoneName: internal name of the zone entered
debugPrint('Entered zone ' .. zoneName)
end)origen_zones:client:onPlayerExitZoneDisparado no cliente quando o jogador local sai de uma zona.
RegisterNetEvent('origen_zones:client:onPlayerExitZone', function(zoneName)
-- zoneName: internal name of the zone exited
debugPrint('Exited zone ' .. zoneName)
end)isPlayerStaff(src) → booleanDevolve true se o jogador for considerado staff. É usada para controlar o acesso ao painel de administração e aos comandos de gestão de zonas.
Verifica contra Config.GroupPermissions usando tanto os grupos da framework como as permissões Ace do FiveM.
| Parâmetro | Tipo | Descrição |
|---|---|---|
src |
number |
ID de servidor do jogador |
Exemplo: adicionar uma verificação de staff personalizada:
function isPlayerStaff(src)
-- Custom override: check against your own system
return exports['my_permissions']:IsAdmin(src)
endgetPlayerJobName(src) → stringDevolve o nome do trabalho do jogador em minúsculas. Devolve uma cadeia vazia '' se não foi possível obter o trabalho.
É usada internamente em isPlayerWhitelistedForZone para comparar com a opção whitelistJobs da zona.
| Parâmetro | Tipo | Descrição |
|---|---|---|
src |
number |
ID de servidor do jogador |
isPlayerWhitelistedForZone(src, options) → booleanDevolve true se o jogador estiver na lista de permissões de uma determinada zona, ignorando assim as regras de aplicação (prevenção de dano, desarmamento, limite de velocidade, etc.).
| Parâmetro | Tipo | Descrição |
|---|---|---|
src |
number |
ID de servidor do jogador |
options |
table |
Tabela de opções da zona (da definição da zona) |
A permissão é concedida quando pelo menos uma das seguintes condições se verifica:
options.whitelistStaff == true e isPlayerStaff(src) devolve trueoptions.whitelistJobsOs jogadores na lista de permissões ignoram as regras de aplicação mas continuam fisicamente dentro da zona. O export playerInZone() continua a devolver true para eles.