模块:CollectGoalTable
适用于集点活动的限时任务列表书写。
使用
使用时头部:
{{#invoke:CollectGoalTable|table
| 收集道具=
| 道具数量=
}}
其中“道具数量”参数为各档位收集目标达成后获得的道具数量,以双英文半角分号(;;)分割,可以不填,默认值是50;;100;;150。
对于其中的每一项:
| 项目X= | 目标X-1= | 目标X-2= | 目标X-3= ……
- X的范围为1-50,下属目标数量上限由上面的档位数量决定。
- 换行请使用<br>。个人意见尽量少用强制换行。
示例
{{#invoke:CollectGoalTable|table
| 收集道具=游击队员徽章
| 项目1=累计消耗理智
| 目标1-1=600
| 目标1-2=1200
| 目标1-3=1800
| 项目2=累计提升干员经验值
| 目标2-1=35000
| 目标2-2=70000
| 目标2-3=100000
| 项目3=在干员升级和晋升中累计消耗龙门币
| 目标3-1=60000
| 目标3-2=120000
| 目标3-3=200000
}}
| 奖励 | |||
|---|---|---|---|
| 任务条件 | 具体目标 | ||
| 累计消耗理智 | 600 | 1200 | 1800 |
| 累计提升干员经验值 | 35000 | 70000 | 100000 |
| 在干员升级和晋升中累计消耗龙门币 | 60000 | 120000 | 200000 |
local p = {}
function p.table(frame)
local max_task_items = 50
local args = (frame == mw.getCurrentFrame() and frame.args) or frame
res_table = {}
local item_name = mw.text.trim(args["收集道具"] or "")
local customfile = args["自定义文件"]
local customfilelink = mw.text.trim(args["自定义链接"] or "")
local cssclass = mw.text.trim(args["CSS类"] or "")
if cssclass ~= "" then
cssclass = "class=\""..cssclass.."\"|"
end
local item_count_table = mw.text.trim(args["道具数量"] or "50;;100;;150")
item_count_table = mw.text.split(item_count_table, ';;', true)
local item_icon = {}
for i=1,#item_count_table do
item_icon[i] = customfile and frame:expandTemplate{title="数量", args={icon=item_name,num=item_count_table[i],size='50px', link=customfilelink}} or frame:expandTemplate{title="道具图标", args={item_name,item_count_table[i],'50px'}}
end
local table_class = "wikitable"
table.insert(res_table, string.format("\n{|class=\"%s\" ", table_class))
table.insert(res_table, "style=\"width:800px;text-align:center;display:table;white-space:normal;\"\n")
local str = "!class=\"pointcollection_table_desc\"|奖励\n"
for i=1,#item_count_table do str = str .. "!"..cssclass.."%s\n" end
table.insert(res_table, string.format(str, unpack(item_icon)))
table.insert(res_table, string.format("|-\n! 任务条件\n! colspan=%d|具体目标\n", #item_count_table))
for i = 1, max_task_items do
local task_item_title = mw.text.trim(args["项目" .. i] or "")
if task_item_title ~= "" then
local str = string.format("|-\n|%s\n", task_item_title)
local sub_item_table = {}
for i2 = 1, #item_count_table do
sub_item_table[i2] = mw.text.trim(args["目标".. i .. "-" .. i2] or "")
str = str .. "|%s\n"
end
table.insert(res_table, string.format(str, unpack(sub_item_table)))
end
end
table.insert(res_table, "|}")
return table.concat(res_table)
end
return p