| 本帖最后由 kunikai 于 2020-1-30 00:04 编辑 
 以下是个人用于抛砖引玉的简单方法。匆忙写的,有逻辑漏洞烦请提醒我改正。
 
 首先预留至少16个变量、8个开关。将变量8个分为一组,分别称为A组和B组。
 
 让“回溯技能”为目标附加状态“准备回溯”;
 同时让“回溯技能”执行“公共事件A”,在“公共事件A”中用A组变量分别记录下所有处于状态“准备回溯”敌人的HP,
 并打开敌人所分别对应的开关防止HP被重复记录。
 
 设置另一个技能,让该技能解除“准备回溯”状态;或为“准备回溯”状态设定另外的解除条件。(由你决定何时回溯。)
 
 将下方脚本插入默认脚本以下、Main以上,使状态“准备回溯”结束时触发“公共事件B”,
 不断为B组变量分别赋予1-8号敌人的当前HP,同时不断增/减对应敌人HP使B组变量最终等于A组对应变量。
 若敌人仍处于状态“准备回溯”或对应原HP变量为0,则不对其HP进行处理。
 处理完成后,使被处理敌人所对应的A组变量归零、所对应的开关关闭。
 
 为了避免某些“不可预料的BUG”,请在每场战斗开始时将“回溯技能”用到的变量全部归零、开关全部关闭。
 
         
 
 class Game_Battler < Game_BattlerBase  def remove_state(state_id)    if state?(state_id)      if state_id == 26 #如果解除的状态编号为26号        $game_temp.reserve_common_event(7) #执行7号公共事件      end      revive if state_id == death_state_id      erase_state(state_id)      refresh      @result.removed_states.push(state_id).uniq!    end  endend
class Game_Battler < Game_BattlerBase 
  def remove_state(state_id) 
    if state?(state_id) 
      if state_id == 26 #如果解除的状态编号为26号 
        $game_temp.reserve_common_event(7) #执行7号公共事件 
      end 
      revive if state_id == death_state_id 
      erase_state(state_id) 
      refresh 
      @result.removed_states.push(state_id).uniq! 
    end 
  end 
end 
 |