战利品上下文

来自Minecraft Wiki
跳转到导航 跳转到搜索
本文章所述内容仅适用于Java版

战利品上下文(Loot Context)是一些用于战利品表谓词物品修饰器以及数值提供器等的参数构成的集合。由于在不同的使用环境下有不同的参数,故战利品上下文主要用于判定一个战利品表或者谓词是否适用于其当前的功能或情况。这使得数据包在加载阶段就可以检查完相关参数,而非在运行时。

参数[编辑 | 编辑源代码]

战利品上下文中总共含有12种参数,这些参数根据战利品表类型的不同可能不存在:

  • this_entity:引起战利品生成的实体,在实体谓词中为this
  • last_damage_player:伤害实体的最后玩家,在实体谓词中为attacking_player
  • attacking_entity:导致实体受伤或死亡的伤害追踪来源实体,在实体谓词中为attacker
  • direct_attacking_entity:直接导致实体受伤或死亡的实体,在实体谓词中为direct_attacker
  • damage_source:导致实体受伤或死亡的伤害来源
  • origin:引起战利品生成的来源位置(3维向量)
  • block_state:交互的方块状态
  • block_entity:交互的方块实体
  • tool:交互使用的工具(物品堆叠)
  • explosion_radius爆炸半径(单精度浮点数)
  • enchantment_active魔咒是否生效(布尔值)
  • enchantment_level魔咒等级(整数)

参数集[编辑 | 编辑源代码]

当数据包加载时,对于数据包中的战利品表,游戏将使用其字符串type字段来检查此战利品表使用的上下文参数是否与指定的上下文参数集匹配。该字段可以检查战利品表文件中的错误,而无需在游戏中应用它们。如果战利品表用于特定上下文,则指定类型字段允许游戏检查战利品表文件是否使用了该上下文中不会提供的参数。

根据不同类型,可能会向谓词、物品修饰器和数值提供器等提供不同的参数。下列是游戏内所有的战利品上下文参数集:

用于战利品表[编辑 | 编辑源代码]

empty - 空参数集
使用情境:
  • 试炼刷怪笼生成奖励物品时。
  • 不祥试炼刷怪笼生成不祥之物生成器内的物品时。
  • 指定为"type":"minecraft:empty"表示在此战利品表中无法使用任何战利品上下文参数。
提供的上下文参数:
  • 无。
可能提供的上下文参数:
  • 无。
generic - 通用参数集
使用情境:
  • 无,通常只用于定义战利品表。
  • 指定为"type":"minecraft:generic"表示在此战利品表中可以使用除enchantment_activeenchantment_level外的所有上下文参数。
提供的上下文参数:
  • this_entity、​last_damage_type、​damage_source、​attacking_enttiy、​direct_attacking_entity、​origin、​block_state、​block_entity、​tool和​explosion_radius
可能提供的上下文参数:
  • 无。
advancement_reward - 进度奖励参数集
使用情境:
提供的上下文参数:
  • origin:玩家获得进度的位置。
  • this_entity:完成进度的玩家。
可能提供的上下文参数:
  • 无。
archaeology - 考古战利品参数集
使用情境:
提供的上下文参数:
  • origin:可疑的方块的中心位置。
  • tool:扫刷可疑的方块的刷子工具。
可能提供的上下文参数:
  • this_entity:刷扫方块的实体。
barter - 以物易物战利品参数集
使用情境:
提供的上下文参数:
  • this_entity:与玩家交易的猪灵。
可能提供的上下文参数:
  • 无。
block - 方块战利品参数集
使用情境:
  • 方块被破坏时。
  • 使用/loot … mine <pos>命令时。
提供的上下文参数:
  • origin:被破坏的方块的中心。
  • block_state:被破坏方块的方块状态。
  • tool:破坏时使用的工具。
可能提供的上下文参数:
  • this_entity:破坏方块的玩家。
  • block_entity:若为方块实体,则为所被破坏方块的任意方块实体数据。
  • explosion_radius:若方块被爆炸破坏,则为爆炸破坏半径。
chest - 容器战利品参数集
使用情境:
提供的上下文参数:
  • origin:容器的中心位置。
可能提供的上下文参数:
  • this_entity:打开容器的实体。
entity - 生物死亡战利品参数集
使用情境:
  • 生物死亡时。
  • 使用/loot … kill <target>命令时。
提供的上下文参数:
  • this_entity:死亡的实体。
  • origin:死亡位置。
  • damage_source:导致实体死亡的伤害来源。
可能提供的上下文参数:
  • direct_attacking_entity:直接导致实体死亡的实体。
  • last_damage_player:伤害死亡实体的最后玩家。
  • attacking_entity:给实体造成最后伤害的来源实体。
equipment - 装备战利品参数集
使用情境:
  • 当任何种类的刷怪笼生成实体,且字符串equipment.loot_table不为空时。
提供的上下文参数:
  • origin:生成的生物位置。
  • this_entity:生成的生物。
可能提供的上下文参数:
  • 无。
fishing - 钓鱼战利品参数集
使用情境:
  • 钓鱼时。
  • 使用/loot … fish <loot_table>命令时。
提供的上下文参数:
  • origin浮漂的位置。
  • tool:玩家投掷所用的钓鱼竿工具。
可能提供的上下文参数:
  • this_entity:浮漂实体。
gift - 礼物战利品参数集
使用情境:
提供的上下文参数:
  • origin:猫、村民等上述实体的位置。
  • this_entity:猫、村民等上述实体。
可能提供的上下文参数:
  • 无。
shearing - 修剪战利品参数集
使用情境:
提供的上下文参数:
  • this_entity:被修剪的生物。
  • origin:被修剪的生物位置。
  • tool:修剪使用的剪刀工具,对发射器也有效。
可能提供的上下文参数:
  • 无。
vault - 宝库战利品参数集
使用情境:
  • 宝库展示物品时。
  • 宝库产生战利品时。
提供的上下文参数:
  • origin:宝库方块的中心位置。
可能提供的上下文参数:
  • this_entity:打开宝库的玩家。
  • tool:解锁宝库的物品。

仅用于谓词[编辑 | 编辑源代码]

advancement_entity - 进度实体谓词参数集
使用情境:
  • 不用于战利品表,写为"type":"advancement_entity"是无效的。
  • 只用于进度实体谓词
提供的上下文参数:
  • origin:触发进度准则的玩家位置。
  • this_entity:被检查的实体。
可能提供的上下文参数:
  • 无。
advancement_location - 进度位置信息谓词参数集
使用情境:
  • 不用于战利品表,写为"type":"advancement_location"是无效的。
  • 只用于进度位置信息谓词。
提供的上下文参数:
  • origin:被交互的方块的中心。
  • this_entity:获得进度的玩家。
  • tool:玩家用于方块交互的工具。
  • block_state:被交互的方块。
可能提供的上下文参数:
  • 无。
block_use - 方块默认交互信息谓词参数集
使用情境:
提供的上下文参数:
  • origin:被交互的方块的中心。
  • this_entity:获得进度的玩家。
  • block_state:被交互的方块。
可能提供的上下文参数:
  • 无。
command - 命令参数集
使用情境:
  • 不用于战利品表,写为"type":"command"是无效的。
  • 只用于谓词判断和修饰物品时,例如/item modify/execute (if|unless) predicate的命令内部。
提供的上下文参数:
  • origin:命令的执行位置。
可能提供的上下文参数:
  • this_entity:命令的执行实体@s
enchanted_damage - 魔咒伤害效果参数集
使用情境:
  • 不用于战利品表,写为"type":"enchanted_damage"是无效的。
  • 用于魔咒对于伤害效果的计算。
提供的上下文参数:
  • this_entity:将要施加魔咒效果的对应实体。
  • enchantment_level:魔咒等级。
  • origin:对应实体的位置。
  • damage_source:造成这次伤害的伤害来源。
可能提供的上下文参数:
  • attacking_entity:使实体受伤的来源实体。
  • direct_attacking_entity:直接导致实体受伤的实体。
enchanted_entity - 魔咒实体效果参数集
使用情境:
  • 不用于战利品表,写为"type":"enchanted_entity"是无效的。
  • 用于魔咒对于实体效果的计算。
提供的上下文参数:
  • this_entity:将要施加魔咒效果的对应实体。
  • enchantment_level:魔咒等级。
  • origin:对应实体的位置。
可能提供的上下文参数:
  • 无。
enchanted_item - 魔咒物品效果参数集
使用情境:
  • 不用于战利品表,写为"type":"enchanted_item"是无效的。
  • 用于魔咒对于物品效果的计算。
提供的上下文参数:
  • tool:带有魔咒的物品。
  • enchantment_level:魔咒等级。
可能提供的上下文参数:
  • 无。
enchanted_location - 魔咒位置效果参数集
使用情境:
  • 不用于战利品表,写为"type":"enchanted_location"是无效的。
  • 用于魔咒对于位置效果的计算。
提供的上下文参数:
  • this_entity:将要施加魔咒效果的对应实体。
  • enchantment_level:魔咒等级。
  • origin:对应实体的位置。
  • enchantment_active:当前魔咒是否已经生效。
可能提供的上下文参数:
  • 无。
hit_block - 魔咒击中方块效果参数集
使用情境:
  • 不用于战利品表,写为"type":"hit_block"是无效的。
  • 用于魔咒对于击中方块效果的计算。
提供的上下文参数:
  • this_entity:将要施加魔咒效果的对应实体。
  • enchantment_level:魔咒等级。
  • origin:击中的方块的位置。
  • block_state:击中的方块的方块状态。
可能提供的上下文参数:
  • 无。
selector - 目标选择器参数集
使用情境:
  • 不用于战利品表,写为"type":"minecraft:selector"是无效的。
  • 目标选择器参数predicate内使用。
提供的上下文参数:
  • origin:被检测实体的位置。
  • this_entity:被检测的实体。
可能提供的上下文参数:
  • 无。

历史[编辑 | 编辑源代码]

Java版
1.19.423w07a加入了战利品上下文参数集archaeology
1.2023w18a加入了战利品上下文参数集advancement_location
1.20.524w03a加入了战利品上下文参数集block_use
24w05a加入了战利品上下文参数集vault
24w09a加入了战利品上下文参数集shearing
24w13a加入了战利品上下文参数集equipment
1.2124w18a加入了战利品上下文参数enchantment_active和​enchantment_level
加入了战利品上下文参数集enchanted_damage、​enchanted_entity、​enchanted_item和​enchanted_location
24w21a加入了战利品上下文参数集hit_block
1.21.224w37a现在战利品上下文参数集archaeology、​shearing和​vault可以提供tool参数。

导航[编辑 | 编辑源代码]