#============================================================================== # ■ RGSS3 メニューステータスにEXP表示 Ver1.00a by 星潟 #------------------------------------------------------------------------------ # メニューステータスウィンドウにEXPを表示します。 # 顔グラフィックの真下にバーのみ、レベル表示の裏側にバーのみ、 # MP表示の真下に見出しとバーと実際の次のレベルまでのEXPを表示の # 3パターンの中からお好みの物を選ぶ形式となっております。 #------------------------------------------------------------------------------ # Ver1.00a 初期値をデフォ解像度に合わせた形に変更。 #============================================================================== module EasyMenuExp #EXPバーのグラデーション色(暗)を指定。 C1 = [128,128,64] #EXPバーのグラデーション色(明)を指定。 C2 = [255,255,128] #描写タイプを指定。 #0が顔グラフィックの真下にバーのみ。 #1がレベル表示の裏側にバーのみ。 #2がMP表示の真下に見出しとバーと実際の次のレベルまでのEXPを表示。 #(2は実質、解像度640×480用です) Type = 2 #タイプ別の描写幅を指定。(Type0、1、2の順) EBW = [96,54,124] #タイプ別のX座標補正値を指定。(Type0、1、2の順) DEX = [0,0,120] #タイプ別のY座標補正値を指定。(Type0、1、2の順) DEY = [74,0,72] #Typeが2の場合のみ表示される見出しを指定。 Title = "EXP" #-------------------------------------------------------------------------- # 描写幅の取得 #-------------------------------------------------------------------------- def self.ebw EasyMenuExp::EBW[Type] end #-------------------------------------------------------------------------- # X座標補正の取得 #-------------------------------------------------------------------------- def self.dex EasyMenuExp::DEX[Type] end #-------------------------------------------------------------------------- # Y座標補正の取得 #-------------------------------------------------------------------------- def self.dey EasyMenuExp::DEY[Type] end end class Window_Base < Window #-------------------------------------------------------------------------- # 経験値情報の描画 #-------------------------------------------------------------------------- def draw_easy_exp_info(actor, x, y) w = EasyMenuExp.ebw h = line_height exp = actor.max_level? ? "-------" : actor.next_level_exp - actor.exp s_next = sprintf(EasyMenuExp::Title) draw_simple_exp_bar(actor, x, y) change_color(system_color) draw_text(x, y, w, h, s_next) change_color(normal_color) draw_text(x, y, w, h, exp, 2) end #-------------------------------------------------------------------------- # 簡単なEXPバーの描写 #-------------------------------------------------------------------------- def draw_simple_exp_bar(actor, x, y) c = simple_exp_gauge_color ce = actor.current_level_exp draw_gauge(x, y, EasyMenuExp.ebw, actor.max_level? ? 1 : [[((actor.exp - ce).to_f / (actor.next_level_exp - ce)),1].min,0].max, c[0], c[1]) end #-------------------------------------------------------------------------- # 簡単なEXPバーの色を取得 #-------------------------------------------------------------------------- def simple_exp_gauge_color a1 = EasyMenuExp::C1 a2 = EasyMenuExp::C2 [Color.new(a1[0],a1[1],a1[2]),Color.new(a2[0],a2[1],a2[2])] end end class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # アクターの顔グラフィック描画 #-------------------------------------------------------------------------- alias draw_actor_face_easy_exp_info draw_actor_face def draw_actor_face(actor, x, y, enabled = true) draw_actor_face_easy_exp_info(actor, x, y, enabled) draw_simple_exp_bar(actor, x + EasyMenuExp.dex, y + EasyMenuExp.dey) if EasyMenuExp::Type == 0 end #-------------------------------------------------------------------------- # レベルの描画 #-------------------------------------------------------------------------- alias draw_actor_level_easy_exp_info draw_actor_level def draw_actor_level(actor, x, y) draw_simple_exp_bar(actor, x + EasyMenuExp.dex, y + EasyMenuExp.dey) if EasyMenuExp::Type == 1 draw_actor_level_easy_exp_info(actor, x, y) end #-------------------------------------------------------------------------- # シンプルなステータスの描画 #-------------------------------------------------------------------------- alias draw_actor_simple_status_easy_exp_info draw_actor_simple_status unless $! def draw_actor_simple_status(actor, x, y) draw_actor_simple_status_easy_exp_info(actor, x, y) draw_easy_exp_info(actor, x + EasyMenuExp.dex, y + EasyMenuExp.dey) if EasyMenuExp::Type == 2 end end