Início › Documentação › Exports · origen_inventory

Exports · origen_inventory

Todos os exports estão registados sob o nome do recurso origen_inventory.

Esta página documenta os nomes canónicos dos exports (camelCase). Cada export tem ainda um alias antigo em PascalCase (p. ex. addItem ⇄ AddItem, getInventory ⇄ GetInventory) mantido por compatibilidade com scripts feitos para versões anteriores ou para qb-inventory / ox_inventory.


Exports de servidor

Itens

addItem(source, item, amount, slot?, info?) → boolean

Adiciona um item ao inventário do jogador. Devolve true em caso de sucesso.

lua
exports['origen_inventory']:addItem(source, 'tosti', 1, nil, { quality = 100 })

addItems(source, items) → boolean

Adiciona vários itens de uma só vez.

lua
exports['origen_inventory']:addItems(source, {
    { item = 'tosti', amount = 2 },
    { item = 'water_bottle', amount = 1 },
})

removeItem(source, item, amount, slot?) → boolean

Remove um item.

lua
exports['origen_inventory']:removeItem(source, 'tosti', 1)

removeItems(source, items) → boolean

Remove vários itens de uma só vez. Mesmo formato de dados que addItems.

lua
exports['origen_inventory']:removeItems(source, {
    { item = 'tosti', amount = 1 },
    { item = 'water_bottle', amount = 1 },
})

getItem(source, item, metadata?) → table?

Devolve os dados do slot do item correspondente (ou nil).

lua
local slot = exports['origen_inventory']:getItem(source, 'phone')

setItem(source, item, amount, slot?, info?) → boolean

Define a quantidade de um item num slot, substituindo o valor anterior.

lua
exports['origen_inventory']:setItem(source, 'water_bottle', 5, 3)

canCarryItem(source, item, amount) → boolean

Devolve true se o jogador conseguir transportar a quantidade indicada.

lua
local canCarry = exports['origen_inventory']:canCarryItem(source, 'tosti', 5)

canSwapItem(source, fromItem, fromAmount, toItem, toAmount) → boolean

Verifica se o jogador pode trocar fromItem por toItem.

lua
local canSwap = exports['origen_inventory']:canSwapItem(source, 'tosti', 1, 'water_bottle', 1)

getItemCount(source, item) → number

Devolve a quantidade total de um item no inventário do jogador.

lua
local count = exports['origen_inventory']:getItemCount(source, 'tosti')

getSlot(source, slot) → table?

Devolve os dados do slot indicado.

lua
local slot = exports['origen_inventory']:getSlot(source, 1)

getSlotsIdWithItem(source, item) → number[]

Devolve o id de todos os slots que contêm o item indicado.

lua
local slots = exports['origen_inventory']:getSlotsIdWithItem(source, 'tosti')

getSlotWithItem(source, item) → table?

Devolve os dados do primeiro slot que contém o item indicado.

lua
local slot = exports['origen_inventory']:getSlotWithItem(source, 'phone')

addItemMetadata(source, item, slot, metadata) → boolean

Junta metadados a um slot existente.

lua
exports['origen_inventory']:addItemMetadata(source, 'phone', 1, { battery = 80 })

removeItemMetadata(source, item, slot, keys) → boolean

Remove uma ou mais chaves de metadados de um slot.

lua
exports['origen_inventory']:removeItemMetadata(source, 'phone', 1, { 'battery' })

setMetadata(source, slot, metadata) → boolean

Substitui por completo os metadados do slot.

lua
exports['origen_inventory']:setMetadata(source, 1, { quality = 100, serial = 'XYZ-123' })

setUses(source, slot, uses) → boolean

Define as utilizações restantes de um slot.

lua
exports['origen_inventory']:setUses(source, 1, 3)

getItemLabel(item) → string

Devolve a etiqueta com que um item é apresentado.

lua
local label = exports['origen_inventory']:getItemLabel('tosti')

Inventários

getInventory(identifier) → table?

Devolve os dados do inventário para um identificador dado (id de jogador, id de stash, matrícula, etc.).

lua
local inv = exports['origen_inventory']:getInventory('faction_locker_1')

getItems(identifier) → table[]

Devolve todos os slots de itens do inventário indicado.

lua
local items = exports['origen_inventory']:getItems('faction_locker_1')

setInventory(identifier, items) → boolean

Substitui o conteúdo do inventário indicado.

lua
exports['origen_inventory']:setInventory('faction_locker_1', {
    { slot = 1, name = 'tosti', amount = 5, info = {} },
})

clearInventory(identifier) → boolean

Esvazia um inventário.

lua
exports['origen_inventory']:clearInventory('faction_locker_1')

setMaxWeight(identifier, weight) → boolean

Define o peso máximo do inventário indicado.

lua
exports['origen_inventory']:setMaxWeight('faction_locker_1', 200000)

setMaxSlots(identifier, slots) → boolean

Define o número máximo de slots do inventário indicado.

lua
exports['origen_inventory']:setMaxSlots('faction_locker_1', 50)

saveInventory(identifier) → boolean

Força a gravação do estado do inventário na base de dados.

lua
exports['origen_inventory']:saveInventory('faction_locker_1')

useSlot(source, slot) → void

Dispara a ação de utilização do slot indicado, tal como se o jogador clicasse nele.

lua
exports['origen_inventory']:useSlot(source, 1)

Utilitários de jogador

Estes exports são invólucros práticos à volta do inventário do jogador.

OpenInventory(source, identifier?, data?) → void

Abre um inventário no cliente. Quando identifier é nil, abre o inventário do jogador; caso contrário, abre o stash, porta-bagagens ou porta-luvas correspondente.

lua
exports['origen_inventory']:OpenInventory(source) -- player inventory
exports['origen_inventory']:OpenInventory(source, 'evidence_locker', { slots = 50, maxweight = 200000 })

OpenInventoryById(source, identifier, data?) → void

Abre um inventário qualquer pelo seu id. Útil para cacifos de provas, stashes de fações, etc.

lua
exports['origen_inventory']:OpenInventoryById(source, 'evidence_locker_42')

LoadInventory(source) → void

Recarrega o inventário do jogador a partir da base de dados.

lua
exports['origen_inventory']:LoadInventory(source)

GetPlayerInventory(source) → table

Devolve um instantâneo completo do inventário do jogador (todos os slots).

lua
local inv = exports['origen_inventory']:GetPlayerInventory(source)

SetInventoryItems(source, items) → boolean

Substitui de uma só vez todos os slots do inventário do jogador.

lua
exports['origen_inventory']:SetInventoryItems(source, {
    { slot = 1, name = 'tosti', amount = 1, info = {} },
})

SetInventoryData(source, data) → boolean

Substitui toda a estrutura de dados (itens + metadados) do inventário do jogador.

lua
exports['origen_inventory']:SetInventoryData(source, { items = {}, weight = 0 })

GetTotalWeight(source) → number

Devolve o peso total atual.

lua
local weight = exports['origen_inventory']:GetTotalWeight(source)

HasItem(source, item, amount?) → boolean

Devolve se o jogador tem pelo menos amount (por omissão 1) do item.

lua
if exports['origen_inventory']:HasItem(source, 'phone') then
    -- player has a phone
end

GetItemsByName(source, item) → table[]

Devolve todos os slots ocupados pelo item indicado.

lua
local slots = exports['origen_inventory']:GetItemsByName(source, 'tosti')

GetSlotsByItem(source, item) → number[]

Devolve os ids dos slots ocupados pelo item indicado.

lua
local slotIds = exports['origen_inventory']:GetSlotsByItem(source, 'tosti')

GetItemBySlot(source, slot) → table?

Devolve o item que está num determinado slot.

lua
local item = exports['origen_inventory']:GetItemBySlot(source, 1)

GetFirstSlotByItem(source, item) → number?

Devolve o id do primeiro slot que contém o item.

lua
local slotId = exports['origen_inventory']:GetFirstSlotByItem(source, 'phone')

GetItemTotalAmount(source, item) → number

Devolve a quantidade total do item.

lua
local total = exports['origen_inventory']:GetItemTotalAmount(source, 'tosti')

GetItemByMetadata(source, item, key, value) → table?

Devolve o primeiro slot cujo metadado key é igual a value.

lua
local slot = exports['origen_inventory']:GetItemByMetadata(source, 'phone', 'serial', 'XYZ-123')

GetItemsByMetadata(source, item, key, value) → table[]

Devolve todos os slots cujo metadado key é igual a value.

lua
local slots = exports['origen_inventory']:GetItemsByMetadata(source, 'phone', 'carrier', 'verizon')

GetItemByMetaKey(source, item, key) → table?

Devolve o primeiro slot cujos metadados contêm a chave key indicada.

lua
local slot = exports['origen_inventory']:GetItemByMetaKey(source, 'phone', 'serial')

GetItemsByMetaKey(source, item, key) → table[]

Devolve todos os slots cujos metadados contêm a chave key indicada.

lua
local slots = exports['origen_inventory']:GetItemsByMetaKey(source, 'phone', 'serial')

GetItemInfoBySlot(source, slot) → table?

Devolve a definição do item do slot indicado (dados base do item + metadados do slot).

lua
local info = exports['origen_inventory']:GetItemInfoBySlot(source, 1)

GiveWeaponToPlayer(source, weapon, ammo?, metadata?) → boolean

Dá uma arma ao jogador e regista-a no sistema de armas do inventário.

lua
exports['origen_inventory']:GiveWeaponToPlayer(source, 'weapon_pistol', 30, { serial = 'PD-001' })

Stashes e lojas

registerStash(id, data) → void

Cria ou regista um stash dinâmico em tempo de execução.

lua
exports['origen_inventory']:registerStash('faction_locker_1', {
    label = 'Faction Locker',
    slots = 50,
    maxweight = 200000,
})

createShop(id, data) → void

Cria uma loja em tempo de execução (alias: RegisterShop).

lua
exports['origen_inventory']:createShop('barber_supplies', {
    label = 'Barber Supplies',
    slots = 6,
    items = {
        { name = 'razor', price = 50, amount = 10, metadata = {} },
    },
    locations = { vector3(0.0, 0.0, 70.0) },
})

customDrop(coords, items, model?) → string

Cria um drop personalizado no chão e devolve o seu id.

lua
local dropId = exports['origen_inventory']:customDrop(
    vector3(123.4, 567.8, 21.0),
    { { name = 'tosti', amount = 1, info = {} } }
)

Itens personalizados

A API de itens personalizados está documentada na página Custom.

AddCustomItem(data) → void

Regista um novo item personalizado na base de dados.

lua
exports.origen_inventory:AddCustomItem({
    name = 'origen_compass',
    label = 'Compass',
    weight = 50,
    type = 'item',
    unique = true,
})

EditCustomItem(data) → void

Edita um item personalizado existente.

lua
exports.origen_inventory:EditCustomItem({
    name = 'origen_compass',
    label = 'Magnetic Compass',
    weight = 60,
})

RemoveCustomItem(name) → void

Remove um item personalizado da base de dados e de todos os inventários ativos.

lua
exports.origen_inventory:RemoveCustomItem('origen_compass')

Outros

notify(source, message, type?, duration?) → void

Envia uma notificação ao jogador através do fornecedor de notificações configurado.

lua
exports['origen_inventory']:notify(source, 'Item received', 'success', 4000)

registerHook(event, callback, options?) → string

Registo de hooks no servidor. Consulta a referência completa em Hooks de servidor.

lua
local hookId = exports.origen_inventory:registerHook('createItem', function(payload)
    return payload.metadata
end)

Exports de cliente

Inventário

openInventory(identifier?, data?) → void

Abre o inventário do jogador ou um inventário secundário no cliente local.

lua
exports['origen_inventory']:openInventory()
exports['origen_inventory']:openInventory('stash_personal', { slots = 30, maxweight = 100000 })

getInventory() → table

Devolve um instantâneo do inventário do jogador local.

lua
local inv = exports['origen_inventory']:getInventory()

getPlayerItems() → table[]

Devolve todos os slots do inventário local.

lua
local items = exports['origen_inventory']:getPlayerItems()

IsInventoryOpen() → boolean

Devolve se a interface do inventário está aberta neste momento.

lua
local isOpen = exports['origen_inventory']:IsInventoryOpen()

lock() / unlock() → void

Bloqueia ou desbloqueia o inventário local. Enquanto estiver bloqueado, o jogador não o consegue abrir.

lua
exports['origen_inventory']:lock()
exports['origen_inventory']:unlock()

isLocked() → boolean

Devolve se o inventário local está bloqueado neste momento.

lua
local locked = exports['origen_inventory']:isLocked()

toggleLock() → void

Alterna o estado de bloqueio.

lua
exports['origen_inventory']:toggleLock()

useSlot(slot) → void

Dispara a ação de utilização do slot indicado no cliente local.

lua
exports['origen_inventory']:useSlot(1)

search(target?) → void

Inicia a animação/interface de revista sobre o jogador alvo (ou sobre o local, se for omitido).

lua
exports['origen_inventory']:search(GetPlayerServerId(targetPlayer))

getCurrentWeapon() → string?

Devolve o hash da arma que está equipada, se existir.

lua
local weapon = exports['origen_inventory']:getCurrentWeapon()

weaponWheel(toggle) → void

Ativa ou desativa à força a roda de armas do GTA.

lua
exports['origen_inventory']:weaponWheel(false)

hasItem(item, amount?) → boolean

Devolve se o jogador local tem o item.

lua
if exports['origen_inventory']:hasItem('phone') then
    -- local player has a phone
end

displayMetadata(slot) → void

Abre o visualizador de metadados do slot indicado.

lua
exports['origen_inventory']:displayMetadata(1)

openManagement() → void

Abre o painel de gestão do inventário dentro do jogo (administradores).

lua
exports['origen_inventory']:openManagement()

OnPlayerLoad() → void

Dispara manualmente o ciclo de carregamento do jogador. Só é necessário se contornares o fluxo normal de início de sessão do framework.

lua
exports['origen_inventory']:OnPlayerLoad()

UpdateInventory(items?) → void

Força uma atualização da interface com os itens indicados (ou volta a pedi-los ao servidor se forem omitidos).

lua
exports['origen_inventory']:UpdateInventory()

CloseInventory() → void

Fecha a interface do inventário.

lua
exports['origen_inventory']:CloseInventory()

Barra rápida

ToggleHotBar(toggle) → void

Mostra ou esconde a barra rápida.

lua
exports['origen_inventory']:ToggleHotBar(true)

Armas

SetCurrentWeapon(weapon) → void

Força o inventário a marcar a arma indicada como a ativa (para sincronização).

lua
exports['origen_inventory']:SetCurrentWeapon('weapon_pistol')

AddAmmo(weapon, ammo) → void

Adiciona munições a uma arma e dispara a animação de recarregamento.

lua
exports['origen_inventory']:AddAmmo('weapon_pistol', 30)

unarmedPed() → void

Retira todas as armas ao ped local sem afetar o inventário.

lua
exports['origen_inventory']:unarmedPed()

Consumíveis

Eat(item) / Drink(item) / DrinkAlcohol(item) → void

Dispara a animação do consumível correspondente e a alteração de estatísticas.

lua
exports['origen_inventory']:Eat('tosti')
exports['origen_inventory']:Drink('water_bottle')
exports['origen_inventory']:DrinkAlcohol('beer')

controls() → table

Devolve a configuração de controlos por omissão usada pelos consumíveis (canMove, canSprint, etc.).

lua
local controls = exports['origen_inventory']:controls()

progress_animation_fix(animation) → table

Helper que formata um bloco de animação para o fornecedor de barra de progresso que estiver ativo.

lua
local anim = exports['origen_inventory']:progress_animation_fix({
    dict = 'mp_player_intdrink',
    clip = 'loop_bottle',
})

Pontos do mundo

A API completa de pontos do mundo no cliente está documentada em Custom · Pontos do mundo.

CreateWorldPoint(id, data) → void

Regista um único ponto.

lua
exports.origen_inventory:CreateWorldPoint('my_lab_table', {
    coords = vector3(123.4, 567.8, 21.0),
    type = 'crafting',
})

RemoveWorldPoint(id) → void

Remove um ponto a partir do seu id.

lua
exports.origen_inventory:RemoveWorldPoint('my_lab_table')

SetWorldPointEnabled(id, enabled) → void

Ativa ou desativa um ponto.

lua
exports.origen_inventory:SetWorldPointEnabled('my_lab_table', false)

CreateBatchPoints(type, points) → void

Regista vários pontos de uma só vez.

lua
exports.origen_inventory:CreateBatchPoints('crafting', {
    { id = 'lab_a', coords = vector3(0, 0, 70) },
    { id = 'lab_b', coords = vector3(10, 0, 70) },
})

ClearPoints(type) → void

Remove todos os pontos de um tipo.

lua
exports.origen_inventory:ClearPoints('crafting')

RefreshAllPoints(type) → void

Recarrega todos os pontos de um tipo.

lua
exports.origen_inventory:RefreshAllPoints('crafting')

GetPoints(type) → table[]

Devolve os pontos de um tipo.

lua
local points = exports.origen_inventory:GetPoints('crafting')

GetPointCount(type) → number

Devolve o número de pontos de um tipo.

lua
local count = exports.origen_inventory:GetPointCount('crafting')

HasPoint(id) → boolean

Devolve true se o ponto existir.

lua
local exists = exports.origen_inventory:HasPoint('my_lab_table')

RegisterPointType(type, config) → void

Regista um tipo de ponto totalmente novo.

lua
exports.origen_inventory:RegisterPointType('crafting', { distance = 2.0 })

LoadPointType(type) → void

Recarrega a configuração de um tipo de ponto.

lua
exports.origen_inventory:LoadPointType('crafting')

GetWorldPointManager() → table

Devolve o gestor subjacente.

lua
local manager = exports.origen_inventory:GetWorldPointManager()

SetEnabled(id, enabled) → void

Alias de compatibilidade para ativar ou desativar lojas.

lua
exports.origen_inventory:SetEnabled('barber_supplies', true)

SetShopLocalEnabled(id, enabled) → void

Ativa ou desativa uma loja apenas no cliente local.

lua
exports.origen_inventory:SetShopLocalEnabled('barber_supplies', false)

Módulos (painéis de interface)

Estes exports controlam módulos secundários da interface (painéis personalizados que podes acrescentar aos separadores do inventário).

getModule(id) → table?

Devolve os dados de um módulo registado.

lua
local mod = exports['origen_inventory']:getModule('my_panel')

getModules() → table[]

Devolve todos os módulos registados.

lua
local modules = exports['origen_inventory']:getModules()

createModule(id, data) → void

Regista um novo módulo.

lua
exports['origen_inventory']:createModule('my_panel', {
    label = 'My Panel',
    icon = 'fa-solid fa-gear',
    url = 'nui://my_resource/ui/index.html',
})

removeModule(id) → void

Remove um módulo.

lua
exports['origen_inventory']:removeModule('my_panel')

checkModules() → void

Valida os módulos registados.

lua
exports['origen_inventory']:checkModules()

sendModuleMessage(id, message) → void

Envia uma mensagem a um módulo concreto.

lua
exports['origen_inventory']:sendModuleMessage('my_panel', { action = 'refresh' })

Hooks

registerHook(event, callback, options?) → string

Registo de hooks no cliente. Consulta Custom · Hooks.

lua
local hookId = exports.origen_inventory:registerHook('useItem', function(payload)
    return true
end)

removeHooks(id) → void

Remove um hook registado.

lua
exports.origen_inventory:removeHooks(hookId)

Diversos

progressBar(data) → boolean

Encapsula o fornecedor de barra de progresso ativo (Config.Progressbar) para que qualquer script possa mostrar uma barra de progresso coerente com o estilo do inventário.

lua
local ok = exports['origen_inventory']:progressBar({
    label = 'Working...',
    duration = 3000,
})

Carry() / Piggyback() → void

Dispara a ação de levar ao colo / às cavalitas sobre o jogador para quem se está a apontar.

lua
exports['origen_inventory']:Carry()
exports['origen_inventory']:Piggyback()

isCarryInProgress() → boolean

Devolve true enquanto o jogador local estiver a levar alguém ou a ser levado.

lua
local carrying = exports['origen_inventory']:isCarryInProgress()

ToggleDriftMode(toggle) → void

Ativa ou desativa o perfil de condução drift definido em config/drift.lua.

lua
exports['origen_inventory']:ToggleDriftMode(true)

IsItemBlacklisted(item) → boolean

Devolve se o item está na lista negra das regras do inventário.

lua
local blocked = exports['origen_inventory']:IsItemBlacklisted('weapon_rpg')

Aliases antigos

Por compatibilidade, todos os exports de servidor acima também são expostos em PascalCase, e a maioria tem ainda um nome ao estilo qb-inventory. Exemplos:

Canónico Aliases antigos
addItem AddItem
removeItem RemoveItem
getItem GetItem, GetItemByName
getInventory GetInventory
getItems getInventoryItems, GetInventoryItems
setMaxSlots SetSlotCount
registerStash RegisterStash, InitializeInventory
createShop CreateShop, RegisterShop
getCurrentWeapon (cliente) GetCurrentWeapon
lock (cliente) LockInventory
unlock (cliente) UnlockInventory
isLocked (cliente) IsInventoryLocked
toggleLock (cliente) ToggleInventoryAccess
getPlayerItems (cliente) GetPlayerItems

Usa sempre os nomes canónicos em código novo. Os aliases antigos podem ser removidos em futuras versões principais, e o código-fonte do recurso já marca alguns deles com REMOVE ON UPDATE.