🈴Trade
Documentação da Classe Trade
A classe Trade permite manipular itens na janela de troca (trade) 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 Trade
Inicialização: Crie um objeto
Tradepassando o índice do jogador (aIndex).local playerTrade = Trade.new(aIndex)Uso de Funções: Use o operador
:para chamar as funções, passando o slot do item (posição na janela de troca) como argumento.Observação:
Você pode usar a classe para um ou mais jogadores (ex.:
playerTradepara um jogador,playerTargetTradepara outro).É possível usar dentro de loops, como em um
for.Exemplo com múltiplos índices:
local playerTrade = Trade.new(aIndex) local playerTargetTrade = Trade.new(TargetIndex) playerTrade:isItem(1) playerTargetTrade:isItem(1)
Funções da Classe Trade
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 = playerTrade:getIndex(1) if itemIndex == -1 then LogAdd(string.format("[Trade] - Slot %d está vazio!", 1), 0) else LogAdd(string.format("[Trade] - 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 playerTrade:isItem(2) == 1 then LogAdd(string.format("[Trade] - Slot %d contém um item!", 2), 0) else LogAdd(string.format("[Trade] - 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 playerTrade:isExc(3) == 1 then LogAdd(string.format("[Trade] - 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 = playerTrade:getLevel(1) LogAdd(string.format("[Trade] - 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 = playerTrade:getName(1) LogAdd(string.format("[Trade] - 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 = playerTrade:getSection(1) LogAdd(string.format("[Trade] - 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 = playerTrade:getIndex2(1) LogAdd(string.format("[Trade] - Í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 = playerTrade:getSerial(1) LogAdd(string.format("[Trade] - 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 = playerTrade:getDurability(1) LogAdd(string.format("[Trade] - 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:
playerTrade:setDurability(1, 200) LogAdd(string.format("[Trade] - 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:
playerTrade:setItemTable(1, 1, 1) -- Define item como excelente playerTrade:convertItem(1) -- Atualiza o item LogAdd(string.format("[Trade] - 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 playerTrade:getIsPeriodic(1) == 1 then LogAdd(string.format("[Trade] - 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 = playerTrade:getPeriodicTime(1) LogAdd(string.format("[Trade] - 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 opção1
type: 3 -> valor opção2
type: 4 -> valor opção3
type: 5 -> valor antigo (ancient)
type: 6 -> valor JoH (Jewel of Harmony)
type: 7 -> valor Ex option
type: 8 -> opção bônus de socket
type: 9 -> opção de socket 1
type: 10 -> opção de socket 2
type: 11 -> opção de socket 3
type: 12 -> opção de socket 4
type: 13 -> opção de socket 5
Exemplo:
local excValue = playerTrade:getItemTable(1, 1) LogAdd(string.format("[Trade] - 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 opção1
type: 3 -> valor opção2
type: 4 -> valor opção3
type: 5 -> valor antigo (ancient)
type: 6 -> valor JoH (Jewel of Harmony)
type: 7 -> valor Ex option
type: 8 -> opção bônus de socket
type: 9 -> opção de socket 1
type: 10 -> opção de socket 2
type: 11 -> opção de socket 3
type: 12 -> opção de socket 4
type: 13 -> opção de socket 5
Exemplo:
playerTrade:setItemTable(1, 1, 1) -- Define como excelente LogAdd(string.format("[Trade] - 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 Trade em uma única função para verificar e modificar um item na janela de troca de um jogador. Este código pode ser usado como base para manipulações na troca.
-- Sistema de gerenciamento de troca
TRADE_MANAGER = {}
function TRADE_MANAGER.ProcessPlayerTrade(aIndex)
-- Cria um objeto Trade para o jogador
local playerTrade = Trade.new(aIndex)
local player = User.new(aIndex)
local playerName = player:getName()
-- Verifica se há um item no slot 1
if playerTrade:isItem(1) == 1 then
-- Obtém informações do item
local itemName = playerTrade:getName(1)
local itemLevel = playerTrade:getLevel(1)
local isExc = playerTrade:isExc(1)
local durability = playerTrade:getDurability(1)
local serial = playerTrade:getSerial(1)
local section = playerTrade:getSection(1)
local index2 = playerTrade:getIndex2(1)
-- Exibe informações do item
LogAdd(string.format("[Trade] - [%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 playerTrade:getIsPeriodic(1) == 1 then
local periodicTime = playerTrade:getPeriodicTime(1)
LogAdd(string.format("[Trade] - [%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
playerTrade:setDurability(1, 255)
playerTrade:setItemTable(1, 1, 1) -- Define como excelente
playerTrade:setItemTable(1, 9, 3) -- Define opção de socket 1
playerTrade:convertItem(1) -- Atualiza o item
LogAdd(string.format("[Trade] - [%s] Item no slot 1 foi atualizado: durabilidade máxima, agora é excelente e com socket!", playerName), 0)
else
LogAdd(string.format("[Trade] - [%s] Nenhum item encontrado no slot 1!", playerName), 0)
end
end
-- Exemplo de chamada da função
TRADE_MANAGER.ProcessPlayerTrade(100) -- Substitua 100 pelo aIndex do jogador
return TRADE_MANAGERResumo
A classe
Tradefacilita a manipulação de itens na janela de troca 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
