古树旋律 发表于 2023-3-25 09:23:34

队伍战败后调用公共事件

MV中,有各类可以实现调用公共事件的方法,具体插件链接:RPG民族 (rpgmz.com)

但有些插件放在MZ中就会有莫名其妙的BUG。所以我们可以自己动手来改,很简单。
找到系统自带的rmmz_managers.js文件,搜索找到以下代码:
BattleManager.updateBattleEnd = function() {
    if (this.isBattleTest()) { //如果是战斗测试
      AudioManager.stopBgm();//停止音乐
      SceneManager.exit();//退出软件
    } else if (!this._escaped && $gameParty.isAllDead()) { //不是 逃跑 &&全员死亡
      if (this._canLose) { //允许战败
            $gameParty.reviveBattleMembers(); //全员恢复hp mp
            SceneManager.pop();//返回原画面
      } else {
            SceneManager.goto(Scene_Gameover);//跳到结束(因为战斗 而死亡)
      }
    } else {
      SceneManager.pop(); //返回原画面
    }
    this._phase = "";//回合的标志,字符串 用if判断
};

在这个代码的基础上,我们可以看到战败的一些基本组成,根据注释,我们可以自行DIY了。如果只想部分战斗战败之后调用公共事件,可以再加一个if(){}的方式,使用开关或者变量来控制。比如下面的修改代码:
BattleManager.updateBattleEnd = function() {
    if (this.isBattleTest()) { //如果是战斗测试
      AudioManager.stopBgm();//停止音乐
      SceneManager.exit();//退出软件
    } else if (!this._escaped && $gameParty.isAllDead()) { //不是 逃跑 &&全员死亡
      if (this._canLose) { //允许战败
            $gameParty.reviveBattleMembers(); //全员恢复hp mp
            SceneManager.pop();//返回原画面
      } else {
            if($gameSwitches.value(9)){
                        //当9号开关启动时,调用gameover       
                        SceneManager.goto(Scene_Gameover);//跳到结束(因为战斗 而死亡)
                        }else{
                        //当9号开关关闭时,调用公共事件
                        $gameParty.reviveBattleMembers(); //全员恢复hp mp
                        SceneManager.pop();//返回原画面
                        $gameTemp.reserveCommonEvent(1)//调用1号公共事件
                        }
      }
    } else {
      SceneManager.pop(); //返回原画面
    }
    this._phase = "";//回合的标志,字符串 用if判断
};
页: [1]
查看完整版本: 队伍战败后调用公共事件