Dynamic Difficulty

Dynamic Difficulty - 动态难度

让新手和老手玩家都能在同一服务器上畅玩,无需担心难度问题!
Bukkit / Spigot 作者 SkinnyJeans 支持版本 1.21 - 1.21
服务器使用量
33
服务玩家数
2
下载量
6,073
插件详细介绍

DynamicDifficulty 是一款能让新手与老手在同一服务器上和谐游玩的插件。它通过动态调整游戏难度,让新玩家不会被轻易击杀,同时为经验丰富的玩家提供更具挑战性的体验和更丰厚的战利品。

核心功能

  • 动态难度调整:根据玩家的“亲和力”自动调整游戏难度。
  • 自定义难度:可创建完全自定义的难度等级,精细控制怪物伤害、战利品掉落、经验倍率等。
  • 玩家独立难度:每位玩家的难度独立计算,互不影响。
  • 多世界支持:可禁用特定世界(如下界、末地)的难度调整。
  • 数据库支持:支持 SQLite、MySQL、PostgreSQL 和 MariaDB。
  • PlaceholderAPI 支持:提供丰富的占位符,用于在聊天或计分板显示难度信息。
  • GUI 管理:提供图形界面方便管理玩家设置。

兼容性与要求

支持的服务器核心

  • Spigot
  • Paper
  • 其他核心可能兼容,但未经测试。

支持的 Minecraft 版本

  • 1.13 至 1.20(< 1.8)
  • 1.21(1.9+)

推荐服务器难度

建议将服务器基础难度设置为 困难,因为插件的自定义难度数值是基于困难难度进行缩放的。设置为其他难度可能导致怪物过弱。

权限与命令

所有命令权限均支持添加 .self(仅对自己操作)或 .other(对他人操作)后缀。例如 affinity.set.self。若不指定目标玩家,则默认对命令执行者生效。

主要命令

  • /affinity set <玩家?> <数值> (affinity.set)

将指定玩家的亲和力设置为特定值。

  • /affinity add <玩家?> <数值> (affinity.add)

为指定玩家增加亲和力。

  • /affinity remove <玩家?> <数值> (affinity.remove)

为指定玩家减少亲和力。

  • /affinity get <玩家?> (affinity.get)

查看指定玩家的当前及最大/最小亲和力。

  • /affinity difficulties (affinity.difficulties)

查看游戏中所有已配置难度的详细设置。

  • /affinity setMax <玩家?> <数值> (affinity.setmax)

设置玩家的亲和力上限。

  • /affinity setMin <玩家?> <数值> (affinity.setmin)

设置玩家的亲和力下限。

  • /affinity playergui (affinity.playergui)

打开一个箱子GUI来管理所有玩家设置。

  • /affinity reload (affinity.reload)

重载插件配置(config.yml 和 lang.yml)。

  • /affinity forceSave (affinity.forcesave)

强制将当前数据保存至文件或数据库。

  • /affinity help (affinity.help)

显示所有可用命令。

  • /affinity info (affinity.info)

返回插件内部保存或计算的一些信息。

常见问题

服务器难度有影响吗?

有影响。强烈建议将服务器基础难度设置为“困难”。插件的自定义难度数值是基于困难难度进行平衡的,使用其他难度可能导致怪物强度异常。

数据多久保存一次?

  • 每 5 分钟自动保存一次。
  • 玩家退出服务器时立即保存。

DynamicDifficulty 会影响刷怪塔吗?

只有玩家击杀的怪物才会受到插件掉落物和经验倍率的影响。如果怪物被狼、TNT或其他非玩家实体杀死,则会使用服务器基础难度(通过 /difficulty 设置)的默认掉落规则。

支持多世界吗?

支持。你无需安装 Multiverse。可以直接在配置文件中禁用特定世界的难度调整或亲和力获取。

# 配置文件第87行示例
disabled-worlds:
  - admin_world
  - main_hub

对服务器性能影响大吗?

影响很小。插件已通过各种方法进行优化,例如禁用未使用的方法、尽可能使用异步处理等。但尚未在超大型服务器上进行过测试。

如何创建一个“和平”模式?

  • 在配置文件中复制一个现有难度配置(如“Easy”),并将其重命名为“Peaceful”。
  • 调整其参数,例如将 affinity-required 设为 0,damage-done-by-mobs 设为 25,keep-inventory 设为 true 等。
  • 为想要使用和平模式的玩家设置亲和力上限:/dd setmax 玩家名 0

如何创建自定义难度?

  • 在配置文件中复制一个现有难度配置(如“Hard”)。
  • 将其重命名(避免使用空格,可用下划线),并修改任意参数。
  • 保存并重载插件配置即可。

PlaceholderAPI 占位符有哪些?

1.6+ 版本占位符:

  • %dd_user_difficulty% - 玩家当前难度名。
  • %dd_user_affinity% - 玩家当前亲和力。
  • %dd_user_next_difficulty% - 玩家的下一个难度。
  • %dd_user_progress% - 到下一个难度的进度百分比。
  • %dd_user_max_affinity% - 玩家的亲和力上限。
  • %dd_user_min_affinity% - 玩家的亲和力下限。

支持与反馈

  • 遇到问题请先查看此 FAQ。
  • 如需更多帮助,或想提出新功能建议、报告错误,请加入 Discord 服务器
  • 也可在资源发布页面提交错误报告。

配置与本地化

插件的高度可定制性体现在配置文件中。你可以

  • 调整每个难度的具体参数(怪物伤害、掉落率、经验倍率、是否允许PVP、是否保留物品栏等)。
  • 创建全新的难度等级。
  • 通过 lang.yml 文件自定义所有命令和消息的文本。
  • 详细配置说明请参考 GitHub 页面 或相关教程视频。
测试支持版本
1.21
版本分布
基本信息
插件名称 Dynamic Difficulty
作者 SkinnyJeans
平台 Bukkit / Spigot
支持版本 1.21 - 1.21
点赞数 14
Modrinth 下载 48,650
最近版本
1.9 25
1.8 7
1.6 1
1.2 1