meta data for this page
📚 扩展文件参考
沙盘引擎 程序及模组目录内包含许多文件,本文将列出部分关键文件进行说明介绍。
📒 Mod.JSON 配置文件
此文件放置每个模组的独立配置项,此文件应保持存在且有效。
📘 配置示例
{ "Name": "Introduce&Demo", "Author": "SandtableEngine", "Info": "SandtableEngine official introduce demo", "Version": "1.0", "Font": "TsangerYuYangT", "DefaultLanguage": "English", "Website": "mp-gamer.com", "NetworkPort": 8192, "NetDownload": true, "LastTime": "0" //Auto }
📘 配置项说明
不同配置项拥有不同的作用,有些配置项是可以留空的。
配置项 | 功能说明 |
---|---|
Name | 模组的标准名称(建议使用英文+固定名称) (模组名称的多语言可使用 Language 机制实现) |
Author | 模组作者 |
Info | 模组信息(介绍) |
Version | 模组版本(仅显示及记录作用,无匹配验证) 自 V0.8 版本开始,由于自动下载机制的更新,不再验证模组Version 是否相同 |
Font | 模组字体名称(可使用引擎内置字体或模组外部字体) |
DefaultLanguage | 模组默认语言(如果模组内Language/ 不存在和EngineLanguage 相同的语言,则优先使用DefaultLanguage ,通常建议设置为English ) |
Website | 模组官方网站 |
NetworkPort | 服务器主机端口号(默认值:8192) 只有在脚本层面未指定明确端口参数时(忽略参数),才会优先使用此处设定 注意:通常建议优先使用此属性,而不是直接在脚本指定端口,这样也可兼容于LAN服务器的搜索 |
NetShareMode (已过时) | 主机模组共享模式(默认值:1) 此功能对于部分开发者比较重要,详情参考《模组主机共享模式》 |
📒 Local.JSON 配置文件
此文件放置每个模组的独立本地配置项,引擎每次载入模组后自动生成及修改。
此文件通常保存非关键的记录信息,例如:上次载入时间、上次主机UUID等。
📘 配置项说明
不同配置项拥有不同的作用,多数是由引擎动态修改的,玩家通常无需修改。
配置项 | 功能说明 |
---|---|
LastTime | 模组上次运行时间,由引擎自动赋值 |
LastLicense | 上次License.txt 文件的哈希记录,避免重复显示窗口 |
LastPlayerUUID | 上次运行此模组的玩家UUID,判断是否为新玩家 |
📒 Startup.JSON 配置文件
此文件为模组可选的附带文件,允许为模组提供一些前置文本数据。
每次加载模组或者切换场景时,都会自动更新读取最新的数据。
Startup.json
文件不会由服务器同步至客户端,此文件永远是本地的。
文件作用:允许开发者通过GetGlobalVars("Startup")
获取此文件内的所有文本(内容只读,且文本内容不限于json
格式,即使内部是一串诗歌也没有问题)。
通过此属性的机制,开发者可扩展实现许多前置功能(例如:专用服务端的前置配置,房间名、端口号、房间最大人数等)。
📘 简单示例
沙盘引擎 默认没有提供专用服务器的启动配置文件。
这就导致专用服务器建立的服务器无法获取自定义配置,开发者可能希望制作一个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
的重定向读取
📒 Script/_Config.JSON 配置文件
此文件通常位于模组脚本子目录内,用于配置此脚本目录的相关前置选项。
此配置文件是可选的,如果不需要相关功能,可以删除此文件。
📘 配置示例
{ "DefaultMap": "", "Plugins": [ "PlayerCharacterTag", "PlayerCharacterMarker", "AdminSystem" ] }
配置Key | 说明 |
---|---|
DefaultMap | 强制设定加载当前脚本组的地图,通常适用于主菜单场景(避免传统方式二次加载) |
Plugins | 设置此脚本组要加载的Plugin插件 |