本帖最后由 Goance 于 2021-4-4 20:40 编辑 
 scoreboard objectives add hurt minecraft.custom:minecraft.damage_dealt
scoreboard objectives add hurt minecraft.custom:minecraft.damage_dealt
 /give @s diamond_sword{ice:1b}
/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
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
scroebroad players set hurt 0
 execute as @e[tag=ice] run data merge entity @s {NoAI:1b,Invulnerable:1b}
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 ice keep
 execute at @e[tag=ice] run fill ~-1 ~ ~-1 ~1 ~2 ~1 air destroy
execute at @e[tag=ice] run fill ~-1 ~ ~-1 ~1 ~2 ~1 air destroy
 kill @e[tag=ice]
kill @e[tag=ice]
这串指令最后那两个无论什么顺序,只会执行一个
而且如果我把kill换成say 1也不行
但是如果把kill放到填充空气前,再把kill换成say 1这串就能成功运行
总的来说就是填充空气指令后的指令一直运行不了
而如果把kill放在填充空气前
那么填充空气也运行不了
我把填充冰块后的指令换成放置红石块
再用这个红石块去填充空气,也执行不了
【ps:有什么能让指令延迟执行的命令吗】
 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
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这串指令最后那两个无论什么顺序,只会执行一个
而且如果我把kill换成say 1也不行
但是如果把kill放到填充空气前,再把kill换成say 1这串就能成功运行
总的来说就是填充空气指令后的指令一直运行不了
而如果把kill放在填充空气前
那么填充空气也运行不了
我把填充冰块后的指令换成放置红石块
再用这个红石块去填充空气,也执行不了
【ps:有什么能让指令延迟执行的命令吗】
应该是倒数第二条执行失败
延时建议用放置红石快➕中续器
延时建议用放置红石快➕中续器
jason_sun 发表于 2021-4-4 22:38
应该是倒数第二条执行失败
延时建议用放置红石快➕中续器
执行失败...什么意思?
Goance 发表于 2021-4-4 23:10
执行失败...什么意思?
这种命令方块如果没有被成功执行,是不会激活下一个方块的
你试试把它改成
 这样试试行不行
这样试试行不行尸先peng 发表于 2021-4-5 03:28
这种命令方块如果没有被成功执行,是不会激活下一个方块的
你试试把它改成{:ch ...
em...就算已经成功执行了,下一个kill指令也执行不了
【我觉得跟这个没关系吧】
Goance 发表于 2021-4-5 09:17
**** 作者被禁止或删除 内容自动屏蔽 ****
那可能就是经典bug了,尝试把问题命令方块撸掉重放
(你发个命令方块截图过来看看)
 本帖最后由 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
试试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
执行失败,有可能目标方块就是空气
执行失败,有可能目标方块就是空气
你用的是条件命令方块,前一个命令方块必须执行成功才会执行
setblock ... destroy永远执行失败,无论是否有方块
我看了下你的指令
这个应该不加条件执行也是可以的
指令延迟用/schedule,但是schedule有限制条件,所有的as和at在schedule上会失效
setblock ... destroy永远执行失败,无论是否有方块
我看了下你的指令
这个应该不加条件执行也是可以的
指令延迟用/schedule,但是schedule有限制条件,所有的as和at在schedule上会失效
让命令方块延迟执行,用红石也能实现,不一定要指令。放置一个循环命令方块,通过/testfor不断检测有没有tag=ice的实体,然后在这个命令方块后放置一个比较器和一个中继器,中继器后连接脉冲命令方块,输入/kill的那个指令。中继器的延时根据需求自己调
 本帖最后由 一起抗熊 于 2021-7-26 10:11 编辑 
我实在不懂我说的这句话怎么挖坟了。我说的kill指的是kill @e[tag=ice],楼主不是说这条指令执行不了吗?难不成版主以为是kill @e了
一起抗熊 发表于 2021-7-26 06:05
让命令方块延迟执行,用红石也能实现,不一定要指令。放置一个循环命令方块,通过/testfor不断检测有没有ta ...
我实在不懂我说的这句话怎么挖坟了。我说的kill指的是kill @e[tag=ice],楼主不是说这条指令执行不了吗?难不成版主以为是kill @e了
