模組:CCHPaward
外观
local p = {}
function p.calculateLevel(frame)
local args = frame:getParent().args -- 获取命名参数
-- 安全获取参数值,确保转换为数字
local function getNumberParam(paramName, default)
local value = args[paramName] or default
return tonumber(value) or default
end
-- 获取参数,支持所有参数形式
local entryContrib = getNumberParam('条目贡献',
getNumberParam('A',
getNumberParam('a', 0)))
local imageContrib = getNumberParam('图片贡献',
getNumberParam('P',
getNumberParam('p', 0)))
local reviewContrib = getNumberParam('评审贡献',
getNumberParam('R',
getNumberParam('r', 0)))
-- 计算加权总分:条目×1 + 图片×0.2 + 评审×0.4
local totalScore = entryContrib * 1 + imageContrib * 0.2 + reviewContrib * 0.4
-- 总分除以10取整得到等级
local level = math.floor(totalScore / 10)
-- 等级最小为0
return math.max(level, 0)
end
return p