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

Personalização · origen_radio

A pasta custom/ contém a camada de integração entre o origen_radio e o resto do teu servidor. Estes ficheiros não estão protegidos por escrow e destinam-se a ser editados.

text
custom/
├── client/
│   └── client.lua   ← Framework, inventory, pma-voice and revive integration
└── server/
    └── server.lua   ← Framework core object and notifications

custom/client/client.lua

GetCoreObject() → table

Devolve o objeto core do framework ativo.

lua
-- QBCore
local Core = GetCoreObject()
-- ESX
local ESX = GetCoreObject()

FW_Notify(text)

Mostra uma notificação ao jogador local com o sistema de notificações do framework ativo.

lua
FW_Notify("You need a radio item.")
Parâmetro Tipo Descrição
text string Mensagem a mostrar

OverrideProximityRange(distance, bool)

Substitui o alcance de proximidade do pma-voice. Passa nil para remover a substituição e repor o valor por omissão.

lua
-- Override to 10 metres
OverrideProximityRange(10.0, true)
 
-- Clear the override
OverrideProximityRange(nil)
Parâmetro Tipo Descrição
distance number | nil Alcance de proximidade pretendido em metros, ou nil para repor
bool boolean Passado diretamente para pma-voice:overrideProximityRange

ToggleVoice(target, value, string)

Chama pma-voice:toggleVoice para o alvo indicado.

lua
ToggleVoice(target, true, "radio")

PlayerTargets(radioFreqs)

Chama pma-voice:playerTargets com a lista atual de alvos de frequências de rádio.

lua
PlayerTargets(Radio.Targets)

IsPlayerDead() → boolean

Devolve true se o jogador local estiver a reproduzir a animação de morte. Usada internamente para impedir o uso do rádio enquanto está morto.

lua
if IsPlayerDead() then return end

CanTalk() → boolean

Filtro personalizado que controla se o jogador pode transmitir. Devolve false para bloquear a transmissão em qualquer circunstância (p. ex. algemado, dentro de um veículo, etc.).

lua
function CanTalk()
    -- Add your logic here
    return true
end

CanOpenRadio() → boolean

Filtro personalizado que controla se o jogador pode abrir a NUI do rádio. Devolve false para impedir a abertura em qualquer circunstância.

lua
function CanOpenRadio()
    -- Add your logic here
    return true
end

GetPlayerItems(PlayerData) → table

Devolve os itens do inventário do jogador para o recurso de inventário ativo. Esta função é usada internamente para verificar se o jogador tem um item de rádio quando Config.NeedRadioItem é true.

A implementação já cobre todos os inventários compatíveis. Adiciona aqui um bloco elseif se usares um inventário não compatível.

lua
function GetPlayerItems(PlayerData)
    if Config.Inventory == "ox_inventory" then
        return exports.ox_inventory:GetPlayerItems()
    end
    -- ...
    return PlayerData.items or {}
end

Se Config.CustomReviveEvent estiver definido, custom/client/client.lua regista automaticamente um listener para esse evento e reativa o rádio ao reanimar; não é preciso código adicional.


custom/server/server.lua

GetCoreObject() → table

Devolve o objeto core do framework no lado do servidor. Usado internamente para resolver os dados do jogador.

lua
local Core = GetCoreObject()

FW_Notify(source, text)

Envia uma notificação a um jogador específico com o sistema de notificações do framework ativo.

lua
FW_Notify(source, "You have been removed from the frequency.")
Parâmetro Tipo Descrição
source number ID de servidor do jogador
text string Mensagem a mostrar