请选择 进入手机版 | 继续访问电脑版
查看: 3393|回复: 51

[命令方块] 【中国版教程】Minecraft1.12summon指令详细教程

[复制链接]

7

主题

36

帖子

20

积分

Lv.2 石器学徒

UID
23980
小麦
3
金锭
121
下界之星
0
发表于 2017-7-24 18:27:28 | 显示全部楼层 |阅读模式
本帖最后由 MC_taotao 于 2017-8-12 09:47 编辑

Summon指令
提示:图片版在最后,效果能好一些
教程下载链接: https://pan.baidu.com/s/1slO86CX 密码: t2vw

Minecraft PC 1.12(只能用于PC1.12版本)
目录
第一节summon指令简介
第二节给生物穿上装备
第三节设置生物的属性和给生物效果
第四节自定义村民交易
第五节生物的骑乘设置
第六节对生物的其他设置
第七节summon指令应用:制作关卡制PVE地图…….12
第八节原版模组的制作方法
注:第七节、第八节属于summon指令的应用,学习这两节需要一定的其他命令的基础。
第一节 summon指令简介


1.对summon指令的初步认识
Summon指令是我的世界中比较常用的指令之一,在MinecraftPC1.7.2(13w36a)版本中被加入,用于召唤实体(实体包括各种生物、矿车、盔甲架、掉落中的方块falling_block等),大多数玩家主要用summon指令来生成生物。其格式为:summon <实体> [x] [y] [z] [数据标签]
什么叫做实体?
Minecraft中动态的、移动中的对象被称为实体
所有实体都有以下性质:
具有速度、位置和旋转角度。
占有特定的空间大小。此空间是一个固定长宽高的三维长方体
拥有生命值。
当着火时,生命值逐渐减少,实体显示出被火焰包围的样子

一部分实体能被水流推动。包括玩家、生物、船、物品、点然的TNT、经验球等(以上内容来自minecraftwiki
2.summon指令最基本的用法
输入任何命令都有两种方式:一是在对话框中输入,二是在命令方块中输入。输入指令时必须保证已经把“允许作弊”选项打开。/summon指令最基本的用法是:/summon <实体>,<实体>中填写实体的英文名称。

常见的实体的名称:

villager(村民)      Slime(史莱姆)         sheep(羊)
Zombie(僵尸)      Silverfish(蠹虫)         chicken(鸡)
Skeleton(骷髅)     Guardian(守护者)       pig(猪)
Witch(女巫)       Shulker(潜影贝)        horse(马)
Spider(蜘蛛)       Enderman(末影人)     armor_stand(盔甲架)
Creeper(爬行者)   PolarBear(北极熊)      MinecartTNT(TNT矿车)
Blaze(烈焰人)     Parrot(鹦鹉)              boat(船)
Ghast(恶魂)      cow(牛)              lightning_bolt(闪电)
1/summon Creeper/summon minecraft:Creeper
作用:在指令的启动位置召唤一只爬行者。
注:①实体名称必须使用英文,生物首字母可大写也可小写。
②生物前的前缀“minecraft:”可加可不加。
③在输入指令的过程中,不能使用中文输入法。

在/summon Creeper这条指令中没有对生物的坐标进行设置,在没有设置坐标的情况下,被召唤的生物的生成位置(坐标)则为此命令的执行地点。当然实体生成的坐标也是可以设置的,控制生物生成坐标的就是[x] [y] [z],在存档中按F3键可以查看坐标。其中x z 必须在 -30,000,000 30,000,000(包括) 之间, y 必须至少是0. 可以使用波浪号~”表示相对坐标。
对相对坐标的理解?
相对坐标不同于普通的坐标,相对坐标可以理解为把命令执行者的坐标设为(0,0,0),例如:~ ~1 ~表示的是命令执行者上方1格的位置。在使用summon指令是多半用相对坐标
2/summon Spider 100 51 101
作用:在坐标为x=100 ,y=51,z=101的地方生成一只蜘蛛
    /summon Witch ~ ~1 ~
作用:在命令执行者上方1格的位置生成一只女巫
summon指令也可以用来给生物命名,用到的就是CustomName:" ",其中双引号里填写你给生物气的名字,名字可以是英文也可以是中文。
例:/summon Villager ~ ~1~ {CustomName:"普通村民"}
作用:在命令执行者上方1个的位置召唤一只名为普通村民的村民。
注:CustomName是一种数据标签,其格式大多为大{标签1:1,标签2:2…}这个下一节会讲到。
作用:在命令执行者上方1个的位置生成一只名为普通村民的村民

当命令成功输出时会有提示:“成功地召唤了该实体”。
第二节 给生物穿上装备
1.对生物的手持物进行设置
在1.9版本以后,增加了双持功能,不仅仅玩家有双持功能,其他生物(主要是僵尸、骷髅等攻击型生物)也有双持功能,所以 summon指令对生物的装备进行设置分为两个部分:双手和身体。

HandItems可以设置生物双手的物品,格式为:HandItems:[{id:"", Count:},{id:"", Count:}]id里填写物品的英文名称,其顺序是右手、左手,顺序不能颠倒。Count是表示物品的数量,后面填数字即可,在Minecraft1.12版本中,给生物设置任何装备必须要填上数量Count,一般来说装备的数量填1个就行了。
其实数量CountMinecraft中是有单位的,它的单位是b,所以Count:1也可以写作Count:1b
3/summonSkeleton ~ ~1 ~ { HandItems:[{id:""},{id:"stone",Count:2}]}
作用“在命令执行者上方1格的位置召唤一只左手手拿2个石头,右手什么都不拿的骷髅。
注:①即使生物只有一只手有物品,另一只没有物品,也要跟上没有物品的手所需要的指令格式。如:上面指令中的生物右手没有东西,但是第一个{id:""}也是同样要写上的,如果删除成:/summonSkeleton ~ ~1 ~ { HandItems:[{id:"stone",Count:2}]}这样是不正确的。
②{id:" "},{id:" "}两个id之间用逗号隔开,id后的引号可加可不加。
当然,也可以修改生物手持物品的属性,这里以附魔为例,如果对例3的指令中的stone(石头)附魔,那需要在Count后面加上tag:{ench:[{id:,lvl:}]},id:后面填附魔属性的编号,lvl:后面填等级。

下面为附魔ID:
0 – 保护,Protection           


1 - 火焰保护,Fire Protection
2 – 摔落保护,Feather Falling      
3 - 爆炸保护,Blast Protection         
4 - 远程攻击保护,Projectile Protection  
5 - 水下呼吸,Respiration   
6 - 水下挖掘,Aqua Affinity      

7 – 荆棘,Thorns


武器 (剑):
16 - 锋利,Sharpness
17 - 亡灵杀手,Smite
18 - 节肢杀手,Bane Of Arthropods
19 - 击退,Knock Back
20 – 火焰附加,Fire Aspect
21 - 掉落品加倍,Looting
工具:
32 - 挖掘效率,Efficiency
33 - 精准采集,Silk Touch
34 - 无法破坏,Unbreaking
35 –时运,Fortune
武器 (弓箭):
48 - 力量,Power
49 - 弓箭击退,Punch
50 – 火矢,Flame

51 - 无限,Infinity
4/summonSkeleton ~ ~1 ~ { HandItems:[{id:""},{id:"stone",Count:2,tag:{ench:[{id:20,lvl:1}]}}]}
作用:在命令执行者上方1格的位置召唤一只左手拿2个附魔属性为火焰附加Ⅰ的石头,右手什么也不拿的骷髅。
注:一定要注意括号,不能多也不能少。
2.对生物的盔甲进行设置
对生物的盔甲进行设置和对生物的手持物进行设置有些类似,其格式为:ArmorItems:[{id:"",Count:},{id:"",Count:},{id:"",Count:},{id:"",Count:}]
从左往右的顺序是靴子、护腿、胸甲、头盔,顺序依旧无法颠倒,和前面的手持物设置一样,生物只要有一个部位有装备,也要跟上没有装备的部位所需要的指令格式id里填写盔甲的英文名称。盔甲的附魔方式和手持物的附魔方式一样,这里就不做详细介绍。
5/summonSkeleton ~ ~1 ~ {ArmorItems:[{id:""},{id:""},{id:"leather_chestplate",Count:1},{id:""}]}
作用:在命令执行者上方1个的位置召唤一个穿皮革胸甲的骷髅。
我们也可以既让生物穿盔甲又拿手持物。
6/summonSkeleton ~ ~1 ~ { HandItems:[{id:""},{id:"stone",Count:2,tag:{ench:[{id:20,lvl:1}]}}],ArmorItems:[{id:""},{id:""},{id:"leather_chestplate",Count:1},{id:""}]}
作用:在命令执行者上方1格的位置召唤一只左手拿2个附魔属性为火焰附加Ⅰ的石头,身穿皮革胸甲的骷髅。

注:HandItems:[{id:""},{id:"stone",Count:2,tag:{ench:[{id:20,lvl:1}]}}]ArmorItems:[{id:""},{id:""},{id:"leather_chestplate",Count:1},{id:""}]之间一定要用逗号隔开,任何两个标签之间都要用逗号隔开,这个上一节提到过。
3.对生物装备掉落概率进行设置
众所周知,在正常情况下,玩家击杀生物的时候可能会出现掉落物,当你给生物穿上装备的时候,你也可以对这些装备设置掉落概率,在Minecraft中,用HandDropChances:[f,f]来设置手持物的掉落概率,顺序依旧是右手、左手;ArmorDropChances:[f,f,f,f]来表示盔甲的掉落概率,顺序依旧是靴子、护腿、胸甲、头盔。其中在f前面填写概率的数值,0f表示概率为百分之01f表示概率为百分之百。
7/summonSkeleton ~ ~1 ~ { HandItems:[{id:""},{id:"stone",Count:2,tag:{ench:[{id:20,lvl:1}]}}],ArmorItems:[{id:""},{id:""},{id:"leather_chestplate",Count:1},{id:""}], HandDropChances:[0f,0f],ArmorDropChances:[0f,0f,1f,0f]}

作用:在命令执行者上方1格的位置召唤一只左手拿2个附魔属性为火焰附加Ⅰ掉落概率为0的石头,身穿掉落概率为百分之百的皮革胸甲的骷髅。
小技巧
在制作PVE地图时,因为地图需要可能会让生物掉落一些特殊物品(如按钮),可以选择让生物“穿上”按钮,把按钮的掉落概率设成百分之百就行了。
第三节设置生物的属性和给生物效果
1.设置生物的属性
生物的属性用Attributes[]来设置,生物属性分为5个部分。
{Name:generic.knockbackResistance,Base:}表示的是击退防护,冒号后填数值,如果此数值设为1的话,此生物用普通武器无法被击退。
{Name:generic.attackDamage,Base:}表示的是攻击力,冒号后填数值,如果数值填1的话,在此生物没有攻击武器时,攻击力为半颗星。
{Name:generic.followRange,Base:}表示跟踪范围,冒号后填数值,如果数值填1的话,那么此生物只能探测到距离他周围1个的距离。
{Name:generic.movementSpeed,Base:}表示移动速度,冒号后填数值,标准生物的移动数值大约在0.2-0.3之间。
{Name:generic.maxHealth,Base:}表示最大生命值,1生命值为半颗心

8:/summon Zombie ~ ~1 ~ {Attributes:[{Name:generic.knockbackResistance,Base:1},{Name:generic.attackDamage,Base:3},{Name:generic.followRange,Base:100},{Name:generic.movementSpeed,Base:0.5},{Name:generic.maxHealth,Base:30}]}
作用:在命令执行者上方1格的位置召唤一只击退防护为1,攻击力为3,跟踪范围为100,速度为0.5,最大生命值为30的僵尸。
2.给生物效果


Minecraft中,我们可以用effect指令给玩家和生物设置效果,同样我们也可以用summon指令来给召唤出来的生物一种效果。Summon指令中,用ActiveEffects:[{Id:,Amplifier:,Duration:}]对生物设置效果,Id填的是效果的编号,Amplifier后填的是等级,等级数值是从0开始的,0数值的效果等级为1Duration后填的是持续时间,注意这个持续时间的单位不是秒,应该是比秒小很多的单位(不太清楚单位是不是毫秒)。这里要重点注意一下,这里的Id写法是大写的I小写的d,不可以都是小写或都是大写。效果作用也可以叠加。

效果id:
1速度 2缓慢 3急迫 4挖掘疲劳 5力量 6瞬间治疗 7瞬间伤害
8跳跃提升 9反胃 10生命恢复 11抗性提升 12防火 13水下呼吸
14隐身 15失明 16夜视 17饥饿 18虚弱 19中毒 20凋零 21生命提升
22伤害吸收 23饱和 24发光 25飘浮 26幸运 27霉运
9/summon Zombie ~ ~1 ~ {ActiveEffects:[{Id:11,Amplifier:0,Duration:9999}]}
作用:在命令执行者上方1格的位置召唤一只拥有抗性提升效果1持续时间9999的僵尸。
第四节自定义村民交易
1.村民的职业

  
制作生存地图时,很多时候都要自定义村民的交易,自定义村民交易有两种方式:一是使用NPCmod,这里这种方式不做详细介绍;二是使用,summon,就是这一节要讲到的内容。



                             在自定义村民交易之前,我们先要了解一下村民的职业。在Minecraft1.12版本中有6种村民的职业。见下面来自minecraftwiki的图。


QQ截图20170723082508.png

用summon指令可以来设置村民的职业,格式为Profession:,后面加职业类型的ID,就是从左往右的第3列。
10/summon Villager ~ ~1 ~ {Profession:5}
在命令执行者上方1格的位置召唤一只职业为傻子的村民。
其实村民的职业和自定义村民交易没有任何关系,村民的职业对自定义村民交易没有任何影响。

2.自定义村民交易
自定义村民交易的格式为:
Offers:{Recipes:[{maxUses:,buy:{id:"",Count:},sell:{id:"",Count:}}]}
maxUses后面填交易次数,通常做生存地图时,会把交易次数设成9999,这样就接近无数次了,id后面填物品的英文或编号,Count和以前一样后面填写物品的数量。
下面要着重讲一下buy和sell的问题,buy的意思是买,sell的意思是卖。买和卖都是以村民为中心的。buy可以理解为村民要收购的东西,而sell可以理解为村民要出售的东西。
11/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:9999,buy:{id:"1",Count:4},sell:{id:"80",Count:2}}]}}
作用:在命令执行者上方1格的位置召唤一只可以用4个石头(id:1)交换2个雪块(id:80)、交易次数为9999次的村民。
次的村民。
QQ截图20170723090220.png


注:如果没有对村民设置职业的话,那么村民的职业ID默认为0
                               在上图中我们可以看到,放置村民收购物品的框有2个,也就是说村民收购的物品可以不止一个,这样的话可以用
buy:{id:"",Count: },buyB:{id:" ",Count:}来表示。
12/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:9999,buy:{id:"1",Count:1},buyB:{id:"3",Count:1},sell:{id:"35",Count:2,Damage:3}}]}}
作用:在命令执行者上方1格的位置召唤一只可以用1个石头(id:1)和1个泥土(id:3)交换2个淡蓝色羊毛(id:35,子编号为3)。
对子编号的理解
可以发现,羊毛的id都是35,而羊毛有不同颜色,所以就需要子编号,子编号在指令中用,Damage表示。右上的图可以发现羊毛的编号是35,子编号是3。 QQ截图20170723091858.png
一个村民也可以设置多个交易,只需两个交易之间用逗号隔开就行了,如:{maxUses:,buy:{id:"",Count:},sell:{id:"",Count:}, {maxUses:,buy:{id:"",Count:},sell:{id:"",Count:}
13/summon Villager ~ ~1 ~{Offers:{Recipes:[{maxUses:9999,buy:{id:"265",Count:4},sell:{id:"276",Count:1}},{maxUses:9999,buy:{id:"266",Count:5},sell:{id:"313",Count:1}}]}}

作用:在命令执行者上方1个的位置召唤一只可以用4个铁锭交换1把钻石剑、交易次数9999次,也可以用5个金锭交换1个钻石靴子、交易次数9999次的村民。
第五节生物的骑乘设置
1.两个生物之间骑乘
在Minecraft原版中就有一些会自然生成的骑乘生物,比如说蜘蛛骑士,在summon指令中,是可以自定义生物的骑乘的。用Passengers:[{id:""}]来表示生物的骑乘。id填的是生物的实体名称,如果想对骑乘的生物进行穿装备等设置,需要在id””后面大括号里面进行设置。
14/summon Spider ~ ~1 ~{Passengers:[{id:"Zombie"}]}
作用:在命令执行者上方1格的位置生成一只骑在蜘蛛上的僵尸。
注:Passengers:[{id:" "}]id里的生物骑在前面生物的上面。
/summon Spider ~ ~1 ~{Passengers:[{id:"Zombie",Attributes:[{Name:generic.attackDamage,Base:15}]}]}
作用:在命令执行者上方1格的位置召唤一只骑在蜘蛛上并且攻击力为15的僵尸。
2.多个生物之间的骑乘
多个生物之间的骑乘分为两个部分,一个部分是多个生物骑在1个生物身上,另一个是好几个生物互相骑乘。多个生物骑在一个生物上的格式是{Passengers:[{id:" "},{id:" "}]},当然后面还可以加更多生物。
15/summon Spider ~ ~1 ~{Passengers:[{id:"Creeper"},{id:"Skeleton"}]}
作用:在命令执行者上方
1
格的位置生成
1
只苦力怕和
1
只骷髅并都骑在蜘蛛身上。

如果想让连续3只生物骑乘在一起的话,就需要在Passengers:[{id:""}]的id””后面大括号里面再加一个Passengers:[{id:""}],以此类推。
16/summon Creeper ~ ~1 ~{Passengers:[{id:"Creeper",Passengers:[{id:"Creeper"}]}]}
作用:在命令执行者上方1格召唤3只连续骑乘在一起的爬行者。
/summon Creeper ~ ~1~ {Passengers:[{id:"Creeper",Passengers:[{id:"Creeper", Passengers:[{id:"Creeper"}]}]}]}
作用:在命令执行者上方1格召唤4只连续骑乘在一起的爬行者。
第六节对生物的其他设置
1.生物倒立和彩虹羊
如果生物的名字为Grumm或者Dinnerbone那么这只生物会四脚朝天。命名可以用命名牌来进行,如果用命令的方式,可以用CustomName把生物命名为Grumm或Dinnerbone就行了。彩虹羊的羊毛是可以不断变化颜色的,只要把羊的名字命名为jab_,此羊的羊毛就会不断变化颜色。
如果在指令中加上CustomNameVisible:1,那么此生物的名字会一直显示。如果没有CustomNameVisible:1,如果生物有名字的话,那么此生物的名字只有你在游戏中用十字准星对准该生物的时候名字才会显示。
17/summon Sheep ~ ~1 ~{CustomName:jeb_,Passengers:[{id:"Sheep",CustomName:Grumm, CustomNameVisible:1}]}

作用:在命令执行者上方1格的位置召唤一只名为Grumm的倒立的且名字一直显示的羊,并骑在一只彩虹羊身上。
2.生物形态和史莱姆类生物尺寸
很多生物都有幼年形态,比如说僵尸,猪,鸡等生物。我们可以用IsBaby:1来设置僵尸的幼年形态(不知道为什么1.12版本只能设置僵尸的幼年形态,其他的不行)。IsBaby:0表示生物成年。如:/summon Zombie ~ ~1 ~ {IsBaby:1}
猪的身上是可以放置鞍的。用Saddle:1可以给猪,放置鞍,仅限于猪,马不行。如:/summon Pig ~ ~1 ~ {Saddle:1}

  
用summon指令可以对史莱姆大小进行设置,用:Size:来设置, Size:10就是大小约为5格。爬行者和高压爬行者的ID都是Creeper,如果要生成高压爬行者,就要用到powered:1。如:/summon Creeper ~ ~1 ~ {powered:1}
3.爬行者爆炸和恶魂火球爆炸
ExplosionRadius:来设置爬行者的爆炸半径,默认值为3,用Fuse:来设置爬行者爆炸时间,默认值为30。恶魂的火球爆炸也有半径,用}ExplosionPower:来设置恶魂火球的爆炸半径,默认值为1
18/summon Creeper ~ ~1 ~{ExplosionRadius:5,Fuse:100}

作用:在命令执行者上方1格的位置召唤一只爆炸半径为5,爆炸时间为100的苦力怕。


第七节summon指令应用:制作关卡制PVE地图

1.关卡制PVE地图的3个区域

                               关卡制PVE地图我一般划分为3个区域:出生点、主要游戏场景、和指令区。
出生点就是玩家打开地图出生的地方,在这里你可以写一些关于地图的规则和注意事项。然后在设置一个指令,可以让玩家传送到主要游戏场景 QQ截图20170715111825.png QQ截图20170715111809.png 2017-07-15_10.33.17.png

    主要游戏场景,这个区域就是主要的游戏区域,由于是关卡制的PVE地图,所以场景一般是固定不变的。场景要做的大一些,然后在场景几个位置设定刷怪点,要记录坐标,等刷怪的时候,把summon指令的坐标设置到刷怪点上就行了。


我又把指令区分为两个部分,一个是启动区,一个是执行区。如右图,左面的是启动区,右面的是执行区。但是这个地图还是有一定缺点的,就是在1.9以上的版本,做PVE这种需要大量命令方块的地图一般不怎么用红石,而启动区就是以红石为主,所以这是此地图需要改进的问题。

2.地图的运行原理

在主要场景设置一个命令方块,这个命令方块能启动启动区,启动区中的命令会激活执行区,执行区会进行刷怪任务,这就是关卡制PVE地图的基本原理,不过这样的地图需要让玩家每打完手动去启动一下关卡。
为什么要设置启动区
很多人可能都有这样的有这样的疑问,为什么不能直接启动执行区,偏要用启动区来启动执行区呢?如图所示,这是启动区的部分场景,如果这时我在①处放置一个红石火把,那么左边这个电路会启动,而右边的电路因为⑥处没有方块所以无法启动。此时会触发命令方块②④⑤,②的作用是清除①中的方块,③的作用是清除⑦处的方块,④的作用是在⑥处生成一个方块,⑤的作用才是启动执行区中第一关的区域。这一个过程有两个重要的变化,一是⑦处没有了方块,⑥处有了方块,二是第一关启动。这样的话如果再在①处放一个红石火把,红石信号就会走右面的电路而不走左边的电路,从而启动第二关,以此类推,而在①处放置红石火把的任务就交给主要游戏场景里的那个命令方块。
QQ截图20170724181219.png

  
执行区的主要任务就在刷怪点刷怪,刷怪就需要用到summon指令,刷怪是关卡制PVE地图的中心部分,地图制作者可以给生物自定义一些属性,但是要注意,游戏的平衡性很重要,一定要把生物的属性设置在合理范围之内。(案例地图为我制作的1.12末影角逐)
第八节原版模组的制作方法

1.对原版模组的理解

原版模组,顾名思义,首先要基于原版之上。玩过原版模组的玩家都知道,原版模组一般是一长串指令,将其输入到一个命令方块里,然后启动,先会看见一长串命令方块生成,然后会在一个区域生成另一些命令方块,随后那一长串命令方块就消失了,真正起作用的是生成的那一区域的命令方块。原版模组也是通过/summon指令进行的。由于原版模组大多是一条命令,所以这样的原版模组的格式叫做OOCOOConly onecommand(只有一条命令)的缩写。
在正式学习编写原版模组之前,我们首先要学习它的基本原理,很多原版模组开头是召唤一个落沙:/summon falling_block~ ~10 ~ {Time:1},如果单独输入这条指令,你会发现一个沙子从天而降,如果地面是平坦的,那么落到地下会变成方块。我们可以把落沙替换成命令方块,如: /summon falling_block ~ ~10 ~ {Time:1,Block:command_block}。不光如此,我们还可以在生成的命令方块里面加入命令,如:/summon falling_block~ ~10 ~ {Time:1,Block:command_block,TileEntityData:{Command:"/effect @p 1999 0"}。这只是一个命令方块,而原版模组一般是一长串命令方块,怎么做到呢?其实很简单,利用第五节学习的骑乘知识就可让一个方块骑在另一个方块上。如:/summon falling_block~ ~10 ~ {Time:1,Block:command_block,TileEntityData:{Command:"/effect @p 1999 0"},Passengers:[{id:falling_block,Time:1,Block:redstone_block}]}利用这个原理就可以做原版模组了。
2.制作简单的原版模组


  我们以一个我做的极其简单的原版模组为例子来讲解原版模组的做法。这个原版模组的作用是:不同生物走过的地方会留下不同的陶瓦,玩家踩到不同的陶瓦会产生不同的效果。

首先我们要把这体现这个原版模组的作用的命令写下来
/execute @e[type=Zombie] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:stained_hardened_clay5
/execute @e[type=Player] ~ ~ ~ detect ~ ~-1 ~minecraft:stained_hardened_clay 5 /effect @p 17 8 0
/execute @e[type=Spider] ~ ~ ~ /setblock ~ ~-1 ~minecraft:stained_hardened_clay 11                    
/execute @e[type=Player] ~ ~ ~ detect ~ ~-1 ~minecraft:stained_hardened_clay 11 /effect @p 18 5 0     
/execute @e[type=Creeper] ~ ~ ~ /setblock ~ ~-1 ~minecraft:stained_hardened_clay 13                  
/execute @e[type=Player] ~ ~ ~ detect ~ ~-1 ~ minecraft:stained_hardened_clay13 /effect @p 2 5 5   
/execute @e[type=Skeleton] ~ ~ ~ /setblock ~ ~-1 ~minecraft:stained_hardened_clay 4                  
/execute @e[type=Player] ~ ~ ~ detect ~ ~-1 ~minecraft:stained_hardened_clay 4 /effect @p 4 5 1      

以上命令的功能是:不同生物(只设置了4种生物)走过的地方会留下不同的陶瓦,玩家踩到不同的陶瓦会产生不同的效果。
                               以上一共有八条命令,需要八个保持开启的循环命令方块(蓝色的命令方块)。这个时候我们要设置一个区域来放置命令方块。如图,这是我设定的区域,里面正好8个格。下面的任务就是用骑乘的方式生成这么一个区域并且用命令在里面放置带有指令的循环命令方块。这些所有的工作都需要用一个命令来完成。首先我们要考虑一下我们要生成几个骑乘的命令方块,首先底部的铁块需要/fill指令填充,需要一个命令方块,四面的白色玻璃用/fill指令填充一面需一个命令方块,在加上8个循环命令方块,一共需要大约13个骑乘的命令方块。首先,我们来设置底部铁块和四面的白色玻璃,用到的指令如下:
QQ截图20170723223142.png


/summonfalling_block ~ ~10 ~{Time:1,Block:command_block,TileEntityData:{Command:"/fill ~5 ~3 ~ ~8 ~3~5 iron_block"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~5 ~3 ~ ~5 ~5 ~5stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~2 ~ ~8 ~4 ~5 stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~1 ~ ~5 ~3 ~stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~ ~5 ~5 ~2 ~5 stained_glass"}}]}]}]}]}

制作原版模组使用的坐标全部都是相对坐标,绝对不能使用实际坐标。输入这种大型指令时要不断检查,最好在生成四面的白色玻璃的时候,用指令每设置好一面白色玻璃最好就检查一次,相对坐标很容易出错。尤其要注意的一点就是:由于生成的命令方块是不断往上堆叠的,所以每一层的命令方块的Y轴坐标都要比它下面那个命令方块的Y轴坐标多1这一点在使用相对坐标时要格外注意。从上面的命令中可以发现:很多命令都是大同小异的所以要学会复制黏贴,以下的命令是要经常用到的,可直接套格式复制黏贴上去,只需要把command填内填充内容就行了。Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:""}}]
完成以上的步骤,这个原版模组就已经做完45%了,接下来就要在这个区域里放置8个带有特定命令的循环型命令方块。放置带有特定命令的循环型命令方块的指令是:/setblock~ ~ ~ minecraft:repeating_command_block 0 replace {auto:1b,Command:""}只要在Command里输入命令就行了,当然setblock的相对坐标要填对。

  我们先试一下:/summonfalling_block ~ ~10 ~{Time:1,Block:command_block,TileEntityData:{Command:"/fill ~5 ~3 ~ ~8 ~3~5iron_block"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~5 ~3 ~ ~5 ~5 ~5 stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~2 ~ ~8 ~4 ~5stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~1 ~ ~5 ~3 ~ stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~ ~5 ~5 ~2 ~5stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock ~7 ~-1 ~4minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute@e[type=Zombie] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:stained_hardened_clay5\"}"}}]}]}]}]}]}

                               其中这条指令的前半部分没什么好看的,和前面一样,看加粗部分。加粗部分就是在{Command:””}里又加了一个Command,注意第二个Command比第一个Command两边多了两个\,“\”符号必须要加。也就是在Command里如果还有一个Command的话,里面的那个Command两边要多加两个“\”。

   
接下来按照这个模式把之前准备的8条指令依次套“公式”就行了,完成这一点就完成90%,这是把完成命令复制到一个命令方块中,会出现的效果应该大致是如下图所示的这样。这个时候可以发现,虽然命令方块已经生成,但是还没有被激活,这个时候就需要再在指令上设置骑乘1个装有填充红石块指令的命令方块,然后再在后面骑乘1个红石块激活那个命令方块。设置完后,将命令输入命令方块中,会出现的效果下图示,这个时候就会发现旁生成了下图所示的命令方块区域。 QQ截图20170724155644.png QQ截图20170724160109.png

这个时候就完成了95%,最后一步就是清除命令方块注,只需后面再骑乘一个填充空气的命令方块和一个红石块就行了。做好这步,这个简单的原版模组就制作完成了,下面是这个原版模组的全部命令:

/summonfalling_block ~ ~10 ~{Time:1,Block:command_block,TileEntityData:{Command:"/fill ~5 ~3 ~ ~8 ~3~5iron_block"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~5 ~3 ~ ~5 ~5 ~5 stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~2 ~ ~8 ~4 ~5stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~1 ~ ~5 ~3 ~ stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill~8 ~ ~5 ~5 ~2 ~5stained_glass"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock~7 ~-1 ~4 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute@e[type=Zombie] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:stained_hardened_clay5\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock~6 ~-2 ~4 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute@e[type=Player] ~ ~ ~ detect ~ ~-1 ~ minecraft:stained_hardened_clay 5 /effect@p 17 80\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock~7 ~-3 ~3 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute@e[type=Spider] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:stained_hardened_clay11\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock~6 ~-4 ~3 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute@e[type=Player] ~ ~ ~ detect ~ ~-1 ~ minecraft:stained_hardened_clay 11 /effect@p 18 50\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock~7 ~-5 ~2 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute@e[type=Creeper] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:stained_hardened_clay13\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock~6 ~-6 ~2minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute @e[type=Player] ~ ~ ~ detect ~ ~-1 ~ minecraft:stained_hardened_clay 13 /effect @p 2 5 5\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock ~7 ~-7 ~1 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute @e[type=Skeleton] ~ ~ ~ /setblock ~ ~-1 ~ minecraft:stained_hardened_clay 4\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/setblock ~6 ~-8 ~1 minecraft:repeating_command_block 0 replace {auto:1b,Command:\"/execute @e[type=Player] ~ ~ ~ detect ~ ~-1 ~ minecraft:stained_hardened_clay 4 /effect @p 4 5 1\"}"},Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill ~1 ~-13 ~ ~1 ~2 ~ redstone_block"},Passengers:[{id:falling_block,Time:1,Block:redstone_block,Passengers:[{id:falling_block,Time:1,Block:command_block,TileEntityData:{Command:"/fill ~0 ~-15 ~ ~1 ~3 ~ air "},Passengers:[{id:falling_block,Time:1,Block:redstone_block}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}
3.最后的总结语


看起来指令特别庞大,但其实原理还是比较简单的,这只是做了一个极其简单的原版模组,但是制作原版模组的思路大致就是这样。其实在我写原版模组的教程的时候,我也是先学的原版模组的制作过程,而且我搜集的资料时,没有发现讲解1.9以上原版模组的内容(1.9summon指令改动很大)所以只能考通过不断试验来学习,其实指令很多需要自己去摸索,自己亲自试一试,因为有些问题可能不太好表述,但自己一试就明白了。由于我对指令的了解也并不是很深,所以可能在讲解的过程中有一些名词性的东西把握的不是很准,也请谅解。在写教程的过程中我基本上把需要注意的问题和我自己开始的疑惑都写了进去,希望对大家有所帮助。

注:由于这是从我的word直接复制黏贴的,所以排版可能有问题,有问题欢迎提问和指出,有时间会放出图片版的。
QQ截图20170725221536.png
QQ截图20170725221550.png QQ截图20170725221601.png QQ截图20170725221613.png QQ截图20170725221623.png QQ截图20170725221718.png QQ截图20170725221730.png QQ截图20170725221741.png QQ截图20170725221751.png QQ截图20170725221807.png QQ截图20170725221847.png QQ截图20170725221940.png QQ截图20170725221951.png QQ截图20170725222000.png QQ截图20170725222054.png QQ截图20170725222104.png QQ截图20170725222112.png QQ截图20170725222133.png QQ截图20170725222240.png QQ截图20170725222250.png

评分

1

查看全部评分

0

主题

4

帖子

1

积分

Lv.1 新手木匠

UID
39376
小麦
0
金锭
40
下界之星
0
发表于 2017-7-25 13:39:19 来自手机 | 显示全部楼层
666

0

主题

4

帖子

1

积分

Lv.1 新手木匠

UID
39376
小麦
0
金锭
40
下界之星
0
发表于 2017-7-25 13:40:14 来自手机 | 显示全部楼层
楼主能加好友吗?

1

主题

52

帖子

15

积分

Lv.1 新手木匠

UID
37423
小麦
1
金锭
92
下界之星
0

内测精英勋章

发表于 2017-7-25 14:42:42 来自手机 | 显示全部楼层
看不懂OuO

0

主题

3

帖子

1

积分

Lv.1 新手木匠

UID
71865
小麦
0
金锭
8
下界之星
0
发表于 2017-7-25 14:45:20 来自手机 | 显示全部楼层
完全看不懂。。。

0

主题

1

帖子

0

积分

Lv.1 新手木匠

UID
48156
小麦
0
金锭
8
下界之星
0
发表于 2017-7-25 16:10:15 来自手机 | 显示全部楼层
虽然看不懂,但是绝得666

1

主题

19

帖子

6

积分

Lv.1 新手木匠

UID
73647
小麦
0
金锭
32
下界之星
0
发表于 2017-7-25 16:34:51 来自手机 | 显示全部楼层
楼主,自己开局域网生存,苦力怕爆炸不破坏物体指令 是什么?

51

主题

587

帖子

275

积分

Lv.5 农牧专家

UID
14859
小麦
66
金锭
1088
下界之星
0
发表于 2017-7-25 19:45:41 | 显示全部楼层
希望排版简洁不缭乱,多干货,支持

7

主题

36

帖子

20

积分

Lv.2 石器学徒

UID
23980
小麦
3
金锭
121
下界之星
0
 楼主| 发表于 2017-7-25 20:57:07 | 显示全部楼层
我叫不紧张 发表于 2017-7-25 16:34
楼主,自己开局域网生存,苦力怕爆炸不破坏物体指令 是什么?

/gamerule mobGriefing false

5

主题

45

帖子

18

积分

Lv.1 新手木匠

UID
17058
小麦
2
金锭
79
下界之星
0
发表于 2017-7-25 21:37:03 | 显示全部楼层
原来绿色的叫傻子

7

主题

36

帖子

20

积分

Lv.2 石器学徒

UID
23980
小麦
3
金锭
121
下界之星
0
 楼主| 发表于 2017-7-26 09:42:38 来自手机 | 显示全部楼层
无敌小钻风 发表于 2017-7-25 14:45
完全看不懂。。。

至少你可以把代码复制到游戏里试试

7

主题

36

帖子

20

积分

Lv.2 石器学徒

UID
23980
小麦
3
金锭
121
下界之星
0
 楼主| 发表于 2017-7-26 09:44:11 来自手机 | 显示全部楼层
我的世界丶小黑 发表于 2017-7-25 16:10
虽然看不懂,但是绝得666

可以命令复制粘贴放到游戏里试试

7

主题

70

帖子

26

积分

Lv.2 石器学徒

UID
19883
小麦
1
金锭
143
下界之星
0
发表于 2017-7-26 10:06:14 | 显示全部楼层
码了好多代码。代码都是书上的?

7

主题

36

帖子

20

积分

Lv.2 石器学徒

UID
23980
小麦
3
金锭
121
下界之星
0
 楼主| 发表于 2017-7-26 12:37:04 来自手机 | 显示全部楼层
WeWorld 发表于 2017-7-26 10:06
码了好多代码。代码都是书上的?

所有例题中的命令都是我自己写的

7

主题

70

帖子

26

积分

Lv.2 石器学徒

UID
19883
小麦
1
金锭
143
下界之星
0
发表于 2017-7-26 15:11:22 | 显示全部楼层
MC_taotao 发表于 2017-7-26 12:37
所有例题中的命令都是我自己写的

厉害
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部