#==============================================================================
# ■ 効果範囲:敵X体 ランダム By 貪藻矢射妥←
#
# VX Aceにある効果範囲:敵X体 ランダムをXPで再現してます。
#
# ※効果範囲を 敵全体 にしてください。
# 若干VX Aceと仕様が違うかもしれません。。
#
#==============================================================================
# 更新っぽいもの
#
# 2023:10:01
# ・aliasを使って効率化
$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Rand_Select"] = true
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
# Add
attr_accessor :sel_num
attr_accessor :change_list
# Add
end
module Rand_Select
RanSel_WD = "ランダム"
#--------------------------------------------------------------------------
# ○ ターゲット数取得
#--------------------------------------------------------------------------
def get_rand_select
select_num = 0
rand_flg = false
if @skill != nil # スキルの場合
for j in @skill.element_set
ele_set = $data_system.elements[j]
if ele_set != nil
if ele_set =~ /^#{RanSel_WD}([0-9]+)$/
select_num += $1.to_i
rand_flg = true
end
end
end
end
return [select_num, rand_flg]
end
end
class Scene_Battle
include Rand_Select
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 1 : アクション準備)
#--------------------------------------------------------------------------
alias update_phase4_step1_diamond_rand_select update_phase4_step1
def update_phase4_step1
# 攻撃対象カウンタを初期化
@selected_num = 0
# 呼び戻す
update_phase4_step1_diamond_rand_select
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
#--------------------------------------------------------------------------
★★★ Surume_多刀流 参照 ★★★
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
#--------------------------------------------------------------------------
★★★ Surume_2K_2_XP 参照 ★★★
#--------------------------------------------------------------------------
# ● スキルアクション 結果作成
#--------------------------------------------------------------------------
★★★ Change_Window_Skill参照 ★★★
#--------------------------------------------------------------------------
# ● スキルまたはアイテムの対象側バトラー設定
# scope : スキルまたはアイテムの効果範囲
#--------------------------------------------------------------------------
alias set_target_battlers_diamond_rand_select set_target_battlers
def set_target_battlers(scope)
# 呼び戻す
set_target_battlers_diamond_rand_select(scope)
# 初期化
$game_system.sel_num = 0
$game_system.change_list = []
if $OuterFlgs["Rand_Select"]
select_num = get_rand_select
if select_num[1]
# 初期設定
$game_system.sel_num = select_num[0]
@target_battlers = []
# 行動側バトラーがエネミーの場合
if @active_battler.is_a?(Game_Enemy)
# 敵全体の場合ターゲットを選び直す
if scope == 2
for i in 0...select_num[0]
actor = $game_party.actors[rand($game_party.actors.size)]
if actor.exist?
$game_system.change_list.push(actor)
end
end
end
else # Game_Actor
# 敵全体の場合ターゲットを選び直す
if scope == 2
for i in 0...select_num[0]
enemy = $game_troop.enemies[rand($game_troop.enemies.size)]
if enemy.exist?
$game_system.change_list.push(enemy)
end
end
end
end
# とりあえずひとつずつプッシュしてみる。。
@target_battlers.push($game_system.change_list[@selected_num])
end
end # $OuterFlgs["Rand_Select"]
end
end
|