#============================================================================== # □ 防御個別設定 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20111229 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["防御個別設定"] = true if $rgsslab["防御個別設定"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Guarding_Individual_Setting #-------------------------------------------------------------------------- # ○ 設定モード # "アクターに対する防御設定を指定します。 # # "アクター" # ACTORにて設定されたものを扱います。 # ---------------------------------------------------------------------- # "職業" # CLASSにて設定されたものを扱います。 # ---------------------------------------------------------------------- # 上記以外の文字列の場合は、"アクター"と同じ扱いとなります。 # # ・イベントコマンドのスクリプトでの変更方法 # $game_system.rgsslab083.mode = "モードの文字列" #-------------------------------------------------------------------------- MODE = "アクター" #-------------------------------------------------------------------------- # ○ アクターの防御個別設定 # ・記述方法 # アクターID => 防御設定,(少数点可) # (最後の設定のみ、後ろのカンマを省略する事ができます) #-------------------------------------------------------------------------- ACTOR = { 1 => 2.0, 2 => 2.0, 3 => 2.0, 4 => 2.0, 5 => 2.0, 6 => 2.0, 7 => 2.0, 8 => 2.0, 9 => 2.0, 10 => 2.0, } #-------------------------------------------------------------------------- # ○ デフォルト設定(アクター) # ACTORに記述されていないアクターについてのデフォルト設定です。 #-------------------------------------------------------------------------- ACTOR_DEFAULT = 2.0 #-------------------------------------------------------------------------- # ○ 職業の防御個別設定 # ・記述方法 # 職業のID => 防御設定,(少数点可) # (最後の設定のみ、後ろのカンマを省略する事ができます) #-------------------------------------------------------------------------- CLASS = { 1 => 2.0, 2 => 2.0, 3 => 2.0, 4 => 2.0, 5 => 2.0, 6 => 2.0, 7 => 2.0, 8 => 2.0, 9 => 2.0, 10 => 2.0, } #-------------------------------------------------------------------------- # ○ デフォルト設定(職業) # CLASSに記述されていない職業についてのデフォルト設定です。 #-------------------------------------------------------------------------- CLASS_DEFAULT = 2.0 #-------------------------------------------------------------------------- # ○ 敵の防御個別設定 # ・記述方法 # 敵のID => 防御設定,(少数点可) # (最後の設定のみ、後ろのカンマを省略する事ができます) #-------------------------------------------------------------------------- ENEMY = { 1 => 2.0, } #-------------------------------------------------------------------------- # ○ デフォルト設定(敵) # ENEMYに記述されていない敵についてのデフォルト設定です。 #-------------------------------------------------------------------------- ENEMY_DEFAULT = 2.0 end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Guarding_Individual_Setting [module] #============================================================================== module RGSSLAB::Guarding_Individual_Setting #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "防御個別設定" VERSION = 1 RELEASE = 20111229 end #============================================================================== # ■ Game_System [class] #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rgsslab083 #-------------------------------------------------------------------------- # ● オブジェクト初期化 [エイリアス] #-------------------------------------------------------------------------- alias guarding_individual_initialize initialize def initialize guarding_individual_initialize @rgsslab083 = RgssLab_083.new end end #============================================================================== # □ RgssLab_083 [class] #============================================================================== class RgssLab_083 #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_083 = RGSSLAB::Guarding_Individual_Setting #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :mode #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @mode = RGSSLAB_083::MODE end end #============================================================================== # ■ Game_Battler [class] #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_083 = RGSSLAB::Guarding_Individual_Setting #-------------------------------------------------------------------------- # ● 防御修正の適用 [再定義] # damage : ダメージ #-------------------------------------------------------------------------- def apply_guard(damage) return apply_guarding_actor(damage) if self.is_a?(Game_Enemy) return apply_guarding_enemy(damage) if self.is_a?(Game_Actor) end #-------------------------------------------------------------------------- # ○ 防御修正の適用(アクター→敵) # damage : ダメージの値 #-------------------------------------------------------------------------- def apply_guarding_actor(damage) rate = RGSSLAB_083::ENEMY[self.enemy_id] ? RGSSLAB_083::ENEMY[self.enemy_id] : RGSSLAB_083::ENEMY_DEFAULT return Integer(damage / (damage > 0 && guard? ? rate * grd : 1)) end #-------------------------------------------------------------------------- # ○ 防御修正の適用(敵→アクター) # damage : ダメージの値 #-------------------------------------------------------------------------- def apply_guarding_enemy(damage) if $game_system.rgsslab083.mode == "職業" rate = RGSSLAB_083::CLASS[self.class_id] ? RGSSLAB_083::CLASS[self.class_id] : RGSSLAB_083::CLASS_DEFAULT else rate = RGSSLAB_083::ACTOR[self.id] ? RGSSLAB_083::ACTOR[self.id] : RGSSLAB_083::ACTOR_DEFAULT end return Integer(damage / (damage > 0 && guard? ? rate * grd : 1)) end end end