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

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.

text
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 lookup

custom/client.lua

Custom.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.

lua
Custom.canOpenMenu = function(job)
    return { success = true, message = '' }
end

Custom.ShowNotification(msg)

Mostra uma notificação ao jogador local. Usado quando Config.CustomNotify = true.

lua
Custom.ShowNotification = function(msg)
    -- Add your notification here
    -- Example: exports["origen_notify"]:ShowNotification(msg, "business")
end

Custom.ShowShopState(msg)

Mostra uma notificação relacionada com a loja (por exemplo, compra bem-sucedida ou falhada).

lua
Custom.ShowShopState = function(msg)
    -- Same as ShowNotification but can use a different style
end

ShowHelpNotification(key, msg)

Mostra uma dica de interação no mundo. Usado quando Config.OrigenNotify = true.

lua
function ShowHelpNotification(key, msg)
    -- Default: uses origen_notify CreateHelp
    -- Add your own implementation if not using origen_notify
end

Custom.DrawText(key, msg) / Custom.HideText()

Desenha a dica de interação com a interface de texto. Usado quando Config.customDrawText = true.


GetItemData(item) → table | nil

Devolve 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:


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.

lua
Custom.ReapirVehicle = function(vehicle)
    -- exports['VehicleDeformation']:FixVehicleDeformation(vehicle)
end

Custom.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.

lua
Custom.GetVehicleFuel = function(vehicle)
    -- return exports['FuelSystem']:GetFuel(vehicle)
end

Custom.OpenModificationMenu(vehicle)

Abre o menu de tuning. Implementa aqui o teu sistema de tuning.

lua
Custom.OpenModificationMenu = function(vehicle)
    -- Used when Config.CustomMechanic = true
end

Custom.GetClientVehicleKeys(vehicle)

Dá ao jogador as chaves de um veículo a partir do cliente. Implementa aqui o teu sistema de chaves.

lua
Custom.GetClientVehicleKeys = function(vehicle)
    local plate = GetVehicleNumberPlateText(vehicle)
    TriggerEvent("vehiclekeys:client:SetOwner", plate)
end

Custom.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/server/main.lua

Custom.RemoveMoney(Player, account, amount, log) → boolean

Retira 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.

lua
Custom.GetVehicleKeys = function(source, plate)
    TriggerClientEvent("vehiclekeys:client:SetOwner", source, plate)
end

Custom.GetVehicleData(plate) → { owner } | false

Devolve o identificador do proprietário de um veículo a partir da matrícula, consultando a tabela de veículos da framework.


Custom.PlateGenerator() → string

Gera uma matrícula personalizada. Implementa aqui a tua própria lógica.

lua
Custom.PlateGenerator = function()
    local plate = ''
    -- your plate generation logic
    return plate
end

Custom.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 | function

Substitui 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:

lua
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