欢迎来到死锁Deadlock Wiki

全站通知:

自动更新计划

阅读

    

2025-05-16更新

    

最新编辑:黄ET

阅读:

  

更新日期:2025-05-16

  

最新编辑:黄ET

来自死锁DeadLockWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
黄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数据后,会遍历每个物品并单独处理:

  1. 如果ShopFilters属性为null则跳过后续
  2. 根据物品key,读取保存在数据页面中的原json
    1. 如果页面不存在,则创建并写入数据页面,创建模板页面并添加手动标记,根据本地化文件找到名称后创建图鉴页面并添加手动标记,并跳过后续
    2. 如果原json和现json相同则跳过后续
    3. 如果Name或Slot不同,则添加移动标记,且保存原名用于访问图鉴页面
  3. 以字符串读取template页面,将其中指定的key替换为现json中的数据,并将替换完的内容覆盖进图鉴页面
    1. 使用ask自动更新组件所属
  4. 将现json写入数据页面

物品template示例

基础:

{{物品图鉴
|类别=${Slot}
|层级=${Tier}
|名称=${chName}
|价格=${Cost}
|图标=${key}.png
|属性加成=${state}
|组件=${require}
|主动=${isActive}
|加强=${isImbue}
}}

物品template手动补全流程

  1. 打开一个需要手动补全的template
  2. 使用工具栏中的的“打开相关页面”按钮(可能需要一定时间加载出来)
  3. 编辑template,覆盖掉原本的需要手动补全的分类
  4. 复制进示例中的基础模板,将原图鉴下的被动或主动能力的部分复制到后续
  5. 将刚复制进来的被动或主动能力中的数值替换为data.json中对应的key (例如:${desc}为常见的能力描述)
  6. 如果存在特例,则添加分类:物品特例

物品其他注释

  • 对于自动判断是否是主动物品,可以查看Activation,而对于加强物品的判断方式则较为不稳妥
  • 截止于2025/05/12,目前的加强物品的通用特点是:
    • 都是元灵物品
    • 其description或属性key(注意不是物品key)中都可以匹配上imbue字符
  • 目前暂时使用imbue字符匹配法自动判断是否是加强物品