自定义资源创建接口
资源创建是 Sonolus 的另一个核心功能。接下来,本页面将向您介绍如何自定义资源创建接口。
配置语法
Search 类的结构介绍在这里(官方叫 ServerOption
)。
class CreateConfig {
public:
string title; // 资源创建标题
string icon; // 资源创建图标
string type; // 资源创建类型
vector<Search> options; // 资源创建选项
map<string, string> values; // 数据表各项 SQL 值
map<string, string> constructs; // 重构选项默认值时的 JavaScript 代码
};
title
可以使用 Sonolus 的文本内容,详见 Sonolus/sonolus-core。icon
只能使用 Sonolus 支持的图标代号,详见 Sonolus/sonolus-core。values
的值为 SQL 表达式,可以使用{{xxx}}
结构来代表用户输入参数。constructs
的值为 JavaScript 表达式,可以使用{{xxx}}
结构来代表资源信息参数,使用.
来访问 JSON 结构。资源信息{{tags}}
比较特殊,为序列化的Tag
数组。由于部分限制,当目标变量名为levels
时必须为普通字符串,不能为 JavaScript 表达式。具体资源结构信息详见 Sonolus Wiki。- 对于
mutli
类型的 Search 类,有以下特殊属性,具体使用方法可以参考level_config.json
中的Advanced Search
:
class SearchMultiOptionVariable {
public:
string name = ""; // 自定义的变量名称
string expr = ""; // 自定义的 SQL 变量表达式,只能使用该选项的用户输入参数
string connector = ""; // 每两项之间的逻辑运算符
string default = ""; // 用户没有选择时的默认值
};
class SearchMultiOption {
public:
// ...
vector<SearchMultiOptionVariable> variables; // 自定义变量
}
配置示例
详见各资源配置文件中的 itemType.creates
。