📪Inventory
Documentação da Classe Inventory
A classe Inventory permite manipular itens no inventário de um jogador.
Esta documentação apresenta as funções de forma clara, intuitiva e com exemplos práticos e concisos para facilitar o uso.
Como Usar a Classe Inventory
Inicialização: Crie um objeto
Inventorypassando o índice do jogador (aIndex).local playerInventory = Inventory.new(aIndex)Uso de Funções: Use o operador
:para chamar as funções, passando o slot do item (posição no inventário) como argumento.Observação:
Você pode usar a classe para um ou mais jogadores (ex.:
playerInventorypara um jogador,playerTargetInventorypara outro).É possível usar dentro de loops, como em um
for.Exemplo com múltiplos índices:
local playerInventory = Inventory.new(aIndex) local playerTargetInventory = Inventory.new(TargetIndex) playerInventory:isItem(1) playerTargetInventory:isItem(1)
Funções da Classe Inventory
Abaixo estão todas as funções disponíveis, explicadas de forma simples com exemplos práticos:
1. getIndex(slot)
getIndex(slot)Descrição: Retorna o índice do item no slot. Retorna
-1se o slot estiver vazio.Exemplo:
local itemIndex = playerInventory:getIndex(1) if itemIndex == -1 then LogAdd(string.format("[Inventory] - Slot %d está vazio!", 1), 0) else LogAdd(string.format("[Inventory] - Item no slot %d tem índice: %d", 1, itemIndex), 0) end
2. isItem(slot)
isItem(slot)Descrição: Retorna
1se o slot contém um item, ou0se estiver vazio.Exemplo:
if playerInventory:isItem(2) == 1 then LogAdd(string.format("[Inventory] - Slot %d contém um item!", 2), 0) else LogAdd(string.format("[Inventory] - Slot %d está vazio!", 2), 0) end
3. isExc(slot)
isExc(slot)Descrição: Retorna
1se o item no slot é excelente, ou0caso contrário.Exemplo:
if playerInventory:isExc(3) == 1 then LogAdd(string.format("[Inventory] - Item no slot %d é excelente!", 3), 0) end
4. getLevel(slot)
getLevel(slot)Descrição: Retorna o nível do item no slot.
Exemplo:
local level = playerInventory:getLevel(1) LogAdd(string.format("[Inventory] - Nível do item no slot %d: %d", 1, level), 0)
5. getName(slot)
getName(slot)Descrição: Retorna o nome do item no slot.
Exemplo:
local itemName = playerInventory:getName(1) LogAdd(string.format("[Inventory] - Nome do item no slot %d: %s", 1, itemName), 0)
6. getSection(slot)
getSection(slot)Descrição: Retorna a seção/categoria do item no slot.
Exemplo:
local section = playerInventory:getSection(1) LogAdd(string.format("[Inventory] - Seção do item no slot %d: %d", 1, section), 0)
7. getIndex2(slot)
getIndex2(slot)Descrição: Retorna o índice alternativo do item no slot.
Exemplo:
local index2 = playerInventory:getIndex2(1) LogAdd(string.format("[Inventory] - Índice alternativo do item no slot %d: %d", 1, index2), 0)
8. getSerial(slot)
getSerial(slot)Descrição: Retorna o serial único do item no slot.
Exemplo:
local serial = playerInventory:getSerial(1) LogAdd(string.format("[Inventory] - Serial do item no slot %d: %s", 1, serial), 0)
9. getDurability(slot)
getDurability(slot)Descrição: Retorna a durabilidade atual do item no slot (máximo: 255).
Exemplo:
local durability = playerInventory:getDurability(1) LogAdd(string.format("[Inventory] - Durabilidade do item no slot %d: %d", 1, durability), 0)
10. setDurability(slot, value)
setDurability(slot, value)Descrição: Define a durabilidade do item no slot (máximo: 255).
Exemplo:
playerInventory:setDurability(1, 200) LogAdd(string.format("[Inventory] - Durabilidade do item no slot %d definida para %d!", 1, 200), 0)
11. convertItem(slot)
convertItem(slot)Descrição: Atualiza o item no slot após modificações (ex.: mudar opções excelentes).
Exemplo:
playerInventory:setItemTable(1, 1, 1) -- Define item como excelente playerInventory:convertItem(1) -- Atualiza o item LogAdd(string.format("[Inventory] - Item no slot %d atualizado!", 1), 0)
12. getIsPeriodic(slot)
getIsPeriodic(slot)Descrição: Retorna
1se o item no slot é periódico, ou0caso contrário.Exemplo:
if playerInventory:getIsPeriodic(1) == 1 then LogAdd(string.format("[Inventory] - Item no slot %d é periódico!", 1), 0) end
13. getPeriodicTime(slot)
getPeriodicTime(slot)Descrição: Retorna o tempo restante de um item periódico no slot.
Exemplo:
local time = playerInventory:getPeriodicTime(1) LogAdd(string.format("[Inventory] - Tempo restante do item periódico no slot %d: %d", 1, time), 0)
14. getItemTable(slot, type)
getItemTable(slot, type)Descrição: Retorna o valor de uma opção específica do item no slot.
Tipos de ItemTable:
type: 1 -> valor exc (excelente)
type: 2 -> valor option1
type: 3 -> valor option2
type: 4 -> valor option3
type: 5 -> valor ancient
type: 6 -> valor JoH (Jewel of Harmony)
type: 7 -> valor Ex option
type: 8 -> opção de bônus do socket
type: 9 -> opção do socket 1
type: 10 -> opção do socket 2
type: 11 -> opção do socket 3
type: 12 -> opção do socket 4
type: 13 -> opção do socket 5
Exemplo:
local excValue = playerInventory:getItemTable(1, 1) LogAdd(string.format("[Inventory] - Valor excelente do item no slot %d: %d", 1, excValue), 0)
15. setItemTable(slot, type, value)
setItemTable(slot, type, value)Descrição: Define o valor de uma opção específica do item no slot.
Tipos de ItemTable:
type: 1 -> valor exc (excelente)
type: 2 -> valor option1
type: 3 -> valor option2
type: 4 -> valor option3
type: 5 -> valor ancient
type: 6 -> valor JoH (Jewel of Harmony)
type: 7 -> valor Ex option
type: 8 -> opção de bônus do socket
type: 9 -> opção do socket 1
type: 10 -> opção do socket 2
type: 11 -> opção do socket 3
type: 12 -> opção do socket 4
type: 13 -> opção do socket 5
Exemplo:
playerInventory:setItemTable(1, 1, 1) -- Define como excelente LogAdd(string.format("[Inventory] - Item no slot %d agora é excelente!", 1), 0)
Exemplo Prático Completo
Abaixo está um exemplo fictício que utiliza várias funções da classe Inventory em uma única função para verificar e modificar um item no inventário do jogador. Este código pode ser usado como base para manipulações no inventário.
-- Sistema de gerenciamento de inventário
INVENTORY_MANAGER = {}
function INVENTORY_MANAGER.ProcessPlayerInventory(aIndex)
-- Cria um objeto Inventory para o jogador
local playerInventory = Inventory.new(aIndex)
local player = User.new(aIndex)
local playerName = player:getName()
-- Verifica se há um item no slot 1
if playerInventory:isItem(1) == 1 then
-- Obtém informações do item
local itemName = playerInventory:getName(1)
local itemLevel = playerInventory:getLevel(1)
local isExc = playerInventory:isExc(1)
local durability = playerInventory:getDurability(1)
local serial = playerInventory:getSerial(1)
local section = playerInventory:getSection(1)
local index2 = playerInventory:getIndex2(1)
-- Exibe informações do item
LogAdd(string.format("[Inventory] - [%s] Item no slot 1: %s, Nível: %d, Excelente: %d, Durabilidade: %d, Serial: %s, Seção: %d, Índice Alternativo: %d",
playerName, itemName, itemLevel, isExc, durability, serial, section, index2), 0)
-- Verifica se o item é periódico
if playerInventory:getIsPeriodic(1) == 1 then
local periodicTime = playerInventory:getPeriodicTime(1)
LogAdd(string.format("[Inventory] - [%s] Item no slot 1 é periódico com %d segundos restantes!", playerName, periodicTime), 0)
end
-- Modifica o item: define durabilidade, torna excelente e adiciona uma opção de socket
playerInventory:setDurability(1, 255)
playerInventory:setItemTable(1, 1, 1) -- Define como excelente
playerInventory:setItemTable(1, 9, 3) -- Define opção de socket 1
playerInventory:convertItem(1) -- Atualiza o item
LogAdd(string.format("[Inventory] - [%s] Item no slot 1 foi atualizado: durabilidade máxima, agora é excelente e com socket!", playerName), 0)
else
LogAdd(string.format("[Inventory] - [%s] Nenhum item encontrado no slot 1!", playerName), 0)
end
end
-- Exemplo de chamada da função
INVENTORY_MANAGER.ProcessPlayerInventory(100) -- Substitua 100 pelo aIndex do jogador
return INVENTORY_MANAGERResumo
A classe
Inventoryfacilita a manipulação de itens no inventário do jogador de forma prática e eficiente.Use o operador
:para chamar as funções, passando o slot do item como argumento.As funções
getItemTableesetItemTablepermitem controle detalhado sobre opções como excelente, sockets e mais.O exemplo prático mostra como verificar, exibir e modificar propriedades de um item em uma única função.
Last updated
