tineseack_bk
本帖最后由 tineseack_bk 于 2020-2-17 21:54 编辑


  在 1.15 19w36a 版本中更新了新的 gamerule: doImmediateRespawn,先来看看维基的介绍:
doImmediateRespawn
  • Players respawn immediately without showing the death screen.
  • 玩家会立即重生,不显示死亡界面。


  关于这个的介绍很简洁,以至于很多问题都被隐藏起来了。由于我还没有去做深入的原理测试或者扒源码这类的工作,在这里仅先做一些猜测:

  对第一个问题,我首先进行了尝试。结果是用 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

SPGoding
是否在死亡的一刻用 @p 检测不到该玩家
唯一选不到死亡实体的选择器是 @e。

tineseack_bk
本帖最后由 tineseack_bk 于 2020-2-4 18:45 编辑
SPGoding 发表于 2020-2-3 05:08
唯一选不到死亡实体的选择器是 @e。


已了解,谢谢

wenhao2004924
谢谢大佬

wmx12138
已了解 谢谢大佬