一般性交易指针对于村民的交易面板,交互性交易对所有实体均可执行。
(实例:地图《法尔之旅》中药店前的感冒村民通过扔给他"感冒药"达成交换金苹果的交易[其原理是漏斗])
指令方块将没有漏斗的局限,完全命令方块控制,对所有物品、所有交易均执行。
效果/展示:
这是一个极寒的雪山,地处南极。
趁今夜没有风雪,看见环山中有火光,便前来一探。
原来山谷中有座冰屋,今天就来借住一晚。
里面有个友善(在原理:①处将解答)的居民。
山壁无法攀援。
雪质坚硬。
冰屋地势低矮,却能储存热量。
屋后有四只雪橇犬。
经沟通,这位爱斯基摩人同意与我们交换一些物品。
扔给他一些皮革,会得到一些熟鱼。
我们还需要一些。
交易成功。
同时他也需要骨头喂养雪橇犬。给予骨头。
得到20经验。
再次给予,但是好像他不需要了,交易失败。
它也需要一些熟食及肉食使雪橇犬保暖。给予牛排。
给予猪排。
给予腐肉。
他好像很开心的样子,给了我一把钓鱼竿,而且必定获得
不错的附魔。
原理翻页
原理:
全部区域。[场景纯手撸,建筑渣撸了十五分钟]
先来放出上文提到的①
刷出一个被动型爱斯基摩人:
- /summon PigZombie ~ ~-2 ~1
交易原理区:
同实体方块交互一样,设置计判。
红色羊毛:创建计判变量。
- /scoreboard objectives add 某名 dummy
高频并使用红石来连接以下部分:
黄/蓝:单物品交易
按照红石信号强度来决定先后顺序。(激活顺序就是指令排列顺序[先上后下])
黄:皮革。
- /scoreboard players set @e[type=Item] 某名 1 {Item:{id:"minecraft:leather"}}
- /execute @e[type=Item,score_某名_min=1,score_某名=1] ~ ~ ~ execute @e[type=PigZombie,name=Eskimo] ~ ~1 ~ give @p cooked_fish
关于交易失败:
由于物品抛出去的方向有个范围随机值,又因为计分板只能判定实体在实体范围内(F3+B可查看),所以有时候物品抛掷出去虽接触实体却并没有与实体重合。但一旦接触地面,物品掉落自动修正,所以导致下面的命令却能执行:
- /execute @e[type=PigZombie,name=Eskimo] ~ ~ ~ execute @e[type=Item,score_某名_min=1,score_某名=1,r=1] ~ ~ ~ kill @e[type=Item,score_某名_min=1,score_某名=1,r=1]
与黄同理,蓝:骨头
- /scoreboard players set @e[type=Item] 某名 2 {Item:{id:"minecraft:bone"}}
- /execute @e[type=Item,score_某名_min=2,score_某名=2] ~ ~ ~ execute @e[type=PigZombie,name=Eskimo] ~ ~1 ~ xp 20 @p
- /execute @e[type=PigZombie,name=Eskimo] ~ ~ ~ execute @e[type=Item,score_某名_min=2,score_某名=2,r=1] ~ ~ ~ kill @e[type=Item,score_某名_min=2,score_某名=2]
绿紫黑:多物品交易
由于指令方块没有交易面板只有两个交易槽的限制,所以交易双方的物品都是无限的。
绿:设置计判。
- /scoreboard players set @e[type=Item] 某名 5 {Item:{id:"minecraft:rotten_flesh"}}
- /scoreboard players set @e[type=Item] 某名 4 {Item:{id:"minecraft:cooked_porkchop"}}
- /scoreboard players set @e[type=Item] 某名 3 {Item:{id:"minecraft:cooked_beef"}}
紫:交易
- /execute @e[type=PigZombie,name=Eskimo] ~ ~ ~ execute @e[type=Item,score_某名_min=3,score_某名=3,r=1] ~ ~ ~ execute @e[type=Item,score_某名_min=4,score_某名=4,r=1] ~ ~ ~ execute @e[type=Item,score_某名_min=5,score_某名=5,r=1] ~ ~ ~ give @p fishing_rod 1 0 {ench:[{id:61,lvl:3},{id:62,lvl:2}]}
黑:清除
- /execute @e[type=PigZombie,name=Eskimo] ~ ~ ~ kill @e[type=Item,score_某名_min=3,score_某名=3,r=1]
- /execute @e[type=PigZombie,name=Eskimo] ~ ~ ~ kill @e[type=Item,score_某名_min=5,score_某名=5,r=1]
- /execute @e[type=PigZombie,name=Eskimo] ~ ~ ~ kill @e[type=Item,score_某名_min=4,score_某名=4,r=1]
关于必得:
由于三个物品扔出去有时间差,所以有段时间可以提供物品掉落修正,三个物品就能自动重合,就能必得。
如果让单物品交易必得,可以在交易者处生成一个无法捡起交易物,达到同样效果。
存档将在下次教程中放出。
(最近版本更新致使许多Bug产生,包括命令方块高频无法正常运行。)
@songfeitong @tyson @我的世界sun123 @PotatoMaster101 @ghyzhi10086 @审奥不解释 @67880371 @kongbaiyo @zhjjhz
[groupid=546]Command Block Logic[/groupid]