蒙纳多研究本部
菜单
导航
首页
最近更改
随机页面
翻译查询
乐园数据管理室
送行者的收集手册
搜索
链入页面
相关更改
特殊页面
页面信息
最近更改
帮助
登录
模块
查看“︁ArtsData/source”︁的源代码
←
模块:ArtsData/source
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
--[[ Module:ArtsData/source —— 唯一 XBDB 访问层(决策11) -- 更新(2026-10-12):XB1DEData 新扩展已迁移 pc_arts(47 字段,含 elem/tgt/range/hate/icon 等), -- grow_arts_* 与 ms 文本表仍未注册,desc/AP 仍走静态表,fetchDesc/fetchApTable 保持预留。 -- row_id 越界/多 ID 会整页 500 且 pcall 无效,白名单校验必须前置。 ]] local p = {} local post = require("Module:RequestHelper").post local lv1 = require("Module:ArtsData/lv1") local function num0(v) if v == nil then return 0 end return tonumber(v) or 0 end local VALID_IDS = {} for _, role in pairs(lv1.roles) do for _, id in ipairs(role.ids) do VALID_IDS[id] = true end end local cache = {} function p.fetchArt(artId) artId = tonumber(artId) if not artId or not VALID_IDS[artId] then return nil end local cached = cache[artId] if cached ~= nil then return cached end local ok, data = pcall(post, "bdat_common.pc_arts", artId) if not ok or type(data) ~= "table" or not data.row_id then cache[artId] = false return nil end cache[artId] = data return data end function p.fetchDesc(artId) -- 预留:ms 文本表注册后实现(pc_arts_ms / ITM_artslist_ms) return nil end function p.fetchApTable() -- 预留:grow_arts_base/grow_arts_rate 注册后实现(AP 全实时化) return nil end -- 新扩展字段映射(普查自 143 行 pc_arts,2026-10-12) -- 元素属性(梅莉亚 12 锚点自洽验证:97雷=6 98炎=4 99冰=7 100风=8 101地=9 102水=5, -- 召X术 103-105/111-113 完全一致;1=物理(折返强袭)、2=无属性普攻系(撕裂/爆发)、 -- 0=无(天赋/状态技)、5 水同时出现在治疗技(轻量治疗/治疗弹——治疗属水系) local ELEM_TYPE = { [0] = "无", [1] = "物理", [2] = "无", [4] = "炎", [5] = "水", [6] = "雷", [7] = "冰", [8] = "风", [9] = "地", } function p.elemName(data) return ELEM_TYPE[num0(data.elem)] or "未知" end -- 目标类型(tgt 值域普查:1=敌人 88、2=自身 43、3=同伴 10、11=原地 2) local TGT_TYPE = { [1] = "敌方单体", [2] = "自身", [3] = "同伴单体", [11] = "自身(原地)", } function p.tgtName(data) return TGT_TYPE[num0(data.tgt)] or nil end -- 范围类型(range_type 普查:0=单体 103、4=扇形 16、1=直线 8、5/6/7=圆形 5+5+5、2=周边 1) local RANGE_TYPE = { [0] = nil, -- 单体(不显示) [1] = "直线", [2] = "周边", [4] = "扇形", [5] = "圆形", [6] = "圆形", [7] = "圆形", } function p.rangeName(data) local rt = num0(data.range_type) return RANGE_TYPE[rt] end -- 连锁类型(chain_type 普查分组:XC1 连锁攻击分支类别) -- 0=无连锁(蒙纳多/连斩/超频等天赋系)1=物理单体 2=减益附加 3=侧面/移动系 -- 4=倒地/击倒系 5=吹飞/击退系 6=自身辅助·治疗系 7=仇恨/防御操作系 8=增益附加系 local CHAIN_TYPE = { [0] = "无", [1] = "物理单体", [2] = "减益附加", [3] = "侧面", [4] = "倒地", [5] = "吹飞", [6] = "辅助", [7] = "仇恨操作", [8] = "增益附加", } function p.chainName(data) return CHAIN_TYPE[num0(data.chain_type)] or "未知" end -- 仇恨值:0 不显示;非 0 返回数值(普查分布 5~50,65 个为 0) function p.hateText(data) local h = num0(data.hate) if h == 0 then return nil end return "+" .. h end function p.num0(v) return num0(v) end function p.isValidArtId(artId) artId = tonumber(artId) return artId ~= nil and VALID_IDS[artId] == true end -- ==================== 商店战技书(已拆分至独立模块 Module:ArtsShop) ==================== -- 商店查询/渲染由 Module:ArtsShop 独立维护(index/npc 子模块同名拆分) -- 本模块保持战技主链路:pc_arts 白名单查询 + 预留接口 return p
该页面使用的模板:
模块:ArtsData/source/doc
(
查看源代码
)
返回
模块:ArtsData/source
。