哪位大神有RPG制作大师VA的显示经验条脚本要可以用的最好有范例

2025-05-23 14:08:08
推荐回答(1个)
回答1:

# ●设定区域
#===================================

module WD
module Exp_Gauge
#EXP条COLOR,请修改成TEXT文字
EXP_GAUGE_COLOR1 = 6
EXP_GAUGE_COLOR2 = 14

#EXP条文字显示设定,true为打开,false为关闭
EXP_TEXT_DISPLAY = false
end
end

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  ゲーム中の全てのウィンドウのスーパークラスです。
#==============================================================================

class Window_Base < Window
include WD::Exp_Gauge

def exp_gauge_color1; text_color(EXP_GAUGE_COLOR1); end; # EXP ゲージ 1
def exp_gauge_color2; text_color(EXP_GAUGE_COLOR2); end; # EXP ゲージ 2

#--------------------------------------------------------------------------
# ● シンプルなステータスの描画
#--------------------------------------------------------------------------
def draw_actor_simple_status(actor, x, y)
draw_actor_name(actor, x, y + line_height * 0.5)
draw_actor_level(actor, x, y - line_height * 0.5)
draw_actor_icons(actor, x, y + line_height * 1.5)
draw_actor_class(actor, x + 120, y - line_height * 0.5)
draw_actor_hp(actor, x + 120, y + line_height * 0.5)
draw_actor_mp(actor, x + 120, y + line_height * 1.5)
draw_actor_exp(actor, x, y + line_height * 2.5, EXP_TEXT_DISPLAY)
end
#--------------------------------------------------------------------------
# ● EXP の描画
#--------------------------------------------------------------------------
def draw_actor_exp(actor, x, y, display = true, width = 244)
this_level = actor.exp - actor.past_level_exp
next_level = actor.next_level_exp - actor.past_level_exp
draw_gauge(x, y, width, actor.exp_rate, exp_gauge_color1, exp_gauge_color2)
change_color(system_color)
if display
draw_text(x, y, 30, line_height, "EXP")
draw_current_and_max_values(x, y, width, this_level, next_level, mp_color(actor), normal_color)
end
end
end

class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● EXP の割合を取得
#--------------------------------------------------------------------------
def exp_rate
this_level = exp - past_level_exp
next_level = next_level_exp - past_level_exp
next_level > 0 ? this_level.to_f / next_level : 0
end
#--------------------------------------------------------------------------
# ● 前のレベルの経験値を取得
#--------------------------------------------------------------------------
def past_level_exp
@level > 1 ? exp_for_level(@level - 1) : 0
end
end