iMoonDay
本帖最后由 iMoonDay 于 2020-8-11 14:46 编辑

我知道有两种方式可以检测某物体的nbt:
  1. execute if entity @e[nbt={...}] run ...
复制代码
  1. execute if data entity @e ... run ...
复制代码
那这两个指令有什么区别吗,如果在函数中大量执行哪个执行快一点?

纱夜
区别应该不大
execute if data entity @e ... run ...
可能会更加自由点 (?)

快不快要看mojang  应该可以忽略


按照命令字面意
一个是
是否存在实体+(选择器)
一个是是否存在实体+(选择器) 并且有指定的data

iMoonDay
阴阳师元素祭祀 发表于 2020-8-11 14:52
区别应该不大
execute if data entity @e ... run ...
可能会更加自由点 (?)

那如果execute后面接好多个if data entity的话,和execute if entity相比哪个更好些?

纱夜
本帖最后由 阴阳师元素祭祀 于 2020-8-11 15:04 编辑
iMoonDay 发表于 2020-8-11 14:58
那如果execute后面接好多个if data entity的话,和execute if entity相比哪个更好些?


应该都一样
毕竟优化怎么样都看mojang那边 (确信)

看if data entity 和if entity 后面选择器怎么写
如果非要说哪个好
对于写这些命令的人
越短越好吧(?)




Jokey_钥匙
一样
data的作用是返回数据个数

iMoonDay
阴阳师元素祭祀 发表于 2020-8-11 15:03

应该都一样
毕竟优化怎么样都看mojang那边 (确信)

我好像听说if entity @e[nbt={...}]他要解析nbt再对比,会不会比if data entity @e更慢点?

⊙u⊙
本帖最后由 ⊙u⊙ 于 2020-8-10 21:48 编辑
iMoonDay 发表于 2020-8-10 21:11
我好像听说if entity @e[nbt={...}]他要解析nbt再对比,会不会比if data entity @e更慢点? ...

if data可以只检测路径是否存在,少一个值的检测与对比

多条if data的话只要有一条不满足后面的就不会继续检测

解析所以是会慢那么一点,就一点...

第一页 上一页 下一页 最后一页