<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.gla.com.br/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AAchievement</id>
	<title>Módulo:Achievement - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gla.com.br/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AAchievement"/>
	<link rel="alternate" type="text/html" href="https://wiki.gla.com.br/index.php?title=M%C3%B3dulo:Achievement&amp;action=history"/>
	<updated>2026-05-21T20:49:51Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.gla.com.br/index.php?title=M%C3%B3dulo:Achievement&amp;diff=45017&amp;oldid=prev</id>
		<title>Gurren1: Criou página com 'local p = {} local Item = require(&quot;Módulo:Item&quot;)  local function formatNumber(num)     num = tonumber(num) or 0     if num &gt;= 1e9 then         return string.format(&quot;%.0f&quot;, nu...'</title>
		<link rel="alternate" type="text/html" href="https://wiki.gla.com.br/index.php?title=M%C3%B3dulo:Achievement&amp;diff=45017&amp;oldid=prev"/>
		<updated>2026-03-17T02:44:14Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;local p = {} local Item = require(&amp;quot;Módulo:Item&amp;quot;)  local function formatNumber(num)     num = tonumber(num) or 0     if num &amp;gt;= 1e9 then         return string.format(&amp;quot;%.0f&amp;quot;, nu...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local Item = require(&amp;quot;Módulo:Item&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local function formatNumber(num)&lt;br /&gt;
    num = tonumber(num) or 0&lt;br /&gt;
    if num &amp;gt;= 1e9 then&lt;br /&gt;
        return string.format(&amp;quot;%.0f&amp;quot;, num / 1e6) .. &amp;quot;KKK&amp;quot;&lt;br /&gt;
    elseif num &amp;gt;= 1e6 then&lt;br /&gt;
        return string.format(&amp;quot;%.0f&amp;quot;, num / 1e6) .. &amp;quot;KK&amp;quot;&lt;br /&gt;
    elseif num &amp;gt;= 1e4 then&lt;br /&gt;
        return string.format(&amp;quot;%.0f&amp;quot;, num / 1e3) .. &amp;quot;K&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        local s = tostring(num)&lt;br /&gt;
        return s:reverse():gsub(&amp;quot;(%d%d%d)&amp;quot;, &amp;quot;%1,&amp;quot;):reverse():gsub(&amp;quot;^,&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parseItemEntry(entry)&lt;br /&gt;
    entry = mw.text.trim(entry)&lt;br /&gt;
    if entry == &amp;quot;&amp;quot; then return nil, nil end&lt;br /&gt;
&lt;br /&gt;
    local ident, qtdStr&lt;br /&gt;
&lt;br /&gt;
    if entry:find(&amp;quot;;&amp;quot;) then&lt;br /&gt;
        ident, qtdStr = entry:match(&amp;quot;^(.-)%s*;%s*(%d+)$&amp;quot;)&lt;br /&gt;
    else&lt;br /&gt;
        ident, qtdStr = entry:match(&amp;quot;^(.-)%s*:%s*(%d+)$&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not ident or not qtdStr then return nil, nil end&lt;br /&gt;
    return mw.text.trim(ident), tonumber(qtdStr)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function normalizeImageName(name)&lt;br /&gt;
    local clean = mw.text.trim(name or &amp;quot;&amp;quot;)&lt;br /&gt;
    if clean == &amp;quot;&amp;quot; then return &amp;quot;Blank.png&amp;quot; end&lt;br /&gt;
    if clean:match(&amp;quot;%.%w+$&amp;quot;) then return clean end&lt;br /&gt;
    return clean .. &amp;quot;.png&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.render(frame)&lt;br /&gt;
    local args = frame.args or {}&lt;br /&gt;
    if not next(args) and frame:getParent() then&lt;br /&gt;
        args = frame:getParent().args or {}&lt;br /&gt;
    end&lt;br /&gt;
    local imagem = normalizeImageName(args.imagem)&lt;br /&gt;
    local titulo = args.titulo or &amp;quot;Título da Conquista&amp;quot;&lt;br /&gt;
    local descricao = args.descricao or &amp;quot;Descrição da conquista.&amp;quot;&lt;br /&gt;
    local itensStr = args.itens or &amp;quot;&amp;quot;&lt;br /&gt;
    local lang = args.lang or &amp;quot;pt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local html = mw.html.create(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-wrapper&amp;quot;)&lt;br /&gt;
    html:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-header&amp;quot;):wikitext(&amp;quot;CONQUISTA COMPLETADA!&amp;quot;)&lt;br /&gt;
    local box = html:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-box&amp;quot;)&lt;br /&gt;
    box:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-icon&amp;quot;):wikitext(string.format(&amp;quot;[[Arquivo:%s|link=]]&amp;quot;, imagem))&lt;br /&gt;
&lt;br /&gt;
    local conteudo = box:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-conteudo&amp;quot;)&lt;br /&gt;
    conteudo:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-titulo&amp;quot;):wikitext(titulo)&lt;br /&gt;
    conteudo:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-descricao&amp;quot;):wikitext(descricao)&lt;br /&gt;
&lt;br /&gt;
    local rec = conteudo:tag(&amp;quot;div&amp;quot;):addClass(&amp;quot;conquista-recompensas&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local itensOrdenados = {}&lt;br /&gt;
    local berriesItem = {}&lt;br /&gt;
&lt;br /&gt;
    for entry in mw.text.gsplit(itensStr, &amp;quot;,&amp;quot;, true) do&lt;br /&gt;
        local ident, qtdNum = parseItemEntry(entry)&lt;br /&gt;
        if ident and qtdNum then&lt;br /&gt;
            local item = Item.resolve(ident)&lt;br /&gt;
&lt;br /&gt;
            if not item then&lt;br /&gt;
                item = {&lt;br /&gt;
                    id = 0,&lt;br /&gt;
                    image = ident:match(&amp;quot;%.%w+$&amp;quot;) and ident or (ident .. &amp;quot;.png&amp;quot;),&lt;br /&gt;
                    names = { pt = ident, en = ident },&lt;br /&gt;
                    category = &amp;quot;unknown&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            local bloco = {&lt;br /&gt;
                item = item,&lt;br /&gt;
                qtd = formatNumber(qtdNum)&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            local image = Item.getImage(item) or &amp;quot;&amp;quot;&lt;br /&gt;
            local isBerries = item.category == &amp;quot;currency&amp;quot; and image:lower():find(&amp;quot;berries&amp;quot;)&lt;br /&gt;
            if isBerries then&lt;br /&gt;
                table.insert(berriesItem, bloco)&lt;br /&gt;
            else&lt;br /&gt;
                table.insert(itensOrdenados, bloco)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local function addBloco(b)&lt;br /&gt;
        rec:wikitext(Item.renderOne(b.item, b.qtd, lang, {&lt;br /&gt;
            showTooltip = true,&lt;br /&gt;
            showCount = true&lt;br /&gt;
        }))&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, b in ipairs(itensOrdenados) do&lt;br /&gt;
        addBloco(b)&lt;br /&gt;
    end&lt;br /&gt;
    for _, b in ipairs(berriesItem) do&lt;br /&gt;
        addBloco(b)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tostring(html)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Gurren1</name></author>
	</entry>
</feed>