#============================================================================== # パーティメンバーを解雇する # # 特定のパーティーメンバーをメニューウィンドウから解雇します。 #  # # 利用規約 #  連絡不要 #  商用可 # 改造可 # 再配布可(無改造の場合はクレジットを消さないでください) # アダルト可 #  利用された際、クレジットはあると喜びます  # GYM # http://gymaterials.jp/ #============================================================================== # ■ 設定項目 #------------------------------------------------------------------------------ #  定数等の設定項目 #============================================================================== module SRC_3DPOSE FIRE_COMMAND = "解雇" DO_FIRE = "解雇する" NOT_FIRE = "解雇しない" end #============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ #  メニュー画面の処理を行うクラスです。 #============================================================================== class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start super create_command_window create_gold_window create_status_window create_fire_window end #-------------------------------------------------------------------------- # ● コマンドウィンドウの作成 #-------------------------------------------------------------------------- def create_command_window @command_window = Window_MenuCommand.new @command_window.set_handler(:item, method(:command_item)) @command_window.set_handler(:skill, method(:command_personal)) @command_window.set_handler(:equip, method(:command_personal)) @command_window.set_handler(:status, method(:command_personal)) @command_window.set_handler(:formation, method(:command_formation)) @command_window.set_handler(:fire, method(:command_fire)) @command_window.set_handler(:save, method(:command_save)) @command_window.set_handler(:game_end, method(:command_game_end)) @command_window.set_handler(:cancel, method(:return_scene)) end #-------------------------------------------------------------------------- # ● 解雇確認ウィンドウの作成 #-------------------------------------------------------------------------- def create_fire_window @fire_window = Window_FireChoice.new @fire_window.viewport = @viewport @fire_window.set_handler(:fire_yes, method(:on_fire_ok)) @fire_window.set_handler(:fire_no, method(:cancel_fire)) @fire_window.set_handler(:cancel, method(:cancel_fire)) @fire_window.visible = false end #-------------------------------------------------------------------------- # ● コマンド[解雇] #-------------------------------------------------------------------------- def command_fire @status_window.select_last @status_window.activate @status_window.set_handler(:ok, method(:on_fire_check)) @status_window.set_handler(:cancel, method(:on_fire_cancel)) end #-------------------------------------------------------------------------- # ● コマンド[解雇]確認 #-------------------------------------------------------------------------- def on_fire_check @fire_window.x = Graphics.width - 160 @fire_window.y = @status_window.cursor_rect.y + 48 @fire_window.visible = true @fire_window.select(1) @fire_window.activate end #-------------------------------------------------------------------------- # ● コマンド[解雇]決定 #-------------------------------------------------------------------------- def on_fire_ok aid = $game_party.menu_actor.id $game_party.remove_actor(aid) @fire_window.visible = false @fire_window.unselect @status_window.select_last @status_window.activate @command_window.refresh @status_window.refresh end #-------------------------------------------------------------------------- # ● コマンド[解雇]キャンセル #-------------------------------------------------------------------------- def on_fire_cancel @fire_window.visible = false @status_window.unselect @command_window.activate end #-------------------------------------------------------------------------- # ● コマンド[解雇]確認をキャンセル #-------------------------------------------------------------------------- def cancel_fire @fire_window.visible = false @fire_window.unselect @command_window.activate end end #============================================================================== # ■ Window_MenuCommand #------------------------------------------------------------------------------ #  メニュー画面で表示するコマンドウィンドウです。 #============================================================================== class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # ● 独自コマンドの追加用 #-------------------------------------------------------------------------- def add_original_commands add_command(SRC_3DPOSE::FIRE_COMMAND, :fire , fire_enabled) end #-------------------------------------------------------------------------- # ● 解雇の可否 #-------------------------------------------------------------------------- def fire_enabled $game_party.members.size > 0 end end #============================================================================== # ■ Window_FireChoice #------------------------------------------------------------------------------ #  ステータス画面で解雇コマンドを表示するウィンドウです。 #============================================================================== class Window_FireChoice < Window_Command #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(x = 480, y = 48) super(x, y) end #-------------------------------------------------------------------------- # ● ウィンドウ幅の取得 #-------------------------------------------------------------------------- def window_width return 160 end #-------------------------------------------------------------------------- # ● コマンドリストの作成 #-------------------------------------------------------------------------- def make_command_list add_command(SRC_3DPOSE::DO_FIRE, :fire_yes) add_command(SRC_3DPOSE::NOT_FIRE, :fire_no) end end