我的世界马匹繁殖机制
用金胡萝卜或金苹果繁殖两匹驯服的马。幼马会分别掷骰生命值、跳跃强度和移动速度。每次掷骰都从亲代的中点开始,然后根据亲代之间差异的扩散值加上该属性完整范围的 0.3 倍,再乘以一个 -0.5 到 +0.5 之间的随机因子进行偏移。大多数幼马会落在中间附近。少数会优于双亲。有些则会更差。
野马会在以下范围内对每项属性进行一次掷骰。繁殖是您将血统推向最大值的方式,因为幼马会从亲代继承属性,而不是从头开始掷骰。驴使用相同的属性计算方式。马与驴繁殖会生出骡子。骷髅马和僵尸马无法繁殖。
当前马匹维基的属性范围
生命值为 15 到 30 HP(7.5 到 15 颗心)。jump_strength 为 0.4 到 1.0,在原版重力下可跳过约 1.153 到 5.92 格。movement_speed 为 0.1125 到 0.3375,约 4.74 到 14.23 格每秒。这些跳跃高度取代了旧的 5.3 格数据,旧数据仍出现在某些页面上。
后代公式
对于每项属性,游戏会将两匹亲代马的属性限制在范围内,取其中点,然后加上扩散值乘以 ((r1 + r2 + r3) / 3 - 0.5)。扩散值是亲代属性的绝对差值加上 0.3 乘以(最大值减去最小值)。超出上限的值会反射回范围内。这三个随机数使得极端幼马非常罕见。
如何在游戏中读取马匹属性
生命值以心形显示。跳跃和速度是隐藏的。运行 /data get entity @e[type=horse,limit=1,sort=nearest] attributes 并将基础值复制到属性解码器中。如果没有指令,您只能通过跳墙和计时冲刺来估算。
召唤一匹测试马
此页面上的指令适用于 Java 版。现代世界需要带有 id 和 base 的 attributes。旧世界需要带有 Name 和 Base 的 Attributes。旧的 minecraft:horse.jump_strength id 已过时。基岩版无法使用此 NBT。
马匹繁殖常见问题
我的世界中马匹属性是如何继承的?
三项属性各自独立掷骰。游戏会取亲代的中点,然后加上扩散值(亲代差异加上完整范围的 0.3 倍),再乘以一个 -0.5 到 +0.5 之间的平均随机数。超出合法范围的结果会反射回范围内。
马匹的最大属性是什么?
30 HP,jump_strength 1.0(约 5.92 格),movement_speed 0.3375(约 14.23 格每秒)。一匹完美的马匹三项属性都达到上限。这在单匹野马中极为罕见。
是否存在隐藏的第三亲代?
没有。人们之所以这样说,是因为公式在两匹亲代马的基础上添加了一个新的随机数。正是这个随机数让幼马有可能优于双亲。它不是第三匹马。
如何繁殖最快的马?
驯服大量马匹,保留最快的几匹,然后将它们配对繁殖。可能的幼马属性会落在它们的中点,并有机会超越双亲。保留任何优于亲代的幼马并将其重新繁殖。两匹快马比一匹快马一匹慢马更可靠。
幼马会比双亲都差吗?
是的。随机因子可能落在中点以下,有时甚至低于较弱的亲代。每代繁殖多匹幼马,只保留那些能改善血统的。
如何召唤一匹跳跃高度为 5.92 格的马?
在当前 Java 版中,使用 /summon horse ~ ~ ~ 并设置 attributes id minecraft:jump_strength 和 base 1.0,如果您还想要 15 颗心,则加上 Health 和 max_health。跳跃强度 0.4 是 1.153 格的最小值。请勿使用 horse.jump_strength。
