本WIKI由cl的光玊申请于2021年08月04日创建
本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~
编辑帮助:目录 • BWIKI反馈留言板
本WIKI由cl的光玊申请于2021年08月04日创建。本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~
模块:歌谱函数
此模块的文档可以在模块:歌谱函数/doc创建
local d = require('模块:歌谱数据')
--解释:[1]为歌曲名称、[2]为谱面类型、[3]为轨道序数、[4]为节拍数
local p = {}
--轨道数量计算
function p.Quality(frame)
local dtTb = d.tb
local lane1 = dtTb[frame.args[1]][frame.args[2]][frame.args[3]]
local num = #lane1
return num
end
--轨道节拍数
function p.print(frame)
local dtTb = d.tb
local beat = dtTb[frame.args[1]][frame.args[2]][frame.args[3]][tonumber(frame.args[4])]
return beat
end
--轨道位置百分比
function p.situation(frame)
local dtTb = d.tb
local percent = (math.abs(dtTb[frame.args[1]][frame.args[2]][frame.args[3]][tonumber(frame.args[4])])) / (dtTb[frame.args[1]][frame.args[2]]["beat"])
return percent
end
--判断A和SP
function p.choice(frame)
local dtTb = d.tb
local lane1 = dtTb[frame.args[1]][frame.args[2]][frame.args[3]]
local num = #lane1
local kind = "A"
for i= 1,num do
local beat = dtTb[frame.args[1]][frame.args[2]][frame.args[3]][i]
if (beat < 0)
then
kind = "SP"
end
end
return kind
end
function p.GetAllLane(frame)
local dtTb = d.tb
local output = ""
for i= 1,5 do
local outArgs = {}
p.GetOneLaneInfo(outArgs,dtTb[frame.args[1]][frame.args[2]]["" .. i],dtTb[frame.args[1]][frame.args[2]]["beat"])
output = output .. frame:expandTemplate{title="歌谱/单轨", args = outArgs}
end
return output
end
function p.GetOneLaneInfo(outArgs,laneDt,allPoint)
outArgs["总"] = allPoint
outArgs["类别"] = "A"
outArgs["SP位"] = 0
outArgs["技能数"] = #laneDt
for i= 1,#laneDt do
local beat = laneDt[i]
outArgs[string.format("位%s", i)] = math.abs(beat)
if (beat < 0) then
outArgs["类别"] = "SP"
outArgs["SP位"] = i
end
end
end
function p.GetAllLaneList(frame)
local dtTb = d.tb
local output = "<tabber>"
for key, mTb in pairs(dtTb[frame.args[1]]) do
output = output .. key .. "= {{歌谱/全轨|" .. frame.args[1] .. "|" .. key .."}}|-|"
end
output = output .. "</tabber>"
return frame:preprocess(output)
end
return p