Files
netease-modsdk-wiki/docs/mconline/10-addon教程/第06章:认识Addon/课程06.基础的实体生成规则.md
2025-03-17 13:24:39 +08:00

70 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/6_1.3ddaf093.png
hard: 进阶
time: 15分钟
---
# 基础的实体生成规则
#### 作者:境界
实体生成规则用来控制任一实体在世界中生成的逻辑。
目前常用于生物的生成,生物是实体这一理念的延伸,我们可以说鸡、牛、猪是实体,也是生物,但矿车、船只是实体不是生物。因此船、矿车这种实体不应在自然界中生成,而鸡、牛、猪等生物需要在世界中生成。
本章我们将会教给大家如何简单地改变原版的生物生成规则。
#### 修改尸壳的生成规则
在原版的生成规则中,尸壳这一种攻击性生物只会出现在沙漠中,我们希望它能生成在每个攻击性生物都会出现的地方,而不仅仅是沙漠,请看下面的分析:
<img src="./images/6_1.png" style="zoom:150%;" />
```
{
"format_version": "1.8.0",
"minecraft:spawn_rules": {
"description": {
"identifier": "minecraft:husk",
"population_control": "monster"
},
"conditions": [
{
"minecraft:spawns_on_surface": {},
"minecraft:brightness_filter": {
"min": 0,
"max": 7,
"adjust_for_weather": true
},
"minecraft:difficulty_filter": {
"min": "easy",
"max": "hard"
},
"minecraft:weight": {
"default": 240
},
"minecraft:herd": {
"min_size": 2,
"max_size": 4
},
"minecraft:biome_filter": {
"test": "has_biome_tag", "operator": "==", "value": "desert"
}
}
]
}
}
```
①当前生物生成规则的format_version停留在1.8.0版本。
②identifier指向生物的名称population_control是指由游戏引擎控制的生物数量这里可以写上的字段有animal、underwater_animal、monster、ambient。因此在基岩版中存在着4个无法直接确定生物数量的维度。打个比方几乎绝大多数动物都会在亮度7~15的时候出现而绝大多数攻击性生物都会在0~7的时候出现。因此animal的数量控制了白天时候玩家所看到的生物数量monster控制了黑夜时分玩家所看到的生物数量。如果同时允许animal的数量和monster的数量在同一个时间内一起出现可能会出现由于世界中生物实体数量生成过多所导致的游玩体验降低的风险请开发者斟酌使用。
③生物生成主要是由群系过滤器控制biome_filter下接收一个或多个带有群系标签has_biome_tag的过滤条件在尸壳的源文件中可以看到value值的参数是desert因此将desert改为monster后就可以让尸壳出现的规律和僵尸一样了。