Ir para o conteúdo

Funções de Inventário

InventoryGetItemCount(aIndex, itemIndex, itemLevel)

Conta quantos itens específicos (por índice e nível) estão no inventário do jogador.

  • Retorna: number
local count = InventoryGetItemCount(aIndex, GET_ITEM(14, 13), 0)
LogAdd(LOG_BLUE, "Player has " .. count .. " Jewels of Bless.")

InventoryDelItemIndex(aIndex, slot)

Deleta um item de um slot específico do inventário.

  • Retorna: boolean
if InventoryDelItemIndex(aIndex, 12) then
    LogAdd(LOG_GREEN, "Item at slot 12 deleted.")
end

InventoryDelItemCount(aIndex, itemIndex, itemLevel, count)

Deleta até count itens do tipo especificado do inventário.

  • Retorna: boolean
-- Remove 5 Jewels of Bless
InventoryDelItemCount(aIndex, GET_ITEM(14, 13), 0, 5)

InventoryGetFreeSlotCount(aIndex)

Retorna o número de slots 1x1 livres na área principal do inventário.

  • Retorna: number
local free = InventoryGetFreeSlotCount(aIndex)
if free < 4 then
    GCNoticeSend(aIndex, 1, "Your inventory is almost full!")
end

InventoryCheckSpaceByItem(aIndex, itemIndex)

Verifica se o inventário tem espaço suficiente para o item fornecido (usando suas dimensões reais).

  • Retorna: boolean
if not InventoryCheckSpaceByItem(aIndex, GET_ITEM(0, 18)) then
    GCNoticeSend(aIndex, 1, "Not enough inventory space.")
end

InventoryCheckSpaceBySize(aIndex, width, height)

Verifica se o inventário tem uma área retangular livre de width x height.

  • Retorna: boolean
if InventoryCheckSpaceBySize(aIndex, 2, 3) then
    LogAdd(LOG_GREEN, "2x3 space available.")
end

Funções de Transação de Inventário

Disponíveis quando CHARACTER_RESTORE_INFO == 0. Fornecem operações atômicas de inventário.

Função Descrição
gObjFixInventoryPointer(aIndex) Reseta ponteiro de inventário para o primário
gObjSetInventory1Pointer(aIndex) Aponta para backup de inventário 1
gObjSetInventory2Pointer(aIndex) Aponta para backup de inventário 2
gObjFixEventInventoryPointer(aIndex) Reseta ponteiro de inventário de evento
gObjSetEventInventory1Pointer(aIndex) Aponta para backup de evento 1
gObjSetEventInventory2Pointer(aIndex) Aponta para backup de evento 2
gObjInventoryTransaction(aIndex) Inicia transação de inventário
gObjInventoryCommit(aIndex) Confirma transação
gObjInventoryRollback(aIndex) Reverte transação
gObjInventoryTransaction(aIndex)
-- ... modify inventory ...
if success then
    gObjInventoryCommit(aIndex)
else
    gObjInventoryRollback(aIndex)
end