Inicio › Documentación › Personalización · origen_blackmarket

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.

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

custom/client.lua

ShowHelpNotification(key, msg)

Muestra un texto de ayuda de interacción. Delega según Config.Framework.

lua
function ShowHelpNotification(key, msg)
    -- 'qbcore' → exports['qb-core']:DrawText(msg, nil, key)
    -- 'esx'    → Framework.ShowHelpNotification(msg, key)
end

HideHelpNotification()

Oculta el texto de ayuda de interacción.

lua
function HideHelpNotification()
    -- 'qbcore' → exports["qb-core"]:HideText()
    -- custom: implement here
end

GetPlayerItems(PlayerData) → table

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

lua
function GetPlayerItems(PlayerData)
    -- Config.Inventory == 'custom': implement here
    return PlayerData.items or {}
end

GetItemFromWeapon(PlayerData, weapon) → item | nil

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


custom/server.lua

SetItemMetadata(source, item, slot, info)

Establece metadatos en un objeto del inventario tras la compra. Solo está implementado para origen_inventory.

lua
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
end

SelectPlate(plate) → string | nil

Comprueba si una matrícula ya existe en la tabla de vehículos. Delega según Config.Framework.

lua
function SelectPlate(plate)
    -- 'qbcore' → SELECT plate FROM player_vehicles
    -- 'esx'    → SELECT plate FROM owned_vehicles
end

AddVehicle(vehName, license, identifier, model, hash, plate, garage, state)

Inserta un vehículo nuevo en la tabla de vehículos del framework tras la compra.

lua
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
end

doPayment(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.