抛射物
概述
本文档旨在记录所有可用于 minecraft:projectile 实体行为组件的不同字段。
WARNING
免责声明:该组件的文档主要基于游戏中的抛射物或通过逆向工程获得。此信息最后测试版本为 1.18.2。
| 名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| anchor | 整数 | ||
| angle_offset | 小数 | 0 | 决定抛射物投掷的角度 |
| catch_fire | 布尔值 | false | 如果为 true,被击中的实体将被点燃 |
| crit_particle_on_hurt | 布尔值 | false | 如果为 true,抛射物在造成伤害时会生成暴击粒子 |
| destroy_on_hurt | 布尔值 | false | 如果为 true,此实体在被击中时会被摧毁 |
| filter | 字符串 | 此处定义的实体不会被抛射物伤害 | |
| fire_affected_by_griefing | 布尔值 | false | 如果为 true,抛射物是否引发火焰受“生物破坏”游戏规则影响 |
| gravity | 小数 | 0.05 | 抛射物投掷时施加的重力。值越大,实体下落越快 |
| hit_ground_sound | 字符串 | 抛射物击中地面时播放的音效 | |
| hit_sound | 字符串 | 抛射物击中实体时播放的音效 | |
| homing | 布尔值 | false | 如果为 true,抛射物会追踪最近的实体。在 1.18.2 版本中无效 |
| inertia | 小数 | 0.99 | 抛射物在空中飞行时每帧保留的速度比例 |
| is_dangerous | 布尔值 | false | 如果为 true,抛射物将被视为对玩家有威胁 |
| knockback | 布尔值 | true | 如果为 true,抛射物会击退被击中的实体 |
| lightning | 布尔值 | false | 如果为 true,被击中的实体将被闪电击中 |
| liquid_inertia | 小数 | 0.6 | 抛射物在水中飞行时每帧保留的速度比例 |
| multiple_targets | 布尔值 | true | 如果为 true,抛射物可以在一次飞行中击中多个实体 |
| offset | 向量 [a, b, c] | [0, 0.5, 0] | 抛射物生成时相对于实体锚点的偏移量 |
| on_fire_time | 小数 | 5 | 被击中的实体着火的时间(秒) |
| on_hit | 对象 | 抛射物击中时的行为。更多信息见下方 | |
| particle | 字符串 | iconcrack | 碰撞时使用的粒子 |
| potion_effect | 整数 | -1 | 定义箭矢击中实体时施加的效果 |
| power | 小数 | 1.3 | 决定抛射物的速度 |
| reflect_on_hurt | 布尔值 | false | 如果为 true,此实体在被击中时会反弹 |
| semi_random_diff_damage | 布尔值 | false | 如果为 true,伤害将基于伤害和速度随机化 |
| shoot_sound | 字符串 | 抛射物发射时播放的音效 | |
| shoot_target | 布尔值 | true | 如果为 true,抛射物会朝向发射实体的目标发射 |
| should_bounce | 布尔值 | false | 如果为 true,抛射物在击中时会反弹 |
| splash_potion | 布尔值 | false | 如果为 true,抛射物将被视为喷溅药水 |
| splash_range | 小数 | 4 | “喷溅”效果的半径(方块) |
| stop_on_hurt | 布尔值 | ||
| uncertainty_base | 小数 | 0 | 基础精度。精度由公式 uncertaintyBase - difficultyLevel * uncertaintyMultiplier 决定 |
| uncertainty_multiplier | 小数 | 0 | 决定难度对精度的影响。精度由公式 uncertaintyBase - difficultyLevel * uncertaintyMultiplier 决定 |
| hit_water | 布尔值 | false | 如果为 true,液体方块将被视为固体。需要启用“教育版”选项 |
on_hit
此对象包含抛射物击中时可以执行的所有行为。
arrow_effect
具体行为未知
teleport_owner
将发射者传送到击中位置。
catch_fire
具体行为未知
点燃目标
ignite
具体行为未知
点燃目标
remove_on_hit
击中时移除抛射物。
douse_fire
具体行为未知
impact_damage
击中时造成伤害。
| 名称 | 类型 | 描述 |
|---|---|---|
| damage | 整数/整数数组 [min, max] | 击中实体时造成的伤害 |
| semi_random_diff_damage | 布尔值 | |
| max_critical_damage | 小数 | |
| min_critical_damage | 小数 | |
| power_multiplier | 小数 | |
| channeling | 布尔值 | |
| set_last_hurt_requires_damage | 布尔值 | |
| destroy_on_hit_requires_damage | 布尔值 | |
| filter | 字符串 | 受影响的实体。比其他地方的过滤器更简单,因为它只能“测试”标识符 |
| destroy_on_hit | 布尔值 | |
| knockback | 布尔值 | |
| catch_fire | 布尔值 | 决定目标是否会被火焰吞噬 |
definition_event
击中时触发事件。
| 名称 | 类型 | 描述 |
|---|---|---|
| affect_projectile | 布尔值 | 事件将在抛射物实体上触发 |
| affect_shooter | 布尔值 | 事件将在发射者实体上触发 |
| affect_target | 布尔值 | 事件将在被击中的实体上触发 |
| affect_splash_area | 布尔值 | 事件将在区域内所有实体上触发 |
| splash_area | 小数 | 实体的区域 |
| event_trigger | 对象 | 要触发的事件。结构如下。 |
| 名称 | 类型 | 描述 |
|---|---|---|
| event | 字符串 | 要触发的事件 |
| target | 字符串 | 事件的目标 |
| filters | 对象 | 触发事件所需的条件 |
stick_in_ground
将抛射物钉在地面上。
| 名称 | 类型 | 描述 |
|---|---|---|
| shake_time | 小数 |
spawn_aoe_cloud
生成一个药水效果的区域效果云。
| 名称 | 类型 | 描述 |
|---|---|---|
| radius | 小数 | 云的半径 |
| radius_on_use | 小数 | |
| potion | 整数 | 滞留药水 ID |
| particle | 字符串 | 云的粒子发射器。仅接受原版粒子。dragonbreath 允许使用瓶子获取龙息。 |
| duration | 整数 | 云的持续时间(秒) |
| color | 整数数组 [r, g, b] | 粒子的颜色 |
| affect_owner | 布尔值 | 药水效果是否影响发射者。似乎不适用于玩家 |
| reapplication_delay | 整数 | 药水效果重新应用的延迟(刻) |
药水 ID
| 药水 | 普通 | 延长 | 增强(等级 II) |
|---|---|---|---|
| 水瓶 | 0 | ||
| 平凡药水 | 1 | 2 | |
| 浓稠药水 | 3 | ||
| 粗制药水 | 4 | ||
| 夜视药水 | 5 | 6 | |
| 隐身药水 | 7 | 8 | |
| 跳跃药水 | 9 | 10 | 11 |
| 抗火药水 | 12 | 13 | |
| 迅捷药水 | 14 | 15 | 16 |
| 迟缓药水 | 17 | 18 | |
| 水肺药水 | 19 | 20 | |
| 治疗药水 | 21 | 22 | |
| 伤害药水 | 23 | 24 | |
| 剧毒药水 | 25 | 26 | 27 |
| 再生药水 | 28 | 29 | 30 |
| 力量药水 | 31 | 32 | 33 |
| 虚弱药水 | 34 | 35 | |
| 衰变药水 | 36 | ||
| 神龟药水 | 37 | 38 | 39 |
| 缓降药水 | 40 | 41 | |
| 迟缓药水 IV | 42 | ||
| 崩溃药水 | 43+ |
spawn_chance
击中时生成实体。
| 名称 | 类型 | 描述 |
|---|---|---|
| first_spawn_percent_chance | 小数 | |
| second_spawn_percent_chance | 小数 | |
| first_spawn_count | 整数 | |
| second_spawn_count | 整数 | |
| spawn_definition | 字符串 | 要生成的实体的 ID |
| spawn_baby | 布尔值 | 生成的实体是否为幼体 |
particle_on_hit
击中时生成粒子。
| 名称 | 类型 | 描述 |
|---|---|---|
| particle_type | 字符串 | 使用的原版粒子 |
| num_particles | 整数 | 粒子数量 |
| on_entity_hit | 布尔值 | 是否在击中实体时生成粒子 |
| on_other_hit | 布尔值 | 是否在其他击中时生成粒子 |
mob_effect
对目标施加生物效果。
| 名称 | 类型 | 描述 |
|---|---|---|
| effect | 字符串 | 效果 |
| duration | 整数 | 效果的持续时间 |
| durationeasy | 整数 | 简单难度下的效果持续时间 |
| durationnormal | 整数 | 普通难度下的效果持续时间 |
| durationhard | 整数 | 困难难度下的效果持续时间 |
| amplifier | 整数 | 效果增幅器 |
| ambient | 布尔值 | |
| visible | 布尔值 |
grant_xp
尽管名称如此,这实际上是生成一定数量的经验球,其价值为指定的数量。
| 名称 | 类型 | 描述 |
|---|---|---|
| minXP | 整数 | 给予的最小经验值 |
| maxXP | 整数 | 给予的最大经验值 |
| xp | 整数 | 给予的固定经验值。设置后,将使用此值而不是最小和最大值。 |
freeze_on_hit
具体行为未知
需要启用“教育版”选项。 击中时冻结水。
| 名称 | 类型 | 描述 |
|---|---|---|
| shape | 字符串 | "sphere" 或 "cube" |
| snap_to_block | 布尔值 | |
| size | 整数 | 冻结效果的大小 |
hurt_owner
具体行为未知。目前会导致游戏崩溃,可能是由于参数错误
| 名称 | 类型 | 描述 |
|---|---|---|
| owner_damage | 整数 | |
| knockback | 布尔值 | |
| ignite | 布尔值 |
thrown_potion_effect
具体行为未知。目前会导致游戏崩溃,可能仅对投掷药水有效
附加信息
在创建自定义抛射物(如箭或三叉戟变体,或完全自定义的内容)时,你可能需要考虑定义一个运行时标识符以确保其行为符合预期。不这样做可能会导致意外行为,从奇怪的视觉效果到错误的击退方向,甚至可以用空手击杀箭矢。





