卡厄思
梦
境
菜单
首页
回到首页
WIKI工具
全站样式
全站JS
修改导航栏
测试
沙盒
可视化管理器
战斗员管理器
卡牌管理器
伙伴管理器
装备管理器
词典管理器
图鉴
战斗员
伙伴
装备
怪物卡牌
中立卡牌
词典
小工具
配队模拟器
节奏榜生成器
搜索
链入页面
相关更改
特殊页面
页面信息
最近更改
登录
模块
查看“︁战斗员图鉴”︁的源代码
←
模块:战斗员图鉴
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} -- 获取所有战斗员模块的函数 function p.getAllCharacters() local characters = { "蕾欧娜", -- 在这里添加其他角色名称 } return characters end -- 安全地加载角色数据 function p.loadCharacterData(characterName) local success, characterModule = pcall(require, "模块:战斗员/" .. characterName) if success and characterModule and characterModule.data then return characterModule.data else return nil end end -- 获取稀有度对应的CSS类 function p.getRarityClass(rarity) return "rarity-" .. (rarity or "1") end -- 获取职业图标文件名 function p.getJobIcon(job) if job then return "icon_职业_" .. job .. ".png" else return "icon_职业_未知.png" end end -- 获取属性图标文件名 function p.getAttributeIcon(attribute) if attribute then return "icon_属性_" .. attribute .. ".png" else return "icon_属性_未知.png" end end -- 获取角色立绘文件名 function p.getCharacterImage(characterName) return "战斗员图鉴_" .. characterName .. ".png" end -- 渲染单个角色卡片 - 关键修改:使用span包装并设置样式 function p.renderCharacterCard(data) if not data then return "" end local name = data["名称"] or "未知" local rarity = data["稀有度"] or "1" local job = data["职业"] or "" local attribute = data["属性"] or "" local jobIcon = p.getJobIcon(job) local attributeIcon = p.getAttributeIcon(attribute) local characterImage = p.getCharacterImage(name) local rarityClass = p.getRarityClass(rarity) -- 使用span作为最外层容器,并且不包含任何换行符 local html = '<span class="character-card-wrapper" style="display: inline-block; vertical-align: top; margin: 0; padding: 0;">' html = html .. '<div class="character-card" style="position: relative; width: 150px; height: 280px; overflow: hidden; margin: 5px; vertical-align: top;">' html = html .. '<div style="position: absolute; top: 0px; left: 0px; width: 150px; height: 280px; background-color: #2a2f40; border-radius: 0px 25px 0px 0px; z-index: 0;"></div>' html = html .. '<div style="position: absolute; top: 5px; left: 5px; z-index: 1;">[[File:' .. jobIcon .. '|25px|link=]]</div>' html = html .. '<div style="position: absolute; top: 35px; left: 5px; z-index: 1;">[[File:' .. attributeIcon .. '|25px|link=]]</div>' html = html .. '<div style="position: absolute; bottom: 0px; left: 0px; z-index: 1;">[[File:' .. characterImage .. '|150px|link=]]</div>' html = html .. '<div style="position: absolute; bottom: 5px; left: 0px; width: 150px; height: 30px; background-color: rgba(0, 0, 0, 0.5); color: white; text-align: right; padding-right: 8px; padding-top: 3px; z-index: 2;">' .. name .. '</div>' html = html .. '<div class="' .. rarityClass .. '" style="position: absolute; left: 0px; bottom: 0px; z-index: 2;"></div>' html = html .. '<div style="position: absolute; left: 0px; bottom: 0px; z-index: 99;">[[File:战斗员图鉴_顶层蒙版.png|link=]]</div>' html = html .. '</div></span>' return html end -- 主函数 function p.show(frame) local args = frame:getParent().args local targetCharacter = args[1] or args["角色"] or "" -- 如果指定了角色名,只显示该角色 if targetCharacter ~= "" then local data = p.loadCharacterData(targetCharacter) if data then return p.renderCharacterCard(data) else return '<span class="error" style="color: #ff0000; font-weight: bold;">错误:找不到角色数据 - ' .. targetCharacter .. '</span>' end end -- 显示所有角色 local result = {} local characters = p.getAllCharacters() table.insert(result, '<div class="character-gallery" style="font-size: 0; line-height: 0;">') for _, characterName in ipairs(characters) do local data = p.loadCharacterData(characterName) if data then table.insert(result, p.renderCharacterCard(data)) end end table.insert(result, '</div>') return table.concat(result, '') end -- 批量显示角色函数 function p.showMultiple(frame) local args = frame:getParent().args local result = {} table.insert(result, '<div class="character-gallery" style="font-size: 0; line-height: 0;">') for i = 1, 20 do local characterName = args[i] if characterName and characterName ~= "" then local data = p.loadCharacterData(characterName) if data then table.insert(result, p.renderCharacterCard(data)) else table.insert(result, '<span class="error" style="color: #ff0000; font-weight: bold;">错误:找不到角色数据 - ' .. characterName .. '</span>') end end end table.insert(result, '</div>') return table.concat(result, '') end -- 直接调用函数 function p.showCharacter(characterName) local data = p.loadCharacterData(characterName) return p.renderCharacterCard(data) end -- 获取角色数据函数 function p.getCharacterData(characterName) return p.loadCharacterData(characterName) end return p
该页面使用的模板:
模块:战斗员图鉴/doc
(
查看源代码
)
返回
模块:战斗员图鉴
。