=begin ◆概要 戦闘の時に特定のステートにかかっている場合、取得する武器を別のものにします。 ◆機能 ・ステートのメモ欄に<武器変化 n>と記入することにより、戦闘時のみ取得する武器を IDがnの武器に変更します。 ◆仕様 ・ステートが複数かかる場合、取得する武器もその分増えます(二つであれば二刀流、 三つであれば武器三つ、という風に) ◆使用上の注意 ・装備品オブジェクトの配列取得をエイリアス。 =end #============================================================================== # ■ RPG::State #============================================================================== class RPG::State < RPG::BaseItem def memo_wcstate @wc_id = 0 self.note.each_line{ |line| case line when /<武器変化\s*(\d+)>/ @wc_id = $1.to_i end } end def wc_id; memo_wcstate if !@wc_id; @wc_id; end end #============================================================================== # ■ Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ★ 武器オブジェクトの配列取得 #-------------------------------------------------------------------------- alias weapons_state weapons def weapons return weapons_state if !$game_party.in_battle result = [] for s in states result.push($data_weapons[s.wc_id]) if s.wc_id > 0 end return result.empty? ? weapons_state : result end #-------------------------------------------------------------------------- # ★ 防具オブジェクトの配列取得 #-------------------------------------------------------------------------- alias armors_state armors def armors result = armors_state return result if @equips[1].nil? if !equippable?(@equips[1]) and $game_party.in_battle result.delete(@equips[1]) end return result end #-------------------------------------------------------------------------- # ★ 装備品オブジェクトの配列取得 #-------------------------------------------------------------------------- alias equips_state equips def equips return equips_state if !($game_party.in_battle && weapons_state != weapons) return weapons + armors end end