Goance
本帖最后由 Goance 于 2021-4-4 20:40 编辑

scoreboard objectives add hurt minecraft.custom:minecraft.damage_dealt
/give @s diamond_sword{ice:1b}
execute as @a[scores={hurt=1..}] if data entity @s SelectedItem.tag{ice:1b} at @s run tag @e[type=!player,sort=nearest,limit=1] add ice
scroebroad players set hurt 0
execute as @e[tag=ice] run data merge entity @s {NoAI:1b,Invulnerable:1b}
execute at @e[tag=ice] run fill ~-1 ~ ~-1 ~1 ~2 ~1 ice keep
execute at @e[tag=ice] run fill ~-1 ~ ~-1 ~1 ~2 ~1 air destroy
kill @e[tag=ice]

这串指令最后那两个无论什么顺序,只会执行一个
而且如果我把kill换成say 1也不行
但是如果把kill放到填充空气前,再把kill换成say 1这串就能成功运行

总的来说就是填充空气指令后的指令一直运行不了
而如果把kill放在填充空气前
那么填充空气也运行不了

我把填充冰块后的指令换成放置红石块
再用这个红石块去填充空气,也执行不了


【ps:有什么能让指令延迟执行的命令吗】












jason_sun
应该是倒数第二条执行失败

延时建议用放置红石快➕中续器

Goance
jason_sun 发表于 2021-4-4 22:38
应该是倒数第二条执行失败

延时建议用放置红石快➕中续器

执行失败...什么意思?

尸先peng
Goance 发表于 2021-4-4 23:10
执行失败...什么意思?


这种命令方块如果没有被成功执行,是不会激活下一个方块的
你试试把它改成这样试试行不行

Goance
尸先peng 发表于 2021-4-5 03:28
这种命令方块如果没有被成功执行,是不会激活下一个方块的
你试试把它改成{:ch ...

em...就算已经成功执行了,下一个kill指令也执行不了
【我觉得跟这个没关系吧】

尸先peng
Goance 发表于 2021-4-5 09:17
**** 作者被禁止或删除 内容自动屏蔽 ****


那可能就是经典bug了,尝试把问题命令方块撸掉重放
(你发个命令方块截图过来看看)

勾安肆
尸先peng 发表于 2021-4-5 11:55
那可能就是经典bug了,尝试把问题命令方块撸掉重放
(你发个命令方块截图过来看看) ...


Helloworld!MC
本帖最后由 Helloworld!MC 于 2021-4-6 04:42 编辑

试试kill前面也加上execute这串
感觉是提前清除tag=ice实体了

延迟执行cb
个人一般都是setblock x y z redstone_block
x y-1 z处放一个方块setblock x y z air
x y z 水平方向放中继器延时,末端放延迟执行的cb

夺命小聋瞎
execute at @e[tag=ice] run fill ~-1 ~ ~-1 ~1 ~2 ~1 air destroy
执行失败,有可能目标方块就是空气

Cold-Pot
你用的是条件命令方块,前一个命令方块必须执行成功才会执行
setblock ... destroy永远执行失败,无论是否有方块
我看了下你的指令
这个应该不加条件执行也是可以的


指令延迟用/schedule,但是schedule有限制条件,所有的as和at在schedule上会失效

一起抗熊
让命令方块延迟执行,用红石也能实现,不一定要指令。放置一个循环命令方块,通过/testfor不断检测有没有tag=ice的实体,然后在这个命令方块后放置一个比较器和一个中继器,中继器后连接脉冲命令方块,输入/kill的那个指令。中继器的延时根据需求自己调

一起抗熊
本帖最后由 一起抗熊 于 2021-7-26 10:11 编辑
一起抗熊 发表于 2021-7-26 06:05
让命令方块延迟执行,用红石也能实现,不一定要指令。放置一个循环命令方块,通过/testfor不断检测有没有ta ...

我实在不懂我说的这句话怎么挖坟了。我说的kill指的是kill @e[tag=ice],楼主不是说这条指令执行不了吗?难不成版主以为是kill @e了