首次加载世界时
简介
本系统会在应用您的资源包后,当世界首次加载时运行您指定的命令。
注意:需要函数包才能实现此系统,因为正是
tick.json文件让我们能够在世界初始化时立即运行命令。
Tick JSON文件
BP/functions/tick.json
json
{
"values": [
"wiki/event/worlds/on_initialise"
]
}系统实现
BP/functions/wiki/event/worlds/on_initialise.mcfunction
yaml
## 初始化
### 添加记分项
scoreboard objectives add wiki:world dummy
### 注册到记分项
scoreboard players add .Initialised wiki:world 0
## 在此处添加您的命令(示例)
execute if score .Initialised wiki:world matches 0 run say 世界已初始化!资源包首次加载。
## 标记为已初始化
scoreboard players set .Initialised wiki:world 1这里我们使用了/execute - say命令作为示例,但您可以使用任何您喜欢的命令,数量不限。
只需确保遵循给定的顺序,并正确地为您的命令应用如示例所示的/execute if score条件。
原理说明
.Initialised=0表示世界刚刚初始化,我们尚未运行所需的初始化命令。.Initialised=1表示世界已完成初始化,且我们已经执行了初始化命令。
我们添加了名为wiki:world的记分项来存储分数,以便追踪世界是否已完成初始化。这也让我们能够构建只在世界初始化时执行的命令。
在创建记分项后,我们为分数持有者'.Initialised'添加了初始分数0。这将使其注册到记分项中,并让我们能够使用/execute if score条件来运行所需的命令。
最后,在所有命令执行完毕后,分数持有者'.Initialised'的分数被设置为1。这可以防止命令被重复执行。
文件夹结构
- 📝on_initialise.mcfunction
- 📝tick.json
- 🖼️pack_icon.png
- 📝manifest.json



