跳至正文
版本:最新版 - a1.148.0 ⚖️

加载屏幕

在 nanos world 中,你可以使用 WebUI 为你的服务器添加自定义且动态的加载屏幕。

创建加载屏幕

为此,你需要创建一个类型为 loading-screen 的新包,并将你的 HTML/CSS/JS 文件添加到该包的根文件夹中。 你的主 HTML 文件应该命名为 index.html。 如下所示:

Packages/
└── my-loading-screen/
├── Package.toml
├── index.html
├── style.css
└── ...

获取加载/下载进度

为了能够在屏幕上显示动态信息,你可以监听事件 UpdateScreen(该事件每隔几毫秒就会触发一次):

事件 UpdateScreen

参数描述
message显示当前状态(加载中、验证中、下载中……)
message_secondary显示当前正在加载或下载的资产/文件
progress_small当前次要进度
progress_small_total最大次要进度
progress当前进度
progress_total最大进度值
current_stage代表当前加载阶段的数字值(0 = None, 1 = Connecting, 2 = Fetching, 3 = Validating, 4 = Downloading, 5 = LoadingAssets, 6 = LoadingLevel, 7 = LoadingEntities, 8 = CompilingShaders, 9 = Finishing
Packages/my-loading-screen/index.js
Events.Subscribe("UpdateScreen", function(message, message_secondary, progress_small, progress_small_total, progress, progress_total, current_stage) {
// 在此处更新你的 HTML
});
提示

你可以使用 progressprogress_total 来填满主进度条,并使用 progress_small 来制作一个小/次要进度条。

信息

请始终使用 progress / progress_total 来获取当前的百分比 %,因为例如 progress_total 可以代表正在下载的文件总数。

玩家信息

此外,还可以通过访问名为 LoadingScreen 的全局变量来获取玩家的信息:

var LoadingScreen = {
server: {
ip,
port,
name,
description,
},
player: {
nanos_id,
nanos_username,
steam_id,
}
}
提示

LoadingScreen 变量仅在加载屏幕浏览器创建后的几帧内可用。

停止菜单音乐

可以通过从加载屏幕的 JS 中调用一个事件来关闭内置的菜单音乐:

Packages/my-loading-screen/index.js
Events.Call("StopMenuMusic")

配置你的服务器以使用加载屏幕

备注

目前加载屏幕仅在专用服务器中有效。
请确保将服务器的 Config.toml 文件配置为 dedicated_server = true

创建加载屏幕包后,你需要在 Config.toml 中配置服务器以加载它。 只需将设置项 loading_screen 设为你的包文件夹名称即可。

Server/Config.toml
# 要加载的 loading-screen 包(当玩家加入你的服务器时将显示该加载屏幕)
loading_screen = "my-loading-screen"

或者以 --loading_screen "my-loading-screen" 参数启动。