-
Notifications
You must be signed in to change notification settings - Fork 6
Mod进阶教程8 模组重载
inmny edited this page Dec 2, 2023
·
5 revisions
为了更快的开发(主要是修仙有需求), NML提供了简单的模组部分重载功能, 你可以在游戏运行时修改模组代码, 并且使得立即生效.
- 修改函数, 不可修改函数的定义, 只能修改函数内部的代码
- 添加函数, 实验性功能, 可能添加失败
- 为你的Mod主类实现
IReloadable
接口 - 运行游戏
- 在
IReloadable::Reload
方法中实现你的重载逻辑 - 为你需要热更新/添加的函数添加
Hotfixable
特性(IReloadable::Reload
也可以是Hotfixable
的函数) - 打开模组列表, 点击你的模组的重载按钮
- 保证你的Reload方法不会重复添加键值对(特指
Dictionary::Add
), 尽量保证覆写而非添加 -
AssetLibrary<T>::Add
的覆写并不是完全安全的, 特别对于ActorAsset
,Actor
直接引用了ActorAsset
实例, 覆写时并不会更新Actor
的引用, 你需要自己手动更新或者仅更新ActorAsset
的字段 - 你可以在运行时给函数添加/删除
Hotfixable
特性 - 匿名函数能够热更, 同样需要添加
Hotfixable
特性