安全区

安全区

创建非PvP、非战斗区域,免受敌对生物侵扰! 超级可自定义!

创建禁用战斗、伤害、投掷物和敌对生物的区域!

此数据包经过高度性能优化,即使在低端服务器上也能良好运行。

精简版性能略好,但功能略少。

功能

创建 6 种不同大小的球形安全区:

  • 大小 1,半径 15 格
  • 大小 2,半径 31 格
  • 大小 3,半径 47 格
  • 大小 4,半径 63 格
  • 大小 5,半径 79 格
  • 大小 C,默认半径 45 格 - 此大小用于在数据包文件中进行自定义。

查看下方的命令以了解如何创建安全区以及许多其他操作。

在安全区内,以下规则适用:

  • 生存模式和冒险模式的玩家无法受到或造成伤害。
  • 敌对生物会立即消失,且不掉落战利品。
  • 大多数投掷物会被立即删除。例外包括末影珍珠、玩家投掷的风弹和雪球。
  • 三叉戟会立即掉落在地上。
  • 区域内部不受爆炸和闪电引发的火焰影响。

但请注意,如果安全区边界上的方块允许,来自安全区外部的火焰可能会蔓延到内部。

附加功能

  • 允许某些敌对生物进入安全区
  • 冻结某些生物的运动
  • 使生物免受生存模式和冒险模式玩家的伤害
  • 显示和隐藏安全区中心
  • 许多额外的便捷命令

表现效果

  • 投掷物会从魔法屏障上弹开,产生蓝色火花和高音碎裂声。
  • 敌对生物在进入安全区时,灵魂会被抽离并被拖入地下。
  • 所有安全区命令都有额外的反馈信息,使其更易于理解。

兼容性

安全区还会阻止使用来自 Incendium 和 Spellbound Weapons 的武器。

命令

通用命令

/function safezone:cmd/help

  • 显示所有可用的安全区命令列表。

/function safezone:cmd/create/size[1-5]

  • 创建指定大小的安全区。

/function safezone:cmd/move/safezone

  • 将最近的安全区移动到你的位置。

/function safezone:cmd/tp/safezone

  • 传送到最近的安全区。

/function safezone:cmd/delete/nearest

  • 删除最近的安全区。

/function safezone:cmd/delete/nearby

  • 删除 100 格范围内的所有安全区。

/function safezone:cmd/delete/all

  • 删除所有当前已加载的安全区。
使安全区可见 当安全区被设为可见时,一旦你进入其范围,其中心会出现灵魂火粒子。

这使得理解其范围更加容易,并有助于定位它们。

/function safezone:cmd/show/nearest

  • 显示最近安全区的中心。

/function safezone:cmd/show/nearby

  • 显示 100 格范围内所有安全区的中心。

/function safezone:cmd/show/all

  • 显示所有当前已加载安全区的中心。

/function safezone:cmd/hide/nearest

  • 隐藏最近安全区的中心。

/function safezone:cmd/hide/nearby

  • 隐藏 100 格范围内所有安全区的中心。

/function safezone:cmd/hide/all

  • 隐藏所有当前已加载安全区的中心。
出生区块内安全区的防破坏

为节省服务器性能,安全区仅在玩家附近时才会激活。

如果安全区位于始终加载的出生区块内,且附近没有玩家,某些实体可能会破坏出生区域。

为防止这种情况,请将其设为出生安全区:

/function safezone:cmd/add/spawn

  • 对最近的安全区启用始终激活的防破坏。

/function safezone:cmd/remove/spawn

  • 对最近的安全区恢复常规防破坏。

/function safezone:cmd/move/safezone

  • 将最近的出生安全区移动到你的位置。

/function safezone:cmd/tp/safezone

  • 传送到最近的出生安全区。
使实体免受生存模式和冒险模式玩家的伤害

/function safezone:cmd/add/invulnerable

  • 使最近的实体变为无敌。

/function safezone:cmd/remove/invulnerable

  • 使最近的实体恢复可受伤。

/function safezone:cmd/move/invulnerable

  • 将最近的实体无敌安全区移动到你的位置。

/function safezone:cmd/tp/invulnerable

  • 传送到最近的实体无敌安全区。
允许某些实体进入安全区

/function safezone:cmd/add/allowed

  • 允许最近的实体进入安全区。

/function safezone:cmd/remove/allowed

  • 禁止最近的实体进入安全区。

/function safezone:cmd/move/allowed

  • 将最近的允许实体移动到你的位置。

/function safezone:cmd/tp/allowed

  • 传送到最近的允许实体。
冻结某些实体的运动

/function safezone:cmd/add/frozen

  • 冻结最近实体的运动。

/function safezone:cmd/remove/frozen

  • 解冻最近实体的运动。

/function safezone:cmd/move/frozen

  • 将最近的冻结实体移动到你的位置。

/function safezone:cmd/tp/frozen

  • 传送到最近的冻结实体。
使安全区内所有实体无敌

/function safezone:cmd/add/entity_resistance

  • 最近安全区内的实体不再受到伤害。

/function safezone:cmd/remove/entity_resistance

  • 最近安全区内的实体现在会受到伤害。
使安全区内所有实体不造成近战伤害

/function safezone:cmd/add/entity_weakness

  • 最近安全区内的实体不再造成近战伤害。

/function safezone:cmd/remove/entity_weakness

  • 最近安全区内的实体现在会造成近战伤害。

精简版不包含:

使安全区内所有玩家无敌

此功能默认开启。

/function safezone:cmd/add/player_resistance

  • 最近安全区内的玩家不再受到伤害。

/function safezone:cmd/remove/player_resistance

  • 最近安全区内的玩家现在会受到伤害。
使安全区内所有玩家不造成近战伤害

此功能默认开启。

/function safezone:cmd/add/player_weakness

  • 最近安全区内的玩家不再造成近战伤害。

/function safezone:cmd/remove/player_weakness

  • 最近安全区内的玩家现在会造成近战伤害。

安装

与任何数据包一样,将 SafeZone.zip 放入世界存档的 datapacks 文件夹后,使用 /reload 来激活它。

卸载

运行 /function safezone:cmd/delete/all 以删除所有当前已加载的安全区。

反馈

欢迎在我的 Discord 服务器上提交错误报告、功能建议或其他反馈。