打开/关闭搜索
搜索
打开/关闭菜单
15
6636
39
1万
OGAS数据中枢
导航
首页
最近更改
随机页面
特殊页面
上传文件
少女前线
简介
战术人形
装备图鉴
BGM
任务
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
登录
查看“︁Module:GFInfobox”︁的源代码
来自OGAS数据中枢
更多操作
←
Module:GFInfobox
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
local p = {} -- 武器类型映射 local weaponTypes = { ['手枪'] = '手枪', ['冲锋枪'] = '冲锋枪', ['步枪'] = '步枪', ['突击步枪'] = '突击步枪', ['机枪'] = '机枪', ['霰弹枪'] = '霰弹枪' } -- 稀有度颜色 local rarityColors = { [2] = '#777', [3] = '#33566f', [4] = '#7b813f', [5] = '#a7753b', [6] = '#ad4229' } function p.main(frame) local args = frame.args local html = mw.html.create('div') :addClass('gf-infobox') -- 标题 local title = args['名字'] or args['标题'] or mw.title.getCurrentTitle().text html:tag('div') :addClass('gf-title') :wikitext(title) -- 图片 local image = args['image'] or args['图片'] if image and image ~= '' then local imageDiv = html:tag('div') :addClass('gf-image-container') imageDiv:wikitext(string.format('[[File:%s|280px|class=gf-image]]', image)) local imgDesc = args['图片说明'] if imgDesc and imgDesc ~= '' then imageDiv:tag('br'):done() imageDiv:wikitext(imgDesc) end else html:tag('div') :addClass('gf-image-container') :wikitext('啊嘞?!<br />怎么回事<br />这个妹子怎么没有头的样子……') end -- 基础资料 html:tag('div') :addClass('gf-section') :wikitext('基础资料') -- 信息行 local fields = { {'本名', args['本名']}, {'别名', args['别名']}, {'发色', formatHairColor(args)}, {'瞳色', formatEyeColor(args)}, {'声优', formatVoiceActor(args)}, {'萌点', args['萌点']}, {'类型', formatWeaponType(args['类型'])}, {'稀有度', formatRarity(args['稀有度'])}, {'原产国', args['原产国']}, {'研发者', args['研发者']}, {'研发商', args['研发商']}, {'研发日期', args['研发日期']}, {'生产商', args['生产商']}, {'生产日期', args['生产日期']}, {'服役期间', args['服役期间']}, {'出身地区', args['出身地区']}, {'活动范围', args['活动范围']}, {'所属团体', args['所属团体']}, {'个人状态', args['个人状态']} } for _, field in ipairs(fields) do local label, value = field[1], field[2] if value and value ~= '' then local row = html:tag('div'):addClass('gf-row') row:tag('div') :addClass('gf-label') :wikitext(label) row:tag('div') :addClass('gf-value') :wikitext(value) end end -- 亲属或相关人 local related = args['相关人士'] if related and related ~= '' then html:tag('div') :addClass('gf-section') :wikitext('亲属或相关人') html:tag('div') :addClass('gf-single') :wikitext(related) end -- 分类 local categories = {} if not image or image == '' then table.insert(categories, '[[Category:无设定图]]') end local voiceActor = args['声优'] if voiceActor then table.insert(categories, string.format('[[Category:%s配音角色]]', voiceActor)) end local weaponType = args['类型'] if weaponType and weaponTypes[weaponType] then table.insert(categories, string.format('[[Category:少女前线:%s]]', weaponType)) end if #categories > 0 then html:wikitext(table.concat(categories)) end return tostring(html) end -- 格式化发色 function formatHairColor(args) local multiColor = args['多种发色'] if multiColor and multiColor ~= '' then return multiColor end local hairColor = args['发色'] if hairColor then return string.format('{{Hair_color|%s}}', hairColor) end return nil end -- 格式化瞳色 function formatEyeColor(args) local multiColor = args['多种瞳色'] if multiColor and multiColor ~= '' then return multiColor end local eyeColor = args['瞳色'] if eyeColor then return string.format('{{Eye_color|%s}}', eyeColor) end return nil end -- 格式化声优 function formatVoiceActor(args) local multiVA = args['多位声优'] if multiVA and multiVA ~= '' then return multiVA end local voiceActor = args['声优'] if voiceActor and voiceActor ~= '' then return string.format('[[%s]]', voiceActor) end return nil end -- 格式化武器类型 function formatWeaponType(weaponType) if weaponType and weaponTypes[weaponType] then return weaponTypes[weaponType] end return weaponType end -- 格式化稀有度 function formatRarity(rarity) if not rarity then return nil end -- 处理数字 local num = tonumber(rarity) if num then local color = rarityColors[num] if color then return string.format('<span style="color:%s">%s</span>', color, string.rep('★', num)) end return rarity end -- 处理已有的星星 local starCount = select(2, rarity:gsub('★', '')) if starCount > 0 then local color = rarityColors[starCount] if color then return string.format('<span style="color:%s">%s</span>', color, rarity) end end -- 处理箭头 return rarity:gsub('%s*→%s*', ' → '):gsub('%s*->%s*', ' → ') end return p
该页面嵌入的页面:
Module:GFInfobox/doc
(
查看源代码
)
返回
Module:GFInfobox
。
查看“︁Module:GFInfobox”︁的源代码
来自OGAS数据中枢