Project1

标题: 如何使用游戏内的开关来控制整个插件的启动或停止 [打印本页]

作者: 古树旋律    时间: 2022-11-16 10:57
标题: 如何使用游戏内的开关来控制整个插件的启动或停止
现有一个插件,启动之后,他将一直处于运行的状态。
我想使用游戏中的开关,比如1号,当$gameSwitches.value(1)为true的时候,这个插件正常工作,当为false的时候,这个插件就直接“拉闸停摆”。请问从哪里可以着手修改?
作者: apple5740    时间: 2022-11-17 07:50
这个可以通过语法来制作。
if 语句
请使用 if 语句来规定假如条件为 true 时被执行的 JavaScript 代码块。
语法:
if (条件) {
    如果条件为 true 时执行的代码
}

具体可以参考: https://www.runoob.com/js/js-if-else.html
作者: rfvtgbzxc    时间: 2022-11-18 14:01
本帖最后由 rfvtgbzxc 于 2022-11-18 19:13 编辑

RM插件是在原来的函数上重写并追加自己的内容,要做到运行时“关闭”,就要插件自己写一个卸载自己的逻辑,把自己改动过的所有函数的原型都“还原”。这太复杂了,一个1000多行的插件,就可以把程序的原型在几十个地方都加以修改,想要做到最完美的效果,即连追加的原型函数都被删掉,这工作量有点离谱。更何况很多函数还是被反复重写了的,完全没办法由插件自己确定去掉自己以后“原来”的调用层次是怎样的。
从原型上删除一个方法:
  1. delete Game_Actor.prototype.somefunction;
复制代码

但不推荐在运行时中消除插件影响的这个思路,单独配置一个config文件,修改以后重载游戏,在PluginManager.setup()运行之前决定装载哪些插件,这样比较好。这样就有点像各路游戏安装自己的模组一样。他们也不会运行时开关某个插件,都是修改后重启游戏。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1