实体命令:/summon tacz:bullet ~ ~1 ~
子弹会在玩家使用枪械时,从玩家屏幕中央的准星处射出,对碰撞到的实体造成伤害,或在碰到方块后消失并留下弹孔。
实际上子弹的伤害判定并不是严格依靠子弹实体与目标实体的碰撞来判定的,具体判定方式较为复杂,会在资料最后作简单说明。
子弹具有多种属性,包括飞行速度,是否受重力影响,飞行加速度,造成的伤害,造成的击退,是否有曳光弹效果,是否有尾迹粒子,其使用的子弹模型(留空则没有模型),能够穿透的实体数量,是否造成爆头额外伤害,无视护甲造成的伤害,能否点燃方块或实体,以及伤害与飞行距离的关系。以上属性大部分由发射子弹的枪械的数据文件决定,少部分由枪械所消耗的弹药的数据文件决定。
子弹在发射时会根据枪械的数据文件产生角度上的随机偏移。
这个实体无法通过/summon指令正常地召唤出来。
伤害判定的大致原理:由于Minecraft每秒钟仅被分作20tick,仅靠碰撞箱来判定子弹是否命中,会经常导致吞伤害、吞子弹的情况。为了减少这一情况的发生,发射出去的子弹实体实际上会向自身行进方向发射一条较短的线段用于伤害判定,而非依靠子弹碰撞箱进行判定。一种比较好的理解方式是,将子弹当做飞出去的一个个小激光笔。
这也是末影人这类通常免疫远程攻击的生物无法闪避TacZ的子弹的原因。
资料分类: | 技术性实体 |