Mudlet 扩展包和模块是用于管理资源和功能的两种核心方式,二者在设计目标和使用场景上既有重叠,也有显著区别。以下从相同点和不同点两方面进行总结:

一、相同点
-
核心功能一致
两者均用于打包和分发 Mudlet 资源,包括触发器、别名、计时器、脚本、界面元素、图片等,目的是扩展 Mudlet 功能或实现特定游戏需求。 -
资源格式兼容
扩展包和模块的底层文件结构相似,均支持 XML 资源文件和其他辅助文件(如图片、字体),且均可通过 ZIP 压缩格式存储(扩展包后缀为.mpackage或.zip,模块也可使用相同格式)。 -
共享与分发场景重叠
两者均可用于分享自定义功能给其他用户,无论是通过官方仓库、论坛还是直接传输文件。
二、不同点
| 对比维度 | Mudlet 扩展包(Package) | Mudlet 模块(Module) |
|---|---|---|
| 导入/管理工具 | 通过 扩展包管理器(Alt+O) 安装和管理。 | 通过 模块管理器(Alt+I) 安装和管理。 |
| 存储与同步机制 | 安装后资源保存到配置文件(profile)的本地文件中,与原始扩展包文件分离。更新需手动下载新版本或通过仓库更新。 | 安装后资源直接关联并保存到原始模块文件中,修改后自动更新原始文件(无需手动导出)。支持跨配置文件同步(勾选“sync”选项)。 |
| 适用场景 | 适合最终用户使用的成品功能(如游戏 GUI、战斗辅助),安装后无需频繁修改。 | 适合开发者开发和共享代码,或需要跨配置文件复用的通用功能(如工具类脚本),支持实时更新和版本控制(如通过 Git)。 |
| 加载优先级 | 无特殊优先级,按配置文件内脚本顺序加载。 | 可设置优先级(如 -1 级),确保在配置文件中所有脚本之前加载。 |
| 依赖管理 | 需手动声明依赖扩展包,安装时由扩展包管理器检查。 | 依赖管理逻辑与扩展包一致,但模块本身可作为其他模块/扩展包的依赖。 |
| 卸载后残留 | 卸载后资源从配置文件中删除,但可能残留手动创建的变量或文件。 | 卸载后原始模块文件仍保留(需手动删除),配置文件中无残留。 |
三、总结建议
- 选择扩展包:如果你是普通用户,需要安装现成的功能(如地图工具、游戏插件),或希望资源与特定配置文件绑定,优先使用扩展包。
- 选择模块:如果你是开发者,需要频繁修改代码并共享给他人,或希望在多个配置文件中同步使用同一套功能(如通用脚本库),优先使用模块。
两者的核心区别在于资源存储位置和同步逻辑:扩展包适合“一次性安装使用”,模块适合“动态开发和跨配置文件复用”。
Mudlet扩展包和模块的在线安装指令存在一定差异,具体如下:
- 扩展包安装指令:使用
installPackage函数,参数可以是本地文件路径,也可以是网址,如installPackage("https://mud.ren/storage/mudren.mpackage.zip"),会自动下载并安装指定网址的扩展包。此外,还可通过mpkg包管理器来安装,先安装mpkg,之后便可使用mpkg install命令安装扩展包。 - 模块安装指令:使用
installModule函数,不过该函数通常只能安装本地文件,如installModule(getMudletHomeDir().."/modules/myTabChat.xml"),若要安装远程模块,需先将远程文件下载到本地,再指定本地路径进行安装。
总体而言,扩展包安装更灵活,支持直接从网址安装,而模块安装目前主要是针对本地文件,远程模块需先下载再安装。