黑茶RGO
本帖最后由 黑茶RGO 于 2020-1-17 16:34 编辑

1.【已解决】如何用summon指令召唤绿衣傻子村民
2.【已解决】如何用summon指令召唤特定职业特定等级的不能交易的村民(行为要跟无业游民一样到处走动而不是在某个工作方块附近徘徊)
3.如何使带有“jobless_villager”tag的成年村民一直保持没有职业的状态,无法获得职业,即使附近有空闲的工作方块(同时行为也要跟正常的无业游民一样)
4.如何使有自定义交易的村民无论发生什么也不会涨价和降价,也不会出现缺货或者升级的情况
5.如何使有职业的村民永远不补货(去工作方块处干活并发出对应的声音)
6.【已解决】如何用选择器分别指定可以交易的村民和不能交易的村民(不是有职业的村民和没有职业的村民)

Aurora_Feather
1.
  1. /summon minecraft:villager ~ ~1 ~ {VillagerData:{profession:"minecraft:nitwit"},Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}}}
复制代码

2.
  1. /summon minecraft:villager ~ ~1 ~ {VillagerData:{lvl:n},Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}}}
复制代码
把n改成职业等级,暂未测试是否有效
3.高频指令能接受吗...反正高频这个:
  1. /execute as @e[tag=jobless_villager,nbt={}] run data merge entity @s {VillagerData:{lvl:1},Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}}}
复制代码
我坦白这个是1.12-entitydata指令升级来的..
不知道如何利用nbt目标选择器XD...
后面的等待研究吧...

3104026189
我给你推荐一个网站,可以很明白的自定义实体https://www.mcmod.cn/tools/cbcreator/?_wv=1031

黑茶RGO
本帖最后由 黑茶RGO 于 2020-1-16 19:59 编辑
xiang_xge 发表于 2020-1-16 14:40
1.
2.把n改成职业等级,暂未测试是否有效
3.高频指令能接受吗...反正高频这个:我坦白这个是1.12-entity ...

你只解决了我的第一个问题,后面两个我都试了,没用

黑茶RGO
3104026189 发表于 2020-1-16 14:55
我给你推荐一个网站,可以很明白的自定义实体https://www.mcmod.cn/tools/cbcreator/?_wv=1031 ...

那个并不适合生成1.14的村民,更不能解决后面几个问题

我是谁o
针对第2个,你可以试试这个东西(第2都满足但是可以交易)
  1. /summon minecraft:villager ~ ~ ~ {VillagerData:{level:n,profession:"minecraft:fletcher"}}
复制代码
(此处以制箭师为例,职业nbt为profession,level为等级,n为变量整形)



黑茶RGO
我是谁o 发表于 2020-1-16 22:23
针对第2个,你可以试试这个东西(第2都满足但是可以交易)
(此处以制箭师为例,职业nbt为profession,level为等 ...

直接这样没用的,生成出来还是普通村民

我是谁o
本帖最后由 我是谁o 于 2020-1-16 22:37 编辑

1.14确实改了很多关于村民的东西,第2个问题确实是特定等级特定职业也可以交易呐,而且也没问题




我是谁o
本帖最后由 我是谁o 于 2020-1-16 23:26 编辑

好吧你的好奇心强,我也最多回答第6个问题
1.首先放置2个命令方块(无限循环)
2.设置一个计分榜,叫jiaoyi
  1. /scoreboard objectives add jiaoyi dummy
复制代码



3.第一个命令方块输入
  1. /scoreboard players set @e[type=minecraft:villager,nbt=!{VillagerData:{profession:"minecraft:none"}}] jiaoyi 1
复制代码
意思是给 不是没有职业的村民(即能交易的村民) 的jiaoyi分数设置为1

第二个命令方块输入
  1. /scoreboard players set @e[type=minecraft:villager,nbt={VillagerData:{profession:"minecraft:none"}}] jiaoyi 0
复制代码
意思是给 没有职业的村民(即不能交易的村民) 的jiaoyi分数设置为0
然后就可以使用@e[type=villager,scores={jiaoyi=1}]替代有交易的村民,反之,@e[type=villager,scores={jiaoyi=0}]替代无交易的村民
其实弄一个数据包(Data pack)载入就直接可以了,我用的是1.15.1,你可以试试行不行,反正我是试过可以用的
自己开了1.14.4看了一下,发现这还是不能用在1.14,1.15正常不过还是希望有所帮助,1.15修了一些村民标签,wiki的内容找不到1.14了


黑茶RGO
我是谁o 发表于 2020-1-16 23:09
好吧你的好奇心强,我也最多回答第6个问题
1.首先放置2个命令方块(无限循环)
2.设置一个计分榜,叫jiaoyi

不能交易和没有职业是两回事,没有职业的村民也可以通过改nbt使其可以交易,有职业的村民也可以通过改nbt使其不能交易

黑茶RGO
我是谁o 发表于 2020-1-16 22:35
1.14确实改了很多关于村民的东西,第2个问题确实是特定等级特定职业也可以交易呐,而且也没问题

直接加VillagerData确实没用,而且我的第二个问题是不能交易的特定职业特定等级的村民

我是谁o
本帖最后由 我是谁o 于 2020-1-17 09:05 编辑

感谢科普,但是有一个细微的差别是1.14与1.15村民的特性,如果使用1.14,以上问题就难以解决
第二个问题(用1.15的)

  1. /summon minecraft:villager ~ ~ ~ {VillagerData:{level:2,profession:"minecraft:fletcher"},Offers:{Recipes:[]}}
复制代码
经过多次尝试后,其中level不能<2,profession为职业字符串(已知满足:特定职业特定等级的不能交易的村民)


我是谁o
本帖最后由 我是谁o 于 2020-1-17 08:50 编辑

第6个问题的话,原理是一样的,就是你说的能否交易是差异,稍微修改即可
1.设置一个叫jiaoyi的虚拟型计分板

  1. /scoreboard objectives add jiaoyi dummy
复制代码
2.放置2个命令方块(无限循环的,高频红石或循环+始终活动)
2-1.第一个输入
  1. /scoreboard players set @e[type=minecraft:villager,nbt=!{Offers:{}}] jiaoyi 0
复制代码
检测所有村民且不带有{Offers:{}}交易标签的村民   (即不可以交易的村民)  的jiaoyi分数设置为0
2-2:第二个输入
  1. /scoreboard players set @e[type=minecraft:villager,nbt={Offers:{}}] jiaoyi 1
复制代码
检测所有村民且带有{Offers:{}}交易标签的村民   (即可以交易的村民)  的jiaoyi分数设置为1
(会刷屏在聊天栏,建议使用/gamerule commandBlockOutput false)
现在就可以用@e[type=villager,scores={jiaoyi=1}]替代有交易的村民,反之,@e[type=villager,scores={jiaoyi=0}]替代无交易的村民
(1.15.1反正可以,自己开1.14.4试了,可以用,第4个问题用村民的变种流浪商人不就好了,缺货你就把他的可交易次数调高嘛)



CR_019
目前只解决了4和5,其实很简单。。。
4、将该村民的那个特定交易中priceMultiplier字段设定为0就可以了。。。
5、将RestocksToday标签数值修改为2

下一页 最后一页