Início › Documentação › Personalização · origen_blackmarket
A pasta custom/ trata da integração com a framework, do acesso ao inventário e da interface sem mexer no núcleo. Todos os ficheiros estão em escrow_ignore, por isso sobrevivem às atualizações.
custom/
├── client.lua — notifications, inventory access, menu, weapon lookup
├── server.lua — payment, vehicle insertion, item metadata, plate check
└── framework/
├── client/
│ ├── qb.lua — QBCore client bridge
│ └── esx.lua — ESX client bridge
└── server/
├── qb.lua — QBCore server bridge
└── esx.lua — ESX server bridgeShowHelpNotification(key, msg)Mostra um texto de ajuda de interação. Delega consoante Config.Framework.
function ShowHelpNotification(key, msg)
-- 'qbcore' → exports['qb-core']:DrawText(msg, nil, key)
-- 'esx' → Framework.ShowHelpNotification(msg, key)
endHideHelpNotification()Esconde o texto de ajuda de interação.
function HideHelpNotification()
-- 'qbcore' → exports["qb-core"]:HideText()
-- custom: implement here
endGetPlayerItems(PlayerData) → tableDevolve os itens do inventário do jogador local. Delega consoante Config.Inventory.
Suportados: qs-inventory, ls-inventory, origen_inventory, ox_inventory, codem-inventory, core_inventory. Para qb-inventory recorre a PlayerData.items.
function GetPlayerItems(PlayerData)
-- Config.Inventory == 'custom': implement here
return PlayerData.items or {}
endGetItemFromWeapon(PlayerData, weapon) → item | nilDevolve o item do inventário que corresponde a um hash de arma. Usado para verificar se um jogador possui uma arma específica antes de lhe aplicar um camuflado.
OpenMenu(...)Abre o menu de contexto para comprar camuflados. Delega consoante Config.Framework:
qbcore → exports["qb-menu"]:openMenu(...)esx → Framework.UI.Menu.Open(...)SetItemMetadata(source, item, slot, info)Define metadados num item do inventário após a compra. Apenas implementado para origen_inventory.
function SetItemMetadata(source, item, slot, info)
if Config.Inventory == "origen_inventory" then
exports.origen_inventory:SetItemMetadata(source, item, slot, info)
else
-- Add your inventory metadata implementation here
end
endSelectPlate(plate) → string | nilVerifica se uma matrícula já existe na tabela de veículos. Delega consoante Config.Framework.
function SelectPlate(plate)
-- 'qbcore' → SELECT plate FROM player_vehicles
-- 'esx' → SELECT plate FROM owned_vehicles
endAddVehicle(vehName, license, identifier, model, hash, plate, garage, state)Insere um veículo novo na tabela de veículos da framework após a compra.
function AddVehicle(vehName, license, identifier, model, hash, plate, garage, state)
-- 'qbcore' → INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, garage, state)
-- 'esx' → INSERT INTO owned_vehicles (owner, plate, vehicle, type, stored, garage)
-- Uses Config.DefaultCarProperties for the vehicle JSON blob
enddoPayment(type, price, cryptoPrice, pID, cb)Trata do pagamento de uma compra. Verifica o saldo do jogador e desconta o valor.
| Parâmetro | Tipo | Descrição |
|---|---|---|
type |
string |
'money' | 'crypto' |
price |
number |
Preço em numerário |
cryptoPrice |
number |
Preço em cripto |
pID |
number |
ID de servidor do jogador |
cb |
function |
Chamada com true se o pagamento for feito e com false se não houver fundos suficientes |
Quando Config.MoneyItems.enabled = true, verifica a quantidade de itens no inventário. Quando é false, verifica o saldo da conta da framework.