Project1

标题: 如何修改这个脚本(已解决) [打印本页]

作者: 世界第一中二    时间: 2017-9-21 22:55
标题: 如何修改这个脚本(已解决)
本帖最后由 世界第一中二 于 2017-9-22 22:03 编辑
  1. (function () {
  2.         var new_levelUp = Game_Actor.prototype.levelUp;
  3.         Game_Actor.prototype.levelUp = function() {
  4.                 new_levelUp.call(this);
  5.                 if(this._actorId === 1){ //←这里的数字 => 数据库人物id
  6.                         $gameTemp.reserveCommonEvent(1); //←这里的数字 => 公共事件id
  7.                 }
  8.         };
  9. }())();
复制代码

这个脚本是之前我的问题中【铅笔描绘的思念】大佬给我的解答,效果是当1号人物升级时执行1号公共事件。
现在我想普及这个系统,需要的效果是1号人物升级时执行1号公共事件,2号人物升级时执行2号公共事件,三号和四号同理(因为总共有四个角色)。
但是单纯的复制粘贴这一脚本,会导致在两个人物同时升级时在下面的脚本的效果覆盖上一脚本
我想要脚本能在战斗结束时分别判断不同人物是否升级,然后按照序号执行各自的公共事件。
但是作为脚本盲不知道应该怎么改……(哇的一声哭出来)
只能寻求各位dalao的帮忙了……新人才用mv没几天QvQ。

恳求各位大佬的帮忙!
作者: 铅笔描绘的思念    时间: 2017-9-21 23:12
本帖最后由 铅笔描绘的思念 于 2017-9-21 23:16 编辑

原贴评论问下就好了。。

其实很简单的修改下就好了。。
如果有想学习JS的想法的话。。w3school JavaScript Switch 语句这部分就能达到要求

想好要不要看

作者: 芯☆淡茹水    时间: 2017-9-22 14:35
本帖最后由 芯☆淡茹水 于 2017-9-22 15:12 编辑

我是来搞笑的。

JAVASCRIPT 代码复制
  1. (function () {
  2.      var new_levelUp = Game_Actor.prototype.levelUp;
  3.      Game_Actor.prototype.levelUp = function() {
  4.              new_levelUp.call(this);
  5.              $gameTemp.reserveCommonEvent(this._actorId);
  6.      };
  7. }())();



才发现后面的公共事件会覆盖掉以前的,这样就行了:

JAVASCRIPT 代码复制
  1. (function () {
  2. Game_System.prototype.commonEventData = function() {
  3.     return this._commonEventData || [];
  4. };
  5. Game_System.prototype.addEventData = function(id) {
  6.     this._commonEventData = this._commonEventData || [];
  7.     this._commonEventData.push(id);
  8. };
  9. var new_levelUp = Game_Actor.prototype.levelUp;
  10. Game_Actor.prototype.levelUp = function() {
  11.      new_levelUp.call(this);
  12.      if (this._actorId < 5) $gameSystem.addEventData(this._actorId);
  13. };
  14. Game_Interpreter.prototype.setupReservedCommonEvent = function() {
  15.     if ($gameTemp.isCommonEventReserved()) {
  16.         this.setup($gameTemp.reservedCommonEvent().list);
  17.         $gameTemp.clearCommonEvent();
  18.         return true;
  19.     } else {
  20.         //--------------------------------------------------------
  21.         if (!this.isRunning()) {
  22.             if ($gameSystem.commonEventData().length > 0){
  23.                 var evId = $gameSystem.commonEventData().shift();
  24.                 $gameTemp.reserveCommonEvent(evId);
  25.             }
  26.         }
  27.         //--------------------------------------------------------
  28.         return false;
  29.     }
  30. };
  31. }())();





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