Início › Documentação › Personalização · origen_masterjob
A pasta custom/ trata da integração com a framework, o inventário, a roupa, os veículos, o combustível e as notificações sem tocar no núcleo. Todos os ficheiros são escrow_ignore, por isso sobrevivem às atualizações.
custom/
├── client.lua — notifications, inventory, stash, clothing, garage, mechanic, keys, fuel
├── client_pay_bills.lua — bill payment NPC thread
├── blips.lua — business blip rendering
└── server/
├── command.lua — admin command definitions
├── main.lua — inventory helpers, vehicle queries, payment, keys, bill sending
└── menu/
└── phone.lua — phone number lookupCustom.canOpenMenu(job) → { success, message }Controla se o jogador local pode abrir o menu do negócio. Devolve success = false com uma mensagem para bloquear o acesso.
Custom.canOpenMenu = function(job)
return { success = true, message = '' }
endCustom.ShowNotification(msg)Mostra uma notificação ao jogador local. Usado quando Config.CustomNotify = true.
Custom.ShowNotification = function(msg)
-- Add your notification here
-- Example: exports["origen_notify"]:ShowNotification(msg, "business")
endCustom.ShowShopState(msg)Mostra uma notificação relacionada com a loja (por exemplo, compra bem-sucedida ou falhada).
Custom.ShowShopState = function(msg)
-- Same as ShowNotification but can use a different style
endShowHelpNotification(key, msg)Mostra uma dica de interação no mundo. Usado quando Config.OrigenNotify = true.
function ShowHelpNotification(key, msg)
-- Default: uses origen_notify CreateHelp
-- Add your own implementation if not using origen_notify
endCustom.DrawText(key, msg) / Custom.HideText()Desenha a dica de interação com a interface de texto. Usado quando Config.customDrawText = true.
GetItemData(item) → table | nilDevolve os dados de um item do sistema de inventário ativo. Reencaminha consoante Config.Inventory.
OpenStash(Sid, Sslots, label, preId)Abre o inventário de um armazém. Reencaminha consoante Config.Inventory:
ox_inventory → openInventory('stash', ...)codem-inventory → OpenStash(...)OpenOutfitMenu(canEdit)Abre o menu de seleção de roupa. Reencaminha consoante Config.Clothing.
openPlayerInventory(pID)Abre o inventário de outro jogador (para o trabalho de mecânico). Reencaminha consoante Config.Inventory.
Custom.ReapirVehicle(vehicle)Repara um veículo. Implementa aqui a tua correção de deformações, se for necessário.
Custom.ReapirVehicle = function(vehicle)
-- exports['VehicleDeformation']:FixVehicleDeformation(vehicle)
endCustom.GetVehicleProperties(vehicle) / Custom.SetVehicleProperties(vehicle, mods)Obtém ou aplica as modificações de um veículo. Reencaminha consoante Config.Framework.
Custom.GetVehicleFuel(vehicle) / Custom.SetVehicleFuel(vehicle, fuel)Obtém ou aplica o combustível de um veículo. Implementa aqui o teu sistema de combustível.
Custom.GetVehicleFuel = function(vehicle)
-- return exports['FuelSystem']:GetFuel(vehicle)
endCustom.OpenModificationMenu(vehicle)Abre o menu de tuning. Implementa aqui o teu sistema de tuning.
Custom.OpenModificationMenu = function(vehicle)
-- Used when Config.CustomMechanic = true
endCustom.GetClientVehicleKeys(vehicle)Dá ao jogador as chaves de um veículo a partir do cliente. Implementa aqui o teu sistema de chaves.
Custom.GetClientVehicleKeys = function(vehicle)
local plate = GetVehicleNumberPlateText(vehicle)
TriggerEvent("vehiclekeys:client:SetOwner", plate)
endCustom.SpawnVehicle(model, cb, coords, isNetwork)Cria um veículo. Reencaminha consoante Config.Framework.
CustomGarage(PlayerData, coords) / CustomGarageBusiness(PlayerData, coords)Substitui a garagem por omissão pelo teu próprio sistema. Só é chamado quando Config.CustomGarage = true.
Custom.RemoveMoney(Player, account, amount, log) → booleanRetira dinheiro da conta de um jogador. Trata do item de dinheiro do ox_inventory e das contas da framework.
Custom.GetVehicleKeys(source, plate)Dá as chaves de um veículo a partir do servidor. Implementa aqui o teu sistema de chaves.
Custom.GetVehicleKeys = function(source, plate)
TriggerClientEvent("vehiclekeys:client:SetOwner", source, plate)
endCustom.GetVehicleData(plate) → { owner } | falseDevolve o identificador do proprietário de um veículo a partir da matrícula, consultando a tabela de veículos da framework.
Custom.PlateGenerator() → stringGera uma matrícula personalizada. Implementa aqui a tua própria lógica.
Custom.PlateGenerator = function()
local plate = ''
-- your plate generation logic
return plate
endCustom.QueryGiveBusinesscar(values) / Custom.QueryRemoveBusinesscar(values)Insere ou elimina um veículo na tabela de veículos da framework quando um veículo de negócio é atribuído ou retirado.
Custom.SendBill → false | functionSubstitui a lógica de criação de faturas por omissão. Atribui-lhe uma função para usares o teu próprio sistema de faturação:
Custom.SendBill = function(data, cb)
-- data: { senderSource, receiverSource, price, concept, business }
-- cb(true) on success, cb('error message') on failure
local success = MySQL.insert.await('INSERT INTO bills (...) VALUES (...)', {...})
cb(success or 'Failed to send bill')
end