本帖最后由 tineseack_bk 于 2020-2-17 21:54 编辑
在 1.15 19w36a 版本中更新了新的 gamerule: doImmediateRespawn,先来看看维基的介绍:
关于这个的介绍很简洁,以至于很多问题都被隐藏起来了。由于我还没有去做深入的原理测试或者扒源码这类的工作,在这里仅先做一些猜测:
对第一个问题,我首先进行了尝试。结果是用 minecraft.custom:minecraft.deaths 判据可以检测到玩家死亡次数 +1(这是当然,因为玩家的确死亡了);而用 nbt={Health:0.0f} 的选择器则会出现有概率选择不到的情况。我通过如下方法进行了粗略的测试:给符合 nbt={Health:0.0f} 的玩家分数 +1,然后将这个分数同玩家的死亡次数 death 进行对比。我进行了 10001 次 suicide 实验,得出的结果是 6719/10001,也就是接近 67.18% 的比率。这个结果可能会因为实验次数的增加而继续上升。也有可能这个比率压根没什么意义。
对于第二个问题,本质和第一个问题相同,也是有时候无法检测到。
对于第三个问题,若是用判据检测,则是复活点;若是 Health/@e 且成功检测到,则是死亡点。
随后我在尝试用函数递归的方式快速 suicide 的时候发现,无论是在一个函数里面写多次 /kill 还是递归调用自己执行函数里面的 /kill,最终输出都会只有一次。也即是说,玩家在死亡之后的下一刻执行快速复活,因此在复活前的这一刻所有死亡都被看作是一次。
0216 补充:已解决,使用进度的 "trigger": "minecraft:entity_killed_player" 进行判断。详见:https://www.mcbbs.net/thread-961796-1-1.html
以上内容均为简单测试下得出的结果,可能会有很大的错误认知。因为看到还没有人对此进行过系统的讨论所以发了这个贴。如果对这个问题有过研究的各位大佬欢迎讨论和指出我的问题。谢谢茄子!
▼感谢 spg 指出错误
来自群组: The Minecraft Lover
在 1.15 19w36a 版本中更新了新的 gamerule: doImmediateRespawn,先来看看维基的介绍:
doImmediateRespawn
- Players respawn immediately without showing the death screen.
- 玩家会立即重生,不显示死亡界面。
关于这个的介绍很简洁,以至于很多问题都被隐藏起来了。由于我还没有去做深入的原理测试或者扒源码这类的工作,在这里仅先做一些猜测:
- 是否还能检测到玩家死亡
- 是否在死亡的一刻用 @e 检测不到该玩家(@e 只能选到活的实体,因此可以借助这个检测玩家死亡)
- 如果检测到了死亡的玩家,那么 execute at 该玩家执行命令的位置是死亡点还是复活点
对第一个问题,我首先进行了尝试。结果是用 minecraft.custom:minecraft.deaths 判据可以检测到玩家死亡次数 +1(这是当然,因为玩家的确死亡了);而用 nbt={Health:0.0f} 的选择器则会出现有概率选择不到的情况。我通过如下方法进行了粗略的测试:给符合 nbt={Health:0.0f} 的玩家分数 +1,然后将这个分数同玩家的死亡次数 death 进行对比。我进行了 10001 次 suicide 实验,得出的结果是 6719/10001,也就是接近 67.18% 的比率。这个结果可能会因为实验次数的增加而继续上升。也有可能这个比率压根没什么意义。
对于第二个问题,本质和第一个问题相同,也是有时候无法检测到。
对于第三个问题,若是用判据检测,则是复活点;若是 Health/@e 且成功检测到,则是死亡点。
随后我在尝试用函数递归的方式快速 suicide 的时候发现,无论是在一个函数里面写多次 /kill 还是递归调用自己执行函数里面的 /kill,最终输出都会只有一次。也即是说,玩家在死亡之后的下一刻执行快速复活,因此在复活前的这一刻所有死亡都被看作是一次。
0216 补充:已解决,使用进度的 "trigger": "minecraft:entity_killed_player" 进行判断。详见:https://www.mcbbs.net/thread-961796-1-1.html
以上内容均为简单测试下得出的结果,可能会有很大的错误认知。因为看到还没有人对此进行过系统的讨论所以发了这个贴。如果对这个问题有过研究的各位大佬欢迎讨论和指出我的问题。谢谢茄子!
▼感谢 spg 指出错误
来自群组: The Minecraft Lover
是否在死亡的一刻用 @p 检测不到该玩家
唯一选不到死亡实体的选择器是 @e。 本帖最后由 tineseack_bk 于 2020-2-4 18:45 编辑
已了解,谢谢
SPGoding 发表于 2020-2-3 05:08
唯一选不到死亡实体的选择器是 @e。
已了解,谢谢
谢谢大佬
已了解 谢谢大佬