Inicio › Documentación › Personalización · origen_races

Personalización · origen_races

La carpeta custom/ te permite integrar tu framework, el sistema de combustible, el sistema de llaves y los eventos del juego sin tocar el núcleo. Ambos ficheros son escrow_ignore, así que sobreviven a las actualizaciones.

text
custom/
├── client.lua  — notifications, fuel, keys, revive, weather
└── server.lua  — notifications, admin check, race join/leave hooks

custom/client.lua

HelpNotify(msg)

Se llama cuando el jugador se acerca a un punto de acceso al arcade. Solo se usa cuando Config.CustomHelpNotify = true.

lua
function HelpNotify(msg)
    -- Default uses qb-core DrawText
    -- Replace with your own:
    -- lib.showTextUI('[E] - ' .. msg)
end

ShowNotify(msg)

Muestra una notificación al jugador local. Usa el framework definido en Config.Framework.

lua
function ShowNotify(msg)
    -- 'qb'  → QBCore.Functions.Notify(msg, 'success')
    -- 'esx' → ESX.ShowNotification(msg)
    -- custom: implement here
end

SetFuel(vehicle, fuel)

Establece el nivel de combustible de un vehículo de carrera. Se llama después de generar el vehículo de carrera del jugador.

lua
function SetFuel(vehicle, fuel)
    if Config.Fuel == 'LegacyFuel' then
        exports['LegacyFuel']:SetFuel(vehicle, fuel)
    end
    -- Add your fuel system here:
    -- exports['ox_fuel']:SetFuel(vehicle, fuel)
end

giveCarKey(plate)

Entrega al jugador las llaves de su vehículo de carrera. Implementa aquí tu sistema de llaves.

lua
function giveCarKey(plate)
    TriggerEvent("vehiclekeys:client:SetOwner", plate)
    -- Replace with your key system:
    -- exports['qbx_vehiclekeys']:GiveKeys(vehicle, true)
end

leaveRace()

Se llama cuando el jugador local abandona una carrera. Comportamiento por defecto: elimina el vehículo de carrera.

lua
function leaveRace()
    SetEntityInvincible(PlayerPedId(), false)
    local vehicle = GetVehiclePedIsIn(PlayerPedId(), true)
    if vehicle ~= 0 then
        DeleteVehicle(vehicle)
    end
end

revivePlayer()

Se llama cuando hay que reanimar a un jugador a mitad de carrera (p. ej. tras un choque). Implementa aquí tu lógica de ambulancia/reanimación.

lua
function revivePlayer()
    -- Example:
    -- TriggerEvent('hospital:client:Revive')
end

disableWeather() / enableWeather()

Se llaman al entrar y al salir de una carrera para pausar/reanudar tu recurso de sincronización del clima.

lua
function disableWeather()
    -- TriggerEvent('your_weather:pause')
end
 
function enableWeather()
    -- TriggerEvent('your_weather:resume')
end

custom/server.lua

utils.Notify(src, msg)

Envía una notificación a un jugador desde el servidor.

lua
utils.Notify = function(src, msg)
    -- 'qb'  → TriggerClientEvent("QBCore:Notify", src, msg)
    -- 'esx' → TriggerClientEvent("esx:showNotification", src, msg)
    -- custom: implement here
end

IsPlayerAdmin(source) → boolean

Comprueba si un jugador tiene acceso de administrador según Config.GroupPermissions. Se valida mediante los grupos del framework y los permisos ACE de FiveM.

lua
function IsPlayerAdmin(source)
    -- Default: validates Config.GroupPermissions
    -- via IsPlayerAceAllowed and framework group checks
    return false
end

joinRace(src)

Hook que se llama cuando un jugador se une correctamente a una sesión de carrera. Implementa aquí tu lógica personalizada (p. ej. registro de logs, seguimiento de estadísticas).

lua
function joinRace(src)
    -- src = server ID of the player who joined
end

leaveRace(src)

Hook que se llama cuando un jugador abandona una sesión de carrera.

lua
function leaveRace(src)
    -- src = server ID of the player who left
end