我的世界选择器操作员,为什么不能使用选择器,它说我没有 选择器扩展权限

当前位置:
下面小编为大家解析一下选择器的附加参数是什么,相信不少的玩家都不了解,不过命令方块还是有不少的中高级玩家的,不会的玩家请往下看! 选择器(selector) 是一个可以用于指定一些特定条件的玩家的玩家ID代替品,不同的选择器可以选中不同的玩家(或生物
编辑:铅笔发布时间: 11:00
  下面小编为大家解析一下选择器的附加参数是什么,相信不少的玩家都不了解,不过命令方块还是有不少的中高级玩家的,不会的玩家请往下看!
  选择器(selector) 是一个可以用于指定一些特定条件的玩家的玩家ID代替品,不同的选择器可以选中不同的玩家(或生物),而且如果加上一些设置(比如经验值是5),便可以更精准地锁定你所要的玩家。这无论是在单机RPG地图中,还是服务器活动中,都应用地十分广泛。使用选择器,你就不需要再为不同用户要同用一套指令构成的电路而烦恼,而是可以选择所有使用你存档的玩家,甚至可以设置条件限制以符合RPG剧情或服务器活动的特定玩家要求。
:这可真是个好东西啊,但是这长什么样呢?
:是这样的:
  选择器作用
  @p选择距离这个指令方块最近的玩家
  @a选择所有玩家
  @r随机选择一个玩家
  @e所有实体(通常需要指定生物类型)
:我看不懂咋办?
:这个嘛&&我演示给你看吧~
  选择器@p的使用效果:
(音符盒是指令方块)
  此时将选中Notch
  选择器@a的使用效果:
(音符盒是指令方块)
  此时Steve和Notch都能给选上
  选择器@r的使用效果:
(音符盒是指令方块)
  此时Steve和Notch都有可能选上
  选择器@e的使用效果:
(音符盒是指令方块)
  此时所有生物都能给选上
:接下来是&&
:我知道我知道,叫条件限制参数!
:你真聪明,那我们现在就开讲吧~
  可用的条件限制参数列表:
  名称用途
  x或y或z确定其他参数的执行坐标中心,通常是给半径用的圆心
  r或rm半径(加m是大于此值,不加是小于此值,两者可同时存在)
  m所选玩家的游戏模式*(对其他生物无效)
  c选择指定数量的目标**
  l或lm经验等级(加m是大于等于此值,不加是小于等于此值,两者可同时存在)
  team选中在此队伍的玩家***
  name选择名字叫此的生物(除了玩家名,如果其他生物甚至是实体也有自己的名字,这也能用得上,包括用命名牌弄的名字也可以)
  rx或rxm此生物头从上往下的角度值,范围为头顶(-90)至地下(90),这可以用于确定玩家是朝天上望还是朝地下望(加m是大于等于此值,不加是小于等于此值,两者可同时存在)
  ry或rym此生物头望的是哪个方向,范围为正北(-180)、正东(-90)、正南(0)、正北偏西一点点(179.9)、最后回到正北(-180)。这可以用于确定玩家是朝向哪个方向(加m是大于等于此值,不加是小于等于此值,两者可同时存在)
  dx或dy或dz选择一个立方体选择阵列,其选中的位置是从之前定义好的x、y、z开始,从x延伸dx格,从y延伸dy格,从z延伸dz格,dx、dy、dz可以为负数(朝相反方向延伸)(三者可同时存在)
  type这个实体的类型(如Zombie,Cerrper)
  score_name选定叫name 的分数没有超过所指定的值的生物
  score_name_min选定叫name 的分数没有小于所指定的值的生物
  *-1为所有游戏模式,0为生存模式,1为创造模式,2为冒险模式,3为旁观者模式
  **如果为正数,那么就选择这个数的个数的玩家,而顺序是从命令方块这里开始由近到远;如果为负数,仍然能选择,但是个数是其相反数(小学生请自行百度&相反数&),而顺序恰好相反,从最远处一直到最近
  ***这里的队伍不是ESS插件的队伍,而是scoreboard指令创建的队伍,相当于原版中实现队伍的机制,详情请查阅@PotatoMaster101 的资料
:真多啊,可是怎么用啊?
:是这样用的:
  /指令名称 @r/p/a/e[参数名=数字,参数名=数字,参数名=数字&&&&&&] (指令的其他参数&&&&&&)
:还是不懂
:那举些例子把
  将名字叫MCBBS 的给传送到指令方块那里:
  /tp @e[type=Cow,name=MCBBS] ~ ~+1 ~
  (第二个~后加上+1的意义是为了防止牛传过来后因为正好生成在指令方块里头而闷死,往上一个就不会出这个问题)
  给最近的一名红队玩家一组钻石:
  /give @p[team:Red] :diamond 64 0
经营许可证:皖ICP备号-1,QQ:1104747 、5633249《我的世界》网易版1.12使用指令大全详细介绍
《我的世界》1.8.3版中的指令又有了进一步的更新,很多玩家都对.8.3版指令大全不是很了解,下面小编就为大家带来我的世界1.8.3版指令大全,包括所有47条我的世界指令代码大全,希望对各位玩家有所帮助。实体相关1.summon指令(即将列表格)比较常用的指令,用来召唤出生物。summon指令跟刷怪蛋不同,它可以给刷出的实体附加不同的效果。注意啦,生物与实体是不同的,生物时类似于僵尸、骷髅这样的生物,而实体是除了固定的方块以外所有的东西(类似于经验球,掉落物品等等)。具体格式为:summon生物英语名称坐标 {数据标签}举个例子,比如生成一个村民僵尸:summon Zombie ~ ~1 ~ {IsVillager:1}IsVillager:1是数据标签,下面会解释到。~ ~1 ~是推荐使用的坐标,意为在命令方块上面一格处生成某个实体(y走向),如果填上~ ~-1 ~便会在命令方块下方1格生成实体。波浪号的数字不同方向也不同,比如~1 ~ ~是东边一格(x走向),~ ~ ~1是北边一格(z走向),summon这个指令,不像刷怪蛋,刷怪蛋是随机生成,比如僵尸刷怪蛋,会生成大僵尸,小僵尸,穿装备的僵尸,甚至鸡骑士等。而summon只会生成特定的僵尸,如果不加任何数据标签默认为普通的僵尸。CustomName与CustomNameVisible:常用的数据标签比如CustomName,运用这个数据标签可以给怪物起名字,亦可用在区分不同的怪物来执行不同的命令。效果跟命名牌类似,但没有防止怪物和玩家距离远时消失的效果(PersistenceRequired标签负责此作用)。(有人说1.7的CustomName用完后即使不看着那个生物依然会显示生物的名称,而1.8则不会,实际上1.8需要在后面加上CustomNameVisible:1才可以起到这个效果)比如summon Creeper ~ ~2 ~ {CustomName:bomb,CustomNameVisible:1}就会在命令方块上两格生成一只名为“bomb&、不用看生物便会显示名称标签的苦力怕。Attributes:比较常用的数据标签还有Attributes标签,这个标签是用来给怪物修改属性,它可以给怪物添加各种各样的属性,一般连用的有Name(注意:这里和CustomName不同,Name只是几个特定的数据名称)比如/summon Creeper ~ ~1 ~ {Attributes:[{Name:generic.maxHealth,Base:0}]}Name处填写的是属性名称,Base处填写的是数据,当数量越大改变的能力也越大。以下是任何怪物都可以用的普遍修改属性的数据标签(PS:尽量填写小数适用于生存,当然创造在特定需求下当然非常推荐填写适合的数)。generic.maxHealth血量,任何血量都可以,只是太大的数容易造成卡机现象。generic.movementSpeed速度属性。尽量填小数,否则就像瞬移一样。比如僵尸,0.3就是偏快的速度。generic.attackDamage攻击力,也尽量填小的数,否则容易被秒杀。不建议在生存里填写太大的数字。generic.followRange探测范围,给怪物最好填小数,否则怪物容易一直追杀自己的目标。填的越高侦测范围越远。generic.knockbackResistance防击退效果,填写数越高击退效果越不明显。可以和&击退&附魔效果互相抵消。generic意为普遍的,所有生物都可以使用,而不加generic的数据标签仅仅只有一些特定的生物可以用、HealF:上面那条指令意为召唤出1只0血的苦力怕,也就是召唤后便会死亡。在Base处更改数字即为血量。(谢谢chyx指出错误)HealF和maxHealth不同,Healf是当前血量,而maxHealth是血量上限,也就是说,当HealF比maxHealth小时,生物的血量并不是满的)0血还有另一种形式,比如/summon Creeper ~ ~1 ~ {HealF:0}即可。这个方法可以用在特殊的地方,比如不小心把末地的出口打没了(创造),召唤满血末影龙嫌麻烦,那就直接召唤0血末影龙即可。(每只末影龙死了之后都会出现出口)上面的Creeper可以改成其他的生物。ActiveEffects:生物生成可以自带药水属性,而并不用自己来投掷药水来给予怪物。基本格式为summon实体名称坐标 {ActiveEffects:[{Id:药水代码,Duration:药水时间}]}和effect性质相同,具体可以看effect。它们都可以隐藏粒子效果,比如summon EntityHorse ~ ~1 ~ {CustomName:number1,Tame:1,Saddle:1,Type:0,ActiveEffects:[{Id:1,Duration:,ShowParticles:0b}]}就会刷出一只带有迅捷属性却看不见药水粒子效果的马(其他NBT请看下方生物数据标签)Equipment:之前说过,如果不加NBT使用summon刷出的生物不会附带任何属性,比如刷出僵尸村民等等或者带装备的僵尸。用Equipment可生物加上装备。基本格式为summon实体名称坐标 {Equipment:[{id:武器名称/物品名称,Count:数量},{id:靴子名称,Count:数量},{id:腿甲名称,Count:数量},{id:胸甲名称,Count:数量},{id:头盔名称,Count:数量}]}这五个空都是和装备种类都是对应,需要注意。Count处填写数量,当掉落对应物品时,也会掉落相应数量的物品。小bug:当使用像summon Zombie ~ ~1 ~ {Equipment:[{},{id:golden_helmet,Count:5},{},{},{}]}类似的指令时,虽然写的是金头盔,但是玩家看到的僵尸却是僵尸穿着金靴子,当杀死僵尸时掉落的却是五个金头盔。所以名义上虽然是金靴子,但是实际上还是金头盔。NoAI:NoAI是一种给生物添加一种属性的标签。如果生物后加上NoAI标签,这个生物就会变成“傀儡”,生物会悬空,并且如果没有特殊状态(比如末影人受到伤害瞬移)的话将不会再动弹。一般可以配合隐身的生物来做一种外观上虽然是某种生物,但是实质却是另一种生物的效果。具体使用方法为在数据标签处加上NoAI:1。Riding:Riding是用来生成叠加生物的。使用这个指令可以使生物骑着生物(就像鸡骑士等等)。基本格式为summon生物名称坐标 {Riding:{id:生物名称}}注意,一定要两个括号。少一个便不会触发指令。前者是骑生物者,而后者id是被骑者。比如summon Zombie ~ ~1 ~ {Riding:{id:Slime}}便会刷出一只骑着史莱姆的僵尸。当然,Riding可以无线叠加,比如summon Villager ~ ~1 ~ {Riding:{id:Villager,Riding:{id:Villager,Riding:{id:Villager,Riding:{id:Villager,Riding:{id:Villager}}}}}}每多加一个生物,就要多一个Riding和括号。一定要注意,多加的Riding要填进另一个Riding括号里头。效果图片:如果不是特定组合(鸡骑士等),骑在上面的生物没有控制被骑生物的权利。2.kill指令mc中最常用的指令之一。在1.8之前,这个指令本是用来自杀。如果只输入/kill则会起到自杀的效果。在1.8之前也适用,一般先关掉Inventory(死亡掉落)在使用这个指令。现在1.8之后,这个指令用处就变得大多了。它不仅可以用来杀死玩家,还可以用来杀死实体。基本格式为kill选择器/玩家数据标签如果要杀死特定的玩家,比如要杀死一个名为“End-Enderman”的玩家,那就用kill End-Enderman即可做到杀死一个特定玩家的效果。1.8后选择器多了@e这个选项,可以起到给所有实体执行一些命令的效果。比如kill @e可以清除所有除了方块以外的东西(提醒:这个指令一定要慎用,它会杀死一切的实体,尤其是不能高频这个指令,不然会对存档/服务器造成毁灭性的打击,所以一定要注意)kill这个东西可以做到杀死一切实体的效果,所以在做一些实用的东西时(比如原版做出凋零骷髅刷怪蛋,之前需要先弄一个替死的)会派上很大的用场。kill和testfor等指令加上的标签一样,可以加上type和name系列的标签。基本格式为kill @e[type=实体种类,name=实体姓名]比如我们要杀死一只名为ZombieKing的僵尸,那么在实体种类处填写Zombie(注意大小写,不小心杀错了可就坏事了,因为kill @e系列的指令千万不能疏忽,尤其是在高频的时候,一旦出错后果不堪设想),name处填写名称(可以用命名牌、CustomName、铁砧或者用刷怪蛋出来自带的姓名等等,这个如果不甚填错不用担心,顶多也就杀错怪,如果没有的话不会杀死任何实体)。一切实体都可以起名字(比如射出去的箭,如果不用summon也可以用entitydata),所以这一点是很方便的。只要实体种类处填对,就能清除许许多多的你认为碍事的东西。小到经验球(XPOrb)、掉落物(Item),大到玩家,生物,做冒险机关跑酷解密什么的都是很适合的一个指令。只是再一次提醒,一般档被毁不少都是因为这个而引起的。高频kill @e可是比高频tp更进了一个档次...所以请谨慎行事。珍惜生命,学好指令。3.effect指令此指令用于给玩家附加药水效果。激活后是直接加在玩家身上的。基本格式为effect玩家名称药水效果药水持续时间药水等级粒子效果药水效果填写药水的名称。而持续时间和等级分别填写数字,比如effect @a poison 10 0这会给玩家10秒的1级中毒效果。而粒子效果处要填写true或者false,如果填写true便会隐藏药水的粒子效果。比如effect @a regeneration 20 5 true当然,玩家可以随时改变时间和药水等级,比如说这条指令effect @a speed
true这会给玩家一个255等级,药水效果时间将近3个小时并且不会显示粒子的速度效果。不过这种指令一定要慎用,一般某些东西不是等级越高就越好,比如速度,甚至会移动到未加载区域。所以要慎用。还有一种模式,用于清除玩家所有药水效果(就像牛奶),基本格式为effect玩家名称 clear另外effect也可以给实体添加效果,比如effect @e 12 123这会给全体添加防火效果123秒(不填写等级默认1级)在某些情况下effect不推荐泛滥使用,否则容易对玩家造成一些影响。4.tp指令比较常用的指令,常用于传送玩家。用这个方法可以将玩家或者实体瞬间传送到指定的地方(瞬移)。基本格式为tp坐标处玩家比如坐标处填写1,2,3,那么玩家就会被传送到这个地点。也可以用选择器,比如用@a就是将所有玩家传送到一个地点。如果不指定坐标那么就会传送到指定玩家处,基本格式为tp玩家/选择器单人游戏自然这个指令没有太大的用处,使用之后玩家屏幕视角只会略微动一下。指定某个玩家时,玩家就会传送到某个玩家处。我们假设一个玩家为a,另一个玩家为b。假如使用/tp a假如b玩家使用了这个指令,那么b玩家就会传送到a玩家的坐标处。如果b玩家用的是tp b则会变成只会动一下视角的效果。注意:tp @a似乎只能在聊天框使用,命令方块会无效。如果想tp实体,那么只能用选择器。因为实体名直接在命令方块填写会无效。比如把玩家所在世界的所有苦力怕向上100格,那就用tp @e[type=Creeper] ~ ~100 ~如不填写坐标,那就是把玩家传送到随机一个苦力怕的位置。也可以把一个实体传送到另一个实体的坐标上,比如tp @e[name=a] @e[name=b]意为将一个名字为a的生物传送到b的坐标处。建议最好不要高频tp,因为高频tp毁档的事情已经不少见了....5.spreadplayers指令(建议先学会有关于区域的指令再来学习此指令,如clone,testforblock等,初期不好理解)用于将玩家随机扩散在指定的区域内(也就是随机传送到指定区域的某个地方)。基本格式为spreadplayers扩散中心点坐标扩散最小半径扩散最大半径整个队伍/单个玩家玩家名/选择器扩散中心点坐标填写x和z。y是默认的,所以不用添加。之后后面扩散都会按照这个点来进行区域扩散,所以一定要慎重填写,不要误把z填写成y,否则如果记不住坐标可能就再也找不到原来的地方了。。而扩散最大半径和扩散最小半径就有些不一样了。两个地方都填写数字。spreadplayers是按照正方形进行扩散(有人说是圆形,但是并不是这样),比如填写0,1,意为在中心点处随机扩散到中心点半径1格的地方,也就是一圈。如图,假设红石火把是中心点,那么如果扩散半径分别是0,1,那么就会随机扩散到包括中心点在内的9个坐标处。以此类推,不管怎么用最后都会按照指定的中心点来进行扩散。如果要一个队伍的玩家全部在根据中心点扩散,那么在整个队伍/单个玩家处填写true,这样这个队伍的所有玩家都会随机扩散到指定区域。反之,单个玩家就填写false。(队伍可以看计分板teams栏)虽然spreadplayers看似是作用于玩家,但是实体依然可以在spreadplayers使用。比如将所有的僵尸全部以某个中心点扩散到附近区域来。即使是实体,聊天栏依然会显示是玩家扩散而不是实体扩散。6.entitydata指令此指令用于替换现存实体的数据标签。和blockdata需要区分的是,此指令是替换实体的数据标签,而后者是替换方块的数据标签。基本格式为entitydata实体名称实体NBT标签实体NBT可以看summon(目前只编写了生物的,实体的敬请期待)。实体名称需要用选择器来掌握。(目前不能用entitydata对玩家执行操作)任何实体NBT标签包括一些只有entitydata才能使用的标签(比如HurtBy,LifeTime等等)。比如我们把现存的所有苦力怕都瞬间爆炸,用entitydata @e[type=Creeper] {ignited:1}即可做到这种效果。和summon不同的是,两个括号之间用不着加东西。如果想再添加一项NBT,比如使用entitydata @e[type=Creeper] {ignited:1,Fuse:0}使用之后还会附加让苦力怕瞬爆,以此类推。(可以用name=xxx指定特定的生物)另外,entitydata在使用某些指令时或者直接加在实体名称处时需要用的UUID(HurtBy等等,summon有讲解)。因为entitydata目前不能指定玩家,除了用选择器的方式还可以把UUID填写至实体名称处(看UUID方式可以看execute)。比如entitydata a5b84cfe--c776d8d20 {ignited:1,Fuse:0}(每个生物UUID都不相同,所以这个指令你使用是无效的,请把上面一串数字字母代码替换成要执行生物的UUID)7.blockdata指令这个指令用于改变现存方块存有的NBT。需要和entitydata区分开来,前者是替换方块的数据标签,后者是替换实体的数据标签。基本格式为blockdata需要改变的方块坐标方块数据标签坐标一定要掌握好,不然就会提示“目标方块没有持有数据”。每个方块都有自己特殊的数据标签(当give处的物品数据标签更新好了之后请见give处)。比如改变一个坐标处的命令方块里的命令,那就用blockdata x y z {Command:&xxx&}一般用于更改漏斗、发射器等NBT,比如将命令方块上的箱子的第一格变为命令方块,用blockdata ~ ~1 ~ {Items:[{id:&minecraft:command_block&,Damage:0s,Slot:0,Count:1b}]}即可。有时可以用高频来不断地执行命令,比如不停的变换物品就可以起到做一个机关的效果。因为setblock放置方块时会有放置方块的声音,所以用这个指令可以做到很隐蔽的效果(先把commandBlockOutput关掉)。物品相关1.give指令give是比较常用的一个指令。最初用到命令方块都必须要用过这个指令。最基本的形式是/give玩家名数据标签1.7(或者更低版本)的形式为/give玩家名方块代码比如/give @p 137就是给予玩家一个命令方块。/give @a minecraft:command_block是目前比较通用的一种。可以在游戏中按F3+h来查看英文名称。还有一种形式,具体为/give @a minecraft:command_block 1 0前面的数字1是给予玩家物品的数量,意为“给予玩家一个命令方块”,后面的0是损伤值。(1.8通用)这个方法是用于区分某些物品,比如刷怪蛋(spawn_egg)有许多的种类,就要用到不同的损伤值。按下F3+h也可以查看损伤值。其次,跟give配合、给物品加上一系列数据比较贴切的就是display指令。它可以为给予的物品增加许多的特效。比如Name标签,举个例子:/give @p experience_bottle 1 0 {display:{Name:&xxx&}}使用这个指令就会得到一个不同名字的附魔之瓶。不同名字的物品会有不同的name标签(名称),以后可以用到各种指令的name标签处。xxx处填写你想要的名称。比如&燃烧瓶&,出来的效果为和Lore标签不同的是,当持有这个带有特殊标签(或者直接用铁砧)的东西时,不需要在物品栏里便能看到。还有比较常用的ench附魔标签,比如give @p minecraft:spawn_egg 1 50 {display:{Name:&xxx&},ench:[{id:附魔编号,lvl:等级}]}就能给予玩家一个带附魔特效的苦力怕蛋。第一个id是附魔编号,而第二个lvl是等级,效果随着等级的变化而变化。以及可以添加文字效果的Lore指令:give @p minecraft:diamond_sword 1 0 {display:{Name:&名字&,Lore:[&说明&]}}使用这个指令就可以给予玩家附加一个文字说明的钻石剑。“说明”处填写你想加的文字,比如在说明处加上“专打僵尸剑”,说明就会变成说明处的文字。如图:只不过跟名字不同,拿着被附加文字的物品是无法直接看到文字的,在物品栏里才能看到。顺便说下按下F3+h后的形式(再按一遍可取消):注:现在1.8版本已经将give的方块代码形式删除了,但是其他(例如附魔id,或者其他指令)的指令并没有影响。像类似直接添加数字代码的(give @p 137)1.8版本以上的已经没有用了,还请注意。上面的是give的基本指令,而不同的方块拥有不同的数据标签。方块nbt请看这里2.clear指令此指令用于清除玩家身上的物品。基本格式为clear玩家名物品名损伤值数量物品数据标签除了开头的clear以外,其余的都可以省略掉。玩家名填写选择器或者玩家名称,物品名填写物品名称,损伤值和数量详请看give指令。物品数据标签可以填写自己本身的标签,比如箱子的Item,附魔武器的ench等等。(注意,和give相反,前面是损伤,后面是数量,看好了再清除)如果在聊天框单单输入/clear的话,执行命令的玩家将会被清除所有物品。有keepInventory也会被强制执行。举个例子,比如清除所有玩家的钻石,用clear @a diamond即可。钥匙清除所有玩家的花岗岩,那就需要用clear @a stone 1建议填上损伤值,不然假如不填写上面的1就会清除所有有关于石头类型的物品。数据标签一般填写方块本身的数据标签,比如clear @a command_block 0 1 {BlockEntityTag:{Command:&1&}}就会清除一个命令方块里的命令为“1”的命令方块。如果玩家持有两个或者两个以上并不会全部消除。(注意:填写数量-1也会清除所有该物品)clear指令虽然用处很大,但是一定要慎用,避免造成一些麻烦。3.enchant指令用于给玩家的武器附魔。具体格式为enchant玩家名称附魔代码附魔等级enchant目前只能给玩家附魔。而且只能附魔玩家正在拿着的武器。比如enchant @a 16 1如果玩家手里拿着的是剑系列武器,那么就会给手里拿着的剑附加锋利属性。不适合此武器的附魔属性不会附在武器上。和give不同的是,enchant用不着{id:xxx,lvl:xxx}的形式来执行附魔。4.replaceitem指令用于给现存的实体替换装备或者给现存的方块替换物品。现存的方块包括所有带有物品栏的方块(如箱子等)。基本格式为replaceitem模式方块坐标/选择器格子数据物品名称数据值物品数据标签replaceitem共有两种模式,分别是block以及entity。block是用于替换方块的物品,而entity用来替换实体的物品。坐标和选择器分别是block和entity的需求。格子数据是replaceitem特有的各自数据标签。其余的和give相同。entity:基本格式为replaceitem entity格子数据物品名称数据值物品数据标签任何生物都有格子数据,比如僵尸利用slot.weapon可以给僵尸全部带上武器(就像entitydata+Equipment)。共有slot.weapon(武器栏)、slot.inventory(玩家背包/容器栏,需要指定,格子为0-26)、slot.armor.head(实体头)、slot.armor.chest(实体胸甲)、slot.armor.legs(实体腿)、slot.armor.feet(实体脚)、slot.enderchest(末影箱格子,需要指定,格子为0-26)、slot.hotbar(玩家物品快捷栏,需要指定,格子为0-8)、slot.villager(村民背包栏,需要指定,格子数为0-7)、slot.horse.chest(驴/骡箱子,需要指定,如果指定普通的马会失败,格子为2-16)、slot.horse.saddle(马鞍栏)、slot.horse.armor(马甲栏)上面的格子数据需要有些数据需要制定,要指定玩家的格子数,后面都要加一个“.格子数”,比如replaceitem entity @e[type=Player] slot.inventory.21 command_block这会将玩家的背包栏的第22格替换为命令方块(0是第一格,所以要往后数一格)。其他需要指定格子数的也按照这种格式即可。在类似于马鞍这样的格子数据,只能用minecraft:saddle和minecraft:air之间替换,否则无效。马铠可以让三种马铠交换这来弄以及minecraft:air。物品数据标签可以制定,比如replaceitem entity @e[type=Zombie] slot.weapon diamond_sword 1 0 {ench:[{id:20,lvl:1}]}这会把所有的现存僵尸都装上带火焰伤害的钻石剑。(某些即使看似无法使用武器的生物,比如末影人,装上后攻击也会有附魔的效果)block:基本格式为replaceitem block方块坐标 slot.container.格子物品名称数据值物品数据标签坐标处填写要改变物品数据的方块坐标,block只能使用slot.container.格子来执行命令。格子填写数字,用来指定替换的格子(比如箱子是0-26,漏斗是0-4,发射器和投掷器是0-8,熔炉是0-2,酿造台是0-3等等)。其余使用方法和entity一样。replaceitem要和entitydata区分,前者是改变生物/方块物品栏,后者是改变实体本身NBT。探测相关指令1.testfor指令mc中最常用的指令之一,用于探测一系列的东西。可以探测玩家、探测实体甚至探测玩家背包的东西(方块用testforblock,这一点需要注意,两者要区分)。最基本的形式是testfor玩家/选择器 testfor系列数据标签如果直接探测这个世界有没有某个玩家,比如探测这个世界有没有叫“End-Enderman”的玩家,就用testfor End-Enderman使用这个指令,如果这个世界有一个叫做“End-Enderman”的玩家,便会显示“发现End-Enderman”并且命令方块持续输出,直到这个玩家不存在为止。一般testfor需要高频持续探测一个东西得输出。或者运用选择器,比如探测这个世界的所有玩家,用testfor @a即可。自从到了1.8后,运用@e的次数就越来越多了。一般用在UUID上。比如testfor @e[type=实体名称,name=名字]type后面填写实体的英文名称,比如僵尸就填写Zombie,掉落物就填写Item等等。name填写玩家起的名称(比如用命名牌或者CustomName),如果想指定所有的这个种类那就把name去掉即可。最好用于高频,在做RPG、机关、解密、冒险无论是哪个地图都有着很大的帮助。(但是唯一缺点就是容易卡)当探测到特定的生物后,命令方块就会有输出。一般连接比较器来执行一系列的命令。(探测到会一直有输出,直到探测不到)还有一种形式,就是探测玩家在一个坐标的形式。testfor选择器[x,y,z,r]选择器就是@a、@e、@r、@p,x、y、z是坐标,在游戏中按下默认的F3可以查看。r是半径,比如1就是1格,2就是附近2格。举个例子,比如testfor @a[123,45,789,1]高频这个指令,当123,45,789这1格方块的地方有玩家的时候,便会输出信号。一般testfor都是用于探测玩家在某个地方,之后连接比较器做出一系列效果。对于地图是很有帮助的一个指令。(自从execute出来之后貌似testfor就被冷落了些...因为execute可以省下一个比较器...但是testfor却是有着不可磨灭的作用)除了探测玩家,testfor还可以探测玩家背包里的物品。比如/testfor @a {Inventory:[{id:&minecraft:xxx}]}Inventory便是背包,而xxx处填写要探测的物品名称,之前说到过可用F3+h看到。比如我们要探测玩家背包里有没有◇◇,那就用/testfor @a {Inventory:[{id:&minecraft:red_flower&}]}但是我们知道,物品可以叠加,那么,要探测一定数量的物品,假如探测玩家背包里有没有3个钻石,那就用/testfor @a {Inventory:[{id:&minecraft:diamond&,Count:3b}]}物品正常情况下叠加只能达到64。假如探测玩家背包里有没有67个钻石,用/testfor @a {Inventory:[{id:&minecraft:diamond&,Count:64b},{id:&minecraft:diamond&,Count:3b}]}以此类推,可以无限叠加下去,但是一定要注意括号。除了玩家背包里的物品,也可以探测玩家物品栏的9个物品。要用的是Slot数据标签。/testfor @a {SelectedItemSlot:格子数,Inventory:[{Slot:格子数b,id:&方块名称&}]}格子数是一样的。比如你需要探测第一个物品栏装的是刷怪蛋,那就用/testfor @a {SelectedItemSlot:0,Inventory:[{Slot:0b,id:&minecraft:spawn_egg&}]}有人说这个指令必须要用到9个命令方块,实际上那个是在完全不知道玩家物品会在哪个物品栏里的情况下。当知道玩家或者在解密(比如必须格子数正确才能触发机关)的情况下一般用这个指令。(9个命令方块就是每一个数字改一下,0-8即可)如果探测的物品是附加了数据标签的(比如用铁砧改了名字),那么就用/testfor @a {SelectedItemSlot:格子数,Inventory:[{Slot:格子数b,id:&方块名称&,tag:{display:{Name:&名字&}}}]}总之,虽然execute类似的指令很方便,但是testfor容易理解,它的实用度还是非常高的。(testfor分数具体看scoreboard)2.testforblock指令和testfor性质相同,但是testfor一般用于探测玩家或者其他实体,而testforblock用于探测方块。在做机关等地图有很大的用处。最基础的形式为testforblock x y z方块数据值数据标签x y z处填写方块所处位置的坐标,方块名想要探测方块的对应名称(老方法查看,F3+h)。数据值这里要特殊强调下,这个在其他指令总是不填,但是在testforblock最好要填上,也就是探测方块状态。不同的朝向、不同的方式(例如按钮按下去的时候、箱子打开的时候等等)都会有不同的数据值。比如当箱子打开的时候,数据值就会改变,会变成和原来关上箱子不同的数据值,一旦关上又会变回原样。所以数据值在testforblock得到了很大的应用。数据标签填写类似于give的标签,不同物品会有不同的数据标签,比如容器的Item等等。不填写数据值依然可以用的,但是探测不了状态,只能探测方块的种类,比如随便输入一个坐标,testforblock x y z chest如果是箱子就会成功探测到,不是的话就会显示位于x y z的方块为xxx(预定:箱子)的形式。所以在想把玩家随机tp到一个坐标时可以先用testforblock来查看这个坐标是否安全。但是这并无法探测方块状态。假如要探测一个朝南的箱子,那就用testforblock x y z chest 3如果不确定它的数据值,可以随便填写一个数据值,当你执行命令的时候,如果探测到箱子,但是数据值不对,会提示&位于x y z的方块拥有数据值xxx(预定:你所填写的数据值)&,xxx便是这个物品所有的数据值。当数据值和物品都对上了号时,便会提示&成功找到了位于x y z的方块&并且会有信号输出。物品自己本身的数据标签依然可以使用,如果想探测一个箱子里的物品那就用testforblock x y z chest数据值 {Items:[{id:&minecraft:物品名&,Damage:损伤值s,Slot:格数b,Count:数量b}]}数据值之前说过,就是用于调整方块的状态,Item指令是方块自带的特殊标签,凡是容器都带有这个标签。损伤值就是用于区分物品的种类(F3+h查看,give的图片里有)格数说过,比如箱子第一格物品栏就填写0,以此类推(数字b千万不能丢掉,不然可能会造成指令有误)。数量填写方块叠加的数量。这个指令可以用来做机关,本人推荐用非电路来配合类似的testforblock。非电路类似于↓一旦探测不到某个物品(物品状态被改变)就会触发后面一系列的指令。如果想探测另一格子的物品,就用testforblock x y z chest数据值 {Items:[{id:&minecraft:物品名&,Damage:损伤值s,Slot:格数b,Count:数量b},{id:&minecraft:物品名&,Damage:损伤值s,Slot:格数b,Count:数量b}]}其他的和上面的讲解相同,只是需要注意下括号,以此类推。建议学会了testfor再来学习testforblock,因为学会了testfor后这个就好理解了。自从出了execute探测方块(detect)之后testforblock使用频率也受到了影响。但是testforblock对于execute而言还是比较好理解的多,所以做陷阱还是比较方便些。陷阱例子请看此帖(execute算是testfor和testforblock的进一层指令)3.testforblocks指令(建议先学会clone再来学习这个指令)和clone有些相似,用法也几乎相同,但是不同的是,clone是复制并粘贴方块,这个是检测并比较一个区域的方块是否相同(检测一个区域的方块可以用testfor的r半径)。基本格式为testforblock斜对角坐标斜对角坐标被比较区域模式当两个区域的方块相同的话,那么命令方块就会有输出。由于是检测方块是否相同,所以用不着填写物品名称。模式处填写all或者masked。all是默认的,而masked和clone的masked相同,如果比较区域中有空气,那么空气并不会被比较,所以即使两个区域都是空气也不会有输出。4.execute指令(注:建议先学上面的testfor以及testforblock后再来学习这个指令,学会了这两个指令就比较好理解了)1.8常用的指令,一般用于探测实体或者方块(带高频)。基本格式为execute选择器数据标签执行指令也是传说中的炸服神指令。(你认为服主们会给你op来做这项任务吗233)比如execute @e[type=xxx] ~ ~ ~ summon PrimedTnt ~ ~ ~(在xxx处填写生物种类名称。填写僵尸就是在所有僵尸处生成点燃的◇◇,填写弓箭就是在所有弓箭处生成点燃的◇◇)这个指令,在做冒险类地图都是很常用的。上面的选择器一般填写@a、@e、@p、@r,而type处填写的是实体名称,用来探测实体。如果要区分实体,比如僵尸,数量比较多,假如要探测一只叫做PlantVSZombie的僵尸并且要在这只僵尸的地方生成雷电那就用execute @e[type=Zombie,name=PlantVSZombie] ~ ~ ~ summon LightBolt ~ ~ ~添加了name数据标签。如果连续激活就会连续在这个僵尸处生成雷电,直到僵尸死亡。后面添加想要执行的命令。包括testfor等一系列的指令。而且这个指令基本上都是要接触高频,所以使用请小心,稍有不慎容易对存档造成伤害。除了探测实体执行命令,还有一种形式,execute选择器实体执行命令区域坐标 detect探测方块坐标方块名损伤值命令这个形式比较繁琐。除了探测实体,这个指令还需要探测方块才能激活。比如高频execute @e[type=Slime] x y z detect x2 y2 z2minecraft:air 0 setblock ~ ~ ~ minecraft:redstone_block这个指令的意思是:在xyz处放置一个红石块(注意啦:setblock后面最好不要添加坐标什么的,比如~ ~1 ~,它是直接作用在x y z上的,等于x,y+1,z的坐标...以此类推,不要乱用)。先前必须要检测到史莱姆以及x2,y2,z2为空气方块。两种条件缺一不可,否则不会激活(将detect执行为xxx失败)。这个在解密的地方很有用,比如放置一个东西就会触发其他机关。在高频这个指令之前,一定要检查好,否则可能会造成意外的影响。有一点要注意的是,execute探测成功一次后会一直保留信号,所以很多人在看电路结构的时候不知道是怎么回事。这需要再用一次红石信号来激活它,如果探测不到输出信号才会消失。所以高频(保证电脑)是最好的方法。(保留信号可以做出一系列的效果,可以参考上面的testfor)execute还可以强制生物做一些事情,比如/say,这一点本来不能让生物做到,但是用execute可以做到。最简单的比如execute @e[r=5] ~ ~ ~ say I am HeroBrine比如这个,r是半径。指令意为探测玩家附近半径为5的生物并且半径为5内的生物说&I am HeroBrine&。这个方法可以用来查看生物的UUID(下面会说到,可用在僵尸猪人的HurtBy和entitydata等)。execute属于testfor和testforblock进一步理解的指令,初期不是很好理解。建议先掌握testfor与testforblock再来学习execute指令。计分板相关1.scoreboard指令mc中比较常用的指令之一(这是mc中范围比较大的一个指令)。计分板属于一种系统,通常用来团队合作或者用来指定变量等等。这个指令可以说是变幻多端,用处极大。现在甚至可以把实体拉到队伍来指定你想做到的效果。比较常用的三大类,分别为objectives(指定判据/目标)、players(指定玩家/实体)、teams(指定队伍)。1.objectives创造/删除目标:基础格式为scoreboard objectives add创造目标名称判据显示名称目标计分版名称自由填写,填写你想给这个目标起的名字。之后创建的目标就会以这个名字的形式来进行。判据处下面会解释到,用来对玩家的行为作出判断并且如果玩家的行为和输入的判据符合便会进行加分。正常情况下如果不想进行任何判据这里就可以填写dummy(可以说是最基础的判据)。显示的名称可以不填写,不影响指令的效果。显示栏:具体格式为scoreboard objectives setdisplay显示选项显示名称显示选项有sidebar、belowName、list等等。sidebar:如果让显示名称有效,还必须要先添加侧边栏,否则这个名称不会显示。添加侧边栏可以用scoreboard objectives setdisplay sidebar创造目标名称这个指令必须要和最初创造的目标名称一致。比如我们建一个名称为“End”的目标,那么要侧边栏显示区就在后面的“创造目标名称”填写“End”。但是之后还需要一步才可启动侧边栏,因为必须要给这个目标设定分数才可以。scoreboard players set显示名称创造目标名称分数(注:players的方法请详细看“players”的用法,要在任务栏显示还必须要经过这步)这个显示名称和之前的显示名称不同。如果最初时不填写那么第一个显示名称就是默认创造出来的目标的名称。图中的侧边栏就是在最初时创造目标是在显示的名称处填写的是1,如果不填写就会显示目标名称“End”。“击杀End-Enderman”即是在players填写的显示名称,用这个方法可以做出任务栏,比如指定一个任务,之后队友们努力去完成等等。(任务栏的原理其实是添加一个假玩家,因为scoreboard可以填写不存在的玩家。可以填写存在的玩家名来随时观察此玩家的分数变化,这个可以用来作用在玩家上。当假玩家分数改变时红色数字部分也会改变)如果想把侧边栏清除,那就用/scoreboard objectives setdisplay sidebar使用这条命令,将会把侧边栏清除。list:目标不仅仅可以创造一个,还可以创造多个目标。如果不记得自己都添加了哪些目标,可以用/scoreboard objectives list来查看计分板创造过的目标。类似于这样显示目标的指令,不推荐在命令方块里使用。在命令方块里即使是默认的gamerule(比如commandBlockOutput等等)也不会显示图中这样的形式,而是在命令方块里显示。并且如果有多个目标命令方块在使用起来会很麻烦。belowName:在多人的时候,还可以直接在显示选项处填写belowName即可。用这个方法可以把显示栏放到玩家的头上。显示区也可以用list来进行显示所有玩家的效果。基本格式为/scoreboard objectives setdisplay list目标名使用之后需要按下Tab即可显示所有玩家。移出这个效果的方式和清楚侧边栏相同。使用这个指令之后再按下Tab就不会再出现了。(还有sidebar.team.颜色名称,不过可以直接用option的color来改变)remove:如果想移除某个目标,那就用scoreboard objectives remove创造目标名称使用这个指令即可将计分板所在的目标移除。判据:用于改变一些加分的效果。基本格式为scoreboard objectives add创造目标名称判据设置目标后,探测这个目标里的分数即可。(用testfor,一会会讲到)如果想把目标分数设为0,那就用scoreboard players set玩家名创造目标名称 0(都可作用于objectives和teams)比如我们想把一个已经叫Death的目标设为0分,用scoreboard players set @a Death 0即可做到这个效果(一旦有分数对于某些指令而言可能会直接有输出)(下面是具体各种判据。虽然有一种说法叫“把玩家加进判据”,但是创造一个目标就可以直接探测了,默认为0,不用再设置)dummy此判据用于当玩家不想指定在加入这个目标后执行一些操作会进行加分或减分时,那就用这个判据。因为在创造一个目标时必须要有一个判据。原版经常用,但是只有op权限或者有权利◇◇这样的才能使用,没有的只能使用判据trigger(也属于一个指令)。trigger此判据用于当玩家不想指定在加入这个目标后执行一些操作会进行加分或减分时,那就用这个判据。在用于目标判据时,和dummy的效果相同。但是trigger没有限制,任何人都可以使用。trigger自己也单独属于一种指令。(具体看trigger指令)这是使用trigger指令的前提。health此判据用于当玩家的血量改变时,玩家的分数就会改变。简单来说,就是玩家挨揍了,分数就会减少,玩家加血了,分数就会增加。减血包括所有掉血的方式,加血包括饥饿度自然恢复、喝药水等等。在判据处填写health即可做到这个效果。(有一点要注意,用testfor @p[score_xxx_min=1]之后(高频),即使减到不能再减了依然会有输出(在这里min属于最小值)只要玩家在不死的情况下)这个判据无法直接用设置分数的方法改变,就像dummy一样,所以在处理一些东西时比较麻烦。deathCount此判据用于当玩家死亡之后,死亡玩家的分数便会加一分。比如一个叫做End的玩家死了,如果有这个判据,他就会自动加一分。还可以用来做地图等等。(有个游戏的规则就是比谁死得更快,懂吗...)在判据处填写deathCount即可做到这种效果。playerKillCount此判据用于当玩家击杀了另一个玩家时,他的分数便会加一分。只要玩家加进了这个目标杀死玩家就会加分。在判据处填写playerKillCount即可做到这种效果(游戏会自动判断玩家死亡来源,如果来源于玩家便会加分)。totalKillCount此判据用于当玩家击杀了任意一个生物时,他的分数便会加一分。只要玩家加紧了这个目标后杀死生物就会加分。在判据处填写totalKillCount即可做到这种效果(有意会自动判断生物死亡来源,即使不显示。比如玩家用弓箭杀死生物就会加分,而骷髅就不可以。这个生物包括玩家,杀死玩家也可以加分)。特殊判据所谓特殊判据,就是可以指定东西的一种判据。比如achievement就可以指定特殊的成就等等。achievement此判据用于当玩家获得了某个指定成就时,玩家的分数便会加一。在判据处填写achievement.成就名即可做到这个效果。具体成就名可以看achievement指令。(必须要加那个点,否则无效)比如之前加了一个名为&zombies&的目标,想将玩家得到“获得木头”这项成就时加分,那就用scoreboard objectives add zombies achievement.mineWood以下特殊判据依然可以按照这个形式来进行。此指令用于当玩家做了某些特定动作的时候,玩家的分数便会加一。在判据处填写stat.动作名即可做到这个效果(不用加&.&来选中Te定的东西,直接就可以执行)。具体动作名共有:stat.walkOneCm(判断玩家行走)stat.sprintOneCm(判断玩家跑步)stat.crouchOneCm(判断玩家潜行)stat.swimOneCm(判断玩家游泳)stat.flyOneCm(判断玩家飞|行)stat.climbOneCm(判断玩家爬行)stat.diveOneCm(判断玩家水中移动)stat.horseOneCm(判断玩家骑马移动)stat.pigOneCm(判断玩家骑猪移动)stat.minecartOneCm(判断玩家坐车移动)stat.boatOneCm(判断玩家坐船移动)stat.mobKills(判断玩家击杀生物)stat.playerKills(判断玩家击杀玩家)stat.damageDealt(判断玩家造成伤害)stat.damageTaken(判断玩家手都伤害)stat.jump(判断玩家跳跃)stat.fallOneCm(判断玩家除跳跃外的掉落)stat.drop(判断玩家除死亡外的掉落)stat.animalsBred(判断玩家繁殖生物)stat.fishCaught(判断玩家钓鱼)stat.treasureFished(判断玩家钓到宝藏)stat.junkFished(判断玩家调到垃圾)stat.talkedToVillager(判断玩家和村民说话)stat.tradedWithVillager(判断玩家和村民交易)stat.recordPlayed(判断玩家播放CD)stat.itemEnchanted(判断玩家附魔物品)stat.flowerPotted(判断玩家将花种在花盆)stat.chestOpened(判断玩家打开箱子)stat.enderchestOpened(判断玩家打开末影箱)stat.trappedChestTriggered(判断玩家触发陷阱箱)stat.craftingTableInteraction(判断玩家打开合成台)stat.noteblockPlayed(判断音符盒发声)stat.noteblockPlayed(判断玩家左击音符盒)stat.noteblockTuned(判断音符盒被玩家调音)stat.furnaceInteraction(判断玩家打开熔炉)stat.beaconInteraction(判断玩家打开信标)stat.hopperInspected(判断玩家打开漏斗)stat.dispenserInspected(判断玩家打开发射器)stat.dropperInspected(判断玩家打开投掷器)stat.brewingstandInteraction(判断玩家打开酿造台)stat.armorCleaned(判断玩家卸下装备架的物品)stat.cauldronFilled(判断玩家向炼药锅倒水)stat.cauldronUsed(判断玩家向炼药锅打水)stat.cauldronFilled(判断玩家吃蛋糕)stat.bannerCleaned(判断玩家洗旗帜)stat.leaveGame(判断玩家退出游戏)这些判据只按照最上面的格式把对应的判据复制到上面即可进行,并且如果玩家一直做相应的动作就会一直加分。(可以设回0分)以下判据需要再加对应的数据。stat.breakItem此指令用于当玩家的工具因为损耗耐久度而被破坏时,玩家的分数就会加分。需要制定工具的种类,比如让玩家的钻石剑碎掉就加分,
scoreboard objectives add zombies stat.breakItem.minecraft.diamond_sword
这会添加一个名为zombies的目标,并且如果把玩家加进目标里,如果钻石剑损坏便会给玩家加一分。minecraft.后面可以变为其他的物品名。(注意,minecraft.是必须要加的,否则会显示“无效的目标准则类型”) 之后的都按照这种格式来进行。stat.killEntity此判据用于当玩家杀死某个特定的生物时,玩家的分数会加一分。要和totalKillCount区分开来。要填写stat.killEntity.生物名,比如如果想让加进这个目标里的玩家杀死一只苦力怕便会加一分,那就在后面用stat.killEntity.Creeper即可。要注意大小写,不然也会显示“无效的目标准则类型”。stat.entityKilledBy此判据用于当玩家被某个特定的生物杀死时,玩家的分数会加一分。一定要与stat.killEntity区分开来,以及不推荐填写被动型生物。要填写stat.entityKilledBy.生物名即可。和stat.killEntity用法相似。stat.useItem此判据用于当玩家对某个物品做了某些特定的动作时,玩家得分数便会加一分。比如将方块放下,对除了实体工具消耗耐久度等等(比如剪刀,由于剪羊毛算对实体,所以即使剪刀消耗了耐久度就不会加分。所以如果想让它加分还需要有stat.breakItem)。填写stat.useItem.minecraft.物品名即可。(方块放下:比如想放下一个石头加分,那就用stat.breakItem.minecraft.stone即可,.minecraft一定要注意加)同时也可以指定损伤值,比如要放下花岗岩就会加分,那就用scoreboard objectives add目标名称 stat.useItem.minecraft.stone 1 1stat.craftItem此判据用于当玩家在合成台里合成某个特定的物品时,玩家的分数便会加一分。需要和stat.craftingTableInteraction区分,前者是必须指定特定的,后者只要和合成台互动就会加分。填写stat.craftItem.minecraft.物品名即可。stat.mineBlock此判据用于当玩家挖掘方块并且破坏后,玩家的分数便会加一分。填写stat.mineBlock.minecraft.物品名即可。注意这个判据跟是否掉落物品无关,也就是如果先前用过gamerule doTileDrops false也不会影响加分。teamkill此判据用于当玩家杀死某个颜色的玩家之后,玩家的分数便会加一分。不用指定这个队伍的特定名称,直接指定颜色即可(可用于几个队伍组成同盟之类的)。填写teamkill.颜色名即可。具体颜色名请看tellraw一栏。killedByTeam(被某个颜色的玩家杀死)我会以后慢慢补上(只有玩家才生效,用teamkill.颜色即可,实体加进队伍里并不会生效),虽然标题上写的是除了服务器指令(毕竟是scoreboard这个大型指令的判据)。这里给您带来了不方便,抱歉= =2.playersset:players可以给特定的玩家设定分数。一般用到的是set,基础格式为scoreboard players set玩家名/实体名/选择器目标/队伍分数(要和add区分)。玩家/实体/选择器填写玩家登录名称、实体用命名牌/CustonName等起的名称、@a@e等等。目标/队伍填写它们的对应名称,分数填写数字。(add只能用来加分,用这个等于可以减分)分数可以用testfor来探测,当探测到一定数值的分数,就会有输出(原理相同,一般用于高频)。testfor选择器[score_目标名称/队伍名称_min=分数]比如我们要探测在一个叫TeamA的队伍里的所有玩家分数为1,那就用testfor @a[score_TeamA_min=1]add:players还可以给个别玩家或者实体(假玩家也可以)加分,用add即可。具体格式为scoreboard players add玩家名目标/队伍分数分数填写数字,填写多少就给玩家加多少分(add的方式只有增加,-1不可以,只能用set或remove)比如我们给一个在目标名为End,叫做End-Enderman的玩家加一分,用scoreboard players add End-Enderman End 1即可做到这种效果。和目标不同,创建之后需要把玩家或实体加进来才能进行一系列的效果。remove:在使用player系列标签时,除了可以加分,还可以直接减分。可以用remove做到。基础格式为scoreboard players remove玩家名目标/队伍名分数比如我们给一个叫“End-Enderman”的玩家,在“End”目标里减一分,scoreboard players remove End-Enderman End 1配合显示栏,能直接看出玩家的分数变化。(set可以直接设置,而add是加分,只加不减,这个是只减不加,需要区分)list:利用list可以显示出玩家或者实体的分数。scoreboard players list玩家/实体名enable:加分和减分不仅只有有◇◇权限的人可以使用(op),可以用enable给玩家加一个权限。基础格式为scoreboard players enable玩家名目标名用这个格式可以给玩家一个权限。当按照这个格式给玩家权限之后,玩家就可以使用trigger指令来改变自己的分数。(详请看trigger指令处)reset:如果想重置某个玩家里目标的分数,那就可以用reset。基础格式为scoreboard players reset玩家名目标名使用之后总是会显示重置了xxx玩家的xxx的分数。可以清除玩家特定的显示栏(而不是直接将所有的显示栏的东西清除)并且将玩家分数设为0。operation:operation属于计分板的一种系统。它可以用来计算玩家的分数,也就是起到了计算器的作用。operation运算系统的格式为scoreboard players operation主要针对对象主要针对对象的目标名称运算方式次要针对对象次要针对对象的目标名称举个例子吧,假如主要针对对象分数为1,次要针对对象的分数为1,用的是减法,那么用的第一次就会让主要针对对象的分数减去次要针对对象的分数,也就是1-1=0,之后主要针对对象会变成运算的结果也就是0,而次要针对对象的分数不变。而如果再用一次(目前主要针对对象的分数为0,次要针对对象为1)的话,就会变为0-1=-1,也就是主要针对对象的分数会变为-1,而次要针对对象还是1。简单来说,就跟计算器的方法相同。两个目标可以填写相同的,也可以填写不同的(之前需要先创造目标)。计算只会改变玩家所设置的目标分数,并不会改变玩家其他目标分数。比如玩家a是主要针对的对象,玩家b是次要针对对象,两个玩家都在目标为c和d。比如用的是加法,a玩家目标c分数为1,目标d分数2,b目标c分数为1,目标d分数为0。如果a选的是目标c,次要b也是目标c,那么就会由a玩家目标c的分数+b玩家目标c的分数,也就是1+1=2。这时玩家a目标c分数变为2,d目标的分数不会改变。如果a的目标选的是c,b的目标是选的是d,那么就会由a玩家目标c的分数+b玩家目标c的分数,也就是1+0=1,这时玩家a目标c分数还是1,d目标的分数不会改变。所以可以跨目标执行运算。运算方式有很多种(计分板和title不同,不需要再另执行命令,所以一些运算方式直接加上后缀&=&即可),分别有=相等,会让主要针对对象的分数和次要针对对象的分数保持持平。+=加法,会让主要针对对象的分数和次要针对对象的分数加起来。-=减法,会让主要针对对象的分数减去次要针对对象的分数。*=乘法,会让主要针对对象的分数乘以次要针对对象的分数。/=除法,会让主要针对对象的分数除以次要针对对象的分数。%=除法取余,取算出来的余数。比如3&2,余数为1,那么主要针对目标分数会变为1。也就是让主要针对对象的分数除以次要针对对象的分数并且主要对象的分数会变为除出来的余数。如果是整数那么会变为0。&如果目前主要针对对象的分数比次要针对对象的分数小,那么主要针对对象的分数会和次要针对对象的分数持平。反之,如果主要针对对象的分数比次要针对对象的分数大,那么分数不会有变化。&如果目前主要针对对象的分数比次要针对对象的分数大,那么主要针对对象的分数会和次要针对对象的分数持平。反之,如果主要针对对象的分数比次要针对对象的分数小,那么分数不会有变化。&&几种运算方式里唯一会改变次要针对对象分数的运算方式。用这个运算会将主要针对对象和次要针对对象的分数互换。举个例子,比如scoreboard players operation a 1 += b 1运算的格式略复杂,当使用成功时会显示&操作已应用成功&。3.teamsteams一般用来执行一些队伍操作。它可以在计分板上添加一个队伍并且可以让这个队伍做出许多效果。add:此指令用于创造一个队伍。这是要执行计分板上队伍效果的前提。基本格式为scoreboard teams add创造队伍名称显示名创造队伍名称处填写你想创造队伍的名字,显示名原理和objectives相同,需要显示栏才可运行。join:此指令用于将实体加入一个队伍从而起到可以给玩家或者实体执行一些命令的效果。基本格式为scoreboard teams join队伍名称玩家/实体名称队伍名称填写加入的队伍(加入后执行其他命令可以填写这个队伍)。除了玩家,还可以将任何实体加入这个队伍。option:此指令用于给队伍执行一系列的效果。基本格式为scoreboard teams option队伍名称效果名称效果状态下面是option的效果选项。friendlyfire:此效果选项用于给队伍开启友好状态。当一个队伍开启了友好状态时,队伍中的玩家亦不可互相伤害。基本格式为scoreboard teams option队伍名称(使用add)friendlyfire true/falsetrue/false即为状态,当填写true的时候,这个队伍便会开启友好状态。实体也可以开启友好,具体看这个帖。nametagVisibility:此效果选项用于对看到队友头上的姓名标签做一系列的操作。具体格式为scoreboard teams option队伍名称 nametagVisibility nametagVisibility的数据标签always:此数据标签用于对玩家头上的姓名标签做出一直显示的效果。在nametagVisibility的数据标签处填写always即可做到这种效果。(由于是自己跟自己联机,双开mc,并且渣水准,所以只能凑活用了...)比如把一个叫behurt的队伍做出这样的效果scoreboard teams option behurt nametagVisibility alwaysnever:此数据标签用于对玩家头上的姓名标签做出不再显示的效果。在nametagVisibility的数据标签处填写never即可做到这种效果。hideForOtherTeams:此指令用于对玩家头上的姓名标签做出其他队伍的玩家看不到的效果。也就是使用后,其他队伍的玩家不能再看到这个队伍里玩家的姓名标签,只有自己队伍的玩家才能看见。在nametagVisibility的数据标签处填写hideForOtherTeams即可做到这种效果。hideForOwnTeam:此指令用于对玩家头上的姓名标签做出自己队伍的玩家看不到的效果。也就是使用之后,这个队伍的玩家不能再看到自己队伍玩家的姓名标签,只有其他队伍的玩家才可以看到。在nametagVisibility的数据标签处填写hideForOwnTeam即可做到这种效果。deathMessageVisibility:此指令用于对玩家死亡时的死亡信息做出一系列的效果。具体格式为scoreboard teams option队伍名称 deathMessageVisibility deathMessageVisibility的数据标签deathMessageVisibility和nametagVisibility的数据标签基本相同。always:此指令用于对玩家死亡时的死亡信息做出一直显示的效果。在deathMessageVisibility的数据标签处填写always即可做到这种效果。never:此指令用于对玩家死亡时的死亡信息做出不再显示的效果(可以直接用gamerule showDeathMessages false)。在deathMessageVisibility的数据标签处填写never即可做到这种效果。hideForOtherTeams:此指令用于对玩家死亡时的死亡信息做出对其他队伍的玩家不显示效果。也就是使用后,其他队伍的玩家不能再看到这个队伍里是否会有玩家死亡,只有自己队伍的玩家才能看见。在deathMessageVisibility的数据标签处填写hideForOtherTeams即可做到这种效果。hideForOwnTeam:此指令用于对玩家死亡时的死亡信息做出对自己队伍的玩家不显示效果。也就是使用后,自己的队伍的玩家不能再看到是否会有自己队伍的玩家死亡,而其他队伍的玩家依然能看见。在deathMessageVisibility的数据标签处填写hideForOwnTeam即可做到这种效果。seeFriendlyInvisibles:此指令用于对自己队伍的玩家隐身效果做出一些操作。用这个指令,可以看到自己队伍隐身的玩家。基本格式为scoreboard teams option队伍名称 seeFriendlyInvisibles true/false填写true的效果:当然,别的队伍依然看不到隐身的玩家,自己队伍的看到隐形的玩家是半透明的效果。color:此指令用于改变玩家队伍的颜色。当使用color之后,玩家的侧边栏以及用list等等都会变成玩家选择的颜色。基本格式为scoreboard teams option队伍名称 color颜色名称颜色名称一共有16种,和tellraw相同,具体颜色请看tellraw部分的color。由于可以直接用这种方法来进行变色效果,所以可以省略sidebar.team这一步骤。list:此指令用于显示所有队伍里的玩家(实体也可以)。和其他list不同,只要加进来的玩家/实体就会显示。基本格式为scoreboard teams list队伍名称使用这条指令可以把一个特定队伍里的所有玩家(实体)。(ps:这样的不推荐在命令方块里使用,直接在聊天框里输入指令比较方便)也可以不输入队伍名称,这样会显示有多少队伍并且有几个玩家。leave:此指令用于将某个特定的玩家或者实体离开某个队伍。基本格式为scoreboard teams leave玩家名称/实体名称比较特殊的是,只要指定特定的玩家或者实体即可,并不用指定某个队伍。empty:此指令用于解散一个队伍里的所有玩家以及实体。当使用这个指令之后,指定的队伍将会移除所有的玩家和实体。但这并不代表删除这个队伍。基本格式为scoreboard teams empty队伍名称并不用指定玩家,只需要指定队伍即可。remove:此指令用于移除一个队伍。当使用这个指令之后,指定的队伍会被删除。(注意:删除队伍后队伍中的玩家和实体也会被全部解散)。建议慎用,因为当删除这个队伍后队伍中的一些效果将不会再度存在(只能再创)。基本格式为scoreboard teams remove队伍名称计分板指令可能初期理解不太容易,但这些指令基本上都是固定的。2.trigger指令这个指令用于给目标加分。用法跟计分板的players set或add相同,但是不同的一点是,后者必须是管理员(有◇◇权限)才能使用,而前者任何人都可以使用。在这之前,首先要有◇◇权限的人给没有◇◇权限的人一个权限。(有◇◇权限的人直接使用trigger也可以,和players的最终效果没有什么区别)先用scoreboard players enable玩家名称创建目标名称具体可以看计分板处。trigger指令基本格式为trigger创建目标名称 set分数这个指令可以用来设定玩家的分数,和players set相同。这之前必须要先创建目标才可以。(创建的目标判据必须为trigger,否则这个指令会提示不是触发型或者触发型无效等一系列话语)之后即可使用这个指令为目标设定分数分。除了set,也有add指令(依然是只能加分)。基本格式为trigger创建目标名称 add分数一定要注意在创建目标时加上trigger判据。3.stats指令说起来,这个指令就相当于计分板的高级判据。使用这个指令需要先创建一个计分板,比如创造一个目标。具体格式为stats模式坐标/玩家名 set/clear stats判据目标名称一般用于探测命令输出。当玩家执行一项命令成功之后,影响到的方块/实体数量将会被即为一定数量的值。模式有两种,分别是entity和block。这里一定要区分:如果是玩家用聊天框执行的命令,那么就用entity;如果是玩家用命令方块执行的命令,那么就用block。如果玩家用命令方块执行的命令却使用的是entity,那么不会stats即使显示了将xxx(stats判据)的统计信息储存在了xxx(队伍名称/目标名称)的xxx(玩家名)上,命令成功了也不会显示影响到的方块/实体数量。所以一定要区分开来。坐标是block模式用的,也就是指定成功执行命令的命令方块坐标处。而玩家名称是entity模式用的。set是执行命令时需要用的,也是比较基础的。一般情况下要用到stats设置分数都需要用到set。而clear是用于清除统计信息。当使用完clear之后,玩家/方块执行命令将不会再影响分数(clear不用添加队伍名称/目标名称)。stats判据:AffectedBlocks:此判据用于区分命令影响的方块数量。比如玩家使用setblock召唤出一个方块,那么分数就会自动设定为1。stats判据很高级,分数是自动设定,所以当玩家使用fill类似的指令时,比如使用fill ~ ~1 ~ ~ ~2 ~ redstone_block之后,那么分数会自动设定为2,而把波浪号的2改为1之后,也就是之后填充1个红石块,那么分数又会自动变为1。要注意好是命令方块执行命令还是玩家用聊天框执行命令。AffectedEntities:此判据用于区分命令影响的实体数量。比如玩家使用summon召唤出一个实体,那么分数就会自动设定为1。性质与AffectedBlocks相同。SuccessCount:此判据用于区分命令成功的次数。无论任何指令,只要成功输出便会+1。QueryResult:此判据用于区分询问命令的结果。比如玩家在使用time指令时,得到的结果便会变为玩家得分数。其中,有一个较特殊的效果,那就是用gamerule来实现对应加分效果(这里感谢[size=1em]乾.坤指出丢下的部分)和其他gamerule数据标签不同的是,这个gamerule需要指定目标的值。首先需要创造一个目标,并且将玩家加入到这个目标里(详请看scoreboard,前者用objectives的add,后者用players的set),之后使用stats entity玩家名称/选择器 set QueryResult玩家名称(要进行对应分数变化的玩家)创造目标名称在这之后,就可以用gamerule直接来改变分数。具体用法为gamerule创造目标名称分数分数由自己制定,之后直接使用一次(图中为entity,会自动追踪使用这个命令的玩家,否则用命令方块需要指定block的坐标)gamerule创造目标名称你就能发现,分数已经变为你指定的分数了。AffectedItems:此判据用于区分命令影响的物品数量。比如玩家使用give给玩家一个物品,那么分数就会自动设定为1。而当玩家用give给玩家更多的物品时,设定就会变得跟给予玩家的物品相同。当然,使用这些指令,前提是必须要创建计分板才可以执行。总之,stats步骤为创造计分板-设定玩家-建立stats变量-执行命令。一定要按照这个步骤来走。玩家操作相关1.xp指令这个指令用于给玩家经验值。在生存模式做出附魔等动作都会消耗一定量的经验值。基本格式为xp经验值数量玩家名经验值数量填写大于0的数字,意为给玩家多少经验。(有人说后面的玩家名处只能填写选择器,实际上填写玩家的登陆名也可以)如果想给玩家一定等级的经验值,用xp经验值数量L玩家名L意为level,比如填写1,就是让玩家升一级如果用level的形式,那么就可以填写负数来做到让玩家掉级。比如xp -1L @a用这个指令可以给让玩家掉一级。(注意:只有level的形式才可以填写负数,不然就会显示“无法给玩家为负数的经验值”)2.gamemode指令mc中最常用的指令之一,用来改变游戏模式。如果玩家想先在创造里建一些东西后变生存(前提是必须要开◇◇,初始没开◇◇的可以在开局域网时设置)就需要用到这个指令(和difficulty指令不同,difficulty的效果可以在设置栏里找到,而游戏模式则不可以)基本格式为gamemode模式模式处填写数字或者英文名称。和give不同的是,升为1.8后数字依然可以在gamemode处运用。(比较方便)输入gamemode 0或者gamemode survival即可将游戏模式转换为生存模式;输入gamemode 1或者gamemode creative即可将游戏模式转换为创造模式;输入gamemode 2或者gamemode adventure即可将游戏模式转换为冒险模式;输入gamemode 3或者gamemode spectator即可将游戏模式转换为旁观模式。目前无法通过指令变为极限模式(为了防止损坏存档)还可以通过选择器的方式来改变单个玩家的模式,比如/gamemode 1玩家名这个方法就可以指定特定的玩家,例如僵尸在两个玩家当中,如果一个玩家突然变为生存,僵尸只会追逐变生存的玩家,而另一个玩家并不会改变模式亦不会受到攻击性生物的干扰。用法和difficulty相同。(defaultgamemode和gamemode的用法一样,但是前者使用在服务器)3.achievement指令此指令用于给予玩家成就。当玩家完成一系列的要求时,就会得到一些成就(就像论坛里得到勋章一样)。利用achievement give可以跳过要求直接获得一项成就。基本格式为achievement give成就名玩家名其中成就名为必填项,玩家名可以在聊天框中不填或者填写选择器等等(命令方块属于必填项)。如果不填(聊天框里)则会将这项成就授予执行命令的玩家。成就名:一般格式是achievement.xxx。xxx共有openInventory(打开物品栏成就)、buildWorkBench(制作工作台成就)、buildPickaxe(制作镐子成就)、buildSword(制作剑成就)、buildHoe(制作锄头成就)、buildFurnace(制作熔炉成就)、makeBread(制作面包成就)、bakeCake(自作蛋糕成就)、buildBetterPickaxe(制作木镐以外的镐子)、bookcase(制作书架)、enchantments(制作附魔台)、overpowered(制作附魔金苹果)、cookFish(制作熟鱼)、acquireIron(制作铁锭)、breedCow(繁殖一头牛)、killEnemy(杀死攻击生物)、killWither(杀死凋零)、ghast(用恶魂的火球杀死恶魂)、mineWood(获得木头成就)、killCow(获得皮革)、diamonds(获得钻石)、blazeRod(获得烈焰棒)、portal(进入地狱传送门)、theEnd(进入末地传送门)、theEnd2(返回末地传送门)、snipeSkeleton(用弓杀死50步开外的骷髅)、onARail(做矿车移动到1000步以外的地方)、spawnWither(生成凋零)、potion(酿造药水)、flyPig(骑猪让猪受到2格伤害)、overkill(一击造成9格心的伤害)、fullBeacon(造出三层信标,三层信标意为最高级信标)diamondsToYou(把钻石扔出去,有实体/玩家捡走)、exploreAllBiomes(到了所有的生物群系)这几种成就。achievement.是必须要填写的前缀。要注意如果授予一些高级成就(需要完成其他成就),那么授予这个成就的同时也会授予其他成就。也可以清除玩家的成就,那就需要用到take,基本格式为achievement take成就名玩家名使用这个指令可以做到消除成就的效果。当清除一个玩家的高级成就时,其他成就并不会消失。4.say指令用于向玩家发出话语。可以制定特定的玩家或者运用选择器等等,基本格式为say发送的信息say默认为对世界所有人发送信息,所以不用填写选择器。如果是在聊天框里发送的话,则会将来源玩家显示出来。相反,如果在命令方块里发送就会默认为系统发送(显示@)。也可以使用选择器来显示世界内所存在的玩家,比如say发送的信息 @a只是用这种方法不能用来查看玩家的UUID。用选择器显示的玩家有点和suggest_command相像,可以在聊天框里点击并且会自动输入在聊天框里,可以用来发送信息。如果是单纯的聊天还是比较推荐直接在聊天框里发送文字。5.me指令用于发出一些动作话语。用这个指令可以显示发出这个指令的玩家正在干什么(干什么的话语是玩家自定义的,和say、tellraw等性质相同)基本格式为me显示话语显示话语和text差不多,填写什么就会显示什么。和say与tellraw不同的是,这个指令直接就可以使用,不需要◇◇权限。(非op玩家依然可以用)推荐在聊天框里使用这个指令,否则在命令方块使用的话将不会显示玩家,只会显示默认为系统的@6.tellraw指令mc中最常用的指令之一。这个指令也属于一个系统,和say、title非常相似。基本格式为tellraw玩家 Json信息比较基础的Json信息(Json信息在这里=数据标签)就是text,用来向玩家说一段话。比如tellraw @p {text:发现玩家}玩家处可以填写玩家登陆游戏时的登录名或者选择器等等。(注:有人说这个必须要加引号,实际上引号可以省略,对于只是普通的话语可以不加,但是对于某些效果必须加上,否则指令无效)和say相比,好处是省略了前面说话者的名字,也就容易让人察觉到这句话是哪些人说的。对比图(say另有用处,比如用来查看UUID)text还可以用来清屏,\n可以把文字接到下一行,如果要清屏那就用tellraw @p {text:&\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n&}(这种Json信息必须要加引号,否则无效,并且要注意符号的方向)Json信息要求比较苛刻,有一些东西即使有一点点失误都不会触发指令。(会显示无效的Json信息)text触发的信息还可以给它加上效果,比如颜色。类似效果基本格式为tellraw玩家 {text:xxx,Json效果数据标签}Json效果数据标签color此指令用于区分tellraw文字部分的颜色。在Json效果数据标签处填写color:xxx即可给文字加上颜色。默认为白色(注意大小写,不然即使填的是正确的依然会为白色)。一共有黑色(black)、红色(red)、深绿色(dark_green)、钻石蓝(aqua,tellraw特有颜色)、蓝色(blue)、深紫色(dark_purple)、青色(dark_aqua)、灰色(gray)、深灰色(dark_gray)、深红色(dark_red,tellraw特有颜色)、黄绿色(green)、黄色(yellow)、粉色(light_purple)、湛蓝色(dark_blue,tellraw特有颜色)、橙色(gold)、白色(white)16种颜色。其中tellraw特有的颜色是无法用染料得到的颜色,只有用tellraw的color才能得出。bold此指令用于区分tellraw文字部分是否加粗。如果在Json效果数据标签处填写bold:true(之后的都要这么填写)即可给tellraw的文字加粗。(可与Json效果数据标签联用)italic此指令用于区分tellraw文字部分是否为斜体。如果在Json效果数据标签处填写italic:true即可让tellraw的文字变为斜体。(可与Json效果数据标签联用)underlined此指令用于区分tellraw文字部分是否有下划线。如果在Json效果数据标签处填写underlined:true即可让tellraw的文字加上下划线。(可与Json效果数据标签联用)strikethrough此指令用于区分tellraw文字部分是否有删除线。如果在Json效果数据标签处填写strikethrough:true即可让tellraw的文字加上删除线。(可与Json效果数据标签联用)obfuscated此指令用于区分tellraw文字部分是否为一种特殊的乱码文字。如果在Json效果数据标签处填写obfuscated:true即可让tellraw的文字变为乱码文字。文字必须为英文才有效。(由于电脑的某些问题使用这个代码会对本人电脑造成一些影响,具体效果不太清楚,还请见谅)insertion此指令用于区分tellraw文字部分是否可以通过一些操作来做到在聊天栏里出现额外的文字的效果(和clickEvent加上/say有些相似)。方法为按下Shift+点击,如果在Json效果数据标签处填写insertion:xxx即可出现不同的文字效果。注意这个文字同时按Shift和点击后,只是在聊天输入框里出现文字,并不是像text的文字效果那样。insertion也可以加引号,当遇到空格类似的特殊符号需要加上。(可联用)这些Json数据标签都可以加在一起,比如tellraw @a {text:苦力怕来了,bold:true,strikethrough:true,italic:true,color:gold,underlined:true,insertion:&输入kill @e有惊喜&}另一个基础的标签为selector,用于显示存在的玩家或实体的信息,和say的作用差不多。基础格式为tellraw玩家 {selector:选择器}选择器处填写@a、@p、@e、@r等(亦可加上type或name,就像testfor)。比如填写@e,效果为和say一样,可以用来查看UUID用于entitydata指令等等。在使用text的时候,有的人发现假如给text添加了颜色后,所有的文字都会有这种颜色。比如加粗,只能全部加粗而不能单个加粗,那就需要添加额外的Json数据标签了。extra指正是用来添加额外的效果。基本用法为tellraw玩家 {text:文字,extra:[{text:文字}]第一个text后可以加一系列的效果,比如color等等,不过这只对第一个text文字内容有效,所以给文字添加各种各样的效果。比如tellraw @a {text:Dangerous,color:red,extra:[{text:& Zombie&,color:blue}]}一定要注意括号。extra里面还可以接着加text,比如tellraw @a {text:Dangerous,color:red,extra:[{text:& Zombie&,color:blue},{text:& Coming&,color:dark_blue}]}另一个text里依然可以加Json数据标签。(所以不用一直extra再套extra)Event系列:Event用来给Json信息添加一些奇特的效果。具体格式为tellraw玩家 {text:&文字”,clickEvent/hoverEvent:{action:clickEvent/hoverEvent的Json数据标签,value:&{命令/效果}&用来给tellraw的文字加一种点击效果,有它存在指定字文字便可以被点击,逐渐出现一系列效果。clickEventrun_command:此指令用于在点击特定的文字后触发指令。基本格式为tellraw玩家 {text:&文字&,clickEvent:{action:run_command,value:&{命令/效果}&就像execute一样,后面可以执行其他命令,也就是点击之后就会执行那个命令。任何命令都适合。比如tellraw @a {text:&召唤术&,color:red,clickEvent:{action:run_command,value:&/summon VillagerGolem ~ ~20 ~ {PlayerCreated:1}&}}激活指令后点击文字即可召唤出一只默认为玩家创造的铁傀儡。value后面加上任何指令以及其指令的数据标签都可以。需要注意的是引号的位置,前引号要引在命令之前,后引号引在命令之后,而不能引在前面的Json信息标签的后面,否则会显示Json信息无效。suggest_command:此指令用于区分当玩家点击用来获得value后面的文字并且自动复制到聊天栏里。用法和run_command相同。就像insertion。例如tellraw @a {text:&点一下吧&,color:aqua,clickEvent:{action:suggest_command,value:&kill @e&}}(value也可以起到发一段话的作用。注意比如run_command必须要加那个斜杠,否则默认为发一段话,就像say一样)效果:(可以恐吓队友2333,不加“/”的话kill @e只会当作玩家说的话发出去2333)hoverEvent当玩家将鼠标指针悬停在制定文字上便会显示玩家指定的效果。show_text:此指令用于区分当鼠标悬停在指定文字时是否会显示另外一段文字。基本格式为/tellraw @a {text:&文字&,hoverEvent:{action:show_text,value:&另一段文字&}}当鼠标指针悬停在第一个“文字”的时候,便会出现另一段文字的内容。show_item:此指令用于当玩家将鼠标指针悬停在指定文字上会显示一种物品(可以使添加过NBT的物品)。格式为/tellraw @a {text:&文字&,hoverEvent:{action:show_item,value:&{物品数据标签}&}}之后就会显示这个物品的属性和方块代码等等。举个例子,比如/tellraw @a {text:&鼠标点这里&,hoverEvent:{action:show_item,value:&{id:command_block}&}}就会在悬停在“鼠标点这里”的文字时会出现普通命令方块的介绍。小提示:id前面必须要加括号,否则会显示这样↓show_achievement:此指令用于当玩家将鼠标指针悬停在特定文字出会显示某个成就的信息(具体可以看achievement give一栏)。基本格式为/tellraw玩家名 {text:&文字&,hoverEvent:{action:show_achievement,value:&成就名&}}注意:成就名处必须要填写achievement.xxx,否则就会像显示无效的物品一样,出现了Invalid achievement)举个例子,比如/tellraw @a {text:&您获得了一个新成就&,hoverEvent:{action:show_achievement,value:&achievement.killWither&}}show_entity:此指令用于当玩家将鼠标悬停在特定文字处会显示某个实体的信息。此实体信息可以是假实体,完全由玩家创造。基本格式为/tellraw @a {text:&文字&,hoverEvent:{action:show_entity,value:&{type:实体类型,name:实体名称,id:自拟的UUID或者介绍}&}}就和summon一样,只不过id处可以自拟。比如/tellraw @a {text:&图鉴326号&,hoverEvent:{action:show_entity,value:&{type:Giant,name:进击的巨人,id:巨人8791号}&}}效果拔群Json信息是学习命令初期不太好理解的。可以先学学其他的指令再来学习tellraw。7.titile指令和tellraw有些相似,但是不同的是,tellraw是显示在聊天栏,而title是直接在玩家屏幕上的。具体格式为title玩家 title选项 Json信息玩家填写选择器或者人名。而title选项要填写title特有的方式。Json信息和tellraw相同,比如title @a title {text:&&,color:red}title选项:title:此选项用于将玩家发出的话语显现在屏幕上,也是title最基础的选项。基本格式为title玩家 title Json信息之后填写选项也按照这种格式来填写。和text非常相似,但是如果单单就是发出话语可以不加text。subtitle:此选项用于给屏幕上的title文字添加一个副标题。需要注意这个指令需要和带title选项的指令分别执行一次才会有效果。当执行完一次subtitle之后可以给下一次title添加副标题,基本格式为tltle玩家名 subtitle副标题Json信息分别执行一次后,会出现一次副标题(仅会出现一次)。比如执行一次title @a subtitle {text:&来自末影人&,color:red}之后再激活title @a title下雨了效果为clear:此选项用于将屏幕上的字幕清除。使用/title @a clear即可将屏幕上的字幕瞬间清除。由于一般直接title的字幕很短,所以一般都和times联用。times:此选项用于调整字幕存在的时间。和subtitle一样,需要分别激活。基本格式为title玩家名 times出现时间存在时间消失时间普通的title如果注意看就能发现,屏幕上的文字是逐渐出现并且逐渐消失的,是有特效的。比如填写title @a times 20 20 20再执行title,屏幕上的文字出现时间就会变为大约1秒,停留大约1秒,消失大约1秒。这个选项有很大的用处,比如激活title @a times 5 10086 5再分别激活title @a subtitle囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧title @a title十五字十五字十五字十五字没有◇◇权限的玩家会很抓狂的......(在屏幕上存在时间大约为504.3秒......)reset:此选项用于重置所有title选项。使用之后已激活的subtitle和times都会恢复为默认状态其余讲解请看tellraw部分。8.tell指令用于给特定玩家一条信息,也就是私聊。基本格式为tell玩家名称内容如上图,白色的是发起tell的玩家,灰色的是被指定tell的玩家。也就是发起人会显示&xxx→xxx&,被发起人会显示&xxx whispers&。要注意只有服Wu器才可以用这种指令。9.msg指令用于给特定玩家发一条信息。和tell有一些区别,基本格式为msg玩家名称内容前者是发起msg的玩家的效果,后者是被选定msg玩家的效果。也就是发起人会显示&我→xxx&,被发起人会显示&xxx→我&。需要注意只有服Wu器才可以用这个指令。特效相关1.particle指令此指令用于在世界里生成颗粒。颗粒几乎无处不在,无论是攻击生物或者对生物执行操作,还是天然的方块等等,都有自己独特的颗粒。甚至包括像远古守护者鬼脸类似的,都算作颗粒。基本格式为particle颗粒名称执行坐标颗粒坐标颗粒速度颗粒数执行模式颗粒名称包括crit(攻击生物颗粒)、explode(生物死亡颗粒)、droplet(下雨颗粒)、snowshovel(下雪颗粒)、slime(史莱姆跳跃颗粒)、mobappearance(远古守护者鬼脸颗粒)、note(音乐盒颗粒)、angryVillager(在村庄打村民的生气颗粒)、happyVillager(产生村民的新交易选项、骨粉种植等颗粒)、heart(驯服生物颗粒)、portal(下界传送门、末地传送门、末影人瞬移颗粒)、depthsuspend(虚空颗粒)、reddust(红石激活颗粒)、smoke(火把颗粒)、largeexplode(恶魂火球爆炸等小型爆炸颗粒)、hugeexplosion(末影龙死亡等大型爆炸颗粒)、splash(坐船、水在方块上的掉落颗粒)、suspended(水下颗粒)、wake(钓鱼颗粒,不会下落)、lava(岩浆颗粒)、dripLava(岩浆在方块上的掉落颗粒)、largesmoke(火焰燃烧颗粒)、fireworksSpark(烟花颗粒)、spell(药水颗粒)、witchMagic(女巫喝药水颗粒)、instantSpell(治疗/伤害药水特殊颗粒)、magicCrit(附魔触发颗粒)、townaura(菌丝颗粒)、enchantmenttable(附魔台颗粒)、flame(熔炉燃烧颗粒)、barrier(屏障颗粒)、snowballpoof(雪球碎裂颗粒)、footstep(脚印颗粒)几种不用指定任何效果的颗粒,还有几种需要指定id的颗粒。比如blockcrack,需要用&blockcrack_物品id&来指定。比如particle blockcrack_119 ~ ~1 ~ 1 1 1 0.可以指定损伤值,比如particle blockcrack_1_1 ~ ~1 ~ 1 1 1 0.还有blockdust_物品名(物品破坏颗粒)、iconcrack_物品名(吃东西颗粒),按照上面的格式填写即可。这几种指定物品名的颗粒也可以制定损伤值,比如/particle iconcrack_351_1 ~ ~1 ~ 1 1 1 0.执行坐标是颗粒基础的坐标,会在玩家指定的地方产生效果。而颗粒坐标是在前面执行坐标的基础上扩散的坐标。比如填写1 0 0,颗粒会向x为1的地方扩散,而填写0 1 0,效果是摞起来的,填写0 0 1,颗粒会向着z为1的地方扩散。填写不同的坐标则会产生不同的扩散效果。颗粒速度填写数字,不仅决定了颗粒移动的速度,也决定了颗粒存在的时间。颗粒数填写数字,填写多少就会有多少个这样的颗粒,如上图,假如填写1就不会有这么多的生气标志,而只会出现一个生气标志。(远古守护者鬼脸颗粒比较特殊,填写越多颜色越重,但不会增加鬼脸数量)需要注意数量最好不要填的太多,填写一万以上就很容易卡,甚至会对游戏存档造成损坏。执行模式有anything和force。anything为默认的模式,而使用force可以让在颗粒16格外的玩家看到。任何颗粒(包括远古守护者的鬼脸颗粒),只有16格的视野,16格以外不能看到。而填写force可以避免。粒子效果除了可以用作装饰,还可以迷惑、干扰玩家(比如岩浆、鬼脸等等),用处广泛。2.playsound指令此指令用于向玩家播放在mc里存在的音效。基本格式为playsound声音名称玩家名称声音名称填写playsound自己本身拥有的声音,比如playsound mob.zombie.say @a便会像全体玩家播放僵尸空闲音效。音量默认为生物自身的音量。但是可以指定。基本格式为playsound声音名称玩家名称播放坐标音量音调播放坐标是声音坐标的地点,如果不指定玩家听到的是正好的声音。当播放的声音超过了半径约128格以外,玩家就不会再听到指定的音效了(不包括128,超过了128之后就会显示&玩家离得太远了,无法听到这声音&)音量是播放音量的大小,比如playsound mob.endermen.stare @a ~ ~ ~ 15但是效果非常不明显,而坐标可以弥补这一点。而音调是音调的高低,比如playsound mob.ghast.scream @a ~ ~ ~ 3 0.5会像玩家播放很低的恶魂尖叫声音。下面是所有生物的声音。全生物声音一览僵尸系列:mob.zombie.hurt(僵尸挨打)、mob.zombie.death(僵尸死亡)、mob.zombie.say(僵尸空闲)、mob.zombie.step(僵尸走路)、mob.zombie.remedy(僵尸受治疗)、mob.zombie.metal(未引进的声音)、mob.zombie.infect(村

我要回帖

更多关于 我的世界没有与选择器匹配的目标 的文章

 

随机推荐