Início › Documentação › 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.
custom/
├── client.lua — notifications, fuel, keys, revive, weather
└── server.lua — notifications, admin check, race join/leave hooksHelpNotify(msg)Chamada quando o jogador se aproxima de um ponto de acesso ao arcade. Só é usada quando Config.CustomHelpNotify = true.
function HelpNotify(msg)
-- Default uses qb-core DrawText
-- Replace with your own:
-- lib.showTextUI('[E] - ' .. msg)
endShowNotify(msg)Mostra uma notificação ao jogador local. Usa o framework definido em Config.Framework.
function ShowNotify(msg)
-- 'qb' → QBCore.Functions.Notify(msg, 'success')
-- 'esx' → ESX.ShowNotification(msg)
-- custom: implement here
endSetFuel(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.
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)
endgiveCarKey(plate)Entrega ao jogador as chaves do seu veículo de corrida. Implementa aqui o teu sistema de chaves.
function giveCarKey(plate)
TriggerEvent("vehiclekeys:client:SetOwner", plate)
-- Replace with your key system:
-- exports['qbx_vehiclekeys']:GiveKeys(vehicle, true)
endleaveRace()Chamada quando o jogador local abandona uma corrida. Comportamento por omissão: elimina o veículo de corrida.
function leaveRace()
SetEntityInvincible(PlayerPedId(), false)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), true)
if vehicle ~= 0 then
DeleteVehicle(vehicle)
end
endrevivePlayer()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.
function revivePlayer()
-- Example:
-- TriggerEvent('hospital:client:Revive')
enddisableWeather() / enableWeather()Chamadas ao entrar e ao sair de uma corrida para pausar/retomar o teu recurso de sincronização do clima.
function disableWeather()
-- TriggerEvent('your_weather:pause')
end
function enableWeather()
-- TriggerEvent('your_weather:resume')
endutils.Notify(src, msg)Envia uma notificação a um jogador a partir do servidor.
utils.Notify = function(src, msg)
-- 'qb' → TriggerClientEvent("QBCore:Notify", src, msg)
-- 'esx' → TriggerClientEvent("esx:showNotification", src, msg)
-- custom: implement here
endIsPlayerAdmin(source) → booleanVerifica se um jogador tem acesso de administrador segundo Config.GroupPermissions. É validado através dos grupos do framework e das permissões ACE do FiveM.
function IsPlayerAdmin(source)
-- Default: validates Config.GroupPermissions
-- via IsPlayerAceAllowed and framework group checks
return false
endjoinRace(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).
function joinRace(src)
-- src = server ID of the player who joined
endleaveRace(src)Hook chamado quando um jogador abandona uma sessão de corrida.
function leaveRace(src)
-- src = server ID of the player who left
end