Project1
标题:
【萌新提问】事件与插件的差别
[打印本页]
作者:
点炮狂魔女巫
时间:
2022-12-4 23:11
标题:
【萌新提问】事件与插件的差别
学了基础教程里的 事件进阶篇:昼夜系统
又看到有人在求关于 时间的插件
于是有的奇怪 事件与插件的差别在哪里?
特来请各位大触来解惑
注:上述链接为举例
作者:
百里_飞柳
时间:
2022-12-4 23:28
当你事件用熟练后,你就会发现有些功能是事件没有的,就需要用插件来增加新的事件指令
以及有些功能是需要大量重复调用的,就可以变成插件来像公共事件一样偷懒,插件也更加方便在项目之间复用,而公共事件的话要考虑变量开关地图等
就比如昼夜系统,事件可以很方便用计时器来增加天气变化和开关控制,但并行的公共事件也是一大坑点,如果不能理清逻辑,很容易出现卡顿
用时间插件的话,它可以读取网络上的日历,来做到对接现实时间及节假日之类的,后台自动更新时间也不会卡
作者:
yuyering
时间:
2022-12-5 10:19
事件是官方提供的可视化的编程系统,你可以理解成是官方把一部分代码功能代码打包起来,再做成了在编辑器中可直接添加的可视化的形式,比如事件页的各类按钮。
插件则是直接在代码层面实现功能。
如果要说区别的话,插件实现的可自定义能力比事件实现要强,效率也要高(不用依赖官方的事件系统)。
毕竟官方打包好的功能就那么些,并且实现的系统越复杂,事件实现就越容易出性能问题。
相应的,事件易上手,理解了基础的功能和逻辑结构,很快就能做出想要的功能。用插件实现则需要一定的代码基础(如果是现成的插件也是由别人事先写好的)
就最终实现的功能而言,只要两种实现方法的产物看起来一样,用起来体感差不多,那就没有区别。
作者:
347780682
时间:
2022-12-5 13:27
事件等于集成的插件功能
作者:
小秋橙
时间:
2022-12-5 16:38
插件这个词未免太宽泛了一些,官方插件AltMenuScreen和AltSaveScreen这种只需要勾选启用的也是插件,TitleCommandPosition这种启用以后可以更改全局参数的也是插件,ItemBook这种提供了【插件指令】的也是插件……
楼上几位可以说是在回答【插件指令和事件指令】的差别,但其实这两个东西谁也代替不了谁。
你也许会注意到有很多事件指令对应的commandXxx函数都以if ($gameMessage.isBusy()) { return false; }开头、以this.setWaitMode("xxx");结尾,这说明事件系统最难以被替代的功能其实是【异步处理】,比如【设置移动路线】这种魔王级别的操作……
举个最简单的例子:MV内置的官方教程里有一个开启宝箱的动画效果,它是在【设置移动路线】中让宝箱的行走图更改三次朝向来展现的,并且【最后一次更改完以后才能设置独立开关进入另一个事件页】。
也就是说如果用任何脚本或者插件指令去forceMoveRoute设置移动路线,都没法在下一行脚本中立刻使用$gameSelfSwitches.setValue或者command123去更改独立开关。
其他方面的差异就比较明显了,比如事件有事件页、有自动执行/并行处理,而插件则可以【覆盖js文件夹中某些脚本的默认行为】。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1