设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5783|回复: 4
打印 上一主题 下一主题

[有事请教] 怎么在事件中控制插件开/关?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
11200
在线时间
2067 小时
注册时间
2013-6-10
帖子
1516
跳转到指定楼层
1
发表于 2019-7-25 15:08:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我在插件列表开启了一个插件,可是游戏的某个阶段并不需要这个插件,想要通过事件将其暂时关闭,有需要再开启。请问可以实现吗?
(事件里有脚本指令与插件指令,请问该怎样做才能达到我想要的效果?谢谢。)

Lv4.逐梦者

梦石
0
星屑
9687
在线时间
570 小时
注册时间
2017-9-28
帖子
208
2
发表于 2019-7-25 17:21:40 | 只看该作者
一般除非是插件提供了控制开关的功能,否则无法轻易在游戏中控制任何一个插件的开关。

插件的本质是一段代码,运行过了就是启用了插件,所谓关闭就是要在运行时消除启用插件(运行脚本)带来的所有影响。那么难点就在这里:如何收集这些影响,并产生对应的消除影响的代码?我最近正在做 RGSS 里利用钩子和 alias 等操作做热更新(开/关)插件脚本的事情,也许 MV 插件结合 babel 等 js 编译器也能分析出如何动态卸载插件,希望 MV 区大佬们有空摸一个(逃
喵喵喵
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3776
在线时间
1179 小时
注册时间
2016-8-9
帖子
2395

开拓者

3
发表于 2019-7-25 19:00:40 | 只看该作者
有的插件自带开启和关闭,但要想修改大神写的插件的话就算了,除非自学,用钱请论坛大佬出山,大佬也不愿意修改别人的插件,再或者知道插件作者的sns,联系他,赞助他,搞定
酸酸甜甜就④哇噢
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1075
在线时间
133 小时
注册时间
2019-5-1
帖子
59
4
发表于 2019-7-26 08:27:14 | 只看该作者
除了一些关了会立刻导致游戏玩法崩解的例如战斗引擎核心 状态核心什么的,一般来说大部分功能插件作者都会提供关闭和开启的插件命令。

你需要做的是查看插件内的使用说明, 一般都有什么 C_SHOW/C_HIDE   MWP_VALID/MWP_INVALID之类的让你自己决定什么时候启用什么时候禁用。

没有的话那要实现就得按2 3楼到大佬说的那样自学,或者请插件作者帮忙了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3766
在线时间
438 小时
注册时间
2019-3-3
帖子
87
5
发表于 2019-7-26 08:35:54 | 只看该作者
本帖最后由 多卡多卡 于 2019-7-26 08:40 编辑

以前回答过一个差不多的问题,其实开关插件就是是否启用插件中的那些代码:
JAVASCRIPT 代码复制
  1. //插件的参数帮助
  2. //定义全局变量
  3. //插件指令
  4. if(val){
  5. (function () {
  6. //插件主体的各种函数
  7. })();}

那个val自己定义个boolean型的变量,做个插件指令更改就可以了。
插件指令的写法:
JAVASCRIPT 代码复制
  1. var val = true;
  2. var _plugin_command = Game_Interpreter.prototype.pluginCommand;
  3. Game_Interpreter.prototype.pluginCommand = function (command, args)
  4. {
  5.     _plugin_command.call(this,command,args);
  6.     if(command === 'plugin')
  7.     {
  8.         switch (args[0])
  9.         {
  10.              case 'on': val = true; break;
  11.              case 'off': val = false; break;
  12.         }
  13.     }
  14. }
  15. /*用plugin on/plugin off 就可以控制开关了,当然别写的太简单了以免发生冲突*/


这是一种比较通用的方法,能够完全关闭一个插件。但对于一些在画面上添加东西的插件或者对核心代码魔改的比较厉害的插件,关闭会导致游戏崩溃。如果说只需要关闭某一个功能,在插件没有提供入口的情况下,那么只能参照楼上的方法了
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-19 06:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表