◆少前百科是非盈利性、非官方的少女前线维基百科。 ◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科。 ◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科 ◆To foreigners,You can use twitter to contact us. |
“模块:Gun info/skin”的版本间的差异
(创建页面,内容为“local p = {} local gunId local gunData local dialog local skinData = mw.loadData('Module:Gun info/skin data') local modL2D = { [55] = true, [56] = true, [57] = t…”) |
|||
第45行: | 第45行: | ||
end | end | ||
− | local function | + | local function buildParams() |
local frame = mw.getCurrentFrame() | local frame = mw.getCurrentFrame() | ||
local gunCode = string.gsub(gunData.code, ' ', '_') | local gunCode = string.gsub(gunData.code, ' ', '_') | ||
第88行: | 第88行: | ||
gunData = mw.loadData(dataPage)[gunId] | gunData = mw.loadData(dataPage)[gunId] | ||
dialog = args['获取台词'] and mw.text.trim(args['获取台词']) or '' | dialog = args['获取台词'] and mw.text.trim(args['获取台词']) or '' | ||
− | return frame:callParserFunction('#widget', | + | local params = buildParams() |
+ | params[1] = 'DollPage/Pic' | ||
+ | return frame:callParserFunction('#widget', params) | ||
end | end | ||
return p | return p |
2024年4月22日 (一) 00:05的最新版本
此模块的文档可以在模块:Gun info/skin/doc创建
local p = {} local gunId local gunData local dialog local skinData = mw.loadData('Module:Gun info/skin data') local modL2D = { [55] = true, [56] = true, [57] = true, [65] = true, [101] = true, [103] = true, [122] = true, [143] = true } local function filepath(filename, frame) local ret = frame:callParserFunction('filepath', filename) return ret ~= '' and string.gsub(ret, 'https?://[w.]-gfwiki%.org', '') or '' end local function findPics(name, frame) local url, dUrl = filepath(name .. '_HD.png', frame) if url ~= '' then dUrl = filepath(name .. '_D_HD.png', frame) else url = filepath(name .. '.png', frame) dUrl = filepath(name .. '_D.png', frame) end return url, dUrl end local function findVoice(gunCode, frame) local fileName = string.format( '%s%s_GAIN_JP.', string.upper(string.sub(gunCode, 1, 1)), string.sub(gunCode, 2) ) local url = filepath(fileName .. 'wav', frame) if url == '' then url = filepath(fileName .. 'mp3', frame) end return url end local function buildParams() local frame = mw.getCurrentFrame() local gunCode = string.gsub(gunData.code, ' ', '_') local imgName = 'Pic_' .. gunCode local args = { dollname = mw.ustring.gsub(gunData.name, '\194\160', ' '), dollvoice = findVoice(gunCode, frame), pic1name = '默认立绘', line1 = dialog, pic1a = 0 } args.pic1, args.pic1d = findPics(imgName, frame) if gunData['mod'] then args.pic2name = '心智升级' args.line2 = dialog args.pic2, args.pic2d = findPics(imgName .. 'Mod', frame) args.pic2a = modL2D[gunData.id] and 2 or 0 end local offset = gunData['mod'] and 2 or 1 for i, v in ipairs(gunData.skins) do local skin = skinData[v] if skin then local n = tostring(i + offset) local pic = 'pic' .. n local fileName = imgName .. '_' .. tostring(v) args[pic .. 'name'] = skin.name args['line' .. n] = skin.dialog args[pic], args[pic .. 'd'] = findPics(fileName, frame) args[pic .. 'a'] = skin['type'] or 0 end end return args end function p.skinInfo(frame) local args = frame:getParent().args gunId = args['编号'] gunId = tonumber(gunId) local dataPage = 'Module:Gun_info/data' .. (gunId < 1000 and '' or '_extra') gunData = mw.loadData(dataPage)[gunId] dialog = args['获取台词'] and mw.text.trim(args['获取台词']) or '' local params = buildParams() params[1] = 'DollPage/Pic' return frame:callParserFunction('#widget', params) end return p