Documentação › Lua
Container e Inventory
Container mexe nas bags abertas no cliente. Inventory mexe nos slots de equipamento.
Container#
Container.new(índice) (ou Container(índice)) cria o objeto para o container aberto naquele índice (o primeiro aberto é 0). Os slots dentro dele começam em 0. Os métodos usam :. Métodos que mandam uma ação retornam true, ou nil quando o slot está vazio.
-- Lista o que tem em cada bag aberta
for _, i in ipairs(Player.getContainers() or {}) do
local bag = Container.new(i)
print(bag:getName() .. ": " .. (bag:getItemCount() or 0) .. " itens")
endLeitura#
| Método | Retorna |
|---|---|
bag:getIndex() | O índice usado para criar o objeto |
bag:getName() | Nome como aparece na janela (primeira letra maiúscula), ou nil |
bag:getItems() | Lista de {id, count, tier, slot} (tier sempre 0), ou nil com o container fechado |
bag:getItemCount() | Quantos slots ocupados, ou nil |
bag:getItemCountById(itemId) | Soma das quantidades desse item, ou nil |
bag:getCapacity() | Slots por página, ou nil |
bag:getCurrentPage() | Página atual (começa em 1), ou nil |
bag:getTotalPages() | Total de páginas (0 sem paginação), ou nil |
local bag = Container.new(0)
print(bag:getItemCountById(268) or 0, "mana potions na primeira bag")bag:goToPage(página)#
→ true ou nil
Vai para a página (começa em 1). nil se o container não tem páginas.
Container.new(0):goToPage(2)bag:moveUp() e bag:close()#
Volta para o container de cima / fecha o container.
Container.new(1):close()bag:useItem(slot, novaJanela)#
→ true ou nil
Usa o item do slot. Numa bag, novaJanela = true abre em outra janela; sem ele, abre na mesma.
Container.new(0):useItem(0, true)bag:lookAt(slot)#
→ true ou nil
Dá look no item do slot.
Container.new(0):lookAt(0)bag:moveItemToInventory(slot, slotInventário, quantidade)#
→ true ou nil
Move o item para um slot de equipamento. Sem quantidade, move o stack todo (no máximo 100).
Container.new(0):moveItemToInventory(3, Enums.InventorySlot.CONST_SLOT_AMMO)bag:moveItemToGround(slot, quantidade, x, y, z)#
→ true ou nil
Joga o item num piso.
local p = Player.getPosition()
Container.new(0):moveItemToGround(0, nil, p.x, p.y, p.z)bag:moveItemToContainer(slot, quantidade, paraÍndice, paraSlot)#
→ true ou nil
Move o item para outro container aberto.
Container.new(0):moveItemToContainer(0, nil, 1, 0)bag:useItemWithContainerItem(slot, paraÍndice, paraSlot)#
→ true ou nil
Usa o item do slot em outro item de container.
Container.new(0):useItemWithContainerItem(2, 1, 0)Container.useItemOnAnotherItem(itemId, outroItemId)#
→ true ou nil
Função do módulo (com ., não :). Usa o item itemId como hotkey no primeiro outroItemId que achar nos containers abertos ou no equipamento. nil se não achar.
-- usa o item 5908 no primeiro item 4010 que achar (troque pelos seus ids)
Container.useItemOnAnotherItem(5908, 4010)bag:stowItem(slot, quantidade) e bag:stowAllItems(slot)#
→ true ou nil
Manda o item (ou o stack inteiro, com stowAllItems) para o supply stash.
Container.new(0):stowAllItems(0)bag:pickItemImbuement(slot)#
→ true ou nil
Abre a janela de imbuement com o item do slot.
Container.new(0):pickItemImbuement(0)Inventory#
Funções do módulo (com .). O slot é Enums.InventorySlot (1 a 10). Todas retornam true, ou nil com o slot vazio.
Inventory.useItem(slot)#
Usa o item equipado.
Inventory.useItem(Enums.InventorySlot.CONST_SLOT_BACKPACK) -- abre a backpackInventory.lookAt(slot)#
Dá look no item equipado.
Inventory.lookAt(Enums.InventorySlot.CONST_SLOT_RING)Inventory.moveItemToGround(slot, quantidade, x, y, z)#
Joga o item equipado num piso.
local p = Player.getPosition()
Inventory.moveItemToGround(Enums.InventorySlot.CONST_SLOT_AMMO, 10, p.x, p.y, p.z)Inventory.moveItemToContainer(slot, quantidade, container, slotContainer)#
Move o item equipado para um container aberto.
Inventory.moveItemToContainer(Enums.InventorySlot.CONST_SLOT_RING, nil, 0, 0)Inventory.stowContainer(slot)#
Manda o conteúdo do container equipado no slot para o supply stash.
Inventory.stowContainer(Enums.InventorySlot.CONST_SLOT_BACKPACK)Inventory.pickItemImbuement(slot)#
Abre a janela de imbuement com o item equipado.
Inventory.pickItemImbuement(Enums.InventorySlot.CONST_SLOT_ARMOR)
Comentários
para comentar.