跳转至

弹射物

本文介绍minecraft:projectile行为包组件的全部字段,以及如何制作自定义弹射物实体。

注意

此组件的文档大部分来自对原版实体的反向工程分析,请以实际测试结果为准。

顶层字段

字段 类型 默认值 说明
anchor Integer 锚点
angle_offset Decimal 0 投掷角度偏移量
catch_fire Boolean false 命中时点燃被击中实体
crit_particle_on_hurt Boolean false 命中时产生暴击粒子
destroy_on_hurt Boolean false 被击中时销毁此弹射物
filter String 该标识符的实体不会被此弹射物伤害
fire_affected_by_griefing Boolean false 火焰效果是否受生物破坏游戏规则影响
gravity Decimal 0.05 下落重力,值越大下落越快
hit_ground_sound String 命中地面时播放的音效
hit_sound String 命中实体时播放的音效
homing Boolean false 是否追踪最近的目标
inertia Decimal 0.99 每帧在空中保留的速度比例(1=无空气阻力)
is_dangerous Boolean false 是否对玩家视为危险
knockback Boolean true 命中时是否击退实体
lightning Boolean false 命中时是否召唤闪电
liquid_inertia Decimal 0.6 每帧在水中保留的速度比例
multiple_targets Boolean true 是否可以在一次飞行中命中多个实体
offset Vector [0, 0.5, 0] 相对实体锚点的生成偏移量
on_fire_time Decimal 5 点燃目标的持续时间(秒)
on_hit Object 命中时的行为,见下文
particle String iconcrack 碰撞时产生的粒子
potion_effect Integer -1 箭矢附带的状态效果ID(-1为无)
power Decimal 1.3 发射速度
reflect_on_hurt Boolean false 被击中时反弹
semi_random_diff_damage Boolean false 基于伤害和速度随机化伤害值
shoot_sound String 发射时播放的音效
shoot_target Boolean true 是否朝发射者的目标方向射出
should_bounce Boolean false 命中时是否弹跳
splash_potion Boolean false 是否视为喷溅药水
splash_range Decimal 4 喷溅效果半径(格)
uncertainty_base Decimal 0 基础精度。精度公式:uncertaintyBase - difficultyLevel × uncertaintyMultiplier
uncertainty_multiplier Decimal 0 难度对精度的影响系数
hit_water Boolean false 液体是否被视为固体

on_hit 行为

on_hit对象定义了弹射物命中时触发的一个或多个行为:

arrow_effect

赋予目标箭矢效果(具体行为待明确)。

teleport_owner

将发射者传送到命中位置。

catch_fire

点燃目标(具体行为待明确)。

ignite

点燃目标(具体行为待明确)。

remove_on_hit

命中任何物体后销毁弹射物。

douse_fire

熄灭目标身上的火焰(具体行为待明确)。

impact_damage

命中时对目标造成伤害:

字段 类型 说明
damage Integer 或 [min, max] 伤害值,可以是固定值或范围
knockback Boolean 是否击退
catch_fire Boolean 是否点燃目标
max_critical_damage Decimal 最大暴击伤害
min_critical_damage Decimal 最小暴击伤害
power_multiplier Decimal 速度对伤害的乘数
semi_random_diff_damage Boolean 基于伤害和速度随机化伤害值
channeling Boolean 召唤闪电
filter String 仅影响指定标识符的实体
destroy_on_hit Boolean 命中后销毁弹射物

definition_event

命中时触发指定事件:

字段 类型 说明
affect_projectile Boolean 对弹射物本身触发事件
affect_shooter Boolean 对发射者触发事件
affect_target Boolean 对被命中实体触发事件
affect_splash_area Boolean 对区域内所有实体触发事件
splash_area Decimal 区域半径
event_trigger Object 事件对象(含eventtargetfilters字段)

stick_in_ground

命中后插入地面:

字段 类型 说明
shake_time Decimal 插入后的震动时间

spawn_aoe_cloud

命中后生成区域效果云:

字段 类型 说明
radius Decimal 云的半径
radius_on_use Decimal 每次施加效果后半径变化量
potion Integer 药水效果ID(见下方药水ID表)
particle String 粒子发射器名称;"dragonbreath"允许玻璃瓶收集
duration Integer 云存在时间(秒)
color [r, g, b] 粒子颜色
affect_owner Boolean 是否对发射者施加效果
reapplication_delay Integer 效果再次施加的间隔(刻)

药水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

spawn_chance

命中时有概率生成实体:

字段 类型 说明
first_spawn_percent_chance Decimal 第一次生成的概率
second_spawn_percent_chance Decimal 第二次生成的概率
first_spawn_count Integer 第一次生成的数量
second_spawn_count Integer 第二次生成的数量
spawn_definition String 要生成的实体标识符
spawn_baby Boolean 是否生成幼年形态

particle_on_hit

命中时生成粒子:

字段 类型 说明
particle_type String 粒子发射器名称
num_particles Integer 粒子数量
on_entity_hit Boolean 命中实体时生成
on_other_hit Boolean 命中其他物体时生成

mob_effect

命中时对目标施加状态效果:

字段 类型 说明
effect String 状态效果标识符
duration Integer 效果持续时间(刻)
durationeasy Integer 简单难度下的持续时间(刻)
durationnormal Integer 普通难度下的持续时间(刻)
durationhard Integer 困难难度下的持续时间(刻)
amplifier Integer 效果等级
ambient Boolean 是否为环境效果(粒子半透明)
visible Boolean 是否显示粒子

grant_xp

命中时生成经验球(而非直接给予经验):

字段 类型 说明
minXP Integer 最小经验值
maxXP Integer 最大经验值
xp Integer 固定经验值(设置后忽略min/max)

freeze_on_hit

命中时冻结水(具体行为待明确)

字段 类型 说明
shape String "sphere""cube"
snap_to_block Boolean 对齐到方块
size Integer 冻结范围大小

注意事项

创建自定义弹射物(如自定义箭矢、三叉戟变体或全新弹射物)时,建议设置合适的运行时标识符,否则可能出现视觉异常、击退方向错误或可以徒手击杀箭矢等问题。