効果範囲・自分以外



スキル/アイテムの効果範囲が味方単体の場合で、自分を除外したい場合に対応

変更点
まだなし

#==============================================================================
# ■ 効果範囲・自分以外 By 貪藻矢射妥←
#
# ・スキル/アイテムの効果範囲が味方単体の場合で、自分を除外したい場合に対応
# 
#==============================================================================
# 更新っぽいもの
# 
# まだなし

$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Scope_Extend"] = true

module SCOPE_EXTEND
  # 自分以外除外属性
  EXCLUDE_OWN_ID = 96
end

#==============================================================================
# ■ Scene_Battle (分割定義 3)
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 自分以外除外
  # scopeが5の場合って戦闘不能の単体選択で自分が選択されない気がするけど・・・
  #--------------------------------------------------------------------------
  def exclude_own_scope
    case @active_battler.current_action.kind
    when 1 # スキル
      # 効果範囲が味方単体
      if @skill.scope == 3 or @skill.scope == 5
        if $game_party.actors[@actor_arrow.index] == @active_battler && 
          @skill.element_set.include?(SCOPE_EXTEND::EXCLUDE_OWN_ID)
          return true
        end
      end
    when 2 # アイテム
      # 効果範囲が味方単体
      if @item.scope == 3 or @item.scope == 5
        if $game_party.actors[@actor_arrow.index] == @active_battler && 
          @item.element_set.include?(SCOPE_EXTEND::EXCLUDE_OWN_ID)
          return true
        end
      end
    end
    # ここまできて何もなければ false を返す
    return false
  end
  
  #--------------------------------------------------------------------------
  # ● フレーム更新 (アクターコマンドフェーズ : アクター選択)
  #--------------------------------------------------------------------------
  def update_phase3_actor_select
    # アクターアローを更新
    @actor_arrow.update
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      Sound.play_cancel
      # アクターの選択を終了
      end_actor_select
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      if exclude_own_scope
        # ブザー SE を演奏
        Sound.play_buzzer
      else
        # 決定 SE を演奏
        Sound.play_ok
        # アクションを設定
        @active_battler.current_action.target_index = @actor_arrow.index
        # アクターの選択を終了
        end_actor_select
        # スキルウィンドウ表示中の場合
        if @skill_window != nil
          # スキルの選択を終了
          end_skill_select
        end
        # アイテムウィンドウ表示中の場合
        if @item_window != nil
          # アイテムの選択を終了
          end_item_select
        end
        # 次のアクターのコマンド入力へ
        phase3_next_actor
      end
    end
  end
end

#==============================================================================
# ■ Scene_Battle (分割定義 4)
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● スキルアクション 結果作成
  #--------------------------------------------------------------------------
  alias make_skill_action_result_exclude_own make_skill_action_result
  def make_skill_action_result
    # 行動側バトラーがアクターの場合、かつ効果範囲が味方全体
    if @active_battler.is_a?(Game_Actor) && @skill.scope == 4 && 
      @skill.element_set.include?(SCOPE_EXTEND::EXCLUDE_OWN_ID)
      @target_battlers.delete(@active_battler)
    end
    # 元の処理を実施
    make_skill_action_result_exclude_own
  end
  #--------------------------------------------------------------------------
  # ● アイテムアクション 結果作成
  #--------------------------------------------------------------------------
  alias make_item_action_result_exclude_own make_item_action_result
  def make_item_action_result
    # 行動側バトラーがアクターの場合、かつ効果範囲が味方全体
    if @active_battler.is_a?(Game_Actor) && @item.scope == 4 && 
      @item.element_set.include?(SCOPE_EXTEND::EXCLUDE_OWN_ID)
      @target_battlers.delete(@active_battler)
    end
    # 元の処理を実施
    make_item_action_result_exclude_own
  end
end
スキルに自分以外除外属性を付与するだけの簡単なオシゴトです。

戻る