Module:Tool:修订间差异
KhronoLabyrinth(讨论 | 贡献) (计算段位模式奖励的40以太之滴) |
NegativeTriu(讨论 | 贡献) (修正当调用此模块中的Etherdrop方法时,会导致此前的<ref>标签脚注无法正常显示的问题) |
||
第9行: | 第9行: | ||
--获取以太之滴总数 | --获取以太之滴总数 | ||
function p.Etherdrop(frame) | function p.Etherdrop(frame) | ||
local text=mw. | local text=mw.title.new(':世界模式'):getContent() | ||
if frame.args.type=="limit" then text=string.match(text," | if frame.args.type=="limit" then text=string.match(text," 已关闭的限时 活动 阶梯([%s%S]-)第1章:失落的世界") | ||
else text=string.match(text,"([%s%S]-)各章节阶梯和奖励情况示意%(Nintendo Switch版%)") end | else text=string.match(text," 已关闭的限时活动阶梯([%s%S]-)各章节阶梯和奖励情况示意%(Nintendo Switch版%)") end | ||
local match=string.gmatch (text,"(%d?%d) 以太之滴") | local match=string.gmatch (text,"(%d?%d) 以太之滴") | ||
local result=0 | local result=0 | ||
第22行: | 第22行: | ||
end | end | ||
result=result-17 --这里删掉因为sia和shirabe常驻而多统计的6+11=17个 | result=result-17 --这里删掉因为sia和shirabe常驻而多统计的6+11=17个 | ||
text=mw. | local text=mw.title.new(':曲包列表'):getContent() | ||
match=string.gmatch(text,"(%d)00记忆源点/整曲包") | match=string.gmatch(text,"(%d)00记忆源点/整曲包") | ||
local mmr=0 | local mmr=0 |
2022年9月23日 (五) 22:51的版本
可在Module:Tool/doc创建此模块的帮助文档
local p={}
-- 小工具集
--时间格式转换
function p.time(frame)
return os.date("%Y/%m/%d", frame.args.time)
end
--获取以太之滴总数
function p.Etherdrop(frame)
local text=mw.title.new(':世界模式'):getContent()
if frame.args.type=="limit" then text=string.match(text,"已关闭的限时活动阶梯([%s%S]-)第1章:失落的世界")
else text=string.match(text,"已关闭的限时活动阶梯([%s%S]-)各章节阶梯和奖励情况示意%(Nintendo Switch版%)") end
local match=string.gmatch (text,"(%d?%d) 以太之滴")
local result=0
local number=nil
while true
do
number=match()
if number==nil then break end
result=result+number
end
result=result-17 --这里删掉因为sia和shirabe常驻而多统计的6+11=17个
local text=mw.title.new(':曲包列表'):getContent()
match=string.gmatch(text,"(%d)00记忆源点/整曲包")
local mmr=0
while true
do
number=match()
if number==nil then break end
mmr=mmr+number
end
match=string.gmatch(text,"单曲包\n|(%d?%d)")
number=match()
mmr=mmr+number-1 --这里减去guardina
ann5=55 --五周年兑换券给的55个
course=40 --段位模式给的40个
if frame.args.type=="purchase" then return mmr
elseif frame.args.type=="ann5" then return ann5
elseif frame.args.type=="course" then return course
elseif frame.args.type=="max" then return result+mmr+ann5+course
else return result
end
end
--从字符串中移除某字符
function p.LuaReomve(frame)
str=frame.args.str
remove=frame.args.remove
local lcSubStrTab = {}
while true do
local lcPos = string.find(str,remove)
if not lcPos then
lcSubStrTab[#lcSubStrTab+1] = str
break
end
local lcSubStr = string.sub(str,1,lcPos-1)
lcSubStrTab[#lcSubStrTab+1] = lcSubStr
str = string.sub(str,lcPos+1,#str)
end
local lcMergeStr =""
local lci = 1
while true do
if lcSubStrTab[lci] then
lcMergeStr = lcMergeStr .. lcSubStrTab[lci]
lci = lci + 1
else
break
end
end
return lcMergeStr
end
function link(frame)
local result=""
for i,k in ipairs(frame.args) do
result=result..'<span id="'..k..'"></span>'
end
return result
end
return p