我的世界指令详细教学

您所在的位置:网站首页 我的世界村民交易表大全 我的世界指令详细教学

我的世界指令详细教学

2024-06-07 18:33| 来源: 网络整理| 查看: 265

序:

本片专栏的目的在于让不是很懂指令的小白玩家可以自定义村民,可用于在原版自制pvp地图或服务器村民交易系统。

在本篇文章中,作者会把生成村民的指令掰开揉碎了交给你,可能会显得有些啰里啰唆,但一定是详细而又真诚的。当你耐心看完,并且一个一个的指令自己输入到游戏中,你就会发现自己不知不觉就学会了这些。

版本:1.12.2

基岩版可能不适用。

闲话少说,直接开始正题。

首先要有一个村民

生成一个傻子村民的指令如下

/summon Villager ~ ~1 ~ {Profession:5}

这条指令可以召唤一个村民:傻子。至于为什么是傻子,稍后会解释。在这里,同学们可以尝试将Profession后边的数字进行更改,从0到5。

关于村民的职业

每一位村民的职业都可通过其衣着判断。每一种职业还有对应的职业。可以在交易界面顶部的标题识别它们的职业。下表列出了几种村民与相对不同职业的职业,以及它们已经定义的ID。

村民职业介绍

至于傻子

“这一开始是因为玩家可以使用命令生成没有职业的村民,这也是生成绿袍村民的唯一方式。每当我们发现我们的Bug被社区利用的时候,我们只是把它看成是“未定义的行为”,然后把它变成一个特性来“修复”它。在这种情况下,我们就只需要给绿袍村民一个职业。我不记得我们想出的第一个职业的名字是什么,可能是“失业”,又或者是其他名字,但这真的不适合这个世界,因为我认为其他村民没有被其他的村民所雇佣。因此,我想到的下一个名字是“白痴村民”,但我认为“傻子”这个名字更有趣。”

——Jeb about the Nitwit[1]

傻子村民是一种穿着绿色袍子的村民。玩家不能和他们交易(1)。

(1)作者注:在正常游戏中,玩家是无法与傻子交易的,因为他没有交易条目。但在我们的指令中,我们生成了一个傻子,并将要赋予他一些交易项目,为什么要这么做呢?因为如果生成一个有交易项目的村民,即有职业的村民,那么在我们给定的交易项目之外,他还会有他原版的交易条目,这显然会影响玩家的交易过程与体验。

这时我们发现:我们生成的这个村民会到处移动,这显然影响秩序。

这个村民不应该乱跑

那么现在我们对这条指令进行小小的扩充,如下:

/summon Villager ~ ~1 ~ {Profession:5,NoAI:1b}

在这条指令中,我们关闭了村民的“AI”,他现在一动不动,像王八真正的傻子

好的,一个一动不动的工具人诞生了!

好吧,现在还不是工具人,充其量也只是一个肉靶。

而且连个名字都没有。

他应该有个名字

他是买卖普通物品的,我就叫他“普通物品”吧!

/summon Villager ~ ~1 ~ {Profession:5,NoAI:1b,CustomName:"普通物品"}

在这条指令中,我们将这个村民命名为“普通物品”,当我们把鼠标放到他身上时,他的头上会冒出这个名字。

现在我一看到他,我就知道他是买卖普通物品的了!

但是我是一个腐竹,我将会有很多很多的村民,一个一个的看一遍才能知道他是干嘛的,岂不是很麻烦?

他应该把自己的名字像荣耀一样悬挂在自己的头上,让人远远的就能认出自己

再加一些设定!

/summon Villager ~ ~1 ~ {Profession:5,NoAI:1b,CustomName:"普通物品",CustomNameVisible:1b}

好了,他已经做好成为一个工具人的觉悟了!

接下来就是给他一些交易条目了!

py交易,get!

既然是奸商,那就一个铁锭换两个熟牛排吧!

/summon Villager ~ ~1 ~ {Profession:5,NoAI:1b,CustomName:"普通物品",CustomNameVisible:1b,Offers:{Recipes:[{rewardExp:1,maxUses:9999999,buy:{id:iron_ingot,Count:1},sell:{id:cooked_beef,Count:2}}]}}

小白:哦,亲爱的上帝啊,这一坨玩意儿是什么?

不妨我们先看多出来的词条。

Offers:{Recipes:[{maxUses:9999999,buy:{id:iron_ingot,Count:1},sell:{id:cooked_beef,Count:2}}]}

仔细观察可知,这部分由两部分组成,一是外层的Offers:{Recipes:[写两个字占个位置]},二是内层的{rewardExp:1,maxUses:9999999,buy:{id:iron_ingot,Count:1},sell:{id:cooked_beef,Count:2}}

外层不必我多说,就来详细讲解一下内层。

其中:

rewardExp:1的意思是:交易会产生经验,可以删掉不写。

maxUses:9999999的意思是:最大使用次数9999999次,一共七个九。

buy:{id:iron_ingot,count:1}的意思是:村民买入(即你在交易时须支付的)

id为物品id,count为物品数量。

{id:cooked_beef,Count:2}的意思是:村民卖出(即你在交易时能买来的)

id为物品id,count为物品数量。

现在有必要给这个村民开智了!

只卖一个东西怎么行呢?

下边的是我在自制pvp地图时所用到的

/summon Villager ~ ~1 ~ {Profession:5,NoAI:1b,CustomName:"普通物品",CustomNameVisible:1b,Offers:{Recipes:[{maxUses:9999999,buy:{id:iron_ingot,Count:1},sell:{id:cooked_beef,Count:2}},{maxUses:9999999,buy:{id:iron_ingot,Count:1},sell:{id:stone_sword,Count:1}},{maxUses:9999999,buy:{id:iron_ingot,Count:2},sell:{id:leather_chestplate,Count:1}},{maxUses:9999999,buy:{id:iron_ingot,Count:2},sell:{id:arrow,Count:5}},{maxUses:9999999,buy:{id:iron_ingot,Count:4},sell:{id:bow,Count:1}},{maxUses:9999999,buy:{id:iron_ingot,Count:5},sell:{id:iron_sword,Count:1}},{maxUses:9999999,buy:{id:iron_ingot,Count:8},sell:{id:iron_chestplate,Count:1}},{maxUses:9999999,buy:{id:diamond,Count:1},sell:{id:golden_apple,Count:1}},{maxUses:9999999,buy:{id:diamond,Count:2},sell:{id:diamond_sword,Count:1}},{maxUses:9999999,buy:{id:diamond,Count:3},sell:{id:diamond_chestplate,Count:1}}]},Attributes:[{Name:"generic.maxHealth",Base:1000f}],Health:1000f}

这条指令是在:生成一个村民,{职业是:傻子,无移动AI:是,名字叫做:“普通物品”,名字一直显示在头顶,提供:{买卖:【{(项目一)最大买卖次数:9999999,需支付:{铁锭,数量1},卖出:{熟牛排,数量二}},{(项目二)铁锭1——石剑1},{铁锭2——皮革胸甲1},{铁锭2——箭矢5},{铁锭4——弓1},{铁锭5——铁剑1},{铁锭8——铁胸甲},{钻石1——金苹果1},{钻石2——钻石剑1},{钻石3——钻石胸甲}】},属性:【{血量上限1000}】,血量1000}

Attributes:[{Name:"generic.maxHealth",Base:1000f}],Health:1000f}

眼尖且严谨的同学可能已经注意到这多出来的一条,血量上限1000,血量1000。这是为了防止玩家不小心把村民打死(在不使用其他方法时,这是个还不错的解决方案)。

注:指令要求全英文符号“半角符号”否则无法识别,血量上限的上限是1024,没法更多。版本1.12.2。java。

这时候肯定有人要问了,如果想让村民卖一些特殊东西,如附魔物品和模组里的东西时应该怎么办呢?

怎么办?加tag不就好了!

加tag

/summon Villager ~ ~1 ~ {Profession:2,NoAI:1b,CustomName:"高级物品",CustomNameVisible:1b,Offers:{Recipes:[{rewardExp:1,maxUses:9999999,buy:{id:diamond,Count:4},sell:{id:"twilightforest:glass_sword",Count:1,tag:{display:{Name:"你过来啊!"},ench:[{id:16,lvl:20}]}}}]}},Attributes:[{Name:"generic.maxHealth",Base:1000f}],Health:1000f}

使用这条指令的前提是加入了暮色森林模组

因为"twilightforest:glass_sword"为暮色森林里的玻璃剑。

因为物品id中含有冒号,系统识别时会识别错误,所以要在外边套一个引号。

这个村民是四个钻石卖一把名为“你过来啊!”且带有锋利20附魔的玻璃剑。

tag:{display:{Name:"你过来啊!"},ench:[{id:16,lvl:20}]}

在这里,我把tag单独拎出来供大家观摩,这个东西直接放到sell的花括号里就行。

其他基本知识

指令要求全英文符号输入

如果想知道附魔id,再百度上很容易就能查到

很有可能会用到的指令:

/give @p command_block给予玩家一个命令方块

/give @p diamond_sword 1 0 {display:{Name:"不好意思放错了"},{ench:[{id:16,lvl:10000}]},Unbreakable:1b}给予玩家一把名为“不好意思放错了”且附魔锋利10000的不毁钻石剑(用以击杀放错了的村民)

好了,到这里就结束了,容卑微的up要个赞,这么详细的教学,一个赞不亏吧?

嘿嘿,如果还有有问题,可以私信小up或再评论区留言,小up不一定在,但有空一定会看的

爱学习的同学们可以查看相关资料,下方附有链接

资料来源:https://minecraft.fandom.com/zh/wiki/%E6%9D%91%E6%B0%91/%E6%9D%91%E5%BA%84%E4%B8%8E%E6%8E%A0%E5%A4%BA%E5%89%8D



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3