Module:Tool:修订间差异
NegativeTriu(讨论 | 贡献) 小 (统计中增加五周年兑换券逾期未兑换自动转化的55个以太之滴) |
(Rain of Conflict in a Radiant Abyss特殊处理) |
||
(未显示3个用户的8个中间版本) | |||
第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,"额外章:活动([%s%S]-)第1章:失落的世界") | if frame.args.type=="limit" then text=string.match(text,"额外章:活动([%s%S]-)第1章:失落的世界") | ||
else text=string.match(text,"([%s%S]-) | 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 | ||
local number=nil | local number=nil | ||
while true | while true | ||
do | do | ||
number=match() | |||
if number==nil then break end | |||
result=result+number | |||
end | end | ||
--这里开始匹配注释 | |||
local commentMatch=string.gmatch(text,"<!%-%-([%s%S]-)%-%->") | |||
while true | |||
do | |||
text=commentMatch() | |||
if text==nil then break end | |||
match=string.gmatch(text,"(%d?%d) 以太之滴") | |||
while true | |||
do | |||
number=match() | |||
if number==nil then break end | |||
result=result-number | |||
end | |||
end | |||
commentMatch=nil | |||
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 | ||
第33行: | 第48行: | ||
match=string.gmatch(text,"单曲包\n|(%d?%d)") | match=string.gmatch(text,"单曲包\n|(%d?%d)") | ||
number=match() | number=match() | ||
mmr=mmr+number- | mmr=mmr+number-4 --这里减去guardina innocence desive rainofconflict | ||
ann5=55 --五周年兑换券给的55个 | ann5=55 --五周年兑换券给的55个 | ||
course=40 --段位模式给的40个 | |||
mission=15 --新手任务给的15个 | |||
if frame.args.type=="purchase" then return mmr | if frame.args.type=="purchase" then return mmr | ||
elseif frame.args.type=="ann5" then return ann5 | elseif frame.args.type=="ann5" then return ann5 | ||
elseif frame.args.type=="max" then return result+mmr+ann5 | elseif frame.args.type=="course" then return course | ||
elseif frame.args.type=="mission" then return mission | |||
elseif frame.args.type=="max" then return result+mmr+ann5+course+mission | |||
else return result | else return result | ||
end | end |
2024年9月12日 (四) 11:21的最新版本
可在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
--这里开始匹配注释
local commentMatch=string.gmatch(text,"<!%-%-([%s%S]-)%-%->")
while true
do
text=commentMatch()
if text==nil then break end
match=string.gmatch(text,"(%d?%d) 以太之滴")
while true
do
number=match()
if number==nil then break end
result=result-number
end
end
commentMatch=nil
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-4 --这里减去guardina innocence desive rainofconflict
ann5=55 --五周年兑换券给的55个
course=40 --段位模式给的40个
mission=15 --新手任务给的15个
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=="mission" then return mission
elseif frame.args.type=="max" then return result+mmr+ann5+course+mission
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