D2R Pixel Bot
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 |

Pixelbot for Diablo 2 Resurrected。本项目仅供信息和教育目的使用。
开始使用及先决条件
- D2R 需要设置为英语界面,
- Botty 当前仅适用于 720p 分辨率的 D2R 窗口(自动设置下将自动调整)
1) 图形与游戏设置
执行 main.exe 并按下“调整 D2R 设置”的热键(默认 F9),所有设置将自动完成。这并非百分百有效,极少数情况下您可能还需手动调整亮度。建议使用“图形调试器”来验证您的设置。
注意:确保没有其他外部程序调整您的图形设置(HDR、Geforce Experience 等)。
2) 支持的构建
查看下方的 params.ini 文档。不同的女巫、铁砧、野蛮人、陷阱大师等构建已经在不同程度上实现。实施新的职业相当简单。如果你有兴趣,不妨试试!
3) 开始位置
打开 D2R 并等待至英雄选择屏幕。确保你将要运行的角色已选中,并且一旦机器人启动游戏,该角色将在 params.ini 中设置的相应难度下位于第三、第四或第五幕。
4) 开始 Botty
你可以从 python 运行,按照 development.md 中的说明操作。或者你可以从 这里 下载预构建版本(.rar 文件!)。在 botty 文件夹中启动 main.exe。将 D2R 窗口置于前台并按下开始键(默认 F11)。你可以随时使用 F12 强制停止 botty。注意:Botty 在第一次游戏中会使用 /nopickup 命令以避免捡起垃圾。此命令只有在“显示物品”激活时才允许捡起物品。
开发
查看 development.md 文档了解如何从源代码构建以及项目结构和代码的详细信息。
BNIP Pickit
Botty NIP (BNIP) 是 Njaguar's Item Parser (NIP) 的扩展版本。 BNIP 与 NIP 兼容(有一些小例外,如下所述)。
Botty 中包含了一个名为 "default.nip" 的默认 nip 文件,位于配置文件夹内,你可以通过将自定义 nip 文件放入 config/nip 文件夹中并添加 .nip 扩展名来添加自己的 nip 文件。创建自定义 nip 文件将禁用 default.nip。
如果你不熟悉 NIP,建议阅读 NIP 指南 https://github.com/blizzhackers/pickits/blob/master/NipGuide.md
BNIP 的新特性
毒伤害不再计算,而是直接读取其原始值。例如:[poisonmindam] == 5 && [poisonmaxdam] == 10 可以捡起“1 秒内造成 5-10 点毒伤害”的物品。"5 秒内造成 313 点毒伤害" 可以使用 [poisonmindam] == 313 或 [poisonmaxdam] == 313 捡起。
[allres] 现在是一个属性。例如:[type] == amulet && [quality] == unique # [allres] == 30 将捡起玛拉之护身符。
[idname] 现在可用于唯一物品/套装物品。例如:[idname] == thestoneofjordan 将捡起乔丹之石。但是请注意,这将强制物品被鉴定,所以在保留未鉴定物品时请小心。
[maxquantity] 暂不支持。你可以保留这些标签,但它们不会产生任何作用。
如果你已经将 discord webhook 设置为在机器人保留物品时通知你,你可以在表达式前加上 "@" 来抑制这些通知。
@[type] == ring = 不通知 [type] == ring = 通知
图形调试器
要检查您的图形设置是否正确以及机器人是否会捡起物品,可以进入 图形调试器模式。启动 botty 并按下 F10(默认键)。这将打开一个(几乎全黑)窗口。在 D2R 中开始游戏并前往 A5。你应该能在控制台中看到一些带有蓝色圆圈的模板和分数。为了检查物品检测,可以在地面上放置一些不同类型的物品。调试窗口应显示带有黑色背景的物品名称。如果你将一个应该捡起的物品扔到地上,它会有一个红色圆圈。控制台将打印出每个将捡起物品的分数。这些物品的分数应该远远高于 0.9。

params.ini
所有 botty 配置文件均位于 config 文件夹中。为了简化至新 botty 版本的切换,你也可以在 custom.ini 文件中覆盖任何 .ini 字段。当发布新的 botty 版本时,只需将文件复制到新版本,而无需将所有 params.ini 的更改迁移到新版本。例如:
; custom.ini - overwrites 2 params in the params.ini
[general]
name=MyCustomName
[routes]
order=run_pindle, run_eldritch
| [通用] | 描述 |
|---|---|
| 难度 | 设置为 normal nightmare 或 hell 以确定游戏难度。 |
| 名称 | 终端和 Discord 消息中使用的名称。 |
| 随机化运行顺序 | 随机化 params.ini 中指定的 [routes] 的顺序。 |
| 存档游戏文件夹 | [可选] 默认为 ~\Saved Games\Diablo II Resurrected。用于存储 f9 / 自动设置的配置信息。 |
| 自定义战利品消息钩子 | 在这里添加你的消息钩子(如 Discord 频道)以获取战利品信息。 |
| 自定义消息钩子 | 在这里添加你的消息钩子(如 Discord 频道)以获取机器人状态更新信息,Discord webhook 是默认设置。 |
| Discord 鸡消息 | 设置为 1 以启用关于机器人鸡的消息,设置为 0 以禁用。 |
| Discord 状态消息计数 | 发送 Discord 状态消息之间的游戏数量。留空则不发送状态报告。 |
| 消息 API 类型 | 用于发送机器人消息的 API。支持 "generic_api"(基本 Discord)或 "discord"(带图片的 Discord 嵌入)。 |
| 休息时长(分钟) | 每 max_runtime_before_break_m 分钟休息 break_length_m 分钟。 |
| 运行前最大时间(分钟) | ^ |
| d2r 路径 | [可选] d2r.exe 的路径。如果未设置,尝试重启时默认为 C:\Program Files (x86)\Diablo II Resurrected\D2R.exe。 |
| 连续失败最大次数 | 如果连续失败次数达到此最大值,机器人将停止创建游戏。 |
| 最大游戏时长(秒) | 最大游戏时长。机器人将尝试停止当前操作并在指定间隔重新开始新游戏。如果这失败,机器人将尝试关闭 D2R 和 Bnet。 |
| 卡住时重启 d2r | 设置为 1,如果机器人无法恢复其状态(例如:游戏崩溃),将尝试重启 d2r。 |
| 信息截图 | 如果为 1,每次卡住/机器人鸡/超时/背包满事件时,机器人都会拍摄带有时间戳的截图。默认为 1,记得定期清理截图文件夹。 |
| 拾取截图 | 如果为 1,在拾取过程中每次地面战利品快照时,机器人都会拍摄带有时间戳的截图,这有助于调试。 |
| 战利品截图 | 如果为 1,每次按下 show_items 按钮时,机器人都会拍摄带有时间戳的截图并保存到 loot_screenshots 文件夹。记得定期清理它们... |
| [路线] | 描述 |
|---|---|
| 顺序 | 机器人应执行的运行列表。除非 randomize_runs 设置为 1,否则将按列表顺序执行。可能的运行包括:run_trav, run_pindle, run_eldritch, run_eldritch_shenk, run_nihlathak (需要传送),run_arcane (需要传送),run_diablo (需要传送,仅限 hammardin) |
| [角色] | 描述 |
|---|---|
| 类型 | 构建类型。目前仅支持 "sorceress" 或 "hammerdin"。 |
| 腰带行数 | 角色腰带行数的整数值。 |
| 施法帧数 | 根据你的角色和 fcr,你将有一个特定的施法帧数。在此处查看:https://diablo2.diablowiki.net/Breakpoints 并填写正确的数字。这决定了例如每个传送后的延迟时间。如果系统有延迟(例如在虚拟机中),可能需要将此值增加到表中的建议值之上! |
| CTA 可用 | 0:无 CTA 可用,1:CTA 可用,应该在预充能时使用。 |
| 安全运行 | 设置为 1 以在战斗/运行期间启用可选的防御措施等,这将增加运行时间(例如:硬核玩家)。 |
| 战利品栏数 | 背包中用于战利品的栏数(从左起计算!)。剩余空间可用于放置护身符。 |
| 强制移动热键 | "强制移动"的热键。 |
| 背包屏幕热键 | 打开背包的热键。 |
| 药水 1 热键 | 使用第 1 槽药水的热键。 |
| 药水 2 热键 | 使用第 2 槽药水的热键。 |
| 药水 3 热键 | 使用第 3 槽药水的热键。 |
| 药水 4 热键 | 使用第 4 槽药水的热键。 |
| 显示腰带热键 | "显示腰带"的热键。 |
| 显示物品热键 | "显示物品"的热键。 |
| 站立不动热键 | "站立不动"的热键。注意,这不能是默认的 Shift 键,否则会干扰雇佣兵治疗程序。 |
| 传送热键 | 传送的热键(如果角色不能传送,则留空)。 |
| 城镇传送门热键 | 城镇传送门的热键。 |
| 武器切换热键 | "武器切换"的热键(仅当 cta_available=1 时需要)。 |
| 战斗命令热键 | 从 cta 的战斗命令热键(仅当 cta_available=1 时需要)。 |
| 战斗指令热键 | 从 cta 的战斗指令热键(仅当 cta_available=1 时需要)。 |
| 存放金币 | 每次存放物品时存放金币的布尔值。 |
| 使用雇佣兵 | 设置为 1 以使用雇佣兵。设置为 0 则不使用雇佣兵(不会在雇佣兵死亡时复活),默认为 1。 |
| 对抗 Arcane 的攻击长度 | 对抗 Arcane 的攻击长度(对于 hdin) |
| 对抗 Eldritch 的攻击长度 | 对抗 Eldritch 的攻击长度(对于 hdin)或攻击序列数量(对于 sorc)。 |
| 对抗 Nihlathak 的攻击长度 | 对抗 Nihlathak 的攻击长度(对于 hdin)或攻击序列数量(对于 sorc)。 |
| 对抗 Pindle 的攻击长度 | 对抗 Pindle 的攻击长度(对于 hdin)或攻击序列数量(对于 sorc)。 |
| 对抗 Shenk 的攻击长度 | 对抗 Shenk 的攻击长度(对于 hdin)或攻击序列数量(对于 sorc)。 |
| 对抗 Trav 的攻击长度 | 对抗 Trav 的攻击长度(对于 hdin)(注意这个攻击长度将在 4 个不同的位置应用) |
| 对抗混沌圣所杂兵的攻击长度 | 在混沌圣所(Diablo)中对抗杂兵的攻击长度(对于 hdin)或攻击序列数量。 |
| 对抗 Diablo Sealboss B "Lord De Seis" 的攻击长度 | 在混沌圣所(Diablo)中对抗 Sealboss B "Lord De Seis" 的攻击长度(对于 hdin)或攻击序列数量。 |
| 对抗 Diablo Sealboss C "Infector of Souls" 的攻击长度 | 在混沌圣所(Diablo)中对抗 Sealboss C "Infector of Souls" 的攻击长度(对于 hdin)或攻击序列数量。 |
| 对抗 Diablo Sealboss A "Vizier of Chaos" 的攻击长度 | 在混沌圣所(Diablo)中对抗 Sealboss A "Vizier of Chaos" 的攻击长度(对于 hdin)或攻击序列数量。 |
| 对抗 Diablo 的攻击长度 | 在混沌圣所(Diablo)中对抗 Diablo 的攻击长度(对于 hdin)或攻击序列数量。 |
| 混沌圣所 mob 检测 | 如果为 1,将尝试使用雇佣兵的圣洁冻结/信念光环/毒药来检测附近的敌人,以帮助加速混沌圣所的运行。 |
| 混沌圣所城镇访问次数 | 目前已损坏,暂时保持为 0。 |
| 清除混沌圣所杂兵 | 如果为 1,清除从混沌圣所入口到五角星的绝大多数杂兵。如果为 0,运行从五角星开始,只击杀 Sealbosses 和 Diablo(默认)。 |
| 腰带生命药水栏数 | 腰带中用于生命药水的栏数。 |
| 腰带法力药水栏数 | 腰带中用于法力药水的栏数。 |
| 腰带恢复药水栏数 | 腰带中用于恢复药水的栏数。 |
| 使用生命药水的百分比 | 当生命百分比达到此值时使用生命药水。例如 0.6 = 60% 生命。 |
| 使用法力药水的百分比 | 当法力百分比达到此值时使用法力药水。 |
| 使用恢复药水生命的百分比 | 当生命百分比达到此值时使用恢复药水。 |
| 使用恢复药水法力的百分比 | 当法力百分比达到此值时使用恢复药水。 |
| 给雇佣兵治疗 | 当雇佣兵生命百分比达到此值时给予治疗药水。 |
| 给雇佣兵恢复 | 当雇佣兵生命百分比达到此值时给予恢复药水。 |
| 离开游戏生命百分比 | 当玩家生命百分比低于设置值时离开游戏,范围 0 到 1。设置为 0 则不离开游戏。 |
| 雇佣兵离开游戏生命百分比 | 当雇佣兵生命百分比低于设置值时离开游戏,范围 0 到 1。设置为 0 则不离开游戏。 |
| 启用不拾取 | 启用时,游戏开始时将在聊天中输入 /nopickup,这有助于减少行走角色的意外拾取。 |
| 先填充共享储物栏 | 从右到左填充储物栏,最后填充个人储物栏。 |
| 赌博物品 | 当储物栏充满金币时,要赌博的物品列表。留空则禁用。支持的物品包括 circlet, ring, coronet, talon, amulet。 |
| 打开宝箱 | 在某些地方打开宝箱。例如,在 arcane 的死胡同。 |
| 每次运行预充能 | 0:仅在首次运行时预充能,1:每次运行/击杀 boss 后预充能。 |
| 每次维修运行次数 | 在 runs_per_repair 次运行后强制维修。设置为 0 仅在需要时维修。 |
| 每次存放运行次数 | 0:仅在有意拾取物品后存放,1+:在设置的运行次数后强制存放(建议至少为 4,以防意外拾取)。 |
| 卖掉垃圾 | 0:通过将不需要的物品丢在地上来丢弃,1:通过出售给商人来丢弃物品。 |
| [宝石转换] | 描述 |
|---|---|
| 储物目的地 | 将宝石转换的结果按优先级放置到储物栏。默认:3,2,1,0。(意思是结果将首先放置在储物栏 3,直到它满了,然后到储物栏 2,等等。0 - 个人标签)。 |
| 转换 | 添加 chipped, flawed, standard, flawless 中的任何或全部以转换这些类型的宝石。 |
| 每 X 游戏执行转换 | 多久运行一次转换程序(目前将完美宝石转换成完美宝石)。转换程序依赖于存放程序,仅在物品存放完成后开始。例如,如果存放下一次没有物品,那么可能需要超过 X 场游戏才能进行转换。默认:20。 |
构建配置
| [女巫] | 描述 |
|---|---|
| 冰霜护甲 | 冰霜护甲(或其他护甲)的可选快捷键 |
| 能量盾 | 能量盾的可选快捷键 |
| 雷暴 | 雷暴的可选快捷键 |
| 静电场 | 静电场的可选快捷键 |
| 遥感 | 遥感的可选快捷键 |
| [光明女巫] | 描述 |
|---|---|
| 链式闪电 | 链式闪电的可选快捷键(必须绑定到左侧技能) |
| 闪电 | 闪电的必要快捷键(必须绑定到右侧技能) |
| 冰霜之球 | 冰霜之球的可选快捷键(必须绑定到右侧技能) |
| [冰霜女巫] | 描述 |
|---|---|
| 冰暴 | 冰暴的必要快捷键(必须绑定到右侧技能) |
| 冰霜爆炸 | 冰霜爆炸的可选快捷键(必须绑定到左侧技能) |
| [新星女巫] | 描述 |
|---|---|
| 新星 | 新星的必要快捷键(必须绑定到右侧技能) |
| [九头蛇女巫] | 描述 |
|---|---|
| 变换攻击 | 任何变换攻击技能的必要快捷键。火球、闪电、冰霜之球等(必须绑定到右侧技能) |
| 九头蛇 | 九头蛇的必要快捷键(必须绑定到右侧技能) |
| [圣骑士] | 描述 |
|---|---|
| 净化 | 净化的可选快捷键 |
| 神圣之盾 | 神圣之盾的必要快捷键 |
| 救赎 | 救赎的可选快捷键 |
| 活力 | 活力的可选快捷键 |
| [风之神] | 描述 |
|---|---|
| 神圣之锤 | 神圣之锤的快捷键(可选。绑定到左侧技能) |
| 集中 | 集中的快捷键 |
| 坚定 | 坚定的快捷键 |
| 天之拳 | 天之拳的快捷键(必要) |
| 神圣之箭 | 神圣之箭的快捷键(必要) |
| [锤之神] | 描述 |
|---|---|
| 集中 | 集中的必要快捷键 |
| 神圣之锤 | 神圣之锤的必要快捷键(必须绑定到左侧技能) |
| [陷阱专家] | 描述 |
|---|---|
| 速度爆发 | 速度爆发的可选快捷键 |
| 死亡哨兵 | 死亡哨兵的必要快捷键 |
| 消失 | 消失的可选快捷键 |
| 闪电哨兵 | 闪电哨兵的必要快捷键 |
| 影战士 | 影战士的可选快捷键 |
| 左侧技能 | 左侧技能的可选快捷键 |
| [野蛮人] | 描述 |
|---|---|
| 呼喊频率 | 每次施放战争之喊叫之间的秒数。设置为 0.0 以使用最大 fcr |
| 寻找物品 | 寻找物品的可选快捷键 |
| 跳跃 | 跳跃的必要快捷键 |
| 喊叫 | 喊叫的必要快捷键 |
| 战争之喊 | 战争之喊的必要快捷键 |
| [死灵法师] | 描述 |
|---|---|
| 左侧技能 | 攻击(骨矛/牙齿)的必要快捷键 |
| 骨甲 | 骨甲的必要快捷键 |
| 黏土魔像 | 黏土魔像的必要快捷键 |
| 复活骷髅 | 复活骷髅的必要快捷键 |
| 增幅伤害 | 增幅伤害的必要快捷键 |
| 尸体爆炸 | 尸体爆炸的必要快捷键 |
| 复活 | 复活的必要快捷键 |
| 伤害缩放 | 调整施放攻击技能的时间。例如:2 将会使施法时间加倍 |
| 清除宾多之包 | 在宾多之前清除怪物 |
| [高级选项] | 描述 |
|---|