meta data for this page
📚 模组插件
模组插件是放置在Mod\Plugin
目录下的特定规范文件,主要用于不同Script
脚本加载使用。
对于专为某功能设计的脚本,通常应该被制作为插件。
📒 插件机制
某些开发者倾向于制作模组,而某些开发者更倾向于制作“功能模块”(即插件,或全局类脚本)。
插件通常在设计和编写上,可以无需脚本的过多干预(甚至无须修改脚本)即可实现额外的功能,这既是插件诞生的目的。
因此,模组插件与脚本LoadScript()
方法有些相似,但插件更适用于可能被多脚本引用、功能模块独立的情况。
📘 脚本加载顺序
加载脚本文件 > 加载插件(Plugins.txt
) > OnScriptLoad
📘 脚本作用域
注意:加载插件与加载子脚本的底层方式是相同的,均是在现有代码的基础上文本续写。
在此情况下,开发者应避免大众的变量及方法名称(或者可以单独维护一份自身“插件类”),避免误触发或被误触发相同的变量及方法名。
📒 使用方法
模组插件(Plugin)可以被认为是一种额外的独立脚本,因此在使用方式和目录管理上,几乎和Script
文件夹相同。
- 首先,在模组的
Plugin
文件夹创建新的脚本目录(就像Script
目录一样) - 例如创建
Plugin\PlayerCharacterTag
,随后在此文件夹下,分别建立World.js | Client.js
脚本文件 - 与正常脚本编写机制相同,在不同的
js
脚本编写对应逻辑 - 在任何需要加载插件的脚本环境(例如
Script\Main
)目录创建Plugins.txt
- 在
Plugins.txt
文件以每行进行分割,每行填写要加载的插件目录名(即PlayerCharacterTag
) - 保存
Plugins.txt
文件,后续加载Script\Main
脚本时,会自动引入加载PlayerCharacterTag
内的脚本代码
📒 编写指南
在准备编写模组插件之前,需要确保已了解插件的机制(以及与子脚本的不同)。
编写插件与编写正常脚本几乎没有差异(插件不支持LoadScript()
),开发者可按照正常脚本方式进行编写。
通常情况下,配合插件编写的最佳写法是配合AddListener() | Emit()
进行事件注册和触发,已达到无需修改原脚本即可扩展功能。
📒 插件翻译文件
在模组插件开发中,有时可能需要兼容多语言翻译,此情况可以利用【子翻译文件】的机制进行合并翻译文本。
详情参考:《子翻译文件》