Ir para conteúdo

Featured Replies

Postado

Se você já leu o manual de referência já deve ter visto uma função parecida com essa.

 

O que ela faz?

Ela printa uma tabela completa, por exemplo:

 

Executando ela em seu OT:

 

O chamado printTable{1,3,4,[5] = 5, [6] = 1} retorna  2gx1mih.png

Instalação

Crie printTable.lua em data/lib e cole:

function printTable(table, includeIndices,prnt) -- By Killua
    if includeIndices == nil then includeIndices = true end
    if prnt == nil then prnt = true end
    if type(table) ~= "table" then
        error("Argument must be a table")
        return
    end
    local str, c = "{", ""
    for v, b in pairs(table) do
        if type(b) == "table" then
            str = includeIndices and str..c.."["..v.."]".." = "..printTable(b,true,false) or str..c..printTable(b,false,false)
        else
            str = includeIndices and str..c.."["..v.."]".." = "..b or str..c..b
        end
        c = ", "
    end
    str = str.."}"
    if prnt then print(str) end
    return str
 end

Utilização

Basta chamar ela colocoando sua tabela como primeiro argumento, exemplo:

printTable({1,2,3,4})

O segundo parâmetro (includeIndices) define se os indices vão ou não ser mostrados no print. Como padrão, ele tem valor true. Por exemplo:

printTable({1,2,3,4}) ou printTable({1,2,3,4}, true)

Vai printar: {[1] = 1, [2] = 2, [3] = 3, [4] = 4}

 

E

printTable({1,2,3,4}, false)

Vai printar: {1, 2, 3 ,4}

 

 

Além de printar sua tabela, a função ainda retorna ela como string. Sendo assim, você pode usar essa string para oque precisar. Por exemplo:

doPlayerSendTextMessage(cid, 25, printTable{1,2,3,4})

Vai enviar para o player a mensagem: "{[1] = 1, [2] = 2, [3] = 3, [4] = 4}"

 

 

Obrigado, espero que sjea útil.

Editado por Killua (veja o histórico de edições)

 

 

 

 

 

v61snZO.png?129bcx1x.pngiVgTXVz.png?1

 

 

 

 

 

  • 2 weeks later...
Postado
  • Autor
  Em 26/09/2014 em 13:46, luanluciano93 disse:

Como posso usar de um modo mais prático? Dê um exemplo ... 

 

printTable(getThingFromPos(pos))

printTable(getTopCreature(pos))

printTable(item)

printTable(getThing(uid))

 

vai mostrar como são essas tabelas que nunca vemos

 

 

 

 

 

v61snZO.png?129bcx1x.pngiVgTXVz.png?1

 

 

 

 

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo