模块:SkillTree
来自蒙纳多研究本部
此模块的文档可以在模块:SkillTree/doc创建
-- 模块:SkillTree —— 技能树模块
-- 当前阶段:数据源探针(验证 mw.xbdb.query 直查 SQLite 的能力边界)
-- 测试完成后:p.probe 保留作数据源探测工具,p.main 改写为树渲染本体
local p = {}
local xbdb = mw.xbdb
local function tryDesc(label, fn)
local ok, result = pcall(fn)
if not ok then
return "== " .. label .. " ==\n探针失败:" .. tostring(result)
end
local ok2, encoded = pcall(mw.text.jsonEncode, result)
if ok2 then
return "== " .. label .. " ==\n" .. encoded
end
return "== " .. label .. " ==\n(返回内容无法 JSON 化)" .. tostring(result)
end
-- 数据源探测入口:沙盒里 {{#invoke:SkillTree|probe}} 调用
function p.probe(frame)
local out = {}
-- 1. env():扩展环境信息
out[#out + 1] = tryDesc("1. env()", function() return xbdb.env() end)
-- 2. query 通道可用性:sqlite_master 表清单
out[#out + 1] = tryDesc("2. query: sqlite_master 前30表",
function() return xbdb.query("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name LIMIT 30", "cn") end)
-- 3. 全库表总数(对照契约测试的 9042)
out[#out + 1] = tryDesc("3. query: 表总数",
function() return xbdb.query("SELECT COUNT(*) AS n FROM sqlite_master WHERE type='table'", "cn") end)
-- 4. AP 成长表直查(未注册解析器,若成功=绕过迁移限制)
out[#out + 1] = tryDesc("4. query: grow_arts_base",
function() return xbdb.query("SELECT * FROM bdat_common.grow_arts_base LIMIT 3", "cn") end)
-- 5. 技能树表直查(同名探测)
out[#out + 1] = tryDesc("5. query: pc_treelist",
function() return xbdb.query("SELECT * FROM bdat_common.pc_treelist LIMIT 3", "cn") end)
-- 6. schema 参数取值探测
out[#out + 1] = tryDesc("6. query: schema='data'",
function() return xbdb.query("SELECT COUNT(*) AS n FROM sqlite_master WHERE type='table'", "data") end)
return table.concat(out, "\n\n")
end
-- 正式渲染入口:待数据源确认后实现
function p.main(frame)
return "SkillTree 模块:渲染入口待实现(当前处于数据源探测阶段)"
end
return p