模块:数据:修订间差异
跳转到导航
跳转到搜索
无编辑摘要 |
无编辑摘要 |
||
| 第70行: | 第70行: | ||
local shipName = frame.args[1] | local shipName = frame.args[1] | ||
return replaceCountryName(text[shipName]['简介']) | return replaceCountryName(text[shipName]['简介']) | ||
end | |||
p['台词'] = function(frame) | |||
local shipName = frame.args[1] | |||
local dialogue = frame.args[2] | |||
return text[shipName][dialogue] | |||
end | end | ||
| 第86行: | 第92行: | ||
p.debug = function() | p.debug = function() | ||
f = { } | f = { } | ||
f.args = { ' | f.args = { '萤火虫', '白天1' } | ||
return p[' | return p['台词'](f) | ||
end | end | ||
return p | return p | ||
2016年10月5日 (三) 03:06的版本
修改数据
大部分游戏数据保存在模块:数据库,这些数据可以用Python脚本自动生成,不建议手动修改。一方面因为手动修改的内容很容易被别人用自动生成的覆盖,另一方面我们永远不知道HM偷偷改了哪些数据,所以只有自动程序才能保证没有遗漏。
如果台词中有错别字或语病等建议使用模板:台词的参数修改,而不要直接修改数据库。
少部分需要人工编辑的数据保存在模块:特殊数据中,主要包含以下两项:
- 不属于日、德、英、美、意、法、苏、中这8个国家的船无法自动判断国籍,需要人工指定;
- 炮弹等装备的特殊效果如果自动采集则会包含一些无意义的内容,需要人工组织语言。
如果必须人工编辑数据库,可以参照模块:对照表来理解英文缩写的含义。
使用
例: {{#invoke:数据|台词|胡德|获得}}
package.lua第80行Lua错误:module '模块:舰娘数据' not found
船的属性: {{#invoke:数据|属性|{{{船名}}}|{{{属性名}}}}}
例: {{#invoke:数据|属性|胡德|火力max}}
package.lua第80行Lua错误:module '模块:舰娘数据' not found
装备属性: {{#invoke:数据|装备属性|{{{船名}}}|{{{装备位置}}}}}
例: {{#invoke:数据|装备属性|胡德·改|1}}
package.lua第80行Lua错误:module '模块:舰娘数据' not found
敌舰
{{#invoke:敌舰队|<位置标识>|<显示位置>|<列数>}}
结果可视为列表的一行(实际上为1~3行), 每列内容分别是: 位置, 舰队名, 阵形, 配置(默认6列), 索敌, 制空, 航速
参数除位置标识外均可省略
位置标识格式为x-y/z, 例如1-1/A
显示位置为列表第一列显示的内容, 可以修改来表示 boss 点或迂回点等
列数为这张表中最多一队的敌舰个数, 比如1-1一个点最多有4艘船就设成4
例:
{| class='wikitable'
!位置!!舰队!!阵形!!colspan=6|配置!!索敌!!制空!!航速
|-
{{#invoke:数据|敌舰队|2-5/A|随便改改}}
|-
{{#invoke:数据|敌舰队|2-5/B}}
|}
package.lua第80行Lua错误:module '模块:舰娘数据' not foundpackage.lua第80行Lua错误:module '模块:舰娘数据' not found| 位置 | 舰队 | 阵形 | 配置 | 索敌 | 制空 | 航速 | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
local tr = mw.loadData("模块:对照表")
local ships = mw.loadData("模块:舰娘数据")
local equipts = mw.loadData("模块:装备数据")
local text = mw.loadData("模块:文本数据")
p = { }
local function replaceCountryName(name)
name = name:gsub('C国', '中国')
name = name:gsub('E国', '英国')
name = name:gsub('F国', '法国')
name = name:gsub('G国', '德国')
name = name:gsub('I国', '意大利')
name = name:gsub('J国', '日本')
name = name:gsub('S国', '苏联')
name = name:gsub('U国', '美国')
return name
end
local function getAttr(ship, attr, default)
if attr == '搭载' then
return ship.cap1 + ship.cap2 + ship.cap3 + ship.cap4
elseif mw.ustring.sub(attr, 1, 2) == '装备' then
return replaceCountryName(ship[tr[attr]])
elseif ship[tr[attr]] ~= nil then
return ship[tr[attr]]
else
return default
end
end
local equiptAttrs = { '火力', '装甲', '鱼雷', '对空', '轰炸', '索敌', '对潜', '命中', '回避', '幸运', '射程', '对空补正' }
local rangeName = { '短', '中', '长', '超长' }
local function getEquiptAttrs(equipt)
if equipt == nil then return '' end
local ret = ''
for i,attr in pairs(equiptAttrs) do
local val = equipt[tr[attr]]
if val ~= nil then
if ret ~= '' then ret = ret .. '<br>' end
ret = ret .. attr
if attr == '射程' then
ret = ret .. ': ' .. rangeName[val]
elseif attr == '对空补正' then
ret = ret .. ':' .. val .. '%'
elseif val > 0 then
ret = ret .. '+' .. val
else
ret = ret .. val
end
end
end
if equipt.special ~= nil then
return ret .. '<br>' .. equipt.special
else
return ret
end
end
p['属性'] = function(frame)
local shipName = frame.args[1]
local attr = frame.args[2]
local default = frame.args[3]
if default == nil then default = '' end
return getAttr(ships[shipName], attr, default)
end
p['简介'] = function(frame)
local shipName = frame.args[1]
return replaceCountryName(text[shipName]['简介'])
end
p['台词'] = function(frame)
local shipName = frame.args[1]
local dialogue = frame.args[2]
return text[shipName][dialogue]
end
p['装备属性'] = function(frame)
local shipName = frame.args[1]
local index = frame.args[2]
local attr = frame.args[3]
local equiptName = ships[shipName]['eq' .. index]
if attr ~= nil then
return equipts[equiptName][tr[attr]]
else
return getEquiptAttrs(equipts[equiptName])
end
end
p.debug = function()
f = { }
f.args = { '萤火虫', '白天1' }
return p['台词'](f)
end
return p