模块:测试调用数据:修订间差异

无编辑摘要
无编辑摘要
第6行: 第6行:
p["测试调用"] = function(frame)
p["测试调用"] = function(frame)
     local query_num = frame.args['角色编号']
     local query_num = frame.args['角色编号']
     local result = {}
     local html = mw.html.create()  -- 创建 HTML 构建器对象


     if query_num then
     -- 执行测试输出
        for _, char in ipairs(dataList) do
    for _, char in ipairs(dataList) do
            if query_num == char.owner_order then
        if query_num == char.owner_order then
                local html = mw.html.create()
            html:tag('p'):wikitext("查询角色编号: " .. query_num):done()
            html:tag('table'):addClass('wikitable'):cssText('width:100%;margin:0;')
                :tag('tr')
                    :tag('th'):wikitext('属性'):done()
                    :tag('th'):wikitext('Base'):done()
                    :tag('th'):wikitext('MAX'):done()


                 -- 开始表格
            for _, element in ipairs(elements) do
                 html:tag('table')
                 local maxAttr = "MAX" .. element
                 :addClass('wikitable')
                 local maxAttrValue = char.Data_jp[maxAttr] or "数据不存在"
                 :css('width', '100%')
                  
 
                 local baseAttr = "Base" .. element
                 -- 表头
                local baseAttrValue = char.Data_jp[baseAttr] or "数据不存在"
                  
                 html:tag('tr')
                 html:tag('tr')
                :tag('th'):wikitext('NAME'):done()
                :tag('th'):wikitext('Base'):done()
                :tag('th'):wikitext('MAX'):done()
                :done()
                -- 填充表格数据
                for _, element in ipairs(elements) do
                    local maxAttr = "MAX" .. element
                    local baseAttr = "Base" .. element
                    -- 获取属性值,如果不存在则设为空白字符串
                    local maxAttrValue = char.Data_jp[maxAttr] or ""
                    local baseAttrValue = char.Data_jp[baseAttr] or ""
                    -- 添加行到表格中
                    html:tag('tr')
                     :tag('td'):wikitext(element):done()
                     :tag('td'):wikitext(element):done()
                     :tag('td'):wikitext(baseAttrValue):done()
                     :tag('td'):wikitext(baseAttrValue):done()
                     :tag('td'):wikitext(maxAttrValue):done()
                     :tag('td'):wikitext(maxAttrValue):done()
                end
            end


                -- 结束表格
            html:done() -- 结束表格的构建
                html:done()
 
                -- 将当前表格的HTML添加到结果表中
                table.insert(result, tostring(html))
            end
         end
         end
     end
     end


    -- 返回第一个表格的HTML内容的字符串表示
     return tostring(html) -- 将 HTML 构建器转换为字符串并返回
     return tostring(result[1])
end
end


return p
return p

2024年6月26日 (三) 22:25的版本

可在模块:测试调用数据/doc创建此模块的帮助文档

local p = {}
local db = mw.loadData('模块:角色属性数据')
local dataList = db.char_self_data
local elements = {"HP", "SP", "ATK", "DEF", "MAG", "MDEF", "CRT", "SPD"}

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()
            html:tag('table'):addClass('wikitable'):cssText('width:100%;margin:0;')
                :tag('tr')
                    :tag('th'):wikitext('属性'):done()
                    :tag('th'):wikitext('Base'):done()
                    :tag('th'):wikitext('MAX'):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 "数据不存在"
                
                html:tag('tr')
                    :tag('td'):wikitext(element):done()
                    :tag('td'):wikitext(baseAttrValue):done()
                    :tag('td'):wikitext(maxAttrValue):done()
            end

            html:done()  -- 结束表格的构建
        end
    end

    return tostring(html)  -- 将 HTML 构建器转换为字符串并返回
end

return p