meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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