全站通知:
模块:图标
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:图标/doc创建
local p = {}
-- 通用函数:处理道具图标样式
local function icon_style(itemName, itemFile, itemQuality, size, imgSize)
local qualityColor = {
["私服"] = "#F78653",
["传说"] = "#F85555",
["完美"] = "#FFC555",
["卓越"] = "#F285FF",
["精致"] = "#60A3F7",
["初始"] = "#ECECEC",
}
local html = mw.html.create()
local borderColor = qualityColor[itemQuality]
local iconHTML = html
:tag('span'):addClass('items-icon')
:tag('span'):addClass('items-icon-img radius10'):cssText("border-color:"..borderColor):wikitext("[[file:"..
itemFile.."|"..imgSize.."|class=radius10|link=]]"):done()
:tag('span'):addClass('items-icon-text'):cssText("font-size:"..size):wikitext(itemName):done()
:done()
return tostring(iconHTML)
end
function p.main(frame)
local itemType = frame.args["类型"]
local itemName = frame.args[1]
local roleName = frame.args["role"]
local size = frame.args["size"]
local imgSize = frame.args["imgSize"]
local itemIcon = ""
local itemFunctions = {
["时装"] = p["角色时装"],
["外观"] = p["武器外观"],
["礼物"] = p["礼物"],
["喷漆"] = p["喷漆"],
["基板"] = p["基板"],
["封装"] = p["封装"],
["勋章"] = p["勋章"],
["表情"] = p["表情"],
["语音"] = p["语音"],
["气泡"] = p["聊天气泡"],
["头套"] = p["头套"],
["卡牌"] = p["生化卡牌"],
[""] = p["功能道具"],
}
if itemFunctions[itemType] then
itemIcon = itemFunctions[itemType](itemName, size, imgSize, roleName)
else
itemIcon = p["其它"](frame.args[1], frame.args["file"], frame.args["quality"], size, imgSize)
end
return itemIcon
end
p["角色时装"] = function (itemName, size, imgSize, roleName)
local data = mw.loadData("模块:角色/SkinData")
if roleName and roleName ~= "" then
-- 只检查指定角色下的时装
local roleData = data[roleName]
if roleData then
local roleSkin = roleData[itemName]
if roleSkin then
return icon_style(
"角色时装:"..itemName,
"角色时装图鉴_"..roleSkin['id']..".png",
roleSkin['稀有度'],
size,
imgSize
)
end
end
else
-- 未指定角色时,需要遍历所有角色
for _, roleData in pairs(data) do
local roleSkin = roleData[itemName]
if roleSkin then
return icon_style(
"角色时装:"..itemName,
"角色时装图鉴_"..roleSkin['id']..".png",
roleSkin['稀有度'],
size,
imgSize
)
end
end
end
return "时装名称错误或无数据"
end
local function splitKey(key)
local parts = {}
for part in key:gmatch("[^-]+") do
table.insert(parts, part)
end
return parts
end
p["武器外观"] = function (itemName, size, imgSize)
local skinData = mw.loadData("模块:武器/SkinData")
local otherSkinData = mw.loadData("模块:武器/OtherSkinData")
local skinList = {}
for k, v in pairs(skinData or {}) do
skinList[k] = v
end
for k, v in pairs(otherSkinData or {}) do
skinList[k] = v
end
local weaponSkinParts = mw.text.split(itemName, "-")
local weaponName = weaponSkinParts[1]
local skinName = weaponSkinParts[2]
local weaponData = skinList[weaponName]
assert(weaponData, "武器名称错误: "..(weaponName or "未知"))
local skinData = weaponData[skinName]
assert(skinData, "外观名称错误: "..(skinName or "未知"))
local weaponSkinIcon = icon_style("武器外观:"..weaponName.."-"..skinName,
"武器外观图鉴_"..skinData['id']..".png",
skinData['稀有度'],
size,
imgSize)
return weaponSkinIcon
end
p["礼物"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:角色礼物/Data")
for _, gift in pairs(data) do
if itemName == gift.name then
local giftIcon = icon_style(gift.name, gift.file, gift.quality, size, imgSize)
return giftIcon
end
end
return "礼物名称错误或无数据"
end
p["喷漆"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:玩家装饰/DecalData")
for _, decal in pairs(data) do
if decal.name == itemName then
local decalIcon = icon_style("喷漆:"..decal.name, decal.file, decal.quality, size, imgSize)
return decalIcon
end
end
return "喷漆名称错误或无数据"
end
p["基板"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:玩家装饰/IDCardData")
for _, idCard in pairs(data) do
if idCard.name == itemName then
local idCardIcon = icon_style("基板:"..idCard.name, idCard.file, idCard.quality, size, imgSize)
return idCardIcon
end
end
return "基板名称错误或无数据"
end
p["封装"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:玩家装饰/FrameData")
for _, frame in pairs(data) do
if frame.name == itemName then
local frameIcon = icon_style("封装:"..frame.name, frame.file, frame.quality, size, imgSize)
return frameIcon
end
end
return "封装名称错误或无数据"
end
p["勋章"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:玩家装饰/BadgeData")
for _, badge in pairs(data) do
if badge.name == itemName then
local badgeIcon = icon_style("勋章:"..badge.name, badge.file, badge.quality, size, imgSize)
return badgeIcon
end
end
return "勋章名称错误或无数据"
end
p["表情"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:角色表情/Data")
for _, emote in pairs(data) do
if emote.name == itemName then
local emoteIcon = icon_style("表情:"..emote.name, emote.file, emote.quality, size, imgSize)
return emoteIcon
end
end
return "表情名称错误或无数据"
end
p["语音"] = function (itemName, size, imgSize)
local voiceFile = "图标-"..itemName.."语音.png"
local voiceIcon = icon_style(itemName.."语音", voiceFile, "精致", size, imgSize)
return voiceIcon
end
p["聊天气泡"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:玩家装饰/ChatBubblesData")
for _, chatBubble in pairs(data) do
if chatBubble.name == itemName then
local chatBubbleIcon = icon_style("聊天气泡:"..chatBubble.name, chatBubble.file, chatBubble.quality, size, imgSize)
return chatBubbleIcon
end
end
return "气泡名称错误或无数据"
end
p["头套"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:玩家装饰/MascotHeadData")
for _, mascotHead in pairs(data) do
if mascotHead.name == itemName then
local mascotHeadIcon = icon_style("头套:"..mascotHead.name, mascotHead.file, mascotHead.quality, size, imgSize)
return mascotHeadIcon
end
end
return "头套名称错误或无数据"
end
p["生化卡牌"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:生化卡牌/Data")
for _, card in pairs(data) do
if card.name == itemName then
local cardIcon = icon_style("卡牌:"..card.name, card.file, card.quality, size, imgSize)
return cardIcon
end
end
return "卡牌名称错误或无数据"
end
p["功能道具"] = function (itemName, size, imgSize)
local data = mw.loadData("模块:功能道具/Data")
for _, items in pairs(data) do
if items.name == itemName then
local itemsIcon = icon_style(items.name, items.file, items.quality, size, imgSize)
return itemsIcon
end
end
return "道具名称错误或无数据"
end
p["其它"] = function (Name, File, Quality, size, imgSize)
local itemIcon = icon_style(Name, File, Quality, size, imgSize)
return itemIcon
end
return p