自动更新计划
阅读
2025-05-16更新
最新编辑:黄ET
阅读:
更新日期:2025-05-16
最新编辑:黄ET
介绍
[1]中包含了由解包工具解出的游戏内容,理论上可以用这些数据实现wiki的自动更新
- 由于不能使用机器人账号,无法做到真正意义上的全自动更新,但可以创建一个仅管理员可见的更新按钮,按下后js脚本可以使用mediawiki api自动使用该管理员的账号修改wiki
- 负责获取js并作出修改的脚本称为主脚本
- 不支持mw.loadJsonData,无法将数据保存到wiki本地,但可以使用XMLHttpRequest直接访问deadlock-data github页面获取数据并现场处理/更新
- 英雄和物品模板可能需要更改以适配deadlock-data中的数据格式
- category:需要手动补全 是计划用来标注需要手动补全的页面的分类,简称手动标记
- Group-sysop.js 以及 Common.js 的解释器都为ES5,而其他js文件则为ES6,允许导入
链接
物品
/data/json/item-data.json
如果IsDisabled为true或Name为null,则可以认为其没有实装
回声碎片:
"upgrade_ability_power_shard": {
"Name": "Echo Shard",
"Description": null,
"Cost": "6000",
"Tier": "4",
"Activation": "InstantCast",
"Slot": "Tech",
"Components": null,
"TargetTypes": null,
"ShopFilters": [
"Movement",
"MagicDamage"
],
"IsDisabled": false,
"AbilityCooldown": 23.0,
"AbilityDuration": "0",
"AbilityCastRange": "0",
"AbilityUnitTargetLimit": "1",
"AbilityCastDelay": "0.2",
"AbilityChannelTime": "0",
"AbilityPostCastDuration": "0",
"AbilityCharges": "0",
"AbilityCooldownBetweenCharge": "0",
"ChannelMoveSpeed": "50",
"AbilityResourceCost": "0",
"TechPower": "12",
"WeaponPower": "0",
"BonusMoveSpeed": "1m",
"BulletResist": "16"
}
- 装备id(或key)以固定以upgrade开头
- Description可能为null,但有些能力(例如主动技能)会有单独存放在别处的主动能力描述(例如本地化文件中的upgrade_ability_power_shard_active对应回声碎片的主动能力的描述)
- Activation有三种,Passive表示被动物品,InstantCast和ActivationPress都是主动装备,差别在于前者按键后立刻触发,后者需要再次左键确认
- Slot三种,Weapon对应武器,Tech对应元灵,Armor对应活力
- Components为依赖项,没有为null,有依赖则为字符串数组,其中包含依赖项的key
- TargetTypes为目标类型,为字符串数组,也存在空数组的情况,可能的值有HeroEnemy(敌方英雄),HeroFriendly(友方英雄),MinionFriendly(友方小兵)等,理论上为Hero/Minion/All + Enemey/Friendly
物品自动更新策略
每个物品都有以下页面:
- /Items/类型/物品名(自动更新)
- /Items/物品key/图鉴(自动更新)
- /Items/物品key/data.json(自动更新)
- /Items/物品key/template(手动编写)
主脚本在获取所有物品的json数据后,会遍历每个物品并单独处理:
- 如果ShopFilters属性为null则跳过后续
- 根据物品key,读取保存在数据页面中的原json
- 如果页面不存在,则创建并写入数据页面,创建模板页面并添加手动标记,根据本地化文件找到名称后创建图鉴页面并添加手动标记,并跳过后续
- 如果原json和现json相同则跳过后续
- 如果Name或Slot不同,则添加移动标记,且保存原名用于访问图鉴页面
- 以字符串读取template页面,将其中指定的key替换为现json中的数据,并将替换完的内容覆盖进图鉴页面
- 使用ask自动更新组件所属
- 将现json写入数据页面
物品template示例
基础:
{{物品图鉴
|类别=${Slot}
|层级=${Tier}
|名称=${chName}
|价格=${Cost}
|图标=${key}.png
|属性加成=${state}
|组件=${require}
|主动=${isActive}
|加强=${isImbue}
}}
物品template手动补全流程
- 打开一个需要手动补全的template
- 使用工具栏中的的“打开相关页面”按钮(可能需要一定时间加载出来)
- 编辑template,覆盖掉原本的需要手动补全的分类
- 复制进示例中的基础模板,将原图鉴下的被动或主动能力的部分复制到后续
- 将刚复制进来的被动或主动能力中的数值替换为data.json中对应的key (例如:${desc}为常见的能力描述)
- 如果存在特例,则添加分类:物品特例
物品其他注释
- 对于自动判断是否是主动物品,可以查看Activation,而对于加强物品的判断方式则较为不稳妥
- 截止于2025/05/12,目前的加强物品的通用特点是:
- 都是元灵物品
- 其description或属性key(注意不是物品key)中都可以匹配上imbue字符
- 目前暂时使用imbue字符匹配法自动判断是否是加强物品

沪公网安备 31011002002714 号