宝箱战利品随机化

宝箱战利品随机化

快速用配置中的随机内容填满指定区域内的箱子。

战利品箱随机填充器

版本: 1.0.0
Minecraft: 1.21.1
加载器: NeoForge 21.1.243+
Java: 21
作者: Sl0n1kNash
许可证: MIT

快速将指定区域内的箱子填充为来自配置的随机内容。

用途

战利品箱随机填充器会快速替换指定方形区域内已有箱子及其他受支持的容器方块中的内容。搜索中心和半径可以通过 JSON 配置,也可以直接在游戏内使用命令进行更改。

该模组适用于生存地图、PvP 和搜刮撤离类活动、自定义冒险地图、服务器玩法场景、预生成世界以及其他需要从一个可配置的随机战利品池中填充大量现有容器的场景。

该随机填充器不会放置新的箱子。它会搜索已存在的受支持容器,清空其当前内容,并根据配置的战利品规则填充随机槽位。

工作原理

  1. 使用 /clr center/clr center <x> <z> 或 JSON 配置设置搜索中心。
  2. 使用 /clr radius <blocks> 或 JSON 配置设置搜索半径。
  3. 运行 /clr run
  4. 战利品箱随机填充器在 X 轴和 Z 轴上从 中心 - 半径中心 + 半径 的方形范围内进行扫描。
  5. 从扫描到的区块中收集匹配的箱子类方块实体。
  6. 清空其先前内容。
  7. 每个配置的战利品条目都会对每个受支持的容器独立进行判定。
  8. 成功的条目会以介于 stack_size_minstack_size_max 之间的随机堆叠数量放入随机兼容的槽位。
  9. 缺失或不可用的战利品条目会在运行结束后被报告,而不会静默地用其他物品替换。

容器行为

  • 原版箱子方块通过默认的 chest 方块 ID 令牌进行匹配。
  • minecraft:barrel 默认通过精确 ID 列表提供支持。
  • 包含 chest 的典型模组箱子 ID 可以被自动检测到。
  • 可以通过 additional_chest_ids 添加额外的精确方块 ID。
  • 原版 Container 物品栏直接受支持。
  • 兼容的模组物品栏可以通过 NeoForge 方块物品处理器能力访问(当处理器可修改时)。
  • /clr run 会覆盖现有内容;这不是一次叠加式的战利品发放。

战利品规则

一个普通的战利品条目使用以下结构:

{
  "item": "minecraft:iron_ingot",
  "probability": 0.12,
  "stack_size_min": 1,
  "stack_size_max": 6
}
字段 描述
item Minecraft 物品注册表 ID 或物品标签。标签可以使用 #命名空间:路径 形式。
probability 该条目在每个容器中独立判定的概率,范围为 0.01.0
stack_size_min 生成的最小堆叠数量。
stack_size_max 生成的最大堆叠数量。

生成的堆叠数量仍受物品本身和目标槽位限制的约束。

配置

字段 默认值 描述
center_x 0 搜索中心 X 坐标。
center_z 0 搜索中心 Z 坐标。
center_set false 存储的中心是否已生效。/clr center 会将其设为 true
radius 128 以方块为单位的搜索半径。处理的区域为方形。
load_chunks true 扫描时是否加载区块。这可能会生成之前未生成的地形。
chest_id_contains ["chest"] 被视为箱子类容器的方块 ID 路径令牌。
additional_chest_ids ["minecraft:barrel"] 额外的精确容器方块 ID。

TaCZ 支持

战利品箱随机填充器包含对 TaCZ 数据驱动内容的可选支持。

TaCZ 的枪械、弹药和配件使用共享的基础 Minecraft 物品 ID,其具体变体存储在物品数据中。对于这些条目,CLR 支持两个额外字段:

{
  "item": "tacz:modern_kinetic_gun",
  "tacz_type": "gun",
  "tacz_id": "tacz:ak47",
  "probability": 0.01,
  "stack_size_min": 1,
  "stack_size_max": 1
}

支持的值:

tacz_type 用途
gun 创建指定的 TaCZ 枪械变体。枪械的堆叠数量被强制设为 1。
ammo 创建指定的 TaCZ 弹药变体。
attachment 创建指定的 TaCZ 配件变体。

如果 TaCZ 不存在、不兼容,或无法创建配置的 tacz_id,该战利品条目将被跳过并在 /clr run 结束后报告。

命令

/clr 命令需要权限等级 2。

命令 描述
/clr center 使用执行玩家当前的 X/Z 坐标作为搜索中心。
/clr center <x> <z> 显式设置搜索中心,也可从服务器控制台使用。
/clr radius <blocks> 设置方形搜索半径。
/clr status 显示当前版本、中心、半径、区块加载模式和战利品条目数量。
/clr reload 重新加载 config/chest_loot_randomizer.json
/clr run 清空并随机重新填充配置区域内所有匹配的受支持容器。

别名:/chestloot

性能与安全

扫描是同步进行的。过大的搜索半径可能会在处理区块和方块实体时暂时导致集成服务器或专用服务器卡顿。

load_chunks=true 时,CLR 会请求整个配置方形区域内的区块。这可能会生成之前不存在的地形。当只需要处理当前已加载的区块时,请设置 load_chunks=false

由于 /clr run 会清空容器先前的所有内容,在处理重要世界或地图之前请先进行备份。

兼容性

  • Minecraft 1.21.1
  • NeoForge 21.1.243 或 1.21.1 分支内的更新版本
  • Java 21
  • 专用服务器和集成服务器
  • 兼容的模组箱子类物品栏
  • 常规模组物品注册表 ID 和物品标签
  • 可选的 TaCZ 数据驱动枪械、弹药和配件