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

无编辑摘要
无编辑摘要
第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:tag('table'):addClass('wikitable'):cssText('width:100%;margin:0;')
             local tableHtml = mw.html.create('table'):addClass('wikitable'):css('width', '100%')
                :tag('tr')
                    :tag('th'):wikitext('属性'):done()
                    :tag('th'):wikitext('Base'):done()
                    :tag('th'):wikitext('MAX'):done()


             local maxAttr = "MAX" .. "HP"
             tableHtml:tag('tr')
            local maxAttrValue = char.Data_jp[maxAttr] or "数据不存在"
                :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" .. "HP"
                local baseAttr = "Base" .. element
            local baseAttrValue = char.Data_jp[baseAttr] or "数据不存在"
                local baseAttrValue = char.Data_jp[baseAttr] or "数据不存在"
                  
 
            html:node(
                 -- 获取排名
                 mw.html.create('tr')
                local maxRank = numvalue(maxAttr)
                     :tag('td'):wikitext("HP"):done()
                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()
            html:node(trhtml)  -- 将 trhtml 的内容添加到 html 中
                     :tag('td'):wikitext(maxAttrValue .. " (" .. maxRank .. ")"):done()
                    :done()
             end


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


     return tostring(html) -- 将 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