Mudanças entre as edições de "Módulo:Questlog"
Ir para navegação
Ir para pesquisar
(Criou página com 'local p = {} function p.exibir(frame) local args = frame:getParent().args local img = args.img or "SemImagem" local npc = args.nomenpc or "NPC" local texto =...') |
|||
| Linha 11: | Linha 11: | ||
html:addClass("questlog-wrapper") | html:addClass("questlog-wrapper") | ||
-- Imagem | -- Imagem | ||
html:tag("div") | html:tag("div") | ||
:addClass("questlog-img") | :addClass("questlog-img") | ||
| Linha 19: | Linha 19: | ||
local bubble = html:tag("div"):addClass("questlog-bubble") | local bubble = html:tag("div"):addClass("questlog-bubble") | ||
for line in texto:gmatch("[^\r\n]+") do | for line in texto:gmatch("[^\r\n]+") do | ||
line = mw.text.trim(line) | line = mw.text.trim(line) | ||
| Linha 26: | Linha 25: | ||
bubble:tag("div") | bubble:tag("div") | ||
:addClass("questlog-resp") | :addClass("questlog-resp") | ||
:wikitext( | :wikitext(mw.ustring.gsub(line, "^RESPOSTA:%s*", "")) | ||
elseif line:match("^"..npc..":") then | elseif line:match("^" .. npc .. ":") then | ||
local conteudo = mw.ustring.gsub(line, "^"..npc..":%s*", "") | |||
bubble:tag("div") | bubble:tag("div") | ||
:addClass("questlog-text") | :addClass("questlog-text") | ||
:wikitext("''" .. | :wikitext("'''"..npc..":''' " .. conteudo) | ||
else | else | ||
bubble:tag("div") | bubble:tag("div") | ||
| Linha 39: | Linha 39: | ||
end | end | ||
-- Itens | -- Itens | ||
if itens and itens ~= "" then | if itens and itens ~= "" then | ||
local wrapper = bubble:tag("div"):css("margin-top", "20px") | local wrapper = bubble:tag("div"):css("margin-top", "20px") | ||
wrapper:tag("div"):addClass("label"):wikitext("Itens Recebidos") | wrapper:tag("div"):addClass("label"):wikitext("Itens Recebidos") | ||
local itemDiv = wrapper:tag("div"):addClass("questlog-items"):css("margin-top", "10px") | |||
for item in mw.text.gsplit(itens, ",", true) do | for item in mw.text.gsplit(itens, ",", true) do | ||
local nome, qtd = item:match("^%s*(.-)%s*:%s*(%d+)%s*$") | local nome, qtd = item:match("^%s*(.-)%s*:%s*(%d+)%s*$") | ||
| Linha 52: | Linha 52: | ||
span:tag("span") | span:tag("span") | ||
:addClass("item-count") | :addClass("item-count") | ||
:wikitext("x"..qtd) | :wikitext("x" .. qtd) | ||
end | end | ||
end | end | ||
Edição das 02h03min de 22 de maio de 2025
A documentação para este módulo pode ser criada em Módulo:Questlog/doc
local p = {}
function p.exibir(frame)
local args = frame:getParent().args
local img = args.img or "SemImagem"
local npc = args.nomenpc or "NPC"
local texto = args.descricao or ""
local itens = args.itens or ""
local html = mw.html.create("div")
html:addClass("questlog-wrapper")
-- Imagem
html:tag("div")
:addClass("questlog-img")
:wikitext(string.format("[[Arquivo:%s.png|link=]]", img))
-- Balão de fala
local bubble = html:tag("div"):addClass("questlog-bubble")
for line in texto:gmatch("[^\r\n]+") do
line = mw.text.trim(line)
if line ~= "" then
if line:match("^RESPOSTA:") then
bubble:tag("div")
:addClass("questlog-resp")
:wikitext(mw.ustring.gsub(line, "^RESPOSTA:%s*", ""))
elseif line:match("^" .. npc .. ":") then
local conteudo = mw.ustring.gsub(line, "^"..npc..":%s*", "")
bubble:tag("div")
:addClass("questlog-text")
:wikitext("'''"..npc..":''' " .. conteudo)
else
bubble:tag("div")
:addClass("questlog-text")
:wikitext(line)
end
end
end
-- Itens
if itens and itens ~= "" then
local wrapper = bubble:tag("div"):css("margin-top", "20px")
wrapper:tag("div"):addClass("label"):wikitext("Itens Recebidos")
local itemDiv = wrapper:tag("div"):addClass("questlog-items"):css("margin-top", "10px")
for item in mw.text.gsplit(itens, ",", true) do
local nome, qtd = item:match("^%s*(.-)%s*:%s*(%d+)%s*$")
if nome and qtd then
local span = itemDiv:tag("span"):addClass("item-wrapper")
span:wikitext(string.format("[[Arquivo:%s.png|48px|link=]]", nome))
span:tag("span")
:addClass("item-count")
:wikitext("x" .. qtd)
end
end
end
return tostring(html)
end
return p