◆少前百科是非盈利性、非官方的少女前线维基百科。
◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科
◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科
◆To foreigners,You can use twitter to contact us.
Icon Nyto Silver.png

更改

跳转至: 导航搜索

模块:Gun info

添加1,603字节2024年4月9日 (星期二)
无编辑摘要
local etdata = mw.loadData('Module:Equip info/type data')
local odata = mw.loadData('Module:Gun info/obtain data')
local skindata = mw.loadData('Module:Gun info/skin data')
local guntype = { {'手枪', '冲锋枪', '步枪', '突击步枪', '机枪', '霰弹枪', [0] = '所有枪种'},
{'HG', 'SMG', 'RF', 'AR', 'MG', 'SG'} }
local icon = signature:tag('td')
icon:attr('rowspan', 2)
:wikitext('[[fileFile:icon Skill IconSkill ' .. skilldata.code .. '.png|48px|link=]]')
local skillname = signature:tag('td')
skillname:wikitext(skilldata.name)
root:wikitext(serveSkillInfo('2', true))
end
end
 
local function addChibi()
local root = mw.html.create()
root:newline():wikitext('== 战斗形象 =='):newline()
local div = root:tag('div'):addClass('dollSpineBox')
local argTable = {'ChibiCostumeSwitcher', target = 'TDollChibiAnimation'}
local guncode = string.gsub(gundata.code, ' ', '_')
if moddata then argTable['costumes.mod'] = '心智升级' end
for _, v in ipairs(gundata.skins) do
local skin = skindata[v]
if skin then
local skincode = guncode .. '_' .. tostring(v)
argTable['costumes.' .. skincode] = skin.name
end
end
local frame = mw.getCurrentFrame()
div:wikitext(frame:callParserFunction('#widget', argTable))
div:tag('div'):addClass('tdoll_chibi'):attr{ id = 'TDollChibiAnimation',
['data-tdoll-id'] = guncode }
return tostring(root)
end
root:newline():wikitext('== 人形外观 =='):newline()
local guncode = string.gsub(gundata.code, ' ', '_')
local skindata = mw.loadData('Module:Gun info/skin_data')
local classdata = mw.loadData('Module:Gun info/skinclass_data')
local control = root:tag('div'):attr('id', 'unit-showcase-control')
end
for _, v in ipairs(gundata.skins) do
local skin = skindata[v]
if skin then
local skincode = guncode .. '_' .. tostring(v)
local f = math.floor(1500/r)
return f, string.format('%.2g', f/30)
end
 
local function r2fsMG(r)
local f = math.floor((4 + 200/r)*30)
return f, string.format('%.2g', f/30)
end
 
local function r2fsSG(r)
local f = math.floor(65 + 15*r)
return f, string.format('%.2g', f/30)
end
 
local function popup(frame, content)
return frame:expandTemplate{title = 'Popup', args = {
['内容'] = content
}}
end
local gtype = gundata.guntype
local speeds = {15,12,7,10,4,6}
local crits typeDefaults = { crit = {20,5,40,20,5,40}, max_rate = {120, 120, 120, 120, 1000, 60} }
local targets = {{0}, {4}, {1}, {2}, {6}, {5}}
root:newline():wikitext('== 战斗数据 =='):newline()
local ratios = { gundata.life, gundata.power, gundata.rate,
gundata.hit, gundata.dodge, gundata.armor or 0 , gundata.rec }
local attrdataset = root:tag('div'):attr{
id = 'attr-dataset',
if moddata then
ratios = { moddata.life, moddata.power, moddata.rate,
moddata.hit, moddata.dodge, moddata.armor or 0 , moddata.rec }
attrdataset:attr{
['data-growing-mod'] = table.concat(ratios, ','),
| || || || ||
|}]]):newline()
attrtable:wikitext[[{|! id="pow" | 伤害| id="pow-td" ||-! id="hit" | 命中| id="hit-td" ||-! id="dodge" | 回避| id="dodge-td" ||-! id="rate" | 射速| id="rate-td" ||-! id="armor" | 护甲| id="armor-td" ||-! id="growth" | 成长| id="growth-td" ||}]] attrtable:newline() local gtable ctable = attrtable:tag('table'):attr( local consts = { {'idcritpow', 'growing2暴伤')}, gtable:tag( {'trcrit'):tag(, 'th暴击'):attr}, {id = 'growthspeed', colspan = 5'移速'}:wikitext, {'max_rate', '成长射速上限'}, gtable:tag( {'trap'):tag(, 'td穿甲'):attr}, {id = 'grow-tdrec', colspan = 5'修复'} local gaid1 = {1, 2, 3, 5, 9} local gaid2 constVals = {1 150, gundata.crit or typeDefaults.crit[gtype], 3 speeds[gtype], 4 gundata.max_rate or typeDefaults.max_rate[gtype], 2 15, 8 gundata.rec } local gthr f = gtable:tagmw.getCurrentFrame('tr') for i = 1, 5 6 do local gth tr = gthrctable:tag('tr') tr:tag('th'):attr('id', bonusesconsts[gaid1i][1]):wikitext(consts[i][2]) local td = tr:wikitexttag(attrs'td') if i == 2 or i == 4 then td:attr{ ['data-attr'] = constVals[i], [gaid2'data-mod'] = moddata and moddata[consts[i][1]] or constVals[i] } end td:wikitext(constVals[i], i < 3 and '%' or '') if i == 4 and gundata.max_rate gtype ~= 5 then local action, func = gtype ~= 5 and '攻击', r2fs or '换弹', r2fsMG local fmt = action .. '间隔%d帧(%s秒)' td:wikitext(popup(f = mw, string.getCurrentFrameformat(fmt, func(constVals[4])))) gthif moddata then td:wikitext(popup(f, string.format(fmt, func(moddata.max_rate or constVals[4])))) end end end if gtype > 4 then local tr = ctable:tag('tr') tr:tag('spanth'):addClassattr('max-rateid', 'round'):wikitext(f'弹量') local td = tr:tag('td'):expandTemplateattr{ title= ['popupdata-attr'] = gundata.round, args={ ['内容data-mod']=stringmoddata and moddata.round or gundata.formatround } td:wikitext(gundata.round) if gtype == 6 then local fmt = '射速上限:换弹间隔%d(攻击间隔%d帧/d帧(%s秒)' td:wikitext(popup(f, string.format(fmt,r2fsSG(gundata.round)))) gundata if moddata then td:wikitext(popup(f, string.max_rateformat(fmt, r2fsr2fsSG(moddata.round or gundata.max_rateround)))) }})end
end
if i == 4 and moddata and moddata.max_rate then
local f = mw.getCurrentFrame()
gth:tag('span'):addClass('max-rate-mod'):wikitext(
f:expandTemplate{title='popup', args={['内容']=string.format(
'射速上限:%d(攻击间隔%d帧/%s秒)',
moddata.max_rate, r2fs(moddata.max_rate))
}
}) end
end
local gtdr = gtable:tag('tr')
for i = 1, 5 do gtdr:tag('td'):attr('id', bonuses[gaid1[i]] .. '-td') end
attrtable:newline():wikitext(string.format([[
{|
!id="ap"|穿甲!!id="round"|弹量!!id="speed"|移速!!id="crit"|暴击!!id="critpow"|暴伤
|-
|15||data-attr="%d" data-mod="%d"|%s||%s||data-attr="%d" data-mod="%d"|%s%%||150%%
|}]],
gundata.round or 0,
moddata and moddata.round or 0,
tostring(gundata.round or '不适用'),
tostring(speeds[gtype]),
gundata.crit or crits[gtype],
moddata and moddata.crit or crits[gtype],
tostring(gundata.crit or crits[gtype])))
local self_pos, effect_poses = getGridPositions(gundata.grid_center or 13, gundata.grid_pos)
local container = moddata and root:tag('div'):attr('id', 'effects') or root
<div id="dollwph">%s武器</div><div id="dollwpd">[[File:图标-%s.png|link=]]%s</div>
<div id="dollpic"><div>[[File:Icon_No.%d%s.png|link=]]</div></div>
<div id="dollilh">形象设计</div><div id="dollild">%s</div>
<div id="dollcvh">配音</div><div id="dollcvd">%s</div>
<div id="dolldph">部门</div><div id="dolldpd">%s</div>
<div id="dollobh">入编渠道</div><div id="dollobd">%s</div>
isextra and '' or '烙印', weapon, isextra and weapon or (args['武器'] or gundata.name),
mid, moddata and '_Mod' or '',
gundata.illu or '不明', gundata.cv or '不明',
org and string.format('[[内部一览/%s|%s]]-%s', org, org, org2) or '无',
table.concat(obtains, '<br>'), args['介绍'] or ''))
for k,v in pairs(moddataOrig) do moddata[k] = v end
for k,v in pairs(gundata) do moddata[k] = moddata[k] or v end
if gundata.max_rate and not moddata.max_rate then
moddata.max_rate = gundata.max_rate end
end
local root = mw.html.create()
putSkills()
putEquipments()
root:wikitext(addChibi())
local templatestyles = mw.getCurrentFrame():extensionTag{

导航菜单