Module:Tool:修订间差异
NegativeTriu(讨论 | 贡献) (修复以太之滴总数计算错误的问题) |
NegativeTriu(讨论 | 贡献) (增加统计购买曲子获得的以太之滴,以及最大数量的以太之滴) |
||
第10行: | 第10行: | ||
function p.Etherdrop(frame) | function p.Etherdrop(frame) | ||
local text=mw.getCurrentFrame():expandTemplate{ title = ':世界模式' } | local text=mw.getCurrentFrame():expandTemplate{ title = ':世界模式' } | ||
if frame.args.type | 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) 以太之滴") | ||
第21行: | 第21行: | ||
result=result+number | result=result+number | ||
end | end | ||
result=result-6 --这里删掉因为sia常驻而多统计的6个 | |||
text=mw.getCurrentFrame():expandTemplate{ title = ':曲包列表' } | |||
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 | |||
if frame.args.type=="purchase" then return mmr | |||
elseif frame.args.type=="max" then return result+mmr | |||
else return result | |||
end | |||
end | end | ||
2021年10月16日 (六) 14:17的版本
可在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.getCurrentFrame():expandTemplate{ title = ':世界模式' }
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-6 --这里删掉因为sia常驻而多统计的6个
text=mw.getCurrentFrame():expandTemplate{ title = ':曲包列表' }
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
if frame.args.type=="purchase" then return mmr
elseif frame.args.type=="max" then return result+mmr
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