卡厄思
梦
境
菜单
首页
回到首页
WIKI工具
全站样式
全站JS
修改导航栏
测试
沙盒
可视化管理器
战斗员管理器
卡牌管理器
伙伴管理器
装备管理器
词典管理器
图鉴
战斗员
伙伴
装备
怪物卡牌
中立卡牌
词典
小工具
配队模拟器
节奏榜生成器
搜索
链入页面
相关更改
特殊页面
页面信息
最近更改
登录
模块
查看“︁战斗员图鉴”︁的源代码
←
模块:战斗员图鉴
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} -- 获取所有战斗员模块的函数 function p.getAllCharacters() -- 这里需要手动维护角色列表,因为MediaWiki无法直接枚举所有模块 -- 你需要在添加新角色时更新这个列表 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 -- 渲染单个角色卡片 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) local html = mw.html.create('div') :addClass('character-card') :css('position', 'relative') :css('width', '150px') :css('height', '280px') :css('overflow', 'hidden') :css('display', 'inline-block') :css('margin', '5px') :css('vertical-align', 'top') -- 背景 html:tag('div') :css('position', 'absolute') :css('top', '0px') :css('left', '0px') :css('width', '150px') :css('height', '280px') :css('background-color', '#2a2f40') :css('border-radius', '0px 25px 0px 0px') :css('z-index', '0') -- 职业图标 html:tag('div') :css('position', 'absolute') :css('top', '5px') :css('left', '5px') :css('z-index', '1') :wikitext('[[File:' .. jobIcon .. '|25px|link=]]') -- 属性图标 html:tag('div') :css('position', 'absolute') :css('top', '35px') :css('left', '5px') :css('z-index', '1') :wikitext('[[File:' .. attributeIcon .. '|25px|link=]]') -- 角色立绘 html:tag('div') :css('position', 'absolute') :css('bottom', '0px') :css('left', '0px') :css('z-index', '1') :wikitext('[[File:' .. characterImage .. '|150px|link=]]') -- 角色名称背景 html:tag('div') :css('position', 'absolute') :css('bottom', '5px') :css('left', '0px') :css('width', '150px') :css('height', '30px') :css('background-color', 'rgba(0, 0, 0, 0.5)') :css('color', 'white') :css('text-align', 'right') :css('padding-right', '8px') :css('padding-top', '3px') :css('z-index', '2') :wikitext(name) -- 稀有度样式 html:tag('div') :addClass(rarityClass) :css('position', 'absolute') :css('left', '0px') :css('bottom', '0px') :css('z-index', '2') -- 顶层蒙版 html:tag('div') :css('position', 'absolute') :css('left', '0px') :css('bottom', '0px') :css('z-index', '99') :wikitext('[[File:战斗员图鉴_顶层蒙版.png|link=]]') return tostring(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">错误:找不到角色数据 - ' .. targetCharacter .. '</span>' end end -- 显示所有角色 local result = {} local characters = p.getAllCharacters() -- 添加容器样式 table.insert(result, '<div class="character-gallery">') 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, '\n') end -- 批量显示角色函数 function p.showMultiple(frame) local args = frame:getParent().args local result = {} -- 添加容器开始标签 table.insert(result, '<div class="character-gallery">') -- 处理所有参数 for i = 1, 20 do -- 支持最多20个角色 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">错误:找不到角色数据 - ' .. characterName .. '</span>') end end end -- 添加容器结束标签 table.insert(result, '</div>') return table.concat(result, '\n') 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
(
查看源代码
)
返回
模块:战斗员图鉴
。