Inicio › Documentación › Personalización · origen_blackmarket
La carpeta custom/ gestiona la integración con el framework, el acceso al inventario y la interfaz sin tocar el núcleo. Todos los ficheros están en escrow_ignore, por lo que sobreviven a las actualizaciones.
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)Muestra un texto de ayuda de interacción. Delega según Config.Framework.
function ShowHelpNotification(key, msg)
-- 'qbcore' → exports['qb-core']:DrawText(msg, nil, key)
-- 'esx' → Framework.ShowHelpNotification(msg, key)
endHideHelpNotification()Oculta el texto de ayuda de interacción.
function HideHelpNotification()
-- 'qbcore' → exports["qb-core"]:HideText()
-- custom: implement here
endGetPlayerItems(PlayerData) → tableDevuelve los objetos del inventario del jugador local. Delega según Config.Inventory.
Compatibles: qs-inventory, ls-inventory, origen_inventory, ox_inventory, codem-inventory, core_inventory. Para qb-inventory recurre a PlayerData.items.
function GetPlayerItems(PlayerData)
-- Config.Inventory == 'custom': implement here
return PlayerData.items or {}
endGetItemFromWeapon(PlayerData, weapon) → item | nilDevuelve el objeto del inventario que corresponde a un hash de arma. Se usa para comprobar si un jugador tiene un arma concreta antes de aplicarle un camuflaje.
OpenMenu(...)Abre el menú contextual para comprar camuflajes. Delega según Config.Framework:
qbcore → exports["qb-menu"]:openMenu(...)esx → Framework.UI.Menu.Open(...)SetItemMetadata(source, item, slot, info)Establece metadatos en un objeto del inventario tras la compra. Solo está 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 | nilComprueba si una matrícula ya existe en la tabla de vehículos. Delega según 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)Inserta un vehículo nuevo en la tabla de vehículos del framework tras la 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)Gestiona el pago de una compra. Comprueba el saldo del jugador y descuenta el importe.
| Parámetro | Tipo | Descripción |
|---|---|---|
type |
string |
'money' | 'crypto' |
price |
number |
Precio en efectivo |
cryptoPrice |
number |
Precio en cripto |
pID |
number |
ID de servidor del jugador |
cb |
function |
Se llama con true si el pago se realiza y con false si no hay fondos suficientes |
Cuando Config.MoneyItems.enabled = true, comprueba la cantidad de objetos en el inventario. Cuando es false, comprueba el saldo de la cuenta del framework.