模块:测试调用数据:修订间差异
无编辑摘要 |
无编辑摘要 |
||
第3行: | 第3行: | ||
local dataList = db.char_self_data | local dataList = db.char_self_data | ||
local elements = {"HP", "SP", "ATK", "DEF", "MAG", "MDEF", "CRT", "SPD"} | local elements = {"HP", "SP", "ATK", "DEF", "MAG", "MDEF", "CRT", "SPD"} | ||
-- 计算排名的函数 | |||
local function numvalue(maxAttr) | |||
for i, rank in ipairs(dataList) do | |||
if rank.Data_jp[maxAttr] == char.Data_jp[maxAttr] then | |||
return i | |||
end | |||
end | |||
return "无排名" -- 如果找不到排名,返回"无排名" | |||
end | |||
p["测试调用"] = function(frame) | p["测试调用"] = function(frame) | ||
第12行: | 第22行: | ||
if query_num == char.owner_order then | if query_num == char.owner_order then | ||
html:tag('p'):wikitext("查询角色编号: " .. query_num):done() | html:tag('p'):wikitext("查询角色编号: " .. query_num):done() | ||
html | local tableHtml = mw.html.create('table'):addClass('wikitable'):css('width', '100%') | ||
local maxAttr = "MAX" .. | tableHtml:tag('tr') | ||
:tag('th'):wikitext('属性'):done() | |||
:tag('th'):wikitext('Base'):done() | |||
:tag('th'):wikitext('MAX'):done() | |||
:done() | |||
for _, element in ipairs(elements) do | |||
local maxAttr = "MAX" .. element | |||
local maxAttrValue = char.Data_jp[maxAttr] or "数据不存在" | |||
local baseAttr = "Base" .. element | |||
local baseAttrValue = char.Data_jp[baseAttr] or "数据不存在" | |||
-- 获取排名 | |||
local maxRank = numvalue(maxAttr) | |||
:tag('td'):wikitext( | local baseRank = numvalue(baseAttr) | ||
:tag('td'):wikitext(baseAttrValue):done() | |||
:tag('td'):wikitext(maxAttrValue):done() | tableHtml:tag('tr') | ||
:tag('td'):wikitext(element):done() | |||
:tag('td'):wikitext(baseAttrValue .. " (" .. baseRank .. ")"):done() | |||
:tag('td'):wikitext(maxAttrValue .. " (" .. maxRank .. ")"):done() | |||
:done() | |||
end | |||
html: | html:node(tableHtml) | ||
end | end | ||
end | end | ||
return tostring(html) | return tostring(html) | ||
end | end | ||
return p | return p |
2024年6月26日 (三) 22:45的版本
可在模块:测试调用数据/doc创建此模块的帮助文档
local p = {}
local db = mw.loadData('模块:角色属性数据')
local dataList = db.char_self_data
local elements = {"HP", "SP", "ATK", "DEF", "MAG", "MDEF", "CRT", "SPD"}
-- 计算排名的函数
local function numvalue(maxAttr)
for i, rank in ipairs(dataList) do
if rank.Data_jp[maxAttr] == char.Data_jp[maxAttr] then
return i
end
end
return "无排名" -- 如果找不到排名,返回"无排名"
end
p["测试调用"] = function(frame)
local query_num = frame.args['角色编号']
local html = mw.html.create() -- 创建 HTML 构建器对象
-- 执行测试输出
for _, char in ipairs(dataList) do
if query_num == char.owner_order then
html:tag('p'):wikitext("查询角色编号: " .. query_num):done()
local tableHtml = mw.html.create('table'):addClass('wikitable'):css('width', '100%')
tableHtml:tag('tr')
:tag('th'):wikitext('属性'):done()
:tag('th'):wikitext('Base'):done()
:tag('th'):wikitext('MAX'):done()
:done()
for _, element in ipairs(elements) do
local maxAttr = "MAX" .. element
local maxAttrValue = char.Data_jp[maxAttr] or "数据不存在"
local baseAttr = "Base" .. element
local baseAttrValue = char.Data_jp[baseAttr] or "数据不存在"
-- 获取排名
local maxRank = numvalue(maxAttr)
local baseRank = numvalue(baseAttr)
tableHtml:tag('tr')
:tag('td'):wikitext(element):done()
:tag('td'):wikitext(baseAttrValue .. " (" .. baseRank .. ")"):done()
:tag('td'):wikitext(maxAttrValue .. " (" .. maxRank .. ")"):done()
:done()
end
html:node(tableHtml)
end
end
return tostring(html)
end
return p