#============================================================================== # ■ RGSS3 メッセージウィンドウ矯正 Ver1.03 by 星潟 #------------------------------------------------------------------------------ # 顔グラフィックなしの会話の場合、メッセージウィンドウの長さを # 顔グラフィック分減少させ、座標を中央寄りにします。 # 具体的には、RGSS2版ExCommand_MessageAdjustに近い効果を持ちます。 # # 仕様 メッセージウィンドウで表示領域以上の表示が発生した際 # ウィンドウ内に現れる矢印が出現しなくなります。 #============================================================================== module NOFACE #ここで指定する番号のスイッチがONの時、メッセージ矯正機能を有効にする。 #0の場合、常時有効とする。 SWITCH = 0 #背景を暗くする場合、暗い部分も短くするか、画面幅と同じ長さにするか. #trueの場合短くする。falseは変えない。 DARKWD = false end class Window_Message < Window_Base #-------------------------------------------------------------------------- # オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_noface initialize def initialize @anti_noface = true initialize_noface self.x = x_d_make self.arrows_visible = false @anti_noface = nil end #-------------------------------------------------------------------------- # ウィンドウ幅の取得 #-------------------------------------------------------------------------- alias window_width_noface window_width def window_width r = window_width_noface r -= ($game_message.face_name.empty? && nfmw ? 112 : 0) unless @anti_noface r end #-------------------------------------------------------------------------- # 背景ビットマップの作成 #-------------------------------------------------------------------------- alias create_back_bitmap_noface create_back_bitmap def create_back_bitmap create_back_bitmap_noface w = width - 112 h = height @back_bitmap2 = Bitmap.new(w, h) rect1 = Rect.new(0, 0, w, 12) rect2 = Rect.new(0, 12, w, h - 24) rect3 = Rect.new(0, h - 12, w, 12) @back_bitmap2.gradient_fill_rect(rect1, back_color2, back_color1, true) @back_bitmap2.fill_rect(rect2, back_color1) @back_bitmap2.gradient_fill_rect(rect3, back_color1, back_color2, true) end #-------------------------------------------------------------------------- # 背景ビットマップの解放 #-------------------------------------------------------------------------- alias dispose_back_bitmap_noface dispose_back_bitmap def dispose_back_bitmap dispose_back_bitmap_noface @back_bitmap2.dispose end #-------------------------------------------------------------------------- # 背景スプライトの更新 #-------------------------------------------------------------------------- alias update_back_sprite_noface update_back_sprite def update_back_sprite update_back_sprite_noface n = nfmw if NOFACE::DARKWD @back_sprite.x = n ? self.x : 0 @back_sprite.bitmap = (self.x != 0 && n) ? @back_bitmap2 : @back_bitmap end end #-------------------------------------------------------------------------- # 改ページ処理 #-------------------------------------------------------------------------- alias new_page_noface new_page def new_page(text, pos) self.x = x_d_make self.width = window_width new_page_noface(text, pos) end #-------------------------------------------------------------------------- # ウィンドウを開き、完全に開くまで待つ #-------------------------------------------------------------------------- alias open_and_wait_noface open_and_wait def open_and_wait self.x = x_d_make self.width = window_width open_and_wait_noface end #-------------------------------------------------------------------------- # 矯正許可 #-------------------------------------------------------------------------- def nfmw NOFACE::SWITCH == 0 or $game_switches[NOFACE::SWITCH] end #-------------------------------------------------------------------------- # x座標の取得 #-------------------------------------------------------------------------- def x_d_make $game_message.face_name.empty? && nfmw ? 56 : 0 end #-------------------------------------------------------------------------- # ウィンドウ内容の作成 #-------------------------------------------------------------------------- def contents_width Graphics.width end end