| 
本帖最后由 鑫晴 于 2017-5-30 15:46 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 默认情况下,在暗雷战斗中,如果队伍成员在战斗中都附加了“战斗不能”的状态,游戏结束。
 
 我想要角色能在战斗失败后保留“战斗不能”状态,即使团灭也不会结束游戏,
 而是以“战斗不能”状态和HP=1,返回地图场景。
 
 
 换了种解决方式,算是解决了
 团灭后调用公共事件
 $gameTemp.reserveCommonEvent(1);
 
 
 但有个新的问题出现了。。。
 我想在这个时机调用公共事件(失败信息关闭后,战斗场景还存在时)
 
   
 
 
 矛盾历史 
 
 
 
 BattleManager.updateBattleEnd = function() {    if (this.isBattleTest()) {        AudioManager.stopBgm();        SceneManager.exit();    } else if (!this._escaped && $gameParty.isAllDead()) {        if (this._canLose) {            $gameParty.reviveBattleMembers();            SceneManager.pop();        } else {            this._canLose = true;            this.endBattle(2);            $gameParty.reviveBattleMembers();            $gameTemp.reserveCommonEvent(1);   /* 调用公共事件  */            SceneManager.pop();   /*SceneManager.goto(Scene_Map); */             /*SceneManager.goto(Scene_Gameover);*/        }    } else {        SceneManager.pop();    }    this._phase = null;};
BattleManager.updateBattleEnd = function() { 
    if (this.isBattleTest()) { 
        AudioManager.stopBgm(); 
        SceneManager.exit(); 
    } else if (!this._escaped && $gameParty.isAllDead()) { 
        if (this._canLose) { 
            $gameParty.reviveBattleMembers(); 
            SceneManager.pop(); 
        } else { 
            this._canLose = true; 
            this.endBattle(2); 
            $gameParty.reviveBattleMembers(); 
            $gameTemp.reserveCommonEvent(1);   /* 调用公共事件  */ 
            SceneManager.pop();   /*SceneManager.goto(Scene_Map); */ 
  
            /*SceneManager.goto(Scene_Gameover);*/ 
        } 
    } else { 
        SceneManager.pop(); 
    } 
    this._phase = null; 
}; 
 想要的效果:
 暗雷战斗失败后,不会进入“GameOver”页面,而是像设置了“允许失败”的战斗一样,战斗结束后返回战斗前的位置。“战斗不能”的状态也不会因为战斗结束而消失。(默认“允许失败”的战斗结束后没有“战斗不能”的状态)。
 
 
 在RMXP中,可以这样实现想要的效果
 
 
 # 游戏结束的情况下    if $game_temp.gameover        $game_temp.battle_can_lose = true      battle_end(1)      $game_temp.gameover = false      $game_system.bgm_play(nil)      $game_system.bgs_play(nil)      return    end
# 游戏结束的情况下 
    if $game_temp.gameover   
      $game_temp.battle_can_lose = true 
      battle_end(1) 
      $game_temp.gameover = false 
      $game_system.bgm_play(nil) 
      $game_system.bgs_play(nil) 
      return 
    end 
 |