沙盘引擎 (SEngine)

创意诞生沙盘世界,不止如此想象!

用户工具

站点工具


developer:plugins:main

📚 差别

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

到此差别页面的链接

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