📦ChaosBox

Documentação da Classe ChaosBox

A classe ChaosBox permite manipular itens no Chaos Box de um jogador em um servidor de jogos. Esta documentação apresenta as funções de forma clara, intuitiva e com exemplos práticos para facilitar o uso.


Como Usar a Classe ChaosBox

  1. Inicialização: Crie um objeto ChaosBox passando o índice do jogador (aIndex).

    local playerChaosBox = ChaosBox.new(aIndex)
  2. Uso de Funções: Use o operador : para chamar as funções, passando o slot do item (posição no Chaos Box) como argumento.

  3. Observação:

    • Você pode usar a classe para um ou mais jogadores (ex.: playerChaosBox para um jogador, playerTargetChaosBox para outro).

    • É possível usar dentro de loops, como em um for.

    • Exemplo com múltiplos índices:

      local playerChaosBox = ChaosBox.new(aIndex)
      local playerTargetChaosBox = ChaosBox.new(TargetIndex)
      playerChaosBox:isItem(1)
      playerTargetChaosBox:isItem(1)

Funções da Classe ChaosBox

Abaixo estão todas as funções disponíveis, explicadas de forma simples com exemplos práticos:

1. getIndex(slot)

  • Descrição: Retorna o índice do item no slot. Retorna -1 se o slot estiver vazio.

  • Exemplo:

    local itemIndex = playerChaosBox:getIndex(1)
    if itemIndex == -1 then
        LogAdd(string.format("[ChaosBox] - Slot %d está vazio!", 1), 0)
    else
        LogAdd(string.format("[ChaosBox] - Item no slot %d tem índice: %d", 1, itemIndex), 0)
    end

2. isItem(slot)

  • Descrição: Retorna 1 se o slot contém um item, ou 0 se estiver vazio.

  • Exemplo:

    if playerChaosBox:isItem(2) == 1 then
        LogAdd(string.format("[ChaosBox] - Slot %d contém um item!", 2), 0)
    else
        LogAdd(string.format("[ChaosBox] - Slot %d está vazio!", 2), 0)
    end

3. isExc(slot)

  • Descrição: Retorna 1 se o item no slot é excelente, ou 0 caso contrário.

  • Exemplo:

    if playerChaosBox:isExc(3) == 1 then
        LogAdd(string.format("[ChaosBox] - O item no slot %d é excelente!", 3), 0)
    end

4. getLevel(slot)

  • Descrição: Retorna o nível do item no slot.

  • Exemplo:

    local level = playerChaosBox:getLevel(1)
    LogAdd(string.format("[ChaosBox] - Nível do item no slot %d: %d", 1, level), 0)

5. getName(slot)

  • Descrição: Retorna o nome do item no slot.

  • Exemplo:

    local itemName = playerChaosBox:getName(1)
    LogAdd(string.format("[ChaosBox] - Nome do item no slot %d: %s", 1, itemName), 0)

6. getSection(slot)

  • Descrição: Retorna a seção/categoria do item no slot.

  • Exemplo:

    local section = playerChaosBox:getSection(1)
    LogAdd(string.format("[ChaosBox] - Seção do item no slot %d: %d", 1, section), 0)

7. getIndex2(slot)

  • Descrição: Retorna o índice alternativo do item no slot.

  • Exemplo:

    local index2 = playerChaosBox:getIndex2(1)
    LogAdd(string.format("[ChaosBox] - Índice alternativo do item no slot %d: %d", 1, index2), 0)

8. getSerial(slot)

  • Descrição: Retorna o serial único do item no slot.

  • Exemplo:

    local serial = playerChaosBox:getSerial(1)
    LogAdd(string.format("[ChaosBox] - Serial do item no slot %d: %s", 1, serial), 0)

9. getDurability(slot)

  • Descrição: Retorna a durabilidade atual do item no slot (máximo: 255).

  • Exemplo:

    local durability = playerChaosBox:getDurability(1)
    LogAdd(string.format("[ChaosBox] - Durabilidade do item no slot %d: %d", 1, durability), 0)

10. setDurability(slot, value)

  • Descrição: Define a durabilidade do item no slot (máximo: 255).

  • Exemplo:

    playerChaosBox:setDurability(1, 200)
    LogAdd(string.format("[ChaosBox] - Durabilidade do item no slot %d definida para %d!", 1, 200), 0)

11. convertItem(slot)

  • Descrição: Atualiza o item no slot após modificações (ex.: mudar opções excelentes).

  • Exemplo:

    playerChaosBox:setItemTable(1, 1, 1) -- Define item como excelente
    playerChaosBox:convertItem(1) -- Atualiza o item
    LogAdd(string.format("[ChaosBox] - Item no slot %d atualizado!", 1), 0)

12. getIsPeriodic(slot)

  • Descrição: Retorna 1 se o item no slot é periódico, ou 0 caso contrário.

  • Exemplo:

    if playerChaosBox:getIsPeriodic(1) == 1 then
        LogAdd(string.format("[ChaosBox] - Item no slot %d é periódico!", 1), 0)
    end

13. getPeriodicTime(slot)

  • Descrição: Retorna o tempo restante de um item periódico no slot.

  • Exemplo:

    local time = playerChaosBox:getPeriodicTime(1)
    LogAdd(string.format("[ChaosBox] - Tempo restante do item periódico no slot %d: %d", 1, time), 0)

14. 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 da opção 1

    • type: 3 -> valor da opção 2

    • type: 4 -> valor da opção 3

    • type: 5 -> valor anciente

    • type: 6 -> valor de JoH (Jewel of Harmony)

    • type: 7 -> opção Ex

    • type: 8 -> opção de 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 = playerChaosBox:getItemTable(1, 1)
    LogAdd(string.format("[ChaosBox] - Valor excelente do item no slot %d: %d", 1, excValue), 0)

15. 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 da opção 1

    • type: 3 -> valor da opção 2

    • type: 4 -> valor da opção 3

    • type: 5 -> valor anciente

    • type: 6 -> valor de JoH (Jewel of Harmony)

    • type: 7 -> opção Ex

    • type: 8 -> opção de 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:

    playerChaosBox:setItemTable(1, 1, 1) -- Define como excelente
    LogAdd(string.format("[ChaosBox] - 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 ChaosBox em uma única função para verificar e modificar um item no Chaos Box. Este código pode ser usado como base para manipulações no Chaos Box.

function processarItemChaosBox(aIndex)
    -- Cria um objeto ChaosBox para o jogador
    local playerChaosBox = ChaosBox.new(aIndex)
    local player = User.new(aIndex) -- Para obter o nome do jogador
    local playerName = player:getName()

    -- Verifica se há um item no slot 1
    if playerChaosBox:isItem(1) == 1 then
        -- Obtém informações do item
        local itemName = playerChaosBox:getName(1)
        local itemLevel = playerChaosBox:getLevel(1)
        local isExc = playerChaosBox:isExc(1)
        local durability = playerChaosBox:getDurability(1)
        local serial = playerChaosBox:getSerial(1)
        local section = playerChaosBox:getSection(1)
        local index2 = playerChaosBox:getIndex2(1)

        -- Exibe informações do item
        LogAdd(string.format("[ChaosBox] - [%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 playerChaosBox:getIsPeriodic(1) == 1 then
            local periodicTime = playerChaosBox:getPeriodicTime(1)
            LogAdd(string.format("[ChaosBox] - [%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
        playerChaosBox:setDurability(1, 255)
        playerChaosBox:setItemTable(1, 1, 1) -- Define como excelente
        playerChaosBox:setItemTable(1, 9, 3) -- Define opção de socket 1
        playerChaosBox:convertItem(1) -- Atualiza o item

        LogAdd(string.format("[ChaosBox] - [%s] Item no slot 1 foi atualizado: durabilidade máxima, agora é excelente e com socket!", playerName), 0)
    else
        LogAdd(string.format("[ChaosBox] - [%s] Nenhum item encontrado no slot 1!", playerName), 0)
    end
end

-- Exemplo de chamada da função
processarItemChaosBox(100) -- Substitua 100 pelo aIndex do jogador

Resumo

  • A classe ChaosBox facilita a manipulação de itens no Chaos Box de forma prática e eficiente.

  • Use o operador : para chamar as funções, passando o slot do item como argumento.

  • As funções getItemTable e setItemTable permitem 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