WIKI公告栏
欢迎各位引航者访问卡拉彼丘WIKI,由于游客访问页面会有一定的页面旧版缓存,建议你登陆B站账号进行浏览,如果您觉得本WIKI有帮助到你,欢迎推荐给身边的引航者。
欢迎各位引航者访问卡拉彼丘WIKI,由于游客访问页面会有一定的页面旧版缓存,建议你登陆B站账号进行浏览,如果您觉得本WIKI有帮助到你,欢迎推荐给身边的引航者。
全站通知:
模块:皮肤
刷
历
编
跳到导航
跳到搜索
此模块用于输出角色时装数据和武器皮肤数据,一般用于角色时装筛选页面和武器皮肤筛选页面。
武器皮肤Data格式:
["武器皮肤名"] = { WeaponSkinID:武器皮肤ID,对应图片文件名后面的ID数字 WeaponSkinName:武器皮肤名 Weapon:武器名 WeaponSkinQuality:皮肤品质 WeaponSkinGet:获得方式,多个获得方式请用<br />间隔 WeaponSkinJingHe:晶核价格 WeaponSkinJiXian:基弦价格 WeaponSkinLocalizedString:皮肤介绍 WeaponSkinFile:图片文件名 WeaponSkinDesc:备注
local p = {}
------------角色时装筛选页------------
p["角色时装筛选"] = function(frame)
local data = mw.loadData("Module:皮肤/RoleSkinData")
local html = mw.html.create()
local resultList = {}
for roleskin, skins in pairs(data) do
if skins.File ~= "" then
local SkinGet_data = skins.Get ~= nil and mw.ustring.gsub(skins.Get, "<br />", ",") or skins.Get
local SkinJingHe_data = skins.JingHe == "" and SkinJingHe_data == "无" or skins.JingHe
local SkinJiXian_data = skins.JiXian == "" and SkinJiXian_data == "无" or skins.JiXian
local SkinJingHe_value = skins.JingHe ~= "" and skins.JingHe .. "[[文件:图标-小巴布洛晶核.png|15px|link=]]" or skins.JingHe
local SkinJiXian_value = skins.JiXian ~= "" and skins.JiXian .. "[[文件:图标-小基弦.png|15px|link=]]" or skins.JiXian
local skinssHTML = html
:tag('tr'):addClass('divsort'):attr('data-param1', skins.Role):attr('data-param2', skins.Quality):attr(
'data-param3', SkinGet_data):attr('data-param4', SkinJingHe_data):attr('data-param5', SkinJiXian_data)
:tag('td'):cssText('padding: 2px;font-size: 15px'):wikitext("[[File:" ..
skins.File .. "|200px]]<br />'''[[" .. skins.Role .. "]]:" .. roleskin .. "'''"):done()
:tag('td'):cssText('padding: 2px'):wikitext(frame:expandTemplate { title = '稀有度标签', args = { skins.Quality } })
:done()
:tag('td'):cssText('width: 10%;padding: 2px'):wikitext(skins.Get):done()
:tag('td'):cssText('width: 8%;padding: 2px'):wikitext(SkinJingHe_value):done()
:tag('td'):cssText('width: 8%;padding: 2px'):wikitext(SkinJiXian_value):done()
:tag('td'):addClass('visible-md visible-sm visible-lg'):cssText('width: 40%;padding: 2px'):wikitext(skins
.LocalizedString):done()
:tag('td'):addClass('visible-md visible-sm visible-lg'):cssText('width: 15%;padding: 2px'):wikitext(skins.Desc)
:done()
table.insert(resultList, tostring(skinssHTML))
end
end
local result = table.concat(resultList)
return result
end
------------角色页角色时装------------
p["角色时装"] = function(frame)
local a = require("Module:ACandy")
local data = mw.loadData("Module:皮肤/RoleSkinData")
local characterName = frame.args[1]
local skinsByQuality = {
["初始"] = {}, ["私服"] = {}, ["传说"] = {}, ["完美"] = {}, ["卓越"] = {},
}
for skinName, skinData in pairs(data) do
local skinsOfThisQuality = skinsByQuality[skinData.Quality]
if skinsOfThisQuality and skinData.Role == characterName then
skinsOfThisQuality[#skinsOfThisQuality + 1] = skinName
end
end
local tabLabels, tabBodies = {}, {}
for _, quality in ipairs({ "初始", "私服", "传说", "完美", "卓越" }) do
local len = #tabLabels
for i, skinName in ipairs(skinsByQuality[quality]) do
tabLabels[len + i] = a.li { class = "bili-list-style",
a.span { class = "tab-panel", style = "font-size:14px;width:100%",
a.Raw(frame:expandTemplate {
title = "稀有度标签",
args = { p.getRoleSkinQuality { args = { skinName } } },
}),
a.br,
skinName,
}
}
tabBodies[len + i] = a.div { class = "resp-tab-content",
"[[File:", characterName, "时装-", skinName, ".png|500px|center|link=|class=radius5]]",
}
end
end
if tabLabels[1] then
tabLabels[1].class = tabLabels[1].class .. " active"
tabBodies[1].style = "display:block"
end
return a.h2 "角色时装",
a.div { class = "resp-tabs", style = "border-spacing:0",
a.ul { class = "resp-tabs-list clearfix", style = "margin-left:0;margin-top:0",
tabLabels,
},
a.div { class = "resp-tabs-container", style = "margin-bottom: 5px;",
tabBodies,
},
}, a.br
end
function p.getRoleSkinQuality(frame)
local data = mw.loadData("Module:皮肤/RoleSkinData")
local roleName = frame.args[1]
local result = "初始"
for RoleSkin, skinInfo in pairs(data) do
if RoleSkin == roleName then
result = skinInfo.Quality
break
end
end
return result
end
------------意识重构角色时装表------------
p["意识重构时装筛选"] = function(frame)
local data = mw.loadData("Module:皮肤/RoleSkinData")
local skinget = frame.args[1]
local html = mw.html.create()
local resultList = {}
for skin, skinData in pairs(data) do
if string.find(skinData.Get, skinget, 1, true) then
local roleskinsHTML = html
:tag('tr')
:tag('td'):cssText('font-size: 16px'):wikitext("[[File:" ..
skinData.File .. "|150px|link=]]<br />'''[[" .. skinData.Role .. "]]:" .. skin .. "'''"):done()
:tag('td'):wikitext(frame:expandTemplate { title = '稀有度标签', args = { skinData.Quality } }):done()
:tag('td'):cssText('width: 70%'):wikitext(skinData.LocalizedString):done()
:done()
end
end
table.insert(resultList, tostring(html:done()))
local result = table.concat(resultList)
return result
end
------------武器页武器外观------------
p["武器外观"] = function(frame)
local a = require("Module:ACandy")
local data = mw.loadData("Module:皮肤/WeaponSkinData")
local WeaponName = frame.args[1]
local skinsByQuality = {
["传说"] = {}, ["完美"] = {}, ["卓越"] = {}, ["精致"] = {},
}
for skinName, skinData in pairs(data) do
local skinsOfThisQuality = skinsByQuality[skinData.Quality]
if skinsOfThisQuality and skinData.Weapon == WeaponName then
skinsOfThisQuality[#skinsOfThisQuality + 1] = skinName
end
end
local tabLabels, tabBodies = {}, {}
for _, quality in ipairs({ "传说", "完美", "卓越", "精致" }) do
local len = #tabLabels
for i, skinName in ipairs(skinsByQuality[quality]) do
tabLabels[len + i] = a.li { class = "bili-list-style",
a.span { class = "tab-panel", style = "font-size:14px;width:100%",
a.Raw(frame:expandTemplate {
title = "稀有度标签",
args = { p.getQuality { args = { skinName } } },
}),
a.br,
skinName,
}
}
tabBodies[len + i] = a.div { class = "resp-tab-content",
"[[File:", skinName, ".png|500px|center|link=|class=radius5]]",
}
end
end
if tabLabels[1] then
tabLabels[1].class = tabLabels[1].class .. " active"
tabBodies[1].style = "display:block"
end
return a.div { class = "resp-tabs", style = "border-spacing:0",
a.ul { class = "resp-tabs-list clearfix", style = "margin-left:0;margin-top:0",
tabLabels,
},
a.div { class = "resp-tabs-container", style = "margin-bottom: 5px;",
tabBodies,
},
}
end
function p.getQuality(frame)
local data = mw.loadData("Module:皮肤/WeaponSkinData")
local WeaponSkinName = frame.args[1]
local result = "初始"
for WeaponSkin, skinInfo in pairs(data) do
if WeaponSkin == WeaponSkinName then
result = skinInfo.Quality
break
end
end
return result
end
------------武器皮肤筛选页------------
p["武器皮肤筛选"] = function(frame)
local data = mw.loadData("Module:皮肤/WeaponSkinData")
local html = mw.html.create()
local resultList = {}
for WeaponSkin, skins in pairs(data) do
local SkinGet_data = mw.ustring.gsub(skins.Get, "<br />", ",")
local SkinJingHe_data = skins.JingHe == "" and SkinJingHe_data == "无" or skins.JingHe
local SkinJiXian_data = skins.JiXian == "" and SkinJiXian_data == "无" or skins.JiXian
local SkinJingHe_value = skins.JingHe ~= "" and skins.JingHe .. "[[文件:图标-小巴布洛晶核.png|15px|link=]]" or skins.JingHe
local SkinJiXian_value = skins.JiXian ~= "" and skins.JiXian .. "[[文件:图标-小基弦.png|15px|link=]]" or skins.JiXian
local skinssHTML = html
:tag('tr'):addClass('divsort'):attr('data-param1', skins.Weapon):attr('data-param2', skins.Quality):attr(
'data-param3', SkinGet_data):attr('data-param4', SkinJingHe_data):attr('data-param5', SkinJiXian_data)
:tag('td'):cssText('padding: 2px;font-size: 15px'):wikitext("[[File:" ..
skins.File .. "|200px]]<br />'''" .. WeaponSkin .. "'''"):done()
:tag('td'):cssText('padding: 2px'):wikitext(frame:expandTemplate { title = '稀有度标签', args = { skins.Quality } })
:done()
:tag('td'):cssText('width: 10%;padding: 2px'):wikitext(skins.Get):done()
:tag('td'):cssText('width: 8%;padding: 2px'):wikitext(SkinJingHe_value):done()
:tag('td'):cssText('width: 8%;padding: 2px'):wikitext(SkinJiXian_value):done()
:tag('td'):addClass('visible-md visible-sm visible-lg'):cssText('width: 40%;padding: 2px'):wikitext(skins
.LocalizedString):done()
:tag('td'):addClass('visible-md visible-sm visible-lg'):cssText('width: 15%;padding: 2px'):wikitext(skins.Desc)
:done()
table.insert(resultList, tostring(skinssHTML))
end
local result = table.concat(resultList)
return result
end
------------意识重构武器皮肤表------------
p["意识重构皮肤筛选"] = function(frame)
local data = mw.loadData("Module:皮肤/WeaponSkinData")
local skinget = frame.args[1]
local html = mw.html.create()
local resultList = {}
for skin, skinData in pairs(data) do
if string.find(skinData.Get, skinget, 1, true) then
local skinssHTML = html
:tag('tr')
:tag('td'):cssText('font-size: 16px'):wikitext("[[File:" .. skinData.File ..
"|200px]]<br />'''" .. skin .. "'''"):done()
:tag('td'):wikitext(frame:expandTemplate { title = '稀有度标签', args = { skinData.Quality } }):done()
:tag('td'):cssText('width: 70%'):wikitext(skinData.LocalizedString):done()
:done()
end
end
table.insert(resultList, tostring(html:done()))
local result = table.concat(resultList)
return result
end
return p