#============================================================================== # ○バトルエンチャント # for RGSS3 # 巫女瓜 / Space not far # http://muspell.raindrop.jp/ # 敵味方全体に半永久的に効果を及ぼすスキルなどを作れるようになります。 #============================================================================== # スキルやアイテムのメモ欄にエンチャント[ステートID]] # という書式で記述してください。 # そのスキルやアイテムを戦闘中に使うと、該当するステートの # 「特徴」部分のみが敵味方全員に反映されるようになります。 # 戦闘終了時に、エンチャントはリセットされます。 # また、エンチャント[0]のスキル/アイテムを使うことでもリセットされます。 # 別のエンチャントスキルを使った場合、上書きされます。 module SNF DEFAULT_ENCHANT_ID = 0 # 初期状態のエンチャントのステートID。0ならなにもなし。 end class RPG::UsableItem #-------------------------------------------------------------------------- # @ エンチャントID #-------------------------------------------------------------------------- def enchant_id n = nil s = @note[/エンチャント\[(\d+)\]/] n = $1.to_i if s != nil return n end end class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :enchant_id #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias h150302_initialize initialize def initialize h150302_initialize @enchant_id = SNF::DEFAULT_ENCHANT_ID end def enchant return [] if @enchant_id == 0 return [$data_states[@enchant_id]] end end class Game_BattlerBase #-------------------------------------------------------------------------- # ● 特徴を保持する全オブジェクトの配列取得 #-------------------------------------------------------------------------- alias h150302_feature_objects feature_objects def feature_objects (h150302_feature_objects + $game_system.enchant).compact end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● スキル/アイテムの使用 # 行動側に対して呼び出され、使用対象以外に対する効果を適用する。 #-------------------------------------------------------------------------- alias h150302_use_item use_item def use_item(item) h150302_use_item(item) $game_system.enchant_id = item.enchant_id if item.enchant_id and $game_party.in_battle end end class Game_Unit #-------------------------------------------------------------------------- # ● 戦闘終了処理 #-------------------------------------------------------------------------- alias h150302_on_battle_end on_battle_end def on_battle_end $game_system.enchant_id = SNF::DEFAULT_ENCHANT_ID # デフォルトに戻す h150302_on_battle_end end end