歧路旅人:大陆的霸者WIKI
wiki.17173.com/octopathsp
首页
旅人图鉴
图鉴资料
地图资料
武器图鉴
首饰图鉴
支援者图鉴
试炼之塔
秘技的试炼
职业的试炼
历战的试炼
攻略聚合
斗技大赛
历战NPC攻略
主线BOSS
追忆之塔
讨伐委托
新手攻略
支炎兽
管理
刷新本页缓存
页面操作
短链
移动
删除
保护
取消监视
链入页面
常用功能
沙盒
所有页面
特殊页面
Cargo表
Cargo查询
创建模板
文件列表
更改审核
最近更改
用户权限
用户组权限
评论管理
更改审核
全站配置
配置导航栏
配置整站通告
配置小组件
配置全局CSS
配置全局JS
全局测试CSS
全局测试js
JS/CSS版本
全站设置
组件使用帮助
新建页面提示
修改页面提示
删除页面原因
编辑版权警示
修改页面摘要
上传文件提示
上传文件协议
上传文件说明
编辑器上传文件说明
删除文件原因
其他
创建
攻略审核
WIKI贡献榜
WIKI反馈区
WIKI运维
首页
旅人图鉴
图鉴资料
地图资料
武器图鉴
首饰图鉴
支援者图鉴
试炼之塔
秘技的试炼
职业的试炼
历战的试炼
攻略聚合
斗技大赛
历战NPC攻略
主线BOSS
追忆之塔
讨伐委托
新手攻略
支炎兽
管理
刷新本页缓存
页面操作
短链
移动
删除
保护
取消监视
链入页面
常用功能
沙盒
所有页面
特殊页面
Cargo表
Cargo查询
创建模板
文件列表
更改审核
最近更改
用户权限
用户组权限
评论管理
更改审核
全站配置
配置导航栏
配置整站通告
配置小组件
配置全局CSS
配置全局JS
全局测试CSS
全局测试js
JS/CSS版本
全站设置
组件使用帮助
新建页面提示
修改页面提示
删除页面原因
编辑版权警示
修改页面摘要
上传文件提示
上传文件协议
上传文件说明
编辑器上传文件说明
删除文件原因
其他
创建
攻略审核
WIKI贡献榜
WIKI反馈区
WIKI运维
查看“模块:测试调用数据”的源代码
WIKI功能
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} -- 加载数据 local db_cn = mw.loadData('模块:角色技能数据中文') local dataList_cn = db_cn.char_skill_data local db_jp = mw.loadData('模块:角色技能数据日文') local dataList_jp = db_jp.char_skill_data -- 手搓split local function split(input, delimiter) local result = {} for match in (input .. delimiter):gmatch("(.-)" .. delimiter) do table.insert(result, match) end return result end local function skillBox(skill) -- 状态图标 if skill.skill_tag2 then local skillTags2 = split(skill.skill_tag2, ",") tag2Html = mw.html.create() for _, tagicon2 in ipairs(skillTags2) do tag2Html:wikitext(string.format('[[File:icon-%s.png|20px]]', tagicon2)) end end -- 特性图标 if skill.skill_tag then local skillTags = split(skill.skill_tag, ",") tagHtml = mw.html.create() for _, tagicon in ipairs(skillTags) do tagHtml:wikitext(string.format('[[File:icon-%s.png|32px]]', tagicon)) end end -- SP if skill.skill_sp then spHtml = mw.html.create() spHtml:tag('div') :addClass('skillbox-sp') :wikitext('消耗精力 <span style="font-size:1.2rem;">' .. skill.skill_sp .. '</span>') :done() end -- 技能BOOST if skill.skill_boost then boostHtml = mw.html.create() boostHtml:tag('tr') :tag('td') :wikitext('【BP加成效果】') :done() :tag('td') :wikitext(skill.skill_boost) :done() :done() end -- 技能强化效果 if skill.skill_up_content then upcontentHtml = mw.html.create() upcontentHtml:tag('tr') :tag('td') :wikitext('【能力强化效果】') :done() :tag('td') :tag('li'):wikitext(skill.skill_up_content):done() -- 下面的upcontentHtml不能删 if skill.skill_up_content2 then upcontentHtml:tag('li'):wikitext(skill.skill_up_content2):done() end upcontentHtml:done() upcontentHtml:done() end -- 技能强化等级 if skill.skill_up then upHtml = mw.html.create() upHtml:tag('tr') :tag('td') :wikitext('【强化学习条件】') :done() :tag('td') :tag('li'):wikitext('角色等级达到'.. skill.skill_up .. '以上,并习得技能' .. skill.skill_name):done() -- 下面的upHtml不能删 if skill.skill_up2 then upHtml:tag('li'):wikitext('角色等级达到'.. skill.skill_up2 .. '以上,并习得技能' .. skill.skill_name):done() end upHtml:done() upHtml:done() end -- 展示内容 local skillBoxDiv = mw.html.create() skillBoxDiv:tag('div'):addClass('skillbox') :tag('div'):addClass('skillbox-left') :node(tagHtml) -- 特性图标 :done() :tag('div'):addClass('skillbox-right') :tag('div'):addClass('skillbox-topbox') :tag('div'):addClass('skillbox-namebox') :tag('div'):addClass('skillbox-name') :wikitext(skill.skill_name) :done() :tag('div'):addClass('skillbox-tag2') :node(tag2Html) -- 状态图标 :done() :done() :node(spHtml) -- SP :done() :tag('table'):addClass('skillbox-content w-100 text-left') :tag('tr') :tag('td') :attr('colspan', '2') :wikitext(skill.skill_content) :done() :done() :node(boostHtml) -- BP :node(upcontentHtml) -- 强化条件 :node(upHtml) -- 强化等级 :done() :done() :done() return skillBoxDiv end p["测试调用"] = function(frame) local query_num = frame.args['角色序号'] local query_type = frame.args['查询类型'] local query_lang = frame.args['查询语言'] or "" local html = mw.html.create() -- 提取数据 local dataList = (query_lang == "cn" or query_lang == "国服" or query_lang == "中文") and dataList_cn or dataList_jp local parentSkill = {} local childSkill = {} for _, ownerList in ipairs(dataList) do if query_num == ownerList.owner_order then for _, skill in ipairs(ownerList.owner_skill) do if skill.skill_type == query_type then if skill.skill_parent == nil then table.insert(parentSkill, skill) else table.insert(childSkill, skill) end end end end end -- 展示内容 for _, parent in ipairs(parentSkill) do html:node(skillBox(parent)) for _, child in ipairs(childSkill) do if child.skill_parent == parent.skill_order then html:tag('div'):addClass('parent-description-container'):node(skillBox(child)):done() end end end return tostring(html) end return p
本页使用的模板:
模块:测试调用数据/doc
(
查看源代码
)
返回
模块:测试调用数据
。