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

Personalização · origen_races

A pasta custom/ permite-te integrar o teu framework, o sistema de combustível, o sistema de chaves e os eventos do jogo sem mexer no núcleo. Ambos os ficheiros são escrow_ignore, pelo que sobrevivem às atualizações.

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

custom/client.lua

HelpNotify(msg)

Chamada quando o jogador se aproxima de um ponto de acesso ao arcade. Só é usada quando Config.CustomHelpNotify = true.

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

ShowNotify(msg)

Mostra uma notificação ao jogador local. Usa o framework definido em Config.Framework.

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

SetFuel(vehicle, fuel)

Define o nível de combustível de um veículo de corrida. Chamada depois de gerar o veículo de corrida do jogador.

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 ao jogador as chaves do seu veículo de corrida. Implementa aqui o teu sistema de chaves.

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

leaveRace()

Chamada quando o jogador local abandona uma corrida. Comportamento por omissão: elimina o veículo de corrida.

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

revivePlayer()

Chamada quando é preciso reanimar um jogador a meio da corrida (p. ex. depois de um acidente). Implementa aqui a tua lógica de ambulância/reanimação.

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

disableWeather() / enableWeather()

Chamadas ao entrar e ao sair de uma corrida para pausar/retomar o teu recurso de sincronização do clima.

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

custom/server.lua

utils.Notify(src, msg)

Envia uma notificação a um jogador a partir do 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

Verifica se um jogador tem acesso de administrador segundo Config.GroupPermissions. É validado através dos grupos do framework e das permissões ACE do FiveM.

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

joinRace(src)

Hook chamado quando um jogador entra com sucesso numa sessão de corrida. Implementa aqui a tua lógica personalizada (p. ex. registo de logs, acompanhamento de estatísticas).

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

leaveRace(src)

Hook chamado quando um jogador abandona uma sessão de corrida.

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