#============================================================================== # ■ RGSS3 アイテム/スキルターゲットカウント変数 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # アイテム/スキル使用時、指定したIDの変数の値を0にします。 # そこから各ターゲットの命中判定を行う前にその変数に1を加算します。 # (最初の敵が1、次の敵が2...) # これにより、そのターゲットが何番目に攻撃されているのかを # 変数に格納出来るようになり、ダメージ計算に組み込む事が容易になります。 # # 行動後に自動的に戻す設定を無効にした場合は # 使用効果のコモンイベントでもこの変数の値を用いる事が出来ます。 #============================================================================== # アイテム/スキルのダメージ計算式の例 # ターゲットカウント取得用変数IDは20とする。 # 分かり易くする為、本来不要な括弧を入れている場合あり。 #============================================================================== # 最初の敵に1000ダメージ、その後の敵に500ダメージを与える場合 # # v[20] == 1 ? 1000 : 500 #------------------------------------------------------------------------------ # 最初の敵にa.atk * 8 - b.def * 2、 # その後の敵にa.atk * 4 - b.def * 4のダメージを与える場合 # # v[20] == 1 ? (a.atk * 8 - b.def * 2) : (a.atk * 4 - b.def * 4) #------------------------------------------------------------------------------ # a.atk * 4 - b.def * 2を基本値とし # 後の敵になるほどにダメージを100ずつ減らしたい場合 # # a.atk * 4 - b.def * 2 - (v[20] - 1) * 100 #------------------------------------------------------------------------------ # a.atk * 4 - b.def * 2を基本値とし # 後の敵になるほどにダメージを100ずつ増やしたい場合 # # a.atk * 4 - b.def * 2 + (v[20] - 1) * 100 #============================================================================== module TargetCountVariables #ターゲットカウント取得用変数IDを指定。 #この変数にターゲットカウントが格納される。 VID = 20 #行動後に変数の値を自動的に元に戻すかを指定。 #(ダメージ予測等のスクリプト導入している時は元に戻すのを推奨) ARE = true #戦闘時とアイテム/スキル画面それぞれでの判定。 #最初に戦闘時、次にアイテム/スキル画面でターゲットカウントの取得を行うかを指定。 #trueで行う。falseで行わない。 SJA = [true,true] end class Game_Temp attr_accessor :target_number_count_mode end if TargetCountVariables::SJA[0] class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # スキル/アイテムの使用 #-------------------------------------------------------------------------- alias use_item_target_number_count use_item def use_item $game_variables[TargetCountVariables::VID] = 0 use_item_target_number_count $game_variables[TargetCountVariables::VID] = 0 if TargetCountVariables::ARE end #-------------------------------------------------------------------------- # スキル/アイテムの発動 #-------------------------------------------------------------------------- alias invoke_item_target_number_count invoke_item def invoke_item(target,item) $game_variables[TargetCountVariables::VID] += 1 invoke_item_target_number_count(target,item) end end end if TargetCountVariables::SJA[1] class Scene_ItemBase < Scene_MenuBase #-------------------------------------------------------------------------- # アイテムをアクターに対して使用 #-------------------------------------------------------------------------- alias use_item_to_actors_target_number_count use_item_to_actors def use_item_to_actors $game_variables[TargetCountVariables::VID] = 0 $game_temp.target_number_count_mode = true use_item_to_actors_target_number_count $game_temp.target_number_count_mode = nil $game_variables[TargetCountVariables::VID] = 0 if TargetCountVariables::ARE end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # スキル/アイテムの効果適用 #-------------------------------------------------------------------------- alias item_apply_target_number_count item_apply def item_apply(user,item) $game_variables[TargetCountVariables::VID] += 1 if $game_temp.target_number_count_mode item_apply_target_number_count(user,item) end end end