Início › Documentação › Personalização · origen_zones

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.

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

custom/client.lua

notify(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:

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

Exemplo: com um recurso de notificações personalizado:

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

Hooks de entrada e saída de zona

Estes 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:onPlayerEnterZone

Disparado no cliente quando o jogador local entra numa 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

Disparado no cliente quando o jogador local sai de uma 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

Devolve 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:

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

getPlayerJobName(src) → string

Devolve 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) → boolean

Devolve 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:

Os 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.