-
Notifications
You must be signed in to change notification settings - Fork 115
CourseMod
本页面将会从零开始一步一步教你制作一个『雀魂 Plus 浏览器』的模组。
- 一款文本编辑器
警告: 如果您是 Windows 用户,请不要使用「记事本」进行编辑!
-
修改编码格式统一为
UTF-8 无 BOM
(一般情况下无需修改,不排除出现错误的可能性) -
务必使用半角符号
四零:连这个都不懂做个屁 Mod
你需要在雀魂 Plus 浏览器的 /resources/app/mod
文件夹(若开启了使用 AppData 存储拓展资源
选项,则在%APPDATA%/Majsoul Plus/mod
文件夹下)下新建一个文件夹,建议使用能够说明本 mod 作用的英文字符作为文件夹名,以下使用mymod
指代
mymod
文件夹下必须要有一个清单文件,名为 mod.json
(格式见下)
推荐放置一个方形预览图以更加简单地描述本模组的作用
仓库中的./mod/mallard
路径已经包含了一个示例模组,用于将默认千织替换为绿头鸭。 您可以参照这个模组进行修改和编辑
一个模组由一个mod.json
文件和若干资源文件组成,模组会在游戏尝试加载资源时优先于官方资源被加载,以下为mod.json
的一个示例:
{
"name": "默认桌布替换为示例桌布",
"author": "Handle",
"description": "将默认桌布替换为第一届Sim杯日式麻将比赛桌布,\n仅用于本届比赛使用。",
"//注释": "可选,设置Mod静态资源相对路径,默认值为 /files",
"dir": "/files",
"//注释": "可选,设置Mod预览图的相对路径,默认值为 preview.jpg",
"//注释": "可选,用于替换原始资源路径 replace 属性可以支持多组正则表达式",
"preview": "preview.jpg",
"replace": [
{
"//注释": "将会作为正则表达式处理",
"from": "/0/[^/]+/scene/Assets/Resource/tablecloth/tablecloth_default/Table_Dif\\.jpg",
"//注释": "匹配目标,可以使用形如 $1, $2 的占位符",
"to": "/0/v0.4.1.w/scene/Assets/Resource/tablecloth/tablecloth_default/Table_Dif\\.jpg"
},
{
"from": "/0/[^/]+/myres2/tablecloth/tablecloth_default/preview\\.jpg",
"to": "/0/v0.4.1.w/myres2/tablecloth/tablecloth_default/preview\\.jpg"
}
],
"//注释": "可选,一个内置在模组内的插件,其定义请参考 README 文档中插件部分",
"execute": {}
}
你可以先启动一次游戏,确保需要替换的缓存已经被加载,然后在雀魂 Plus 浏览器的 static
文件夹下寻找需要替换的缓存文件(善用搜索功能,绝大多数是拼音命名……),记住其路径,在 mod 的 files
文件夹(可通过清单文件进行配置,以下使用 files
代称)下建立相同的路径,放置同名文件即可替换缓存
如:要替换的文件为 /resources/app/static/0/v0.4.1.w/scene/Assets/Resource/tablecloth/tablecloth_default/Table_Dif.jpg
你需要建立路径:
/resources/app/mod/mymod/files/0/v0.4.1.w/scene/Assets/Resource/tablecloth/tablecloth_default
并在其下放置名为 Table_Dif.jpg
的文件以替换缓存
打开雀魂 Plus 浏览器,选择左侧的"模组"页面,若前面的步骤进行无误,你应该能看到你自己的模组,模组右下角的开关默认为未启用状态,需要手动启用,可以启动游戏进行测试
测试无问题后,点击右上角纸笔图标,此时模组右下角的开关位置变为了删除和打包选项(再点击一次可恢复),点击打包并选择保存位置即可
清单文件中的 replace
字段与 execute
字段均为可选功能:
- 前者可将不同路径的文件指向同一替换文件,一定程度上防止版本更新造成的 mod 失效 & 避免重复文件难以维护,需要一定正则表达式基础
- 后者可运行自定义脚本以完成一些高级功能,需要一定
javascript
基础(请参考README
文档中开发插件部分)