Skip to content

投射物

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

概述

本文档旨在记录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,投射物的引燃效果受游戏规则"mobGriefing"影响
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
平凡药水12
浓稠药水3
粗制药水4
夜视药水56
隐身药水78
跳跃药水91011
抗火药水1213
迅捷药水141516
迟缓药水1718
水肺药水1920
治疗药水2122
伤害药水2324
剧毒药水252627
再生药水282930
力量药水313233
虚弱药水3435
衰变药水36
神龟药水373839
缓降药水4041
迟缓IV药水42
跳跃提升IV药水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整数固定经验值。设置后将覆盖min和max值

freeze_on_hit

具体作用未知

需要启用教育版功能 冻结命中点周围的水。

字段名称类型描述
shape字符串"sphere" 或 "cube"
snap_to_block布尔值
size整数冻结效果的范围大小

hurt_owner

具体作用未知。当前版本可能导致游戏崩溃(可能参数错误)

字段名称类型描述
owner_damage整数
knockback布尔值
ignite布尔值

thrown_potion_effect

具体作用未知。当前版本可能导致游戏崩溃(可能仅适用于投掷药水)

补充说明

在创建自定义投射物(如箭矢变体或全新物品)时,建议定义运行时标识符来确保预期行为。未正确设置可能导致异常表现,包括显示错误、击退方向异常,甚至出现可用徒手摧毁的箭矢等问题。