#============================================================================== # □ 陣形ボーナス (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20120701 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #------------------------------------------------------------------------------ # ※ 陣形導入とアクターバトラー実装 が別途必要です。 #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["陣形ボーナス"] = true if $rgsslab["陣形ボーナス"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Battle_Lines_Bonus #-------------------------------------------------------------------------- # ○ ボーナス設定1(割合) # 陣形毎に、パラメータ補正を設定します。 # # 記述方法: # "陣形名" => { # 1 => [MHP, MMP, ATT, DEF, MAT, MDF, AGI, LUK, …], # 2 => [MHP, MMP, ATT, DEF, MAT, MDF, AGI, LUK, …], # 3 => [MHP, MMP, ATT, DEF, MAT, MDF, AGI, LUK, …], # 4 => [MHP, MMP, ATT, DEF, MAT, MDF, AGI, LUK, …], # }, # (最後の設定のみ、後ろのカンマを省略する事ができます) # # MHP、MMP、及び他の消費系パラメータ関連については # 戦闘が始まった時に、補正が行われ # 増えた分だけ減ったように見えますが、それは仕様となります。 # (当然、戦闘が終わった後、元の値へ戻ります) # # 消費系パラメータの補正を行う際には # その点についてご注意下さい。 # # 標準では、4人までの設定が最高となりますが # 4人以上パーティに加えられる環境であれば # 5人目以降の設定も可能です。 # # パラメータの追加と併用している場合であれば # LUKの後ろに追加書き込みで、増やしたパラメータの修正も行えます。 # # 順序については、パラメータ番号に依存しますので # パラメータの追加にて増やしたパラメータのIDをご参照下さい。 # # 補正が掛かる単位は‰(1‰ = 0.1%)です。 # (マイナスにすると、その分下がります) # # 計算結果で、パラメータが負の数字になった場合 # 自動的に0として修正されます。(バグ防止対策) # # ここに設定されていない陣形は全て0として認識されます。 #-------------------------------------------------------------------------- BONUS1 = { "フリーファイト" => { 1 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 1人目 2 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 2人目 3 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 3人目 4 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 4人目 5 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 5人目 }, } #-------------------------------------------------------------------------- # ○ ボーナス設定2(固定) # こちらは、固定数値分だけの上昇(或いは低下)による設定となります。 # # 記述方法等については、ボーナス設定1と同じですので # 同じように設定して下さい。 #-------------------------------------------------------------------------- BONUS2 = { "フリーファイト" => { 1 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 1人目 2 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 2人目 3 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 3人目 4 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 4人目 5 => [ 0, 0, 0, 0, 0, 0, 0, 0,], # 5人目 }, } end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Battle_Lines_Bonus [module] #============================================================================== module RGSSLAB::Battle_Lines_Bonus #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "陣形ボーナス" VERSION = 1 RELEASE = 20120701 end #============================================================================== # ■ Game_Actor [class] #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_084 = RGSSLAB::Battle_Lines_Bonus #-------------------------------------------------------------------------- # ● 通常能力値の基本値取得 [再構築] # param_id : パラメータID #-------------------------------------------------------------------------- def param_base(param_id) n = 0 if $rgsslab["パラメータの追加"] && param_id > 7 n = param_base_parameter_append(param_id) else n = $rgsslab["レベル拡張"] ? gpb_rgsslab_level_extension(param_id) : self.class.params[param_id, get_use_level] end if $rgsslab["パラメータ構築設定"] array = [] for t in RGSSLAB_145::ARRAY do array.push(t) if !array.include?(t) && check_array(t) end for t in array case t when "陣形ボーナス" ; n = get_battle_lines_bonus(param_id, n) if $rgsslab["陣形ボーナス"] when "性格補正" ; n += party_bonus(param_id) if $rgsslab["パーティボーナス"] when "パーティボーナス" ; n += character_compensation(param_id) if $rgsslab["パラメータ性格補正"] end end else n = get_battle_lines_bonus(param_id, n) if $rgsslab["陣形ボーナス"] n += party_bonus(param_id) if $rgsslab["パーティボーナス"] n += character_compensation(param_id) if $rgsslab["パラメータ性格補正"] end return n end #-------------------------------------------------------------------------- # ○ 使用レベルの取得 #-------------------------------------------------------------------------- def get_use_level return level_temporary_limit if $rgsslab["レベル一時制限"] return @level end #-------------------------------------------------------------------------- # ○ 陣形ボーナス取得 # param_id : パラメータID # n : 現在の値 #-------------------------------------------------------------------------- def get_battle_lines_bonus(param_id, n) n = battle_lines_bonus1(param_id, n) if $rgsslab["陣形ボーナス"] n += battle_lines_bonus2(param_id) if $rgsslab["陣形ボーナス"] return n end #-------------------------------------------------------------------------- # ○ 陣形ボーナス修正(その1:割合) # param_id : パラメータID # n : 現在の値 #-------------------------------------------------------------------------- def battle_lines_bonus1(param_id, n) if $game_party.in_battle return n if RGSSLAB_084::BONUS1[$game_system.rgsslab043.line] == nil return n if RGSSLAB_084::BONUS1[$game_system.rgsslab043.line][index + 1] == nil return n if RGSSLAB_084::BONUS1[$game_system.rgsslab043.line][index + 1][param_id] == nil bonus = RGSSLAB_084::BONUS1[$game_system.rgsslab043.line][index + 1][param_id] + 1000 n *= bonus / 1000.0 n = Integer(n) n = [n, 0].max return n end return n end #-------------------------------------------------------------------------- # ○ 陣形ボーナス修正(その2:固定) # param_id : パラメータID #-------------------------------------------------------------------------- def battle_lines_bonus2(param_id) if $game_party.in_battle return 0 if RGSSLAB_084::BONUS2[$game_system.rgsslab043.line] == nil return 0 if RGSSLAB_084::BONUS2[$game_system.rgsslab043.line][index + 1] == nil return 0 if RGSSLAB_084::BONUS2[$game_system.rgsslab043.line][index + 1][param_id] == nil return RGSSLAB_084::BONUS2[$game_system.rgsslab043.line][index + 1][param_id] end return 0 end end end