meta data for this page
📚 Startup.JSON 配置文件
言简意赅,这是每个模组根目录可选的附带文件,允许为模组提供一些前置文本数据。
每次加载模组或者切换场景时,都会自动更新读取最新的数据。
Startup.json
文件不会由服务器同步至客户端,此文件永远是本地的。
它的作用:允许开发者通过GetGlobalVars("Startup")
获取此文件内的所有文本(内容只读,且文本内容不限于json
格式,即使内部是一串诗歌也没有问题)。
通过此属性的机制,开发者可扩展实现许多前置功能(例如:专用服务端的前置配置,房间名、端口号、房间最大人数等)。
📒 简单示例
《沙盘引擎》默认是没有提供【专用服务器.bat】的启动配置文件。
这就导致,以Server.Bat
方式建立的服务器无法获取自定义配置,开发者可能希望制作一个json\txt
表的方式,让每次建立专用服务器时引擎知道该设置什么样的服务器名称、最大人数是多少,以及自定义端口等其他更多配置。
如果有类似这样的(或举一反三)相关需求,就可以利用此机制来做前置配置文件。
📘 示例步骤
在模组根目录建立或打开
Startup.json
文件,准备修改将此文件内容修改成自己可解析的模式,这里可以使用json文本方式,根据需求自行编写一套数据表
{ "HostName": "Sandtable Engine Server", "Map": "helloworld", "MaxPlayers": 100, "Password": "", "RconPassword": "" }
确认正确编写后,在
Main
场景的启动事件中,使用GetGlobalVars("Startup")
获取到Startup.json
内的文本信息,并转成自己想要的格式(如果是标准json文本,则会自动反序列化)使用获取后的内容,按需求来编写逻辑代码
function OnScriptLoad() { if(IsServerMode()) { //因为示例是json文本,所以会自动序列化,可直接使用属性 let startup = GetGlobalVars("Startup"); DLog(startup.HostName); //"Sandtable Engine Server" } }
因为
GetGlobalVars()
是模组全局生效的,所以可以在不同场景一直使用
📒 其他补充
相关API:
SetGlobalVars()
不可写入Startup
的内容,这是只读的如果有特殊需求,
Startup
类文件可以同时在Mod目录存在多个,可在启动时使用启动参数-startup_XX
进行重定义启动参数:
-startup_XX
可用于在启动游戏时指定运行Mod目录下的其他文件,最终作为Startup的重定向读取