古树旋律 发表于 2022-12-27 19:26:06

在MV/MZ的默认选项中追加新的选项

本帖最后由 古树旋律 于 2022-12-27 19:27 编辑

MV、MZ的JavaScript代码,和XP的Ruby代码还是有很大的不同的。Ruby代码只需要改1个地方即可,js需要改3个地方。


比如,想在战斗中加一个新选项【敌人信息】,这个选项点击后,通过调用1号公共事件来启动。

第1步,在战斗类中,新定义一个函数,commandEmBook,这写法在rmmz_scenes有很多,随便抄一个即可。
Scene_Battle.prototype.commandEmBook = function() {
      $gameTemp.reserveCommonEvent(1);
};

第2步,还是在rmmz_scenes中,找到要插入新选项的子类,图中的子类是createPartyCommandWindow,在这之中复制粘贴,插入新代码:
Scene_Battle.prototype.createPartyCommandWindow = function() {
   const rect = this.partyCommandWindowRect();
   const commandWindow = new Window_PartyCommand(rect);
   commandWindow.setHandler("fight", this.commandFight.bind(this));
   commandWindow.setHandler("enemy_book", this.commandEmBook.bind(this));//这一行是要加入的,告诉计算机“enemy_book”链接着commandEmBook这个函数。
       commandWindow.setHandler("escape", this.commandEscape.bind(this));
   commandWindow.deselect();
   this.addWindow(commandWindow);
   this._partyCommandWindow = commandWindow;
};


第3步,回帖后可见~
**** Hidden Message *****
举一反三,就可以实现很多有趣的效果,调用公共事件,调用函数等待,镶嵌变量等,自由发挥,掌握了方法,随意DIY。


三姐 发表于 2022-12-28 10:51:08

很实用的功能啊~

liz_fly 发表于 2023-2-18 20:42:00

一键撤退好评

马铃薯 发表于 2023-2-20 14:26:41

试试,应该很不错

knightnevercry 发表于 2023-2-21 13:24:08

看看,感谢分享

tpz1112 发表于 2023-8-18 18:07:59

看看隐藏内容

银河狐rever 发表于 2024-10-19 03:52:44

学习学习!
页: [1]
查看完整版本: 在MV/MZ的默认选项中追加新的选项