本站页面(多半)转载自萌娘百科的同名页面,依CC BY-NC-SA 3.0引入,贡献者可以在历史页查询。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
因各种原因页面内容可能和源页面有所出入,非本站特有页面内容请以萌娘百科为准。
- 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
- 本镜像站和其他萌娘百科的镜像站无关,请注意分别。
Module:云图计划心智人形
跳到导航
跳到搜索
local dollName local p = {} --[[ 参数str格式示例: 网安精英(默认投影) *扩容Live2D 要伪装成他人对一个白帽客来说很容易,要安心做自己却很难。 ---- 天网深潜者(完型投影) *Live2D 在对白帽客展开攻击时,好好想想自己是不是那条待钓的鱼。 ---- 最初口令(唤醒) *模型 保护您的信息安全?从唤醒我的第一秒开始,我就在做了哦。 ]] local function structureSkinData(str) local raws = mw.text.split(str, '%s*\n%-%-%-%-\n%s*') local skins = {} local flag = false -- 是否专门写了“扩容投影”。不知道变量怎么起名了 for i, v in ipairs(raws) do local name, series, desc local args = {} -- 提取args,在v中移除相应行 v = mw.ustring.gsub(v, '\n%*[ \t]*([^\n]+)', function(s) args[mw.text.trim(s)] = true return '' end) -- 提取name, series, desc name, series, desc = mw.ustring.match(v, '([^\n]*)(%b())%s-\n%s*(.+)') if name then -- 提取成功时 if series == '()' then series = nil else series = mw.ustring.sub(series, 2, -2) -- 去掉括号 if series == '扩容投影' then flag = true end end else -- 提取失败时 name = '参数出错' series = nil desc = '请检查以下代码:<pre>'..raws[i]..'</pre>' args = {} end skins[i] = { name = name, series = series, desc = desc, args = args } end -- 在没有手动录入的情况下,自动添加扩容投影 if not flag then local args = { ['模型'] = skins[1].args['扩容模型'], ['Live2D'] = skins[1].args['扩容Live2D'], ['动态立绘'] = skins[1].args['扩容动态立绘'] } table.insert(skins, 2, { name = skins[1].name, series = '扩容投影', desc = skins[1].desc, args = args }) end return skins end -- 生成一个心智投影用到的tab local function genSkinItem(frame, skin) local label = table.concat({ skin.args['模型'] and '<div class="pnc-figr-label" style="background:#00F2FE">模型</div>' or '', skin.args['Live2D'] and '<div class="pnc-figr-label" style="background:#F6BF00">Live2D</div>' or '', skin.args['动态立绘'] and '<div class="pnc-figr-label" style="background:#F6BF00"><div style="transform:scale(.9)">动态立绘</div></div>' or '' }) return frame:expandTemplate{ title = '云图计划心智人形/投影tab', args = { dollName = dollName, name = skin.name, series = skin.series, label = label, desc = skin.desc } } end function p.neursoulItems(frame) local parentArgs = frame:getParent().args dollName = parentArgs['姓名'] local skins = structureSkinData(parentArgs['投影'] or frame.args['投影']) local items = {} for i, skin in ipairs(skins) do items[i] = genSkinItem(frame, skin) end return table.concat(items) end return p