本WIKI编辑权限开放,欢迎大家共同建设
也可以 收藏本WIKI 防止迷路
编辑帮助:目录
目前Wiki编辑组急缺美术,希望有能力、有意向的老师可以参与一起建设本站
全站通知:
模块:数据库调用-具装
刷
历
编
跳到导航
跳到搜索
简介
本wiki中,大量通用格式的数据是通过Lua(模块)制作的[伪]数据库实现便捷更新管理。
其中涉及到的页面有
相关维护页面 | |||||||||
---|---|---|---|---|---|---|---|---|---|
数据收集表格 | 飞书文档-驱入虚空 bwiki 工作数据表 | ||||||||
Excel转Lua结构 | Widget:ExcelToLuaJson | ||||||||
具装 | 模板:具装 | 模块:数据库调用-具装 | 模块:数据库-具装 | ||||||
武器 | 模板:武器 | 模块:数据库调用-武器 | 模块:数据库-武器 | ||||||
道具 | 模板:道具 | 模块:数据库调用-道具 | 模块:数据库-道具 | ||||||
执行卡 | 模板:执行卡 | 模块:数据库调用-执行卡 | 模块:数据库-执行卡 | ||||||
稳态立方 | 模板:稳态立方索引 立方掉落 立方奖励 |
模块:数据库调用-稳态立方 | 模块:数据库-稳态立方 |
数据库更新方法
此处以具装数据库为例
- 当版本更新,或需要更新数据时,将数据更新在腾讯文档中
- 选择全部数据区块(首行为英文标签行,直到最后一条数据行),复制。
- 打开转换工具页,将复制的excel格式直接复制到上方的输入框中并点击转换.得到转换为Lua代码的数据结构
- 将转换后的lua信息复制,进入模块:数据库-具装:编辑模式,将复制过对应的数据拷贝到p.xxx中,注意保持大括号结构性完好
- 注:具装存在两个组,role记录基础信息,和skill记录技能信息
local p = {}
-- 加载指定页面
local getJsonPage_role = require('模块:数据库-具装')
-- 具装相关参数获取获取
function p.roledatabase(frame)
local loadJsonBase = mw.text.jsonDecode(
mw.title.new('MediaWiki:Role.json'):getContent())
-- 获取输入角色名
local input = frame.args["name"]
for i, data in ipairs(loadJsonBase) do
if input == data.name then -- 数据已确认,开始填充
RoleInfo_Base_Database(frame, data)
RoleInfo_Value_Database(frame, data)
break
end
end
local loadSkillJsonBase = mw.text.jsonDecode(mw.title.new(
'MediaWiki:RoleSkill.json'):getContent())
for i, data in ipairs(loadSkillJsonBase) do
if input == data.name then -- 数据已确认,开始填充
RoleInfo_Skill_Database(frame, data)
break
end
end
end
-- 数据库版本的基础参数处理
function RoleInfo_Base_Database(frame, data)
-- 具装名
frame:callParserFunction{name = '#vardefine', args = {'具装', data.name}}
-- 角色名
frame:callParserFunction{
name = '#vardefine',
args = {'角色', data.original}
}
-- ID
frame:callParserFunction{name = '#vardefine', args = {'ID', data.id}}
-- 真实版本
frame:callParserFunction{
name = '#vardefine',
args = {'真实版本', data.realVerson}
}
-- 武器类型
frame:callParserFunction{
name = '#vardefine',
args = {'武器类型', data.weapon_Type}
}
-- 组织
frame:callParserFunction{
name = '#vardefine',
args = {'组织', data.factions}
}
-- 外号
frame:callParserFunction{
name = '#vardefine',
args = {'外号', data.nickname}
}
-- 讲述
frame:callParserFunction{name = '#vardefine', args = {'讲述', data.story}}
-- 简介
frame:callParserFunction{name = '#vardefine', args = {'简介', data.intro}}
-- 标签
frame:callParserFunction{name = '#vardefine', args = {'标签', data.tag}}
-- 戏称
frame:callParserFunction{
name = '#vardefine',
args = {'戏称', data.jokingly}
}
-- 获取方式
frame:callParserFunction{
name = '#vardefine',
args = {'获取方式', data.acquired}
}
-- 价格
frame:callParserFunction{name = '#vardefine', args = {'价格', data.price}}
-- 私法版本
local privateLawValue = data.private_Law
if privateLawValue == true or privateLawValue == "有" then
privateLawValue = "有"
end
frame:callParserFunction{
name = '#vardefine',
args = {'私法版本', privateLawValue}
}
end
-- 数据库版本的数值参数处理
function RoleInfo_Value_Database(frame, data)
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'生命-初始', data.health_base}
}
-- 生命-满级 (基础值 + 300)
local health_max = (data.health_base or 0) + 300
frame:callParserFunction{
name = '#vardefine',
args = {'生命-满级', health_max}
}
-- 护盾-初始
frame:callParserFunction{
name = '#vardefine',
args = {'护盾-初始', data.shield_base}
}
-- 护盾-满级 (基础值 + 150)
local shield_max = (data.shield_base or 0) + 150
frame:callParserFunction{
name = '#vardefine',
args = {'护盾-满级', shield_max}
}
-- 护甲-初始
frame:callParserFunction{
name = '#vardefine',
args = {'护甲-初始', data.armor_base}
}
-- 护甲-满级 (基础值 + 300)
local armor_max = (data.armor_base or 0) + 300
frame:callParserFunction{
name = '#vardefine',
args = {'护甲-满级', armor_max}
}
-- 能量-初始
frame:callParserFunction{
name = '#vardefine',
args = {'能量-初始', data.power_base}
}
-- 能量-满级 (基础值 + 30)
local power_max = (data.power_base or 0) + 30
frame:callParserFunction{
name = '#vardefine',
args = {'能量-满级', power_max}
}
-- ------------------------------------------------------------
-- 私法版本数据
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-生命-初始', data.p_health_base}
}
-- 生命-满级 (基础值 + 300)
local p_health_max = (data.p_health_base or 0) + 300
frame:callParserFunction{
name = '#vardefine',
args = {'私法-生命-满级', p_health_max}
}
-- 护盾-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护盾-初始', data.p_shield_base}
}
-- 护盾-满级 (基础值 + 150)
local p_shield_max = (data.p_shield_base or 0) + 150
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护盾-满级', p_shield_max}
}
-- 护甲-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护甲-初始', data.p_armor_base}
}
-- 护甲-满级 (基础值 + 300)
local p_armor_max = (data.p_armor_base or 0) + 300
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护甲-满级', p_armor_max}
}
-- 能量-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-能量-初始', data.p_power_base}
}
-- 能量-满级 (基础值 + 30)
local p_power_max = (data.p_power_base or 0) + 30
frame:callParserFunction{
name = '#vardefine',
args = {'私法-能量-满级', p_power_max}
}
end
function RoleInfo_Skill_Database(frame, data)
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'信手技', data.skill_t}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'信手技介绍', data.skill_t_intro}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'破阵技', data.skill_q}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'破阵技介绍', data.skill_q_intro}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'被动技', data.skill_p}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'被动技介绍', data.skill_p_intro}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'风格技', data.skill_s}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'风格技介绍', data.skill_s_intro}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'位移技', data.skill_c}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'位移技介绍', data.skill_c_intro}
}
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'位移技图标', data.skill_c_icon}
}
end
-- 角色获取
function p.Role(frame)
-- 获取输入角色名
local input = frame.args["name"]
local loadJsonBase = getJsonPage_role.role -- 修改这里,直接访问role属性
for i, data in ipairs(loadJsonBase) do
if input == data.name then -- 数据已确认,开始填充
RoleInfo_Base(frame, data)
RoleInfo_Value(frame, data)
break
end
end
local loadJsonSkill = getJsonPage_role.skill -- 修改这里,直接访问role属性
for i, data in ipairs(loadJsonSkill) do
if input == data.name then -- 数据已确认,开始填充
RoleInfo_Skill(frame, data)
break
end
end
end
-- 基础参数
function RoleInfo_Base(frame, data)
-- 具装名
frame:callParserFunction{name = '#vardefine', args = {'具装', data.name}}
-- 角色名
frame:callParserFunction{
name = '#vardefine',
args = {'角色', data.original}
}
-- ID
frame:callParserFunction{name = '#vardefine', args = {'ID', data.id}}
-- 真实版本
frame:callParserFunction{
name = '#vardefine',
args = {'真实版本', data.realVerson}
}
-- 武器类型
frame:callParserFunction{
name = '#vardefine',
args = {'武器类型', data.weapon_Type}
}
-- 组织
frame:callParserFunction{
name = '#vardefine',
args = {'组织', data.factions}
}
-- 外号
frame:callParserFunction{
name = '#vardefine',
args = {'外号', data.nickname}
}
-- 讲述
frame:callParserFunction{name = '#vardefine', args = {'讲述', data.story}}
-- 简介
frame:callParserFunction{name = '#vardefine', args = {'简介', data.intro}}
-- 标签
frame:callParserFunction{name = '#vardefine', args = {'标签', data.tag}}
-- 戏称
frame:callParserFunction{
name = '#vardefine',
args = {'戏称', data.jokingly}
}
-- 获取方式
frame:callParserFunction{
name = '#vardefine',
args = {'获取方式', data.acquired}
}
-- 价格
frame:callParserFunction{name = '#vardefine', args = {'价格', data.price}}
-- 私法版本
local privateLawValue = data.private_Law
if privateLawValue == true or privateLawValue == "有" then
privateLawValue = "有"
end
frame:callParserFunction{
name = '#vardefine',
args = {'私法版本', privateLawValue}
}
end
-- 数值参数
function RoleInfo_Value(frame, data)
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'生命-初始', data.health_base}
}
-- 生命-满级
frame:callParserFunction{
name = '#vardefine',
args = {'生命-满级', data.health_max}
}
-- 护盾-初始
frame:callParserFunction{
name = '#vardefine',
args = {'护盾-初始', data.shield_base}
}
-- 护盾-满级
frame:callParserFunction{
name = '#vardefine',
args = {'护盾-满级', data.shield_max}
}
-- 护甲-初始
frame:callParserFunction{
name = '#vardefine',
args = {'护甲-初始', data.armor_base}
}
-- 护甲-满级
frame:callParserFunction{
name = '#vardefine',
args = {'护甲-满级', data.armor_max}
}
-- 能量-初始
frame:callParserFunction{
name = '#vardefine',
args = {'能量-初始', data.power_base}
}
-- 能量-满级
frame:callParserFunction{
name = '#vardefine',
args = {'能量-满级', data.power_max}
}
-- ------------------------------------------------------------
-- 私法版本数据
-- 生命-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-生命-初始', data.p_health_base}
}
-- 生命-满级
frame:callParserFunction{
name = '#vardefine',
args = {'私法-生命-满级', data.p_health_max}
}
-- 护盾-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护盾-初始', data.p_shield_base}
}
-- 护盾-满级
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护盾-满级', data.p_shield_max}
}
-- 护甲-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护甲-初始', data.p_armor_base}
}
-- 护甲-满级
frame:callParserFunction{
name = '#vardefine',
args = {'私法-护甲-满级', data.p_armor_max}
}
-- 能量-初始
frame:callParserFunction{
name = '#vardefine',
args = {'私法-能量-初始', data.p_power_base}
}
-- 能量-满级
frame:callParserFunction{
name = '#vardefine',
args = {'私法-能量-满级', data.p_power_max}
}
end
function RoleInfo_Skill(frame, data)
-- 信手技
frame:callParserFunction{
name = '#vardefine',
args = {'信手技', data.skill_t}
}
-- 信手技介绍
frame:callParserFunction{
name = '#vardefine',
args = {'信手技介绍', data.skill_t_intro}
}
-- 信手技消耗
frame:callParserFunction{
name = '#vardefine',
args = {'信手技消耗', data.skill_t_cost}
}
-- 破阵技
frame:callParserFunction{
name = '#vardefine',
args = {'破阵技', data.skill_q}
}
-- 破阵技介绍
frame:callParserFunction{
name = '#vardefine',
args = {'破阵技介绍', data.skill_q_intro}
}
-- 破阵技消耗
frame:callParserFunction{
name = '#vardefine',
args = {'破阵技消耗', data.skill_q_cost}
}
-- 被动技(passive)
frame:callParserFunction{
name = '#vardefine',
args = {'被动技', data.skill_p}
}
-- 被动技介绍
frame:callParserFunction{
name = '#vardefine',
args = {'被动技介绍', data.skill_p_intro}
}
-- 风格技(shift)
frame:callParserFunction{
name = '#vardefine',
args = {'风格技', data.skill_s}
}
-- 风格技介绍
frame:callParserFunction{
name = '#vardefine',
args = {'风格技介绍', data.skill_s_intro}
}
-- 位移技(ctrl)
frame:callParserFunction{
name = '#vardefine',
args = {'位移技', data.skill_c}
}
-- 位移技介绍
frame:callParserFunction{
name = '#vardefine',
args = {'位移技介绍', data.skill_c_intro}
}
-- 位移技图标
frame:callParserFunction{
name = '#vardefine',
args = {'位移技图标', data.skill_c_icon}
}
end
return p -- 返回包含函数和数据的导出表