#==============================================================================
# ■ 効果範囲・自分以外 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
|