Inicio › Documentación › Personalización · origen_radio

Personalización · origen_radio

La carpeta custom/ contiene la capa de integración entre origen_radio y el resto de tu servidor. Estos ficheros no están protegidos por escrow y están pensados para editarse.

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

Devuelve el objeto core del framework activo.

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

FW_Notify(text)

Muestra una notificación al jugador local con el sistema de notificaciones del framework activo.

lua
FW_Notify("You need a radio item.")
Parámetro Tipo Descripción
text string Mensaje que se muestra

OverrideProximityRange(distance, bool)

Sobrescribe el rango de proximidad de pma-voice. Pasa nil para quitar la sobrescritura y restaurar el valor por defecto.

lua
-- Override to 10 metres
OverrideProximityRange(10.0, true)
 
-- Clear the override
OverrideProximityRange(nil)
Parámetro Tipo Descripción
distance number | nil Rango de proximidad deseado en metros, o nil para restablecerlo
bool boolean Se pasa directamente a pma-voice:overrideProximityRange

ToggleVoice(target, value, string)

Llama a pma-voice:toggleVoice para el objetivo indicado.

lua
ToggleVoice(target, true, "radio")

PlayerTargets(radioFreqs)

Llama a pma-voice:playerTargets con la lista actual de objetivos de frecuencias de radio.

lua
PlayerTargets(Radio.Targets)

IsPlayerDead() → boolean

Devuelve true si el jugador local está reproduciendo la animación de muerte. Se usa internamente para impedir el uso de la radio estando muerto.

lua
if IsPlayerDead() then return end

CanTalk() → boolean

Filtro personalizado que controla si el jugador puede transmitir. Devuelve false para bloquear la transmisión en cualquier circunstancia (p. ej. esposado, dentro de un vehículo, etc.).

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

CanOpenRadio() → boolean

Filtro personalizado que controla si el jugador puede abrir la NUI de la radio. Devuelve false para impedir la apertura en cualquier circunstancia.

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

GetPlayerItems(PlayerData) → table

Devuelve los objetos del inventario del jugador para el recurso de inventario activo. Esta función se usa internamente para comprobar si el jugador lleva un objeto de radio cuando Config.NeedRadioItem es true.

La implementación ya cubre todos los inventarios compatibles. Añade un bloque elseif aquí si usas un inventario no compatible.

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

Si Config.CustomReviveEvent está definido, custom/client/client.lua registra automáticamente un listener para ese evento y reactiva la radio al reanimar; no hace falta código adicional.


custom/server/server.lua

GetCoreObject() → table

Devuelve el objeto core del framework en el lado del servidor. Se usa internamente para resolver los datos del jugador.

lua
local Core = GetCoreObject()

FW_Notify(source, text)

Envía una notificación a un jugador concreto con el sistema de notificaciones del framework activo.

lua
FW_Notify(source, "You have been removed from the frequency.")
Parámetro Tipo Descripción
source number ID de servidor del jugador
text string Mensaje que se muestra