MV中,有各类可以实现调用公共事件的方法,具体插件链接:RPG民族 (rpgmz.com)
但有些插件放在MZ中就会有莫名其妙的BUG。所以我们可以自己动手来改,很简单。
找到系统自带的rmmz_managers.js文件,搜索找到以下代码:
[JavaScript] 纯文本查看 复制代码 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(){}的方式,使用开关或者变量来控制。比如下面的修改代码:
[JavaScript] 纯文本查看 复制代码 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判断
};
|