白色的小熊
CBcreator弄出来的刷怪箱根本刷不出来怪物,求教怎么刷出高度自定义刷怪箱

Chelover_C60
版本多少?要自定义哪些东西?

白色的小熊
Chelove_C60 发表于 2020-1-18 19:18
版本多少?要自定义哪些东西?

1.14,你告诉我怎么写代码就行了

Chelover_C60
本帖最后由 Chelove_C60 于 2020-1-18 19:31 编辑
5352 发表于 2020-1-18 19:21
1.14,你告诉我怎么写代码就行了

/setblock ~ ~ ~ minecraft:spawner{SpawnData:{id:"minecraft:zombie"}}
如果需要设置生成生物的nbt,在SpawnData里写即可,比如设置为无敌(仍能被创造模式玩家攻击)
/setblock ~ ~ ~ minecraft:spawner{SpawnData:{id:"minecraft:zombie",Invulnerable:1b}}
设置刷怪笼自身的属性,在SpawnData外面写,比如设置生成最大数量为10
/setblock ~ ~ ~ minecraft:spawner{SpawnData:{id:"minecraft:zombie",Invulnerable:1b},SpawnCount:10s}

刷怪箱 - Minecraft Wiki
区块格式 - Minecrraft Wiki

白色的小熊
Chelove_C60 发表于 2020-1-18 19:26
/setblock ~ ~ ~ minecraft:spawner{SpawnData:{id:"minecraft:zombie"}}
如果需要设置生成生物的nbt,在S ...
  1. /give @p minecraft:spawner{RequiredPlayerRange:3,SpawnRange:4,SpawnCount:2,MaxNearbyEntities:4,MinSpawnDelay:20,Delay:20,MaxSpawnDelay:30,BlockEntityTag:{SpawnData:{CustomName:"[{\\"text\\":\\"愤怒的变异者\\",\\"color\\":\\"dark_green\\",\\"bold\\":false,\\"italic\\":false,\\"underlined\\":false,\\"strikethrough\\":false,\\"obfuscated\\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}},id:"minecraft:zombie"},SpawnPotentials:[{Weight:1,Entity:{CustomName:"[{\\"text\\":\\"愤怒的变异者\\",\\"color\\":\\"dark_green\\",\\"bold\\":false,\\"italic\\":false,\\"underlined\\":false,\\"strikethrough\\":false,\\"obfuscated\\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}},id:"minecraft:zombie"}}]}} 1
复制代码

请问这个代码有错吗?为什么刷不出怪物呢?

Chelover_C60
本帖最后由 Chelove_C60 于 2020-1-18 20:04 编辑
5352 发表于 2020-1-18 19:42
请问这个代码有错吗?为什么刷不出怪物呢?

/give @p minecraft:spawner{RequiredPlayerRange:3,SpawnRange:4,SpawnCount:2,MaxNearbyEntities:4,MinSpawnDelay:20,Delay:20,MaxSpawnDelay:30,BlockEntityTag:{SpawnData:{CustomName:"[{\\"text\\":\\"愤怒的变异者\\",\\"color\\":\\"dark_green\\",\\"bold\\":false,\\"italic\\":false,\\"underlined\\":false,\\"strikethrough\\":false,\\"obfuscated\\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}},id:"minecraft:zombie"},SpawnPotentials:[{Weight:1,Entity:{CustomName:"[{\\"text\\":\\"愤怒的变异者\\",\\"color\\":\\"dark_green\\",\\"bold\\":false,\\"italic\\":false,\\"underlined\\":false,\\"strikethrough\\":false,\\"obfuscated\\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,Brain:{memories:{job_site:{pos:[I;0,0,0],dimension:"minecraft:overworld"}}},id:"minecraft:zombie"}}]}} 1

/give @p minecraft:spawner{BlockEntityTag:{RequiredPlayerRange:3,SpawnRange:4,SpawnCount:2,MaxNearbyEntities:4,MinSpawnDelay:20,Delay:20,MaxSpawnDelay:30,SpawnData:{CustomName:"[{\"text\":\"愤怒的变异者\",\"color\":\"dark_green\",\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,id:"minecraft:zombie"},SpawnPotentials:[{Weight:1,Entity:{CustomName:"[{\"text\":\"愤怒的变异者\",\"color\":\"dark_green\",\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,id:"minecraft:zombie"}}]}} 1

  1. /give @p minecraft:spawner{BlockEntityTag:{RequiredPlayerRange:3,SpawnRange:4,SpawnCount:2,MaxNearbyEntities:4,MinSpawnDelay:20,Delay:20,MaxSpawnDelay:30,SpawnData:{CustomName:"[{\"text\":\"愤怒的变异者\",\"color\":\"dark_green\",\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,id:"minecraft:zombie"},SpawnPotentials:[{Weight:1,Entity:{CustomName:"[{\"text\":\"愤怒的变异者\",\"color\":\"dark_green\",\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,id:"minecraft:zombie"}}]}} 1
复制代码

转义多了一层,然后有几个nbt的位置不对,还有一些多余的nbt

修改:加了一下背景色

释梦之都
NPC复制权杖,点实体可以直接生成刷怪笼

白色的小熊
本帖最后由 5352 于 2020-1-18 21:40 编辑
Chelove_C60 发表于 2020-1-18 19:55
/give @p minecraft:spawner{RequiredPlayerRange:3,SpawnRange:4,SpawnCount:2,MaxNearbyEntities:4,MinS ...

加tag的时候就是这个格式:{tag名:{属性名:值},{tag名:{属性名:值}}。对吗?再问一下怎么自定义掉落物?纯自定义

Chelover_C60
本帖最后由 Chelove_C60 于 2020-1-18 22:31 编辑
5352 发表于 2020-1-18 21:22
加tag的时候就是这个格式:{tag名:{属性名:值},{tag名:{属性名:值}}。对吗?再问一下怎么自定义掉落 ...

不完全是
nbt的格式是 {键名:键值,键名:键值,...}
键名就是你说的tag名和属性名,你说的值是键值的一种。
键值可以是一个具体的数值,可以是一个字符串,可以是一个列表(一个中括号,内含多个键值,但必须是同一种键值),也可以是一个复合标签(大括号),详细内容可见命令 - Minecraft Wiki
以下面的命令为例,Item是一个键,它的键值是一个复合标签(大括号),这个复合标签里有3个键,一个字符串型的键id,一个字节型的键Count,和一个复合标签型的键tag。这个tag复合标签内的键只有1个Enchantments,它的键值是一个列表(中括号),这个列表内含两个复合标签型键值。差不多就是这个意思吧

自定义掉落物就是
/summon item ~ ~ ~ {Item:{id:"minecraft:stone",Count:1b,tag:{Enchantments:[{id:"minecraft:sharpness",lvl:10s},{id:"minecraft:looting",lvl:10s}]}}}
其中第一个id是物品的id,Count是物品的数量,tag就是物品的自定义标签(以上命令的自定义标签是自定义附魔,锋利10,抢夺10)
实体、方块的nbt可参考Wiki的Player.dat格式页面,实体、方块的nbt可以参考Wiki的区块格式页面

白色的小熊
Chelove_C60 发表于 2020-1-18 22:29
不完全是
nbt的格式是 {键名:键值,键名:键值,...}
键名就是你说的tag名和属性名,你说的值是键值的一种。

不是,我说的是刚刚用刷怪箱刷出来的怪打死之后的掉落物,我在做一个地图,需要用到这个特性

Chelover_C60
本帖最后由 Chelove_C60 于 2020-1-18 23:46 编辑
5352 发表于 2020-1-18 23:26
不是,我说的是刚刚用刷怪箱刷出来的怪打死之后的掉落物,我在做一个地图,需要用到这个特性 ...

emmmmm抱歉理解错了

需要用到数据包
生物有个nbt是DeathLootTable,可以通过数据包来调用战利品表,做生物掉落物就要通过战利品表。

【1.13-1.15】原版模组入门教程
数据包 - Minecraft Wiki
【CBL|SPG】[1.15] 战利品表 —— 数据包的组成文件之一
战利品表 - Minecraft Wiki

大致思路是:
打开存档目录下的datapacks文件夹→新建文件夹并打开→新建文件pack.mcmeta并填写(创建数据包)→创建战利品表目录→创建战利品表json文件→进入游戏,通过DeathLootTable这个nbt调用战利品表文件

白色的小熊
Chelove_C60 发表于 2020-1-18 23:34
emmmmm抱歉理解错了

需要用到数据包

看起来很复杂的样子,是不是像图片的那样去弄?然后那个文件里怎么写?用什么软件写比较好?真心谢谢

Chelover_C60
5352 发表于 2020-1-19 00:50
看起来很复杂的样子,是不是像图片的那样去弄?然后那个文件里怎么写?用什么软件写比较好?真心谢谢 ...

是的
一般推荐vscode,下载安装后可以在这个地方搜索并安装插件

常用的插件有:
Chinese (Simplified) Language Pack for Visual Studio Code:这个是汉化插件,几乎必备
language-mcfunction:这个是对函数进行语法高亮的插件,如果准备深入研究命令的话也几乎是必备的
Datapack Helper Plus (JSON):这个是对数据包json文件的语法自动补全,对写战利品表很有帮助
Datapack Helper Plus (MCF):对函数进行自动补全,如果准备深入研究命令也是很有用的

pack.mcmeta的格式在我给的链接里都有说过
{
    "pack":{
        "pack_format":4,
        "description":"这里写介绍"
    }
}

写好之后在这个文件夹里新建一个文件夹并重命名为data,打开,新建文件夹,重命名,名字为任意英文(小写,允许下划线,如namespace)。这个是命名空间。然后打开,继续新建文件夹,重命名为loot_tables,这个就是战利品表文件夹了。打开,新建一个文件,重命名为任意英文(小写,允许下划线).json,如example.json。打开

以下是一个最简单的战利品表示例,首先通过type指定战利品表类型为实体战利品表,然后通过pools来填写随机池。这个战利品表内只有1个随机池,随机池的抽奖次数(rolls)为1,也就是每次只会抽一次里面的物品。entries里面只有1个物品,就是一个钻石,那么这一次抽取就必定抽到一个钻石,所以这个战利品表的掉落物就是钻石。
{
    "type": "minecraft:entity",
    "pools": [
        {
            "rolls": 1,
            "entries": [
                {
                    "type": "minecraft:item",
                    "name": "minecraft:diamond"
                }
            ]
        }
    ]
}
如何设置更多物品,随机设置数量,我在这里就不再讲述了,可以看看我在上面给的链接

写好战利品表后,保存,进入游戏。要在实体掉落物中调用战利品表,需要填写DeathLootTable标签。一般格式为:DeathLootTable:"<命名空间>:<文件名(去掉.json后缀)>"。比如如果命名空间是namespace,文件名是example,那么这个nbt的写法就是DeathLootTable:"namespace:example"。
我把示例命令写到下面了,如果你需要用的话,稍作修改即可
/give @p minecraft:spawner{BlockEntityTag:{RequiredPlayerRange:3,SpawnRange:4,SpawnCount:2,MaxNearbyEntities:4,MinSpawnDelay:20,Delay:20,MaxSpawnDelay:30,SpawnData:{CustomName:"[{\"text\":\"愤怒的变异者\",\"color\":\"dark_green\",\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,DeathLootTable:"namespace:example",id:"minecraft:zombie"},SpawnPotentials:[{Weight:1,Entity:{CustomName:"[{\"text\":\"愤怒的变异者\",\"color\":\"dark_green\",\"bold\":false,\"italic\":false,\"underlined\":false,\"strikethrough\":false,\"obfuscated\":false}]",Tags:["1"],CanPickUpLoot:0b,CanBreakDoors:0b,DeathLootTable:"namespace:example",id:"minecraft:zombie"}}]}} 1