#============================================================================== # ■ RGSS3 A1工房様スクリプト「戦闘中入れ替え」拡張 # 入れ替え不可化機能 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # A1工房様で配布されていた「戦闘中入れ替え」のスクリプトにおいて # 入れ替え機能を無効化するスイッチの作成と # 入れ替えられなくする特徴の設定が可能になります。 #------------------------------------------------------------------------------ # ★入れ替え不可特徴の設定 # # 特徴を有する項目(装備・ステート等)のメモ欄に # 入れ替え不可と記入する事で、その特徴を有するアクターは # 戦闘中入れ替えスクリプトで入れ替える事が出来なくなります。 #============================================================================== module MEMBER_CHANGE_SEAL #入れ替えを無効にするスイッチ番号を指定します。 SWITCH = 500 #入れ替え不可特徴用のキーワードを指定します。 WORD = "入れ替え不可" end class Window_PartyCommand < Window_Command alias a1_cbm_wpc_make_command_list_1 make_command_list def make_command_list #元の処理をとりあえず実行。 a1_cbm_wpc_make_command_list_1 #変数を生成。 @mcs_number = 0 #元の処理で追加した部分を調べる。 @list.each_index {|i| @mcs_number = i if @list[i][:name] == "入れ替え"} #元の物をコピーした後、その情報を元に削除。 data = @list[@mcs_number].clone @list.delete(data) #変数を消去。 @mcs_number = nil #コマンドを追加。 add_command("入れ替え", :member_change, $game_party.all_members.size > $game_party.max_battle_members && $game_party.member_change_enable) end end class Window_MemberChange < Window_Selectable alias process_ok_mcs process_ok def process_ok #該当メンバーの入れ替えが封印されている場合はブザーを鳴らして処理終了。 return Sound.play_buzzer if @all_members[self.index].member_change_seal #元の処理を実行。 process_ok_mcs end end class Game_Actor < Game_Battler def member_change_seal #メンバーの特徴に入れ替え封印特徴が存在する場合はtrueを返す。 feature_objects.each {|f| return true if f.member_change_seal?} #入れ替え封印特徴が存在しない場合はfalseを返す。 return false end end class Game_Party < Game_Unit def member_change_enable #スイッチIDが0の場合はtrueを返す。 return true if MEMBER_CHANGE_SEAL::SWITCH == 0 #該当スイッチがONの場合はfalseを返す。 return false if $game_switches[MEMBER_CHANGE_SEAL::SWITCH] #trueを返す。 return true end end class RPG::BaseItem def member_change_seal? #キャッシュがある場合はキャッシュを返す。 return @member_change_seal if @member_change_seal != nil #メモ欄からデータを取得。 @member_change_seal = self.note.include?(MEMBER_CHANGE_SEAL::WORD) #データを返す。 @member_change_seal end end