Minecraft 目标选择器备忘单
8 分钟阅读
选择器很小,但它们决定谁接收命令。一个好的选择器足够窄,足够安全并且足够简单,易于调试。当命令在Output中有效但在游戏中击中错误目标时,请使用此参考。
指南结果
实用的选择器清单,有助于防止命令没有针对任何目标或目标太多。
推荐路径
- 首先选择基础选择器:最近的玩家、所有玩家、所有实体或命令运行者。
- 添加一次一个过滤器,从类型、标签、距离或团队开始。
- 仅在目标存在且具有已知值后才使用分数。
- 添加当可能有多个目标时进行排序和限制。
- 在使用伤害、杀死、传送或库存更改之前,使用无害的命令测试选择器。
碱基选择器决策
使用与作业匹配的最小碱基选择器。如果命令影响一名玩家,请从最近的玩家或命令运行者开始,而不是从所有玩家开始。如果它影响实体,请在使用广泛的实体选择器之前决定是否应包括玩家。
广泛的选择器对于设置和清理很有用,但它们应该与类型、标签、团队或距离过滤器配对。
- 作为已知实体执行时,请使用 @s 作为命令运行程序。
- 使用 @p 进行最近的玩家交互。
- 使用 @a 来表示玩家范围内的消息或设置。
- 仅当实体过滤明确时才使用@e。
防止事故发生的过滤器
Tags 通常是连接多命令工作流程的最简洁方式。 Add 创建实体时的标记,然后稍后定位该标记。这比在每个后续命令中重复长 NBT 过滤器更容易维护。
距离和限制过滤器保护从command block或函数运行的命令。缺少距离过滤器可能会影响遭遇区域之外的实体。
调试选择器失败
当选择器停止匹配时,删除过滤器,直到它再次匹配。按顺序重新添加过滤器并检查哪个过滤器破坏了命令。分数和 NBT 过滤器是常见的故障点,因为它们依赖于可能尚不存在的状态。
NBTForge 可以帮助构建周围的命令,但游戏中的选择器状态仍然取决于您的世界、记分板目标、标签和实体位置。
运送Copy 的工件
使用本指南来生成玩家或地图制作者将实际运行的工件:Copy 的命令、订购的 Project 包或datapack资源。最终审查应该发生在 Copy 的Output上,而不仅仅是可编辑的构建器状态。
当工作流对版本敏感时,请在命令旁边标记目标版本。当它使用选择器、记分板、bossbars、标签、loot table或项目顺序时,请在发布设置之前在干净的世界中测试这些依赖项。
- 来自 Output 的 Copy 用于一个命令,来自 Project 的订购包。
- 将 Java、Bedrock 和快照变体分开。
- 首先用无害的Output测试破坏性的选择器。
- 当指南成为规范工作流程时更新相关预设。
相关指南与预设
常见问题
测试时最安全的选择器是什么?
使用 @s 或应用于已知测试实体的标签。在测试破坏性命令时,避免使用广泛的选择器,例如所有实体。
为什么选择器在一个地方匹配而在另一个地方不匹配?
距离、位置、执行者、维度、记分牌状态和标签都可以在command block、功能和聊天命令之间发生变化。
本指南什么时候应该成为 Project 包?
当工作流需要多个命令、有设置和清理顺序或测试后必须再次编辑时,请使用 Project。一次性命令可以保留在 Output 中。