
DD2的Discord Rich Presence
为《龙之信条2》提供实时Discord Rich Presence:英雄、职业与等级、主要随从、当前任务和正在战斗的敌人,包含队伍规模和游戏时长,以你的游戏语言显示。随游戏启动和停止。需要REFramework。
查看大图[size=6][b]Discord Rich Presence[/b][/size]
在 Discord 状态中实时显示你的觉醒者在游戏中的动态。
[size=5][b]你的好友会看到什么[/b][/size]
Playing Dragon's Dogma 2
Aldric · Warfarer · Lv. 108
Pawn: Rook (4 of 4)
14:50 elapsed
- 第一行显示英雄名称、职业和等级。
- 轮换显示的第二行:你的主随从、你设为目标的的任务(仅在已选择任务时)以及一条风味文本,夜间还会额外显示一条。
- 战斗中会切换为你正在战斗的敌人,例如 Fighting: Griffin。大型怪物从 Boss 血条获取,否则取拥有血条的最强敌人或你的锁定目标。
- 队伍规模(4 of 4)和本次游戏的游戏时长。
- 跟随游戏语言。职业和任务标题直接取自游戏;模组自身的文本提供英语和俄语,你可以添加任意语言。
- 每一行都可配置,支持 {name}、{job}、{quest}、{enemy}、{time}、{day} 等占位符。
- 只读:它从不修改游戏或你的存档。
[size=5][b]前置要求[/b][/size]
- REFramework(已在 1.5.9.1 上测试)
- 同一台 PC 上运行的 Discord 桌面版应用。浏览器中的 Discord 无法接收 Rich Presence。
- 在 Discord 中开启活动分享:User Settings → Activity Privacy。
[size=5][b]安装[/b][/size]
Fluffy Mod Manager(推荐)
- 安装 REFramework。
- 将 Discord Rich Presence 1.0.0.zip 放入 Fluffy Mod Manager\Games\DragonsDogma2\Mods(或将其拖到 Fluffy 窗口中)。
- 勾选 Discord Rich Presence 并启动游戏。
手动安装 将压缩包解压到游戏文件夹,使这两个文件位于以下位置:
Dragons Dogma 2\reframework\autorun\DiscordPresence.lua
Dragons Dogma 2\reframework\plugins\DiscordPresence.dll
modinfo.ini 仅供 Fluffy 使用,可以跳过。
卸载:在 Fluffy 中取消勾选,或删除上述两个文件以及文件夹 reframework\data\DiscordPresence。
[size=5][b]设置[/b][/size]
打开 REFramework 菜单(Insert)→ Discord Presence。你可以在那里开启或关闭状态、查看正在发送的文本以及每个占位符的当前值,并重新加载配置。
所有文本位于 reframework\data\DiscordPresence\config.json。该文件在首次启动时创建,更新模组时会保留。每种语言在 texts 下都有自己的区块;"language": "auto" 跟随游戏,或设置例如 "en" 来固定语言。
[spoiler] 文本键(位于 texts.<language>)
- details:第一行(若某字段无法读取则使用 details_fallback)
- state:战斗外的第二行,轮换列表
- state_night:夜间添加到轮换中(小时由 night_start_hour / night_end_hour 设置)
- state_combat:战斗中的第二行(若未识别到敌人则使用 state_combat_fallback)
- state_menu:在主菜单中显示
- large_text / large_text_fallback:图片提示
- buttons:最多两个 {label, url} 按钮;其他人能看到,你自己看不到自己的
任何文本都可以是单个字符串或字符串列表,每隔 rotate_interval_sec(最少 15 秒)轮换一次。如果某行的占位符当前没有值,该行会从轮换中移除,因此 "Quest: {quest}" 仅在已选择任务时出现。
占位符
- {name}:觉醒者的名字
- {job}、{level}:职业和等级
- {pawn_name}、{pawn_job}、{pawn_level}:主随从
- {quest}:在任务日志中设为目标的任务
- {enemy}:当前战斗的主要敌人;{enemies}:敌人数量
- {pawns}、{party}:队伍中的随从、队伍规模
- {hp}、{max_hp}、{hp_percent}:觉醒者的生命值
- {time}、{hour}、{minute}、{day}:游戏内时间和天数
Discord 限制每行最多 128 个字符、按钮标签最多 32 个字符,并且大约每 5 秒接受一次更新。
你自己的 Discord 应用或图片 将 client_id 设置为你自己的 Discord Developer Portal 应用 ID,以更改 "Playing" 后显示的名称;将 large_image 设置为该应用中的艺术资源名称或图片 URL。[/spoiler]
[size=5][b]兼容性[/b][/size]
- 不覆盖任何游戏文件,可与其他 REFramework 模组同时使用。
- 以与流行 UI 模组相同的方式读取游戏,不挂钩游戏逻辑。唯一的挂钩仅用于记录哪些敌人在 HUD 上获得血条。
[size=5][b]常见问题 / 故障排除[/b][/size]
Discord 中什么都不显示。 确保 Discord 桌面版应用正在运行且活动分享已开启,并且 REFramework 正常工作(Insert 菜单中有 Discord Presence 条目)。reframework\data\DiscordPresence\plugin.log 会告知插件是否连接到了 Discord。
战斗中显示 "In combat!" 而非敌人名称。 敌人并不总能被识别,例如在战斗刚开始、还没有任何敌人拥有血条时。re2_framework_log.txt 中的 [DiscordPresence] enemy: ... 行会显示找到了什么。
我的杀毒软件对 DLL 报毒。 这是一个小型未签名的 REFramework 插件,仅与 Discord 的本地连接通信。完整源代码可在 Optional files 下获取,你也可以自行构建。
状态比游戏稍有延迟。 Discord 每隔几秒最多接受一次更新;模组会在 Discord 允许时尽快发送更改。
[size=5][b]工作原理[/b][/size]
一个 REFramework Lua 脚本每两秒读取你的英雄、随从、任务和当前战斗,并决定显示什么。一个微小的 REFramework 插件(DLL)通过本地连接将其传递给 Discord,方式与官方 Rich Presence SDK 相同。游戏关闭时,Discord 会自动移除该状态。
[size=5][b]致谢[/b][/size]
- praydog 制作了 REFramework
- Quest Tracker(Dimes)和 NickCore 的作者,他们的脚本展示了哪些游戏调用可以安全地读取队伍、名称、任务和时间
[size=5][b]更新日志[/b][/size]
1.0.0
- 初始发布。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。