| 赞 | 10 |
| VIP | 0 |
| 好人卡 | 0 |
| 积分 | 51 |
| 经验 | 0 |
| 最后登录 | 2025-3-11 |
| 在线时间 | 455 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 5149
- 在线时间
- 455 小时
- 注册时间
- 2011-3-26
- 帖子
- 100
|
本帖最后由 rfvtgbzxc 于 2022-11-18 19:13 编辑
RM插件是在原来的函数上重写并追加自己的内容,要做到运行时“关闭”,就要插件自己写一个卸载自己的逻辑,把自己改动过的所有函数的原型都“还原”。这太复杂了,一个1000多行的插件,就可以把程序的原型在几十个地方都加以修改,想要做到最完美的效果,即连追加的原型函数都被删掉,这工作量有点离谱。更何况很多函数还是被反复重写了的,完全没办法由插件自己确定去掉自己以后“原来”的调用层次是怎样的。
从原型上删除一个方法:
- delete Game_Actor.prototype.somefunction;
复制代码
但不推荐在运行时中消除插件影响的这个思路,单独配置一个config文件,修改以后重载游戏,在PluginManager.setup()运行之前决定装载哪些插件,这样比较好。这样就有点像各路游戏安装自己的模组一样。他们也不会运行时开关某个插件,都是修改后重启游戏。 |
|