圆石地区

圆石地区

服务端Cobblemon附属模组,添加基于地区的等级上限与玩家独立进度。

冒险

CobbleRegions

服务端 Cobblemon 附属模组,添加基于区域的等级上限与玩家进度系统。

每个 Minecraft 世界/维度都被分配到一个区域。每个区域都有自己的有序上限轨道(例如:14 -> 22 -> 28)。玩家可以自由旅行,但宝可梦的等级永远无法超过其起源区域当前已解锁的上限。

核心行为

  • 玩家当前所在的区域由其维度/世界决定。
  • 生效的上限是该区域当前已解锁的上限。
  • 每只宝可梦都有一个持久的起源区域(捕获/孵化/获得时确定)。
  • 经验值会被阻止,使宝可梦无法超过其起源区域的上限,即使在高上限区域中也是如此。

配置

配置存储在服务端的 config/cobbleregions.json。

示例:

{
  "battleDisallowOverCapSendOut": true,
  "battleOverCapSendOutMessage": "<red>Over-cap Pokemon cannot be sent out in battle: {pokemon_list}</red>",
  "battleInsufficientCapPokemonMessage": "<red>Battle canceled: you need at least {required} non-fainted Pokemon within your current cap.</red>",
  "battleInsufficientCapPokemonReason": "<red>Not enough cap-legal Pokemon are available to start this battle.</red>",
  "regions": [
    {
      "id": "region_a",
      "dimensions": ["minecraft:overworld"],
      "caps": [14, 22, 28, 40],
      "capMessages": {
        "14": "Level cap reached for this region.",
        "22": "Another cap reached."
      }
    },
    {
      "id": "region_b",
      "prerequisite": "region_a",
      "prerequisiteMessage": "Complete {prerequisite} before leveling in {region}.",
      "dimensions": ["minecraft:the_nether"],
      "caps": [14]
    }
  ]
}

如果某个区域没有配置上限,则被视为无限制。

battleDisallowOverCapSendOut 默认为 false。当设为 true 时,CobbleRegions 会在战斗开始时从玩家战斗队伍中移除超过上限的宝可梦。如果因此导致未濒死宝可梦数量不足以满足该对战格式,战斗将被取消。

战斗强制执行消息可使用 MiniMessage 配置:

  • battleOverCapSendOutMessage 使用 {pokemon_list}。
  • battleInsufficientCapPokemonMessage 使用 {required}。
  • battleInsufficientCapPokemonReason 使用 {required}。

命令

命令访问使用权限节点 cobbleregions.command.regions(默认权限等级为 2)。 可选的进度命令使用权限节点 cobbleregions.command.regions.progress。

  • /regions 打开区域管理管理员界面。
  • /regions progress get <player> <region> 显示玩家在该区域的上限。
  • /regions progress set <player> <region> <cap> 设置玩家在该区域的上限值。
  • /regions progress advance <player> <region> 推进到下一个上限。
  • /regions progress reset <player> <region> 重置到第一个上限。
  • /regions progress complete <player> <region> 将进度设置为最终上限。

API

RegionProgressApi 类为其他模组或集成提供程序化进度控制。

注意:

  • 上限必须严格递增。
  • 起源区域会在宝可梦被捕获、孵化或获得时自动设置。
  • 设置进度需要提供一个存在于该区域上限列表中的上限值。
  • 区域可以定义前置条件;在前置条件区域完成之前,玩家无法在该区域获得经验值。
  • 消息支持 MiniMessage 格式化以及 {cap}、{region}、{prerequisite}、{pokemon} 占位符。
  • 管理界面会打开区域列表;使用 Create 在聊天中输入 ID,左键点击编辑,右键点击删除。
  • 区域编辑界面可管理维度、上限、上限消息和玩家进度。