minecraft_hyr
本帖最后由 minecraft_hyr 于 2023-12-25 21:09 编辑

(注:编辑过程中出现问题,请之后再来浏览本文。)


以下方法并不适用于全部情况,请依实际情况选择优化方式。


使用type参数限制@e的实体类型
例:在所有物品(实体)竹子和橡树树苗处显示绿色粒子
优化前:
@e[nbt={Item:{id:"minecraft:bamboo"}}] at @s run particle minecraft:dust 0 1 0 1 ~ ~ ~ 0 0 0 0 1 force @aexecute as @e[nbt={Item:{id:"minecraft:bamboo"}}] at @s run particle minecraft:dust 0 1 0 1 ~ ~ ~ 0 0 0 0 1 force @a复制代码优化后:
execute as @e[type=item,nbt={Item:{id:"minecraft:bamboo"}}] at @s run particle minecraft:dust 0 1 0 1 ~ ~ ~ 0 0 0 0 1 force @aexecute as @e[type=item,nbt={Item:{id:"minecraft:bamboo"}}] at @s run particle minecraft:dust 0 1 0 1 ~ ~ ~ 0 0 0 0 1 force @a复制代码




如果需要在相同类型实体上执行多次命令,请只选中一次,然后把命令放到一个函数(function)里执行



减少检查频率

使用/tag命令对实体进行标记
例:
example:2t
execute as @e[type=item,tag=!example.checked] run function example:checkexecute at @e[type=item,tag=example.target,predicate=example:test] run particle minecraft:dust 0 1 0 1 ~ ~ ~ 1 0 0 0 1 force @a复制代码
example:check

execute if data entity @s Item{id:"minecraft:bamboo"} run tag @s add example.targetexecute if data entity @s Item{id:"minecraft:oak_sapling"} run tag @s add example.target
tag @s add example.checked复制代码



使用谓词(predicate)进行对实体的检测,使用进度对玩家进行检测

使用distance参数筛选离玩家近的实体

将需要一定量操作的NBT放到命令存储(storage)里再操作


避免多次选择

WIP

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