本WIKI除首页和部分特殊页面外编辑权限开放。
为了方便未来的使用,务必收藏哦~
感谢 一直在作死的千岛酱对主页的设计支持,期待更多家主大人加入妖怪屋WIKI~
编辑帮助萌新问答区

全站通知:

模块:沙盒

来自阴阳师妖怪屋WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:沙盒/doc创建

local p={}

p['数字转中文']=function (frame)
	local number = tonumber(frame.args[1])
    if type(number) ~= "number" then
        return
    end
    local numerical_table = {}
    local numerical_names = {[0] = "零", "一", "二", "三", "四", "五", "六", "七", "八", "九"}
    local numerical_units = {"", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千", "兆", "十", "百", "千"}
 
    --数字转成表结构存储
    local numerical_length = string.len(number)
    for i = 1, numerical_length do
	numerical_table[i] = tonumber(string.sub(number, i, i))
    end
    --对应数字转中文处理
    local result_numberical = ""
    local to_append_zero, need_filling = false, true
    for index, number in ipairs(numerical_table) do
	--从高位到底位的顺序数字转成对应的从低位到高位的顺序数字单位.
	local real_unit_index = numerical_length - index + 1
    if number == 0 then
	   if need_filling then
	      if real_unit_index == 5 then--万位
		 result_numberical = result_numberical .. "万"
		 need_filling = false
	      end
	      if real_unit_index == 9 then--亿位
		 result_numberical = result_numberical .. "亿"
		 need_filling = false
	      end
	      if real_unit_index == 13 then--兆位
		 result_numberical = result_numberical .. "兆"
		 need_filling = false
	      end
	   end
       to_append_zero = true
        else
	   if to_append_zero then
	      result_numberical = result_numberical .. "零"
	      to_append_zero = false
           end
	   result_numberical = result_numberical  .. numerical_names[number] .. numerical_units[real_unit_index]
	   if real_unit_index == 5 or real_unit_index == 9 or real_unit_index == 13 then
		need_filling = false
	   else
		need_filling = true
	   end
	end
    end
    result_numberical = result_numberical:gsub('一十','十')
    return result_numberical
end

p['测试']=function (frame)
	local args = {
		'[[分类:式神]]',
		'link=none' ,
		'format=template' ,
		'template=沙盒' ,
		'headers=hide' ,
		'limit=1000' ,
		'named args=1' 
	}
	for i=1,20 do
		local z = p['数字转中文']({args={i}})
		table.insert( args, string.format('?式神成就%s',z) )
		table.insert( args, string.format('?式神成就%s解锁条件',z) )
		table.insert( args, string.format('?成就分类%s',z) )
	end
	for i,v in ipairs(args)do
		mw.log(i,v)
	end
	return frame:callParserFunction{ name = '#ask', args = args }
end

return p