设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1901|回复: 5
打印 上一主题 下一主题

[已经解决] 经验条不显示了

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
跳转到指定楼层
1
发表于 2012-1-22 12:19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wxj541374210 于 2012-1-26 16:55 编辑

我用了那位SUMMER 依恋 的换人菜单,但我弄的血条附加的经验条却不显示了,帮我改一改脚本,让经验条显示在每人魔法条下面就可以了,血条脚本如下:
  1. # ————————————————————————————————————

  2. # 本脚本来自www.66rpg.com,转载请保留此信息

  3. # ————————————————————————————————————


  4. # HP/SP/EXPゲージ表示スクリプト Ver 1.00

  5. # 配布元・サポートURL

  6. # http://members.jcom.home.ne.jp/cogwheel/


  7. #==============================================================================

  8. # ■ Game_Actor

  9. #------------------------------------------------------------------------------

  10. #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors)

  11. # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。

  12. #==============================================================================


  13. class Game_Actor < Game_Battler

  14.   def now_exp

  15.     return @exp - @exp_list[@level]

  16.   end

  17.   def next_exp

  18.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0

  19.   end

  20. end


  21. #==============================================================================

  22. # ■ Window_Base

  23. #------------------------------------------------------------------------------

  24. #  ゲーム中のすべてのウィンドウのスーパークラスです。

  25. #==============================================================================


  26. class Window_Base < Window

  27.   #--------------------------------------------------------------------------

  28.   # ● HP ゲージの描画

  29.   #--------------------------------------------------------------------------

  30.   # オリジナルのHP描画を draw_actor_hp_original と名前変更

  31.   alias :draw_actor_hp_original :draw_actor_hp

  32.    def draw_actor_hp(actor, x, y, width = 144)

  33.     # 変数rateに 現在のHP/MHPを代入

  34.     if actor.maxhp != 0

  35.       rate = actor.hp.to_f / actor.maxhp

  36.     else

  37.       rate = 0

  38.     end

  39.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正

  40.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅

  41.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め

  42.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め

  43.     # align3:ゲージタイプ 0:左詰め 1:右詰め

  44.     plus_x = 0

  45.     rate_x = 0

  46.     plus_y = 25

  47.     plus_width = 0

  48.     rate_width = 100

  49.     height = 10

  50.     align1 = 1

  51.     align2 = 2

  52.     align3 = 0

  53.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ

  54.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))

  55.     grade1 = 1

  56.     grade2 = 0

  57.     # 色設定。color1:外枠,color2:中枠

  58.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー

  59.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー

  60.     color1 = Color.new(0, 0, 0, 192)

  61.     color2 = Color.new(255, 255, 192, 192)

  62.     color3 = Color.new(0, 0, 0, 192)

  63.     color4 = Color.new(64, 0, 0, 192)

  64.     color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)

  65.     color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)

  66.     # 変数spに描画するゲージの幅を代入

  67.     if actor.maxhp != 0

  68.       hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp

  69.     else

  70.       hp = 0

  71.     end

  72.     # ゲージの描画

  73.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,

  74.                 width, plus_width + width * rate_width / 100,

  75.                 height, hp, align1, align2, align3,

  76.                 color1, color2, color3, color4, color5, color6, grade1, grade2)

  77.     # オリジナルのHP描画処理を呼び出し

  78.     draw_actor_hp_original(actor, x, y, width)

  79.   end

  80.   #--------------------------------------------------------------------------

  81.   # ● SP ゲージの描画

  82.   #--------------------------------------------------------------------------

  83.   # オリジナルのSP描画を draw_actor_sp_original と名前変更

  84.   alias :draw_actor_sp_original :draw_actor_sp

  85.   def draw_actor_sp(actor, x, y, width = 144)

  86.     # 変数rateに 現在のSP/MSPを代入

  87.     if actor.maxsp != 0

  88.       rate = actor.sp.to_f / actor.maxsp

  89.     else

  90.       rate = 1

  91.     end

  92.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正

  93.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅

  94.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め

  95.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め

  96.     # align3:ゲージタイプ 0:左詰め 1:右詰め

  97.     plus_x = 0

  98.     rate_x = 0

  99.     plus_y = 25

  100.     plus_width = 0

  101.     rate_width = 100

  102.     height = 10

  103.     align1 = 1

  104.     align2 = 2

  105.     align3 = 0

  106.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ

  107.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))

  108.     grade1 = 1

  109.     grade2 = 0

  110.     # 色設定。color1:外枠,color2:中枠

  111.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー

  112.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー

  113.     color1 = Color.new(0, 0, 0, 192)

  114.     color2 = Color.new(255, 255, 192, 192)

  115.     color3 = Color.new(0, 0, 0, 192)

  116.     color4 = Color.new(0, 64, 0, 192)

  117.     color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)

  118.     color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)

  119.     # 変数spに描画するゲージの幅を代入

  120.     if actor.maxsp != 0

  121.       sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp

  122.     else

  123.       sp = (width + plus_width) * rate_width / 100

  124.     end

  125.     # ゲージの描画

  126.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,

  127.                 width, plus_width + width * rate_width / 100,

  128.                 height, sp, align1, align2, align3,

  129.                 color1, color2, color3, color4, color5, color6, grade1, grade2)

  130.     # オリジナルのSP描画処理を呼び出し

  131.     draw_actor_sp_original(actor, x, y, width)

  132.   end

  133.   #--------------------------------------------------------------------------

  134.   # ● EXP ゲージの描画

  135.   #--------------------------------------------------------------------------

  136.   # オリジナルのEXP描画を draw_actor_sp_original と名前変更

  137.   alias :draw_actor_exp_original :draw_actor_exp

  138.   def draw_actor_exp(actor, x, y, width = 204)

  139.     # 変数rateに 現在のexp/nextexpを代入

  140.     if actor.next_exp != 0

  141.       rate = actor.now_exp.to_f / actor.next_exp

  142.     else

  143.       rate = 1

  144.     end

  145.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正

  146.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅

  147.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め

  148.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め

  149.     # align3:ゲージタイプ 0:左詰め 1:右詰め

  150.     plus_x = 0

  151.     rate_x = 0

  152.     plus_y = 25

  153.     plus_width = 0

  154.     rate_width = 100

  155.     height = 10

  156.     align1 = 1

  157.     align2 = 2

  158.     align3 = 0

  159.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ

  160.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))

  161.     grade1 = 1

  162.     grade2 = 0

  163.     # 色設定。color1:外枠,color2:中枠

  164.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー

  165.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー

  166.     color1 = Color.new(0, 0, 0, 192)

  167.     color2 = Color.new(255, 255, 192, 192)

  168.     color3 = Color.new(0, 0, 0, 192)

  169.     color4 = Color.new(64, 0, 0, 192)

  170.     color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)

  171.     color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)

  172.     # 変数expに描画するゲージの幅を代入

  173.     if actor.next_exp != 0

  174.       exp = (width + plus_width) * actor.now_exp * rate_width /

  175.                                                           100 / actor.next_exp

  176.     else

  177.       exp = (width + plus_width) * rate_width / 100

  178.     end

  179.     # ゲージの描画

  180.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,

  181.                 width, plus_width + width * rate_width / 100,

  182.                 height, exp, align1, align2, align3,

  183.                 color1, color2, color3, color4, color5, color6, grade1, grade2)

  184.     # オリジナルのEXP描画処理を呼び出し

  185.     draw_actor_exp_original(actor, x, y)

  186.   end

  187.   #--------------------------------------------------------------------------

  188.   # ● 延迟时间描画

  189.   #--------------------------------------------------------------------------

  190.   def draw_actor_delay_time(actor, x, y, width = 144)

  191.     # 変数rateに 現在のSP/MSPを代入

  192.     if actor.delay_time_max != 0

  193.       rate = actor.delay_time.to_f / actor.delay_time_max

  194.     else

  195.       rate = 0

  196.     end

  197.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正

  198.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅

  199.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め

  200.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め

  201.     # align3:ゲージタイプ 0:左詰め 1:右詰め

  202.     plus_x = 0

  203.     rate_x = 0

  204.     plus_y = 25

  205.     plus_width = 0

  206.     rate_width = 100

  207.     height = 10

  208.     align1 = 1

  209.     align2 = 2

  210.     align3 = 0

  211.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ

  212.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))

  213.     grade1 = 1

  214.     grade2 = 0

  215.     # 色設定。color1:外枠,color2:中枠

  216.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー

  217.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー

  218.     color1 = Color.new(0, 0, 0, 192)

  219.     color2 = Color.new(255, 255, 192, 192)

  220.     color3 = Color.new(0, 0, 0, 192)

  221.     color4 = Color.new(0, 64, 0, 192)

  222.     color5 = Color.new(100 * rate, 100 * rate, 0, 192)

  223.     color6 = Color.new(255 * rate, 255 * rate, 0, 192)

  224.     # 変数spに描画するゲージの幅を代入

  225.     if actor.delay_time_max != 0

  226.       sp = (width + plus_width) * actor.delay_time * rate_width / 100 / actor.delay_time_max

  227.     else

  228.       sp = (width + plus_width) * rate_width / 100

  229.     end

  230.     # ゲージの描画

  231.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,

  232.                 width, plus_width + width * rate_width / 100,

  233.                 height, sp, align1, align2, align3,

  234.                 color1, color2, color3, color4, color5, color6, grade1, grade2)

  235.     # 描绘字符串 "行动时间"

  236.     self.contents.font.color = system_color

  237.     self.contents.font.size = 20

  238.     self.contents.draw_text(x, y, 120, 32, 'Delay')

  239.     self.contents.font.color = normal_color

  240.     self.contents.draw_text(x, y, 120, 32, actor.delay_time.to_s, 2)

  241.   end

  242.   #--------------------------------------------------------------------------

  243.   # ● 咏唱时间描画

  244.   #--------------------------------------------------------------------------

  245.   def draw_actor_casting_time(actor, x, y, width = 144)

  246.     # 変数rateに 現在のSP/MSPを代入

  247.     time = actor.casting_time_max - actor.casting_time

  248.     if actor.casting_time_max != 0

  249.       rate = time.to_f / actor.casting_time_max

  250.     else

  251.       rate = 0

  252.     end

  253.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正

  254.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅

  255.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め

  256.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め

  257.     # align3:ゲージタイプ 0:左詰め 1:右詰め

  258.     plus_x = 0

  259.     rate_x = 0

  260.     plus_y = 25

  261.     plus_width = 0

  262.     rate_width = 100

  263.     height = 10

  264.     align1 = 1

  265.     align2 = 2

  266.     align3 = 0

  267.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ

  268.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))

  269.     grade1 = 1

  270.     grade2 = 0

  271.     # 色設定。color1:外枠,color2:中枠

  272.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー

  273.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー

  274.     color1 = Color.new(0, 0, 0, 192)

  275.     color2 = Color.new(255, 255, 192, 192)

  276.     color3 = Color.new(0, 0, 0, 192)

  277.     color4 = Color.new(0, 64, 0, 192)

  278.     color5 = Color.new(100 * rate, 100 * rate, 0, 192)

  279.     color6 = Color.new(255 * rate, 255 * rate, 0, 192)

  280.     # 変数spに描画するゲージの幅を代入

  281.     if actor.casting_time_max != 0

  282.       sp = (width + plus_width) * time * rate_width / 100 / actor.casting_time_max

  283.     else

  284.       sp = (width + plus_width) * rate_width / 100

  285.     end

  286.     # ゲージの描画

  287.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,

  288.                 width, plus_width + width * rate_width / 100,

  289.                 height, sp, align1, align2, align3,

  290.                 color1, color2, color3, color4, color5, color6, grade1, grade2)

  291.     # 描绘字符串 "行动时间"

  292.     self.contents.font.color = system_color

  293.     self.contents.font.size = 20

  294.     self.contents.draw_text(x, y, 120, 32, 'Cast')

  295.     self.contents.font.color = normal_color

  296.     self.contents.draw_text(x, y, 120, 32, time.to_s, 2)

  297.   end

  298.   #--------------------------------------------------------------------------

  299.   # ● ゲージの描画

  300.   #--------------------------------------------------------------------------

  301.   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,

  302.                 color1, color2, color3, color4, color5, color6, grade1, grade2)

  303.     case align1

  304.     when 1

  305.       x += (rect_width - width) / 2

  306.     when 2

  307.       x += rect_width - width

  308.     end

  309.     case align2

  310.     when 1

  311.       y -= height / 2

  312.     when 2

  313.       y -= height

  314.     end

  315.     # 枠描画

  316.     self.contents.fill_rect(x, y, width, height, color1)

  317.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)

  318.     if align3 == 0

  319.       if grade1 == 2

  320.         grade1 = 3

  321.       end

  322.       if grade2 == 2

  323.         grade2 = 3

  324.       end

  325.     end

  326.     if (align3 == 1 and grade1 == 0) or grade1 > 0

  327.       color = color3

  328.       color3 = color4

  329.       color4 = color

  330.     end

  331.     if (align3 == 1 and grade2 == 0) or grade2 > 0

  332.       color = color5

  333.       color5 = color6

  334.       color6 = color

  335.     end

  336.     # 空ゲージの描画

  337.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,

  338.                                   color3, color4, grade1)

  339.     if align3 == 1

  340.       x += width - gauge

  341.     end

  342.     # 実ゲージの描画

  343.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,

  344.                                   color5, color6, grade2)

  345.   end

  346. end


  347. #------------------------------------------------------------------------------

  348. #  Bitmapクラスに新たな機能を追加します。

  349. #==============================================================================


  350. class Bitmap

  351.   #--------------------------------------------------------------------------

  352.   # ● 矩形をグラデーション表示

  353.   #     color1 : スタートカラー

  354.   #     color2 : エンドカラー

  355.   #     align  :  0:横にグラデーション

  356.   #               1:縦にグラデーション

  357.   #               2:斜めにグラデーション(激重につき注意)

  358.   #--------------------------------------------------------------------------

  359.   def gradation_rect(x, y, width, height, color1, color2, align = 0)

  360.     if align == 0

  361.       for i in x...x + width

  362.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)

  363.         green = color1.green +

  364.                 (color2.green - color1.green) * (i - x) / (width - 1)

  365.         blue  = color1.blue +

  366.                 (color2.blue - color1.blue) * (i - x) / (width - 1)

  367.         alpha = color1.alpha +

  368.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)

  369.         color = Color.new(red, green, blue, alpha)

  370.         fill_rect(i, y, 1, height, color)

  371.       end

  372.     elsif align == 1

  373.       for i in y...y + height

  374.         red   = color1.red +

  375.                 (color2.red - color1.red) * (i - y) / (height - 1)

  376.         green = color1.green +

  377.                 (color2.green - color1.green) * (i - y) / (height - 1)

  378.         blue  = color1.blue +

  379.                 (color2.blue - color1.blue) * (i - y) / (height - 1)

  380.         alpha = color1.alpha +

  381.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)

  382.         color = Color.new(red, green, blue, alpha)

  383.         fill_rect(x, i, width, 1, color)

  384.       end

  385.     elsif align == 2

  386.       for i in x...x + width

  387.         for j in y...y + height

  388.           red   = color1.red + (color2.red - color1.red) *

  389.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  390.           green = color1.green + (color2.green - color1.green) *

  391.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  392.           blue  = color1.blue + (color2.blue - color1.blue) *

  393.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  394.           alpha = color1.alpha + (color2.alpha - color1.alpha) *

  395.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  396.           color = Color.new(red, green, blue, alpha)

  397.           set_pixel(i, j, color)

  398.         end

  399.       end

  400.     elsif align == 3

  401.       for i in x...x + width

  402.         for j in y...y + height

  403.           red   = color1.red + (color2.red - color1.red) *

  404.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  405.           green = color1.green + (color2.green - color1.green) *

  406.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  407.           blue  = color1.blue + (color2.blue - color1.blue) *

  408.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  409.           alpha = color1.alpha + (color2.alpha - color1.alpha) *

  410.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2

  411.           color = Color.new(red, green, blue, alpha)

  412.           set_pixel(i, j, color)

  413.         end

  414.       end

  415.     end

  416.   end

  417. end
复制代码

Lv3.寻梦者

梦石
0
星屑
3176
在线时间
1442 小时
注册时间
2009-7-27
帖子
1454
2
发表于 2012-1-23 22:02:45 | 只看该作者
这个本身没问题,是你那个换人脚本的问题。发那个范例上来看看

博客:我的博客
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
3
 楼主| 发表于 2012-1-24 20:09:26 | 只看该作者
如果用以前的菜单,还会有经验条的

Project1.rar

195.89 KB, 下载次数: 205

这就是范例了

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2012-1-26
帖子
22
4
发表于 2012-1-27 02:11:54 | 只看该作者
本帖最后由 点叙 于 2012-1-27 02:15 编辑

血条脚本没错,你在菜单的脚本里少了个描绘了。75:        draw_actor_exp(actor     , x, y + 48)     PS:你的经验条太长了,我也帮你消改了下。。

Project1.zip

210.63 KB, 下载次数: 60977

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2011-11-26
帖子
90
5
 楼主| 发表于 2012-1-27 15:49:57 | 只看该作者
本帖最后由 wxj541374210 于 2012-1-27 18:53 编辑
点叙 发表于 2012-1-27 02:11
血条脚本没错,你在菜单的脚本里少了个描绘了。75:        draw_actor_exp(actor     , x, y + 48)     PS ...


哎呀,你的范例下载不了啊,直接把菜单和血条脚本贴上来吧,贴上来就认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2012-1-26
帖子
22
6
发表于 2012-1-27 21:06:42 | 只看该作者
  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————
  4. class Game_Actor < Game_Battler
  5.   def now_exp
  6.     return @exp - @exp_list[@level]
  7.   end
  8.   def next_exp
  9.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  10.   end
  11. end

  12. class Window_Base < Window
  13.   #--------------------------------------------------------------------------
  14.   # ● HP ゲージの描画
  15.   #--------------------------------------------------------------------------
  16.   alias :draw_actor_hp_original :draw_actor_hp
  17.    def draw_actor_hp(actor, x, y, width = 144)
  18.     if actor.maxhp != 0
  19.       rate = actor.hp.to_f / actor.maxhp
  20.     else
  21.       rate = 0
  22.     end
  23.     plus_x = 0
  24.     rate_x = 0
  25.     plus_y = 25
  26.     plus_width = 0
  27.     rate_width = 100
  28.     height = 10
  29.     align1 = 1
  30.     align2 = 2
  31.     align3 = 0
  32.     grade1 = 1
  33.     grade2 = 0
  34.     color1 = Color.new(0, 0, 0, 192)
  35.     color2 = Color.new(255, 255, 192, 192)
  36.     color3 = Color.new(0, 0, 0, 192)
  37.     color4 = Color.new(64, 0, 0, 192)
  38.     color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
  39.     color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
  40.     if actor.maxhp != 0
  41.       hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
  42.     else
  43.       hp = 0
  44.     end
  45.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  46.                 width, plus_width + width * rate_width / 100,
  47.                 height, hp, align1, align2, align3,
  48.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  49.     draw_actor_hp_original(actor, x, y, width)
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● SP ゲージの描画
  53.   #--------------------------------------------------------------------------
  54.   # オリジナルのSP描画を draw_actor_sp_original と名前変更
  55.   alias :draw_actor_sp_original :draw_actor_sp
  56.   def draw_actor_sp(actor, x, y, width = 144)
  57.     # 変数rateに 現在のSP/MSPを代入
  58.     if actor.maxsp != 0
  59.       rate = actor.sp.to_f / actor.maxsp
  60.     else
  61.       rate = 1
  62.     end
  63.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  64.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  65.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  66.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  67.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  68.     plus_x = 0
  69.     rate_x = 0
  70.     plus_y = 25
  71.     plus_width = 0
  72.     rate_width = 100
  73.     height = 10
  74.     align1 = 1
  75.     align2 = 2
  76.     align3 = 0
  77.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  78.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  79.     grade1 = 1
  80.     grade2 = 0
  81.     # 色設定。color1:外枠,color2:中枠
  82.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  83.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  84.     color1 = Color.new(0, 0, 0, 192)
  85.     color2 = Color.new(255, 255, 192, 192)
  86.     color3 = Color.new(0, 0, 0, 192)
  87.     color4 = Color.new(0, 64, 0, 192)
  88.     color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
  89.     color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
  90.     # 変数spに描画するゲージの幅を代入
  91.     if actor.maxsp != 0
  92.       sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
  93.     else
  94.       sp = (width + plus_width) * rate_width / 100
  95.     end
  96.     # ゲージの描画
  97.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  98.                 width, plus_width + width * rate_width / 100,
  99.                 height, sp, align1, align2, align3,
  100.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  101.     # オリジナルのSP描画処理を呼び出し
  102.     draw_actor_sp_original(actor, x, y, width)
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● EXP ゲージの描画
  106.   #--------------------------------------------------------------------------
  107.   # オリジナルのEXP描画を draw_actor_sp_original と名前変更
  108.   alias :draw_actor_exp_original :draw_actor_exp
  109.   def draw_actor_exp(actor, x, y, width = 144)
  110.     # 変数rateに 現在のexp/nextexpを代入
  111.     if actor.next_exp != 0
  112.       rate = actor.now_exp.to_f / actor.next_exp
  113.     else
  114.       rate = 1
  115.     end
  116.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  117.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  118.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  119.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  120.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  121.     plus_x = 0
  122.     rate_x = 0
  123.     plus_y = 25
  124.     plus_width = 0
  125.     rate_width = 100
  126.     height = 10
  127.     align1 = 1
  128.     align2 = 2
  129.     align3 = 0
  130.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  131.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  132.     grade1 = 1
  133.     grade2 = 0
  134.     # 色設定。color1:外枠,color2:中枠
  135.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  136.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  137.     color1 = Color.new(0, 0, 0, 192)
  138.     color2 = Color.new(255, 255, 192, 192)
  139.     color3 = Color.new(0, 0, 0, 192)
  140.     color4 = Color.new(64, 0, 0, 192)
  141.     color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
  142.     color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
  143.     # 変数expに描画するゲージの幅を代入
  144.     if actor.next_exp != 0
  145.       exp = (width + plus_width) * actor.now_exp * rate_width / 100 / actor.next_exp
  146.     else
  147.       exp = (width + plus_width) * rate_width / 100
  148.     end
  149.     # ゲージの描画
  150.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  151.                 width, plus_width + width * rate_width / 100,
  152.                 height, exp, align1, align2, align3,
  153.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  154.     # オリジナルのEXP描画処理を呼び出し
  155.     draw_actor_exp_original(actor, x, y+10)
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 延迟时间描画
  159.   #--------------------------------------------------------------------------
  160.   def draw_actor_delay_time(actor, x, y, width = 144)
  161.     # 変数rateに 現在のSP/MSPを代入
  162.     if actor.delay_time_max != 0
  163.       rate = actor.delay_time.to_f / actor.delay_time_max
  164.     else
  165.       rate = 0
  166.     end
  167.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  168.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  169.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  170.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  171.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  172.     plus_x = 0
  173.     rate_x = 0
  174.     plus_y = 25
  175.     plus_width = 0
  176.     rate_width = 100
  177.     height = 10
  178.     align1 = 1
  179.     align2 = 2
  180.     align3 = 0
  181.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  182.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  183.     grade1 = 1
  184.     grade2 = 0
  185.     # 色設定。color1:外枠,color2:中枠
  186.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  187.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  188.     color1 = Color.new(0, 0, 0, 192)
  189.     color2 = Color.new(255, 255, 192, 192)
  190.     color3 = Color.new(0, 0, 0, 192)
  191.     color4 = Color.new(0, 64, 0, 192)
  192.     color5 = Color.new(100 * rate, 100 * rate, 0, 192)
  193.     color6 = Color.new(255 * rate, 255 * rate, 0, 192)
  194.     # 変数spに描画するゲージの幅を代入
  195.     if actor.delay_time_max != 0
  196.       sp = (width + plus_width) * actor.delay_time * rate_width / 100 / actor.delay_time_max
  197.     else
  198.       sp = (width + plus_width) * rate_width / 100
  199.     end
  200.     # ゲージの描画
  201.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  202.                 width, plus_width + width * rate_width / 100,
  203.                 height, sp, align1, align2, align3,
  204.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  205.     # 描绘字符串 "行动时间"
  206.     self.contents.font.color = system_color
  207.     self.contents.font.size = 20
  208.     self.contents.draw_text(x, y, 120, 32, 'Delay')
  209.     self.contents.font.color = normal_color
  210.     self.contents.draw_text(x, y, 120, 32, actor.delay_time.to_s, 2)
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● 咏唱时间描画
  214.   #--------------------------------------------------------------------------
  215.   def draw_actor_casting_time(actor, x, y, width = 144)
  216.     # 変数rateに 現在のSP/MSPを代入
  217.     time = actor.casting_time_max - actor.casting_time
  218.     if actor.casting_time_max != 0
  219.       rate = time.to_f / actor.casting_time_max
  220.     else
  221.       rate = 0
  222.     end
  223.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  224.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  225.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  226.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  227.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  228.     plus_x = 0
  229.     rate_x = 0
  230.     plus_y = 25
  231.     plus_width = 0
  232.     rate_width = 100
  233.     height = 10
  234.     align1 = 1
  235.     align2 = 2
  236.     align3 = 0
  237.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  238.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  239.     grade1 = 1
  240.     grade2 = 0
  241.     # 色設定。color1:外枠,color2:中枠
  242.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  243.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  244.     color1 = Color.new(0, 0, 0, 192)
  245.     color2 = Color.new(255, 255, 192, 192)
  246.     color3 = Color.new(0, 0, 0, 192)
  247.     color4 = Color.new(0, 64, 0, 192)
  248.     color5 = Color.new(100 * rate, 100 * rate, 0, 192)
  249.     color6 = Color.new(255 * rate, 255 * rate, 0, 192)
  250.     # 変数spに描画するゲージの幅を代入
  251.     if actor.casting_time_max != 0
  252.       sp = (width + plus_width) * time * rate_width / 100 / actor.casting_time_max
  253.     else
  254.       sp = (width + plus_width) * rate_width / 100
  255.     end
  256.     # ゲージの描画
  257.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  258.                 width, plus_width + width * rate_width / 100,
  259.                 height, sp, align1, align2, align3,
  260.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  261.     # 描绘字符串 "行动时间"
  262.     self.contents.font.color = system_color
  263.     self.contents.font.size = 20
  264.     self.contents.draw_text(x, y, 120, 32, 'Cast')
  265.     self.contents.font.color = normal_color
  266.     self.contents.draw_text(x, y, 120, 32, time.to_s, 2)
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● ゲージの描画
  270.   #--------------------------------------------------------------------------
  271.   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  272.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  273.     case align1
  274.     when 1
  275.       x += (rect_width - width) / 2
  276.     when 2
  277.       x += rect_width - width
  278.     end
  279.     case align2
  280.     when 1
  281.       y -= height / 2
  282.     when 2
  283.       y -= height
  284.     end
  285.     # 枠描画
  286.     self.contents.fill_rect(x, y, width, height, color1)
  287.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  288.     if align3 == 0
  289.       if grade1 == 2
  290.         grade1 = 3
  291.       end
  292.       if grade2 == 2
  293.         grade2 = 3
  294.       end
  295.     end
  296.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  297.       color = color3
  298.       color3 = color4
  299.       color4 = color
  300.     end
  301.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  302.       color = color5
  303.       color5 = color6
  304.       color6 = color
  305.     end
  306.     # 空ゲージの描画
  307.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  308.                                   color3, color4, grade1)
  309.     if align3 == 1
  310.       x += width - gauge
  311.     end
  312.     # 実ゲージの描画
  313.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  314.                                   color5, color6, grade2)
  315.   end
  316. end

  317. #------------------------------------------------------------------------------
  318. #  Bitmapクラスに新たな機能を追加します。
  319. #==============================================================================

  320. class Bitmap
  321.   #--------------------------------------------------------------------------
  322.   # ● 矩形をグラデーション表示
  323.   #     color1 : スタートカラー
  324.   #     color2 : エンドカラー
  325.   #     align  :  0:横にグラデーション
  326.   #               1:縦にグラデーション
  327.   #               2:斜めにグラデーション(激重につき注意)
  328.   #--------------------------------------------------------------------------
  329.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  330.     if align == 0
  331.       for i in x...x + width
  332.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  333.         green = color1.green +
  334.                 (color2.green - color1.green) * (i - x) / (width - 1)
  335.         blue  = color1.blue +
  336.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  337.         alpha = color1.alpha +
  338.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  339.         color = Color.new(red, green, blue, alpha)
  340.         fill_rect(i, y, 1, height, color)
  341.       end
  342.     elsif align == 1
  343.       for i in y...y + height
  344.         red   = color1.red +
  345.                 (color2.red - color1.red) * (i - y) / (height - 1)
  346.         green = color1.green +
  347.                 (color2.green - color1.green) * (i - y) / (height - 1)
  348.         blue  = color1.blue +
  349.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  350.         alpha = color1.alpha +
  351.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  352.         color = Color.new(red, green, blue, alpha)
  353.         fill_rect(x, i, width, 1, color)
  354.       end
  355.     elsif align == 2
  356.       for i in x...x + width
  357.         for j in y...y + height
  358.           red   = color1.red + (color2.red - color1.red) *
  359.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  360.           green = color1.green + (color2.green - color1.green) *
  361.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  362.           blue  = color1.blue + (color2.blue - color1.blue) *
  363.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  364.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  365.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  366.           color = Color.new(red, green, blue, alpha)
  367.           set_pixel(i, j, color)
  368.         end
  369.       end
  370.     elsif align == 3
  371.       for i in x...x + width
  372.         for j in y...y + height
  373.           red   = color1.red + (color2.red - color1.red) *
  374.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  375.           green = color1.green + (color2.green - color1.green) *
  376.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  377.           blue  = color1.blue + (color2.blue - color1.blue) *
  378.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  379.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  380.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  381.           color = Color.new(red, green, blue, alpha)
  382.           set_pixel(i, j, color)
  383.         end
  384.       end
  385.     end
  386.   end
  387. end
复制代码
  1. #============================================================================================
  2. # 本脚本来自www.66RPG.com,转载和使用请保留此信息
  3. #============================================================================================

  4. # ▼▲▼ XRXS26BX. +BUZZデザイン ▼▲▼ built 033109
  5. # by 桜雅 在土

  6. #==============================================================================
  7. # □ 初始化定义
  8. #==============================================================================
  9. class Window_MenuStatus < Window_Selectable
  10.   #
  11.   # 不显示能力值的角色编号
  12.   #
  13.   NO_PARAMETER_ACTORS = []
  14. end
  15. #==============================================================================
  16. # ■ Window_MenuStatus
  17. #==============================================================================
  18. class Window_MenuStatus < Window_Selectable
  19.   #--------------------------------------------------------------------------
  20.   # ○ インクルード
  21.   #--------------------------------------------------------------------------
  22.   include XRXS26
  23.   #--------------------------------------------------------------------------
  24.   # ● 公開インスタンス変数
  25.   #--------------------------------------------------------------------------
  26.   attr_reader   :newitem_window
  27.   attr_reader   :bottomkeyhelp_window
  28.   #--------------------------------------------------------------------------
  29.   # ● オブジェクト初期化
  30.   #--------------------------------------------------------------------------
  31.   alias xrxs26bx_initialize initialize
  32.   def initialize
  33.     # 呼び戻す
  34.     xrxs26bx_initialize
  35.     # 寄生してウィンドウを作成
  36.     # ボトルキーヘルプウィンドウ
  37.     @bottomkeyhelp_window = Window_BottomKeyHelp.new
  38.     @bottomkeyhelp_window.visible = false
  39.     # 設定変更
  40.     self.height   = 448
  41.     self.contents = Bitmap.new(width - 32, height - 32)
  42.     refresh
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● リフレッシュ
  46.   #--------------------------------------------------------------------------
  47.   def refresh
  48.     self.contents.clear
  49.     @item_max = $game_party.actors.size
  50.     @column_max = 2
  51.     y = (FRONT_MEMBER_LIMIT+1)/2 * 64 + 28
  52.     self.contents.font.size = 16
  53.     self.contents.font.color = system_color
  54.     self.contents.draw_text(4, 0, 92, 28, "队伍中")
  55.     self.contents.draw_text(4, y, 92, 28, "休息中")
  56.     for i in 0...$game_party.actors.size
  57.       x = 64 + i%2 * 224
  58.       y = i/2 *  72 + 24
  59.       actor = $game_party.actors[i]
  60.       if i >= FRONT_MEMBER_LIMIT
  61.         y += 32
  62.         self.contents.font.color = disabled_color
  63.         self.contents.draw_text(x, y, 120, 32, actor.name)
  64.       else
  65.         draw_actor_name(actor   , x     , y     )
  66.       end
  67.       draw_actor_graphic(actor, x - 40, y + 64)
  68.       unless NO_PARAMETER_ACTORS.include?(actor.id)
  69.         draw_actor_level(actor  , x + 94, y     )
  70.         draw_actor_hp(actor     , x, y + 16)
  71.         draw_actor_sp(actor     , x, y + 32)
  72.         draw_actor_exp(actor     , x, y + 48)
  73.         draw_actor_state(actor  , x, y + 48)
  74.       end
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ○ フレーム更新
  79.   #--------------------------------------------------------------------------
  80.   def update
  81.     # ウィンドウを更新
  82.     @bottomkeyhelp_window.update
  83.     super
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # ○ 解放
  87.   #--------------------------------------------------------------------------
  88.   def dispose
  89.     @bottomkeyhelp_window.dispose
  90.     super
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● カーソルの矩形更新
  94.   #--------------------------------------------------------------------------
  95.   def update_cursor_rect
  96.     if @index < 0
  97.       self.cursor_rect.empty
  98.     else
  99.       y = @index/2 * 72 + 28
  100.       if @index >= FRONT_MEMBER_LIMIT
  101.         y += 32
  102.       end
  103.       self.cursor_rect.set(@index%2 * 224, y, 224, 72)
  104.     end
  105.   end
  106. end
  107. #==============================================================================
  108. # ■ Scene_Menu
  109. #==============================================================================
  110. class Scene_Menu
  111.   #--------------------------------------------------------------------------
  112.   # ● フレーム更新
  113.   #--------------------------------------------------------------------------
  114.   alias xrxs26bx_update update
  115.   def update
  116.     # 登録
  117.     if @bottomkeyhelp_window.nil?
  118.       @bottomkeyhelp_window = @status_window.bottomkeyhelp_window
  119.       @bottomkeyhelp_window.visible =false
  120.       set_keyhelp1
  121.     end
  122.     # 呼び戻す
  123.     xrxs26bx_update
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  127.   #--------------------------------------------------------------------------
  128.   alias xrxs26bx_update_command update_command
  129.   def update_command
  130.     # 呼び戻す
  131.     xrxs26bx_update_command
  132.     # 入れ替え移行キーが押されたとき
  133.     if @command_window.index == -1 and @status_window.active
  134.       set_keyhelp2
  135.     end
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  139.   #--------------------------------------------------------------------------
  140.   alias xrxs26bx_update_status update_status
  141.   def update_status
  142.     # 保存
  143.     last_index = @status_window.index2
  144.     # 呼び戻す
  145.     xrxs26bx_update_status
  146.     #
  147.     if last_index != @status_window.index2
  148.       # 一人目を選択した場合
  149.       if @status_window.index2 >= 0
  150.         set_keyhelp3
  151.       else
  152.         set_keyhelp2
  153.       end
  154.     end
  155.     # 戻った場合
  156.     unless @status_window.active
  157.       set_keyhelp1
  158.     end
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ○ キーヘルプを設定 1
  162.   #--------------------------------------------------------------------------
  163.   def set_keyhelp1
  164.     @bottomkeyhelp_window.clear
  165.     @bottomkeyhelp_window.add("B","关闭本窗口")
  166.     @bottomkeyhelp_window.add("C","确定")
  167.     @bottomkeyhelp_window.add("→","人物顺序调整")
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ○ キーヘルプを設定 2
  171.   #--------------------------------------------------------------------------
  172.   def set_keyhelp2
  173.     @bottomkeyhelp_window.clear
  174.     @bottomkeyhelp_window.add("←,B","返回")
  175.     @bottomkeyhelp_window.add("C","第一个人物确定")
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ○ キーヘルプを設定 3
  179.   #--------------------------------------------------------------------------
  180.   def set_keyhelp3
  181.     @bottomkeyhelp_window.clear
  182.     @bottomkeyhelp_window.add("B","返回")
  183.     @bottomkeyhelp_window.add("C","第二个人物确定")
  184.   end
  185. end



  186. #==============================================================================
  187. # □ Window_BottomKeyHelp
  188. #------------------------------------------------------------------------------
  189. #     画面下で操作説明をする透明なウィンドウです。
  190. #==============================================================================
  191. class Window_BottomKeyHelp < Window_Base
  192.   #--------------------------------------------------------------------------
  193.   # ○ オブジェクト初期化
  194.   #--------------------------------------------------------------------------
  195.   def initialize
  196.     super(0, 432, 640, 64)
  197.     self.contents = Bitmap.new(width - 32, height - 32)
  198.     self.opacity = 0
  199.     clear
  200.   end
  201.   #--------------------------------------------------------------------------
  202.   # ○ クリア
  203.   #--------------------------------------------------------------------------
  204.   def clear
  205.     self.contents.clear
  206.     @now_x = 608
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ○ 追加
  210.   #--------------------------------------------------------------------------
  211.   def add(key, explanation)
  212.     # 計算
  213.     self.contents.font.size = 20
  214.     x  = self.contents.text_size(key).width
  215.     self.contents.font.size = 16
  216.     x += self.contents.text_size(explanation).width + 8
  217.     @now_x -= x
  218.     # 描写
  219.     self.contents.font.size = 20
  220.     self.contents.font.color = system_color
  221.     self.contents.draw_text(@now_x, 0, x, 32, key, 0)
  222.     self.contents.font.size = 16
  223.     self.contents.font.color = normal_color
  224.     self.contents.draw_text(@now_x, 0, x, 32, explanation, 2)
  225.     # 余白
  226.     @now_x -= 32
  227.   end
  228. end

  229. #==============================================================================
  230. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  231. #==============================================================================
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-1 11:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表