minecraft吧 关注:2,533,999贴子:31,703,386
  • 20回复贴,共1

[不懂就问]关于type和实体标签

只看楼主收藏回复

MC现在真是一代版本一代神......因故退坑一年之后回坑在网易玩1.11.2的原版,鼓捣着命令方块就想起了困扰我很久的有关实体标签的问题,我知道这里的大佬什么都懂,希望有大佬帮我解答。

就以我正在研究的苦力怕为例(如果有输入错误请指出并原谅我,我背不住),在命令方块中输入summon Creeper ~ ~1 ~ {powered:1}就能召唤高压苦力怕。
但是

用testfor和execute这两个指令的时候同样的原理就不好用了,我进行过以下尝试:
testfor @e[type=Creeper] ~ ~ ~,这个时候可以正常检测苦力怕;
testfor @e[type=Creeper,{powered:0}] ~ ~ ~,无法检测苦力怕;
testfor @e[type=Creeper] {powered:0 }~ ~ ~,无法检测苦力怕;
testfor @e[type=Creeper] ~ ~ ~ {powered:0},无法检测苦力怕;
testfor @e[type=Creeper:0] ~ ~ ~,无法检测;
testfor @e[type=Creeper_0] ~ ~ ~,无法检测。

我想做的效果是检测到苦力怕就进行一次雷击把它变成高压,然而每次都是狂雷乱舞直接劈死。
所以就想问一下,像苦力怕这种,普通苦力怕和高压苦力怕的实体标签相同的实体,应该如何区别检验呢?如何在和type有关的选择中设置呢?


IP属地:辽宁来自Android客户端1楼2018-01-31 00:09回复
    (ؔᶿ̷⌔ؔᶿ̷)自顶


    IP属地:辽宁来自Android客户端2楼2018-01-31 08:36
    回复
      我觉得你可以考虑直接用entitydata改?不用闪电= =


      来自Android客户端3楼2018-01-31 12:15
      收起回复
        NBT是要写在中括号外面的


        IP属地:河南来自iPhone客户端4楼2018-01-31 12:45
        收起回复
          emmm 昨天来看看不懂,今天上游戏测试了下,testfor去掉波浪号
          testfor的格式为testfor 目标选择器 数据标签
          并且powered结尾必须加上b,否则无法识别
          正确的探测指令应为:testfor @e[type=Creeper] {powered:0b}


          IP属地:广东来自Android客户端5楼2018-01-31 20:58
          收起回复
            这样的话会导致
            生成第一只爬行者,劈一下,高压;
            如果这时再连续生成(不是同时)多只爬行者,那么会直接把第一只劈死。
            我的建议是,采用记分版
            先/scoreboard objectives add power(这个名字可以自己改) dummy
            然后循环/scoreboard players set @e[type=Creeper] power(要和上面的变量名一样) 1 {powered:0b}
            最后循环/execute @e[type=Creeper,score_power_min=1] ~ ~ ~ summon LightningBolt(闪电的实体id,不记得了) ~ ~ ~即可


            IP属地:广东来自Android客户端6楼2018-01-31 22:47
            收起回复
              scoreboard players tag @e[type=Creeper] add 标签名 {powered:0b}


              IP属地:浙江来自Android客户端7楼2018-02-01 13:02
              收起回复