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

Project1

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

帮改下这个脚本

 关闭 [复制链接]

Lv1.梦旅人

幻想

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-23
帖子
1016
跳转到指定楼层
1
发表于 2008-1-5 10:59:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  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 gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  191.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  192.     case align1
  193.     when 1
  194.       x += (rect_width - width) / 2
  195.     when 2
  196.       x += rect_width - width
  197.     end
  198.     case align2
  199.     when 1
  200.       y -= height / 2
  201.     when 2
  202.       y -= height
  203.     end
  204.     # 枠描画
  205.     self.contents.fill_rect(x, y, width, height, color1)
  206.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  207.     if align3 == 0
  208.       if grade1 == 2
  209.         grade1 = 3
  210.       end
  211.       if grade2 == 2
  212.         grade2 = 3
  213.       end
  214.     end
  215.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  216.       color = color3
  217.       color3 = color4
  218.       color4 = color
  219.     end
  220.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  221.       color = color5
  222.       color5 = color6
  223.       color6 = color
  224.     end
  225.     # 空ゲージの描画
  226.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  227.                                   color3, color4, grade1)
  228.     if align3 == 1
  229.       x += width - gauge
  230.     end
  231.     # 実ゲージの描画
  232.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  233.                                   color5, color6, grade2)
  234.   end
  235. end

  236. #------------------------------------------------------------------------------
  237. #  Bitmapクラスに新たな機能を追加します。
  238. #==============================================================================

  239. class Bitmap
  240.   #--------------------------------------------------------------------------
  241.   # ● 矩形をグラデーション表示
  242.   #     color1 : スタートカラー
  243.   #     color2 : エンドカラー
  244.   #     align  :  0:横にグラデーション
  245.   #               1:縦にグラデーション
  246.   #               2:斜めにグラデーション(激重につき注意)
  247.   #--------------------------------------------------------------------------
  248.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  249.     if align == 0
  250.       for i in x...x + width
  251.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  252.         green = color1.green +
  253.                 (color2.green - color1.green) * (i - x) / (width - 1)
  254.         blue  = color1.blue +
  255.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  256.         alpha = color1.alpha +
  257.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  258.         color = Color.new(red, green, blue, alpha)
  259.         fill_rect(i, y, 1, height, color)
  260.       end
  261.     elsif align == 1
  262.       for i in y...y + height
  263.         red   = color1.red +
  264.                 (color2.red - color1.red) * (i - y) / (height - 1)
  265.         green = color1.green +
  266.                 (color2.green - color1.green) * (i - y) / (height - 1)
  267.         blue  = color1.blue +
  268.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  269.         alpha = color1.alpha +
  270.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  271.         color = Color.new(red, green, blue, alpha)
  272.         fill_rect(x, i, width, 1, color)
  273.       end
  274.     elsif align == 2
  275.       for i in x...x + width
  276.         for j in y...y + height
  277.           red   = color1.red + (color2.red - color1.red) *
  278.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  279.           green = color1.green + (color2.green - color1.green) *
  280.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  281.           blue  = color1.blue + (color2.blue - color1.blue) *
  282.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  283.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  284.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  285.           color = Color.new(red, green, blue, alpha)
  286.           set_pixel(i, j, color)
  287.         end
  288.       end
  289.     elsif align == 3
  290.       for i in x...x + width
  291.         for j in y...y + height
  292.           red   = color1.red + (color2.red - color1.red) *
  293.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  294.           green = color1.green + (color2.green - color1.green) *
  295.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  296.           blue  = color1.blue + (color2.blue - color1.blue) *
  297.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  298.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  299.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  300.           color = Color.new(red, green, blue, alpha)
  301.           set_pixel(i, j, color)
  302.         end
  303.       end
  304.     end
  305.   end
  306. end
复制代码
帮我改成战斗专用的意思就是说只在战斗中见到它~~~其他地方一率不出现
[url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg]http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg[/url][FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png[/url][/FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png[/url]

Lv1.梦旅人

幻想

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-23
帖子
1016
2
 楼主| 发表于 2008-1-5 10:59:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  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 gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  191.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  192.     case align1
  193.     when 1
  194.       x += (rect_width - width) / 2
  195.     when 2
  196.       x += rect_width - width
  197.     end
  198.     case align2
  199.     when 1
  200.       y -= height / 2
  201.     when 2
  202.       y -= height
  203.     end
  204.     # 枠描画
  205.     self.contents.fill_rect(x, y, width, height, color1)
  206.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  207.     if align3 == 0
  208.       if grade1 == 2
  209.         grade1 = 3
  210.       end
  211.       if grade2 == 2
  212.         grade2 = 3
  213.       end
  214.     end
  215.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  216.       color = color3
  217.       color3 = color4
  218.       color4 = color
  219.     end
  220.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  221.       color = color5
  222.       color5 = color6
  223.       color6 = color
  224.     end
  225.     # 空ゲージの描画
  226.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  227.                                   color3, color4, grade1)
  228.     if align3 == 1
  229.       x += width - gauge
  230.     end
  231.     # 実ゲージの描画
  232.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  233.                                   color5, color6, grade2)
  234.   end
  235. end

  236. #------------------------------------------------------------------------------
  237. #  Bitmapクラスに新たな機能を追加します。
  238. #==============================================================================

  239. class Bitmap
  240.   #--------------------------------------------------------------------------
  241.   # ● 矩形をグラデーション表示
  242.   #     color1 : スタートカラー
  243.   #     color2 : エンドカラー
  244.   #     align  :  0:横にグラデーション
  245.   #               1:縦にグラデーション
  246.   #               2:斜めにグラデーション(激重につき注意)
  247.   #--------------------------------------------------------------------------
  248.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  249.     if align == 0
  250.       for i in x...x + width
  251.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  252.         green = color1.green +
  253.                 (color2.green - color1.green) * (i - x) / (width - 1)
  254.         blue  = color1.blue +
  255.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  256.         alpha = color1.alpha +
  257.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  258.         color = Color.new(red, green, blue, alpha)
  259.         fill_rect(i, y, 1, height, color)
  260.       end
  261.     elsif align == 1
  262.       for i in y...y + height
  263.         red   = color1.red +
  264.                 (color2.red - color1.red) * (i - y) / (height - 1)
  265.         green = color1.green +
  266.                 (color2.green - color1.green) * (i - y) / (height - 1)
  267.         blue  = color1.blue +
  268.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  269.         alpha = color1.alpha +
  270.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  271.         color = Color.new(red, green, blue, alpha)
  272.         fill_rect(x, i, width, 1, color)
  273.       end
  274.     elsif align == 2
  275.       for i in x...x + width
  276.         for j in y...y + height
  277.           red   = color1.red + (color2.red - color1.red) *
  278.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  279.           green = color1.green + (color2.green - color1.green) *
  280.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  281.           blue  = color1.blue + (color2.blue - color1.blue) *
  282.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  283.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  284.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  285.           color = Color.new(red, green, blue, alpha)
  286.           set_pixel(i, j, color)
  287.         end
  288.       end
  289.     elsif align == 3
  290.       for i in x...x + width
  291.         for j in y...y + height
  292.           red   = color1.red + (color2.red - color1.red) *
  293.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  294.           green = color1.green + (color2.green - color1.green) *
  295.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  296.           blue  = color1.blue + (color2.blue - color1.blue) *
  297.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  298.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  299.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  300.           color = Color.new(red, green, blue, alpha)
  301.           set_pixel(i, j, color)
  302.         end
  303.       end
  304.     end
  305.   end
  306. end
复制代码
帮我改成战斗专用的意思就是说只在战斗中见到它~~~其他地方一率不出现
[url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg]http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg[/url][FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png[/url][/FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png[/url]

Lv3.寻梦者

永久的旅行者

梦石
1
星屑
110
在线时间
404 小时
注册时间
2006-12-13
帖子
3091

开拓者贵宾第3届短篇游戏大赛主流游戏组季军第5届短篇游戏比赛季军

3
发表于 2008-1-5 12:38:38 | 只看该作者
战斗中才有的HP、SP条,搂主可以直接用下面这个脚本。

这个脚本是从英文网站拿来的(好像是叫清爽血条的单独发行版本
class Window_Base < Window  
  #--------------------------------------------------------------------------
  # * Draw Slant Bar
  #--------------------------------------------------------------------------
  def draw_slant_bar(x, y, min, max, width = 152, height = 6,
      bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
    # Draw Border
    for i in 0..height
      self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
    end
    # Draw Background
    for i in 1..(height - 1)
      r = 100 * (height - i) / height + 0 * i / height
      g = 100 * (height - i) / height + 0 * i / height
      b = 100 * (height - i) / height + 0 * i / height
      a = 255 * (height - i) / height + 255 * i / height
      self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
    end
    # Draws Bar
    for i in 1..( (min / max.to_f) * width - 1)
      for j in 1..(height - 1)
        r = bar_color.red * (width - i) / width + end_color.red * i / width
        g = bar_color.green * (width - i) / width + end_color.green * i / width
        b = bar_color.blue * (width - i) / width + end_color.blue * i / width
        a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
        self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
      end
    end
  end
end


class Window_EnemyHP < Window_Base
  
  def initialize
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    refresh
  end
  
  def refresh
    self.contents.clear
    for i in 0...$game_troop.enemies.size
      @enemy = $game_troop.enemies
      @percent = (@enemy.hp * 100) / @enemy.maxhp
      unless @enemy.hp == 0
      draw_slant_bar(@enemy.screen_x - 55, @enemy.screen_y - 10, @enemy.hp, @enemy.maxhp, width = 75, height = 6, bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
      self.contents.draw_text(@enemy.screen_x - 39, @enemy.screen_y - 22, 100, 32, "#{@percent}" + "%")
    end
  end
end
end

class Scene_Battle
  
  alias raz_update update
  alias raz_update_phase5 update_phase5
  alias raz_update_phase4_step1 update_phase4_step1
  alias raz_update_phase4_step5 update_phase4_step5
  alias raz_enemy_hp_main main
  
   def main
    @troop_id = $game_temp.battle_troop_id
    $game_troop.setup(@troop_id)
    @enemy_window = Window_EnemyHP.new
    @enemy_window.z = 95
    raz_enemy_hp_main
    @enemy_window.dispose
  end

  
  def update
    @enemy_window.update
    raz_update
  end

  def update_phase5
    # If wait count is larger than 0
    if @phase5_wait_count > 0
      # Decrease wait count
      @phase5_wait_count -= 1
      # If wait count reaches 0
      if @phase5_wait_count == 0
        @enemy_window.visible = false
        # Show result window
        @result_window.visible = true
        # Clear main phase flag
        $game_temp.battle_main_phase = false
        # Refresh status window
        @status_window.refresh
        @enemy_window.refresh
      end
      return
    end
   raz_update_phase5
end

def update_phase4_step1
  raz_update_phase4_step1
  @enemy_window.refresh
end

  def update_phase4_step5
    # Hide help window
    @help_window.visible = false
    # Refresh status window
    @status_window.refresh
    @enemy_window.refresh
    raz_update_phase4_step5
  end
end

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 320, 640, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    @level_up_flags = [false, false, false, false]
    refresh
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    super
  end
  #--------------------------------------------------------------------------
  # * Set Level Up Flag
  #     actor_index : actor index
  #--------------------------------------------------------------------------
  def level_up(actor_index)
    @level_up_flags[actor_index] = true
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      actor_x = i * 160 + 4
      draw_slant_bar(actor_x, 55, actor.hp, actor.maxhp, 120)
      draw_slant_bar(actor_x, 88, actor.sp, actor.maxsp, 120, 6, bar_color = Color.new(150, 0, 150, 255), end_color = Color.new(0, 0, 255, 255))
      draw_actor_name(actor, actor_x, 0)
      draw_actor_hp(actor, actor_x, 32, 120)
      draw_actor_sp(actor, actor_x, 64, 120)
      if @level_up_flags
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
      else
        draw_actor_state(actor, actor_x, 96)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # Slightly lower opacity level during main phase
    if $game_temp.battle_main_phase
      self.contents_opacity -= 4 if self.contents_opacity > 191
    else
      self.contents_opacity += 4 if self.contents_opacity < 255
    end
  end
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

幻想

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-23
帖子
1016
4
 楼主| 发表于 2008-1-5 12:43:33 | 只看该作者
呵呵~~蛮漂亮的但是很快就冲突了~~~~~~
[url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg]http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg[/url][FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png[/url][/FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png[/url]
回复 支持 反对

使用道具 举报

Lv3.寻梦者

永久的旅行者

梦石
1
星屑
110
在线时间
404 小时
注册时间
2006-12-13
帖子
3091

开拓者贵宾第3届短篇游戏大赛主流游戏组季军第5届短篇游戏比赛季军

5
发表于 2008-1-5 12:48:59 | 只看该作者
以下引用cZooCz于2008-1-5 4:43:33的发言:

呵呵~~蛮漂亮的但是很快就冲突了~~~~~~

用太多同类脚本的确很容易冲突...
不知道跟那一个脚本发生冲突呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

幻想

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-23
帖子
1016
6
 楼主| 发表于 2008-1-5 12:52:27 | 只看该作者
我用的是   ★RTAB战斗系统  以及和它配套的点我之所以在在战斗中用是这样菜单栏中就没有重复HPSP了
[url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg]http://rpg.blue/upload_program/d/菜鸟飞呀飞_love_111006892.jpg[/url][FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yz_tb_111008420.png[/url][/FLY][url=http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png]http://rpg.blue/upload_program/d/菜鸟飞呀飞_yzs_111008459.png[/url]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
111
在线时间
74 小时
注册时间
2006-5-29
帖子
453
7
发表于 2008-1-5 17:45:23 | 只看该作者
传说中冲突性最高的RTAB系统啊……只发这个脚本怎么够?
最好是发工程,毕竟是新系统,只拆开一个脚本让人看不出所以然来~~

补充:因为RTAB是全新系统,新定义的所以高冲突。相关的脚本最好都用RTAB的,血条别换,除非你自己会写。
【我的百度空间】
 不定时更新绘画或像素图~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-18 22:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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