蒙纳多研究本部
菜单
导航
首页
最近更改
随机页面
翻译查询
乐园数据管理室
送行者的收集手册
搜索
链入页面
相关更改
特殊页面
页面信息
最近更改
帮助
登录
模块
查看“︁CharStat”︁的源代码
←
模块:CharStat
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
-- 模块:CharStat — XC1 DE 人物固有属性(实时 XBDB,两点式展示,不插值) -- 数据链:bdat_common.BTL_pclist(人物),每行仅 1 次调用 -- 展示口径:基准等级进标题;只列人物固有数值(HP/力量/以太力/敏捷)。 -- 装备派生项(自动攻击伤害/物理防御/以太防御/暴击率/格挡率/重量)不展示——随换装变化,非固有数值 -- SMW:渲染时顺带 mw.smw.subobject 建档(9 项 Char* 数值属性),与宝珠/宝箱同款「渲染即建档」 -- row_id 白名单必须在 post 调用之前校验(XBDB 异常抛在 PHP 层,pcall 拦不住) -- 约定:只用 -- 行注释;表构造器不用裸中文键;不截断字符串 local p = {} local post = require("Module:RequestHelper").post local getArgs = require("Module:Arguments").getArgs local html = require("Module:Html") local MAX_ROW = 27 -- ====== SMW 注解(人物侧 9 项固有数值,属性页必须先于本模块建档,见《上线流程》) ====== -- 属性:CharLv Number — 基准等级(BTL_pclist.lv,两点式起点) -- 属性:CharHp / CharHp99 Number — 基准等级 HP / 99 级 HP -- 属性:CharStr / CharStr99 Number — 力量两点值 -- 属性:CharEth / CharEth99 Number — 以太力两点值 -- 属性:CharAgi / CharAgi99 Number — 敏捷两点值 -- 只写 bdat 直读的固有数值;装备派生值不入 SMW local function annotate(d) local smw = mw.smw if smw == nil then return end -- SemanticScribunto 不可用时静默跳过,页面照常渲染 smw.subobject({ CharLv = tonumber(d.lv), CharHp = tonumber(d.hp), CharHp99 = tonumber(d.hp_lv99), CharStr = tonumber(d.str), CharStr99 = tonumber(d.str_lv99), CharEth = tonumber(d.eth), CharEth99 = tonumber(d.eth_lv99), CharAgi = tonumber(d.agi), CharAgi99 = tonumber(d.agi_lv99) }) end local function render(d) local lv = tonumber(d.lv) or "-" local name = d.name or ("row " .. tostring(d.row_id)) local head = name .. (tonumber(d.guest) == 1 and "(客串)" or "") .. " Lv." .. lv local schema = {"属性", "基准", "99 级"} local rows = { {"HP", tonumber(d.hp), tonumber(d.hp_lv99)}, {"力量", tonumber(d.str), tonumber(d.str_lv99)}, {"以太力", tonumber(d.eth), tonumber(d.eth_lv99)}, {"敏捷", tonumber(d.agi), tonumber(d.agi_lv99)} } return html.h3(head) .. html.wikitable(schema, rows, {class = "xbtable"}) end function p.main(frame) local args = getArgs(frame) local rowId = tonumber(args[1]) -- 白名单前置校验:1~27 的整数,否则不触发任何 post if rowId == nil or rowId % 1 ~= 0 or rowId < 1 or rowId > MAX_ROW then return "CharStat:row_id 必须是 1~" .. MAX_ROW .. " 的整数" end local d = post("bdat_common.BTL_pclist", rowId) if type(d) ~= "table" or d.row_id == nil then return "CharStat:未取得 row " .. rowId .. " 的数据" end annotate(d) -- 渲染即建档:数据归到当前页面,本片段只能贴在该角色自己的页面上 return render(d) end return p
该页面使用的模板:
模块:CharStat/doc
(
查看源代码
)
返回
模块:CharStat
。