1.19.1
如何自定义维度所能生成的结构
如何自定义流浪商人所交易的物品
如何自定义维度所能生成的结构
如何自定义流浪商人所交易的物品
循环执行这两条指令。说明:由于原版中data merge指令只能识别一个实体并修改实体的数据,因此要先用第一条指令检测流浪商人并给流浪商人交易菜单,再用第二条指令给已经修改交易的商人一个tag,这样一来始终把修改对象保持在一个实体范围内复制代码(Value后的大括号里的sell可以改成自己想出售的物品,buy可以改成物品所需的费用,Count后的数字则是物品的数字。Value前的append可以改成merge,append是在商人原有交易的基础上添加交易,而merge则是覆盖原有商人的交易)
- execute as @e[type=wandering_trader] unless entity @s[tag=seller] run data modify entity @s Offers.Recipes append value {priceMultiplier:0.1f,xp:10,rewardExp:1b,buy:{id:"minecraft:emerald",Count:10b},sell:{id:"minecraft:crossbow",Count:1b}}
 
- execute as @e[type=wandering_trader] unless entity @s[tag=seller] run tag @s add seller
发是的个的发 发表于 2022-7-29 11:29
循环执行这两条指令。说明:由于原版中data merge指令只能识别一个实体并修改实体的数据,因此要先用第一条 ...
我想要随机的物品,然后我看战利品表里没有这个
目前我也在学习如何用数据包自定义维度生成的结构,我可以分享一下自己的经验。
目前我只会在主世界生成结构。你需要在数据包中有三个文件夹,分别是structures(用来存放你想要生成的结构的NBT文件,也就是结构本身各种建筑方块),tags(用来存放你想要该结构所生成的群系的标签),worldgen(存放真正控制生成结构的json文件)。
structures文件夹很简单,你只需要先用方块摆好自己想要的结构,再用结构方块储存起来,然后起正确的名字放进去就好了。
tags文件夹里面我是这样的。在tags里面还有一个worldgen文件夹,在worldgen文件夹里面还有一个biome文件夹,在biome里面还有一个has_structure文件夹,在has_structure文件夹里面就是关于结构生成的群系的json文件了。我的json文件里代码是这样的复制代码
这可以让结构生成在平原
worldgen文件夹里面就挺复杂的,我只用了四个文件夹,一个是structure(里面存放的json文件控制你所要生成的结构,以及该结构生成的群系,当你在这个文件夹里面放了可被读取的json文件的话,你是可以在游戏中用 /locate指令找到这个你所定义的结构),一个是structure_set文件夹(里面的json文件控制你在刚刚那个structure文件里所放的结构的生成的密度之类的,挺容易混淆structures,structure和structure_set这三个文件夹的作用的),template_pool文件夹(里面存放结构的拼图方块,当然如果你的结构里没有拼图方块,可以省略这个),processor_list(处理器列表,存放对结构继续处理的文件,例如像地牢就是用处理器列表来随机替换一些方块,替换成有裂缝的,这样显得更旧)
具体要说完的话要挺久的,建议下载我的这个数据包来拆开看一看
https://www.mcbbs.net/thread-1367506-1-1.html
目前我只会在主世界生成结构。你需要在数据包中有三个文件夹,分别是structures(用来存放你想要生成的结构的NBT文件,也就是结构本身各种建筑方块),tags(用来存放你想要该结构所生成的群系的标签),worldgen(存放真正控制生成结构的json文件)。
structures文件夹很简单,你只需要先用方块摆好自己想要的结构,再用结构方块储存起来,然后起正确的名字放进去就好了。
tags文件夹里面我是这样的。在tags里面还有一个worldgen文件夹,在worldgen文件夹里面还有一个biome文件夹,在biome里面还有一个has_structure文件夹,在has_structure文件夹里面就是关于结构生成的群系的json文件了。我的json文件里代码是这样的
- {
 
-   "values": [
 
-     "minecraft:dark_forest",
 
-     "minecraft:swamp",
 
-     "minecraft:mangrove_swamp",
 
-     "minecraft:plains",
 
-     "minecraft:meadow",
 
-     "#minecraft:is_ocean",
 
-     "#minecraft:is_river",
 
-     "#minecraft:is_beach",
 
-     "#minecraft:is_mountain",
 
-     "#minecraft:is_hill",
 
-     "#minecraft:is_taiga",
 
-     "#minecraft:is_jungle",
 
-     "#minecraft:is_forest",
 
-     "minecraft:stony_shore",
 
-     "minecraft:mushroom_fields",
 
-     "minecraft:ice_spikes",
 
-     "minecraft:windswept_savanna",
 
-     "minecraft:windswept_hills",
 
-     "minecraft:desert",
 
-     "minecraft:savanna",
 
-     "minecraft:snowy_plains",
 
-     "minecraft:plains",
 
-     "minecraft:sunflower_plains",
 
-     "minecraft:swamp",
 
-     "minecraft:mangrove_swamp",
 
-     "minecraft:savanna_plateau",
 
-     "minecraft:dripstone_caves",
 
-     "minecraft:lush_caves"
 
-   ]
 
- }
这可以让结构生成在平原
worldgen文件夹里面就挺复杂的,我只用了四个文件夹,一个是structure(里面存放的json文件控制你所要生成的结构,以及该结构生成的群系,当你在这个文件夹里面放了可被读取的json文件的话,你是可以在游戏中用 /locate指令找到这个你所定义的结构),一个是structure_set文件夹(里面的json文件控制你在刚刚那个structure文件里所放的结构的生成的密度之类的,挺容易混淆structures,structure和structure_set这三个文件夹的作用的),template_pool文件夹(里面存放结构的拼图方块,当然如果你的结构里没有拼图方块,可以省略这个),processor_list(处理器列表,存放对结构继续处理的文件,例如像地牢就是用处理器列表来随机替换一些方块,替换成有裂缝的,这样显得更旧)
具体要说完的话要挺久的,建议下载我的这个数据包来拆开看一看
https://www.mcbbs.net/thread-1367506-1-1.html
 本帖最后由 dpy0428 于 2022-7-29 11:56 编辑 
我在官方的文档里没有看到has_structure文件夹..这个咋用呀
你的数据包里也没有自定义群系呀..
发是的个的发 发表于 2022-7-29 11:48
目前我也在学习如何用数据包自定义维度生成的结构,我可以分享一下自己的经验。
目前我只会在主世界生成结 ...
我在官方的文档里没有看到has_structure文件夹..这个咋用呀
你的数据包里也没有自定义群系呀..
dpy0428 发表于 2022-7-29 11:53
我在官方的文档里没有看到has_structure文件夹..这个咋用呀
has_structure这个文件夹是我自己添加的,其实你不一定需要它,只需要在它前面的tags—>worldgen—>biome这三个文件夹就够了(箭头表示包含关系),在最后面的那个biome文件夹里面就存放你想要结构所生成的群系的json文件。具体biome里面的文件的用法则是在命名空间下的子命名空间worldgen里的structure文件夹里的文件用到。(如果你不知道什么是命名空间的话建议先了解,简单来说,打开每一个数据包,首先映入眼帘的是data文件夹,data文件夹打开以后看到的文件夹就是命名空间文件夹,命名空间文件夹打开之后看到的就是子命名空间文件夹)
 本帖最后由 dpy0428 于 2022-7-29 12:29 编辑 
你说的我都懂,我就是没找到在哪控制群系生成的结构,比如我想要某群系不生成矿道,应该怎么办
是不是我找错了,不是群系里控制结构,是结构里控制群系
找到了,没看清你说的是tags里面
发是的个的发 发表于 2022-7-29 12:02
has_structure这个文件夹是我自己添加的,其实你不一定需要它,只需要在它前面的tags—>worldgen—>biome ...
你说的我都懂,我就是没找到在哪控制群系生成的结构,比如我想要某群系不生成矿道,应该怎么办
是不是我找错了,不是群系里控制结构,是结构里控制群系
找到了,没看清你说的是tags里面
发是的个的发 发表于 2022-7-29 08:48
目前我也在学习如何用数据包自定义维度生成的结构,我可以分享一下自己的经验。
目前我只会在主世界生成结 ...
我把
data/minecraft/tags/worldgen/biome/has_structure/mineshaft.json
和
data/minecraft/tags/worldgen/biome/has_structure/mineshaft_mesa.json
都改成了
- {
 
-   "values": [
 
-   ]
 
- }
结果还是生成了废弃矿井..
@发是的个的发
 本帖最后由 发是的个的发 于 2022-7-29 13:07 编辑 
有可能json文件没有写对,所以系统没有读取数据包中相应的文件,而是直接读取游戏里的原版数据,具体哪里写错了我还不清楚
dpy0428 发表于 2022-7-29 12:53
我把
data/minecraft/tags/worldgen/biome/has_structure/mineshaft.json
和
有可能json文件没有写对,所以系统没有读取数据包中相应的文件,而是直接读取游戏里的原版数据,具体哪里写错了我还不清楚
发是的个的发 发表于 2022-7-29 13:04
有可能json文件没有写对,所以系统没有读取数据包中相应的文件,而是直接读取游戏里的原版数据,具体哪里 ...
解决了,没有加"replace": true,覆盖源文件