| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 1 | 
 
| 经验 | 598 | 
 
| 最后登录 | 2013-5-8 | 
 
| 在线时间 | 0 小时 | 
 
 
 
 
 
Lv1.梦旅人 今、空を見上げ 
	- 梦石
 - 0 
 
        - 星屑
 - 50 
 
        - 在线时间
 - 0 小时
 
        - 注册时间
 - 2007-8-11
 
        - 帖子
 - 2022
 
 
 
 | 
	
那录象下载不了了,其实我也很想拿 
同时显示 HP与 矩形血条 应该不太难.. 
我用RATB试看 
 
 
- #===============================================================
 
 - # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 
 - #=============================================================== 
 
  
 
- # ——————————————————————————————
 
  
- # HP/SP/EXPゲージ表示スクリプト Ver 1.00
 
 - # 配布元・サポートURL
 
 - # http://members.jcom.home.ne.jp/cogwheel/
 
  
- #===============================================================
 
 - # ■ Game_Actor
 
 - #--------------------------------------------------------
 
 - #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors)
 
 - # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。
 
 - #==============================================================
 
  
- class Game_Actor < Game_Battler
 
 -   def now_exp
 
 -     return @exp - @exp_list[@level]
 
 -   end
 
 -   def next_exp
 
 -     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
 
 -   end
 
 - end
 
  
- #==========================================================
 
 - # ■ Window_Base
 
 - #------------------------------------------------------------
 
 - #  ゲーム中のすべてのウィンドウのスーパークラスです。
 
 - #============================================================
 
  
- class Window_Base < Window
 
 -   #--------------------------------------------------------
 
 -   # ● HP ゲージの描画
 
 -   #--------------------------------------------------
 
 -   # オリジナルのHP描画を draw_actor_hp_original と名前変更
 
 -   alias :draw_actor_hp_original :draw_actor_hp
 
 -   def draw_actor_hp(actor, x, y, width = 144)
 
 -     # 変数rateに 現在のHP/MHPを代入
 
 -     if actor.maxhp != 0
 
 -       rate = actor.hp.to_f / actor.maxhp
 
 -     else
 
 -       rate = 0
 
 -     end
 
 -     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
 
 -     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
 
 -     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
 
 -     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
 
 -     # align3:ゲージタイプ 0:左詰め 1:右詰め
 
 -     plus_x = 0
 
 -     rate_x = 0
 
 -     plus_y = 25
 
 -     plus_width = 0
 
 -     rate_width = 100
 
 -     height = 10
 
 -     align1 = 1
 
 -     align2 = 2
 
 -     align3 = 0
 
 -     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
 
 -     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
 
 -     grade1 = 1
 
 -     grade2 = 0
 
 -     # 色設定。color1:外枠,color2:中枠
 
 -     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
 
 -     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
 
 -     color1 = Color.new(0, 0, 0, 192)
 
 -     color2 = Color.new(255, 255, 192, 192)
 
 -     color3 = Color.new(0, 0, 0, 192)
 
 -     color4 = Color.new(64, 0, 0, 192)
 
 -     color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
 
 -     color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
 
 -     # 変数spに描画するゲージの幅を代入
 
 -     if actor.maxhp != 0
 
 -       hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
 
 -     else
 
 -       hp = 0
 
 -     end
 
 -     # ゲージの描画
 
 -     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
 
 -                 width, plus_width + width * rate_width / 100,
 
 -                 height, hp, align1, align2, align3,
 
 -                 color1, color2, color3, color4, color5, color6, grade1, grade2)
 
 -     # オリジナルのHP描画処理を呼び出し
 
 -     draw_actor_hp_original(actor, x, y, width)
 
 -   end
 
 -   #--------------------------------------------------------------
 
 -   # ● SP ゲージの描画
 
 -   #------------------------------------------------------------
 
 -   # オリジナルのSP描画を draw_actor_sp_original と名前変更
 
 -   alias :draw_actor_sp_original :draw_actor_sp
 
 -   def draw_actor_sp(actor, x, y, width = 144)
 
 -     # 変数rateに 現在のSP/MSPを代入
 
 -     if actor.maxsp != 0
 
 -       rate = actor.sp.to_f / actor.maxsp
 
 -     else
 
 -       rate = 1
 
 -     end
 
 -     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
 
 -     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
 
 -     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
 
 -     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
 
 -     # align3:ゲージタイプ 0:左詰め 1:右詰め
 
 -     plus_x = 0
 
 -     rate_x = 0
 
 -     plus_y = 25
 
 -     plus_width = 0
 
 -     rate_width = 100
 
 -     height = 10
 
 -     align1 = 1
 
 -     align2 = 2
 
 -     align3 = 0
 
 -     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
 
 -     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
 
 -     grade1 = 1
 
 -     grade2 = 0
 
 -     # 色設定。color1:外枠,color2:中枠
 
 -     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
 
 -     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
 
 -     color1 = Color.new(0, 0, 0, 192)
 
 -     color2 = Color.new(255, 255, 192, 192)
 
 -     color3 = Color.new(0, 0, 0, 192)
 
 -     color4 = Color.new(0, 64, 0, 192)
 
 -     color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
 
 -     color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
 
 -     # 変数spに描画するゲージの幅を代入
 
 -     if actor.maxsp != 0
 
 -       sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
 
 -     else
 
 -       sp = (width + plus_width) * rate_width / 100
 
 -     end
 
 -     # ゲージの描画
 
 -     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
 
 -                 width, plus_width + width * rate_width / 100,
 
 -                 height, sp, align1, align2, align3,
 
 -                 color1, color2, color3, color4, color5, color6, grade1, grade2)
 
 -     # オリジナルのSP描画処理を呼び出し
 
 -     draw_actor_sp_original(actor, x, y, width)
 
 -   end
 
 -   #--------------------------------------------------------
 
 -   # ● EXP ゲージの描画
 
 -   #----------------------------------------------------------
 
 -   # オリジナルのEXP描画を draw_actor_sp_original と名前変更
 
 -   alias :draw_actor_exp_original :draw_actor_exp
 
 -   def draw_actor_exp(actor, x, y, width = 204)
 
 -     # 変数rateに 現在のexp/nextexpを代入
 
 -     if actor.next_exp != 0
 
 -       rate = actor.now_exp.to_f / actor.next_exp
 
 -     else
 
 -       rate = 1
 
 -     end
 
 -     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
 
 -     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
 
 -     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
 
 -     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
 
 -     # align3:ゲージタイプ 0:左詰め 1:右詰め
 
 -     plus_x = 0
 
 -     rate_x = 0
 
 -     plus_y = 25
 
 -     plus_width = 0
 
 -     rate_width = 100
 
 -     height = 10
 
 -     align1 = 1
 
 -     align2 = 2
 
 -     align3 = 0
 
 -     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
 
 -     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
 
 -     grade1 = 1
 
 -     grade2 = 0
 
 -     # 色設定。color1:外枠,color2:中枠
 
 -     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
 
 -     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
 
 -     color1 = Color.new(0, 0, 0, 192)
 
 -     color2 = Color.new(255, 255, 192, 192)
 
 -     color3 = Color.new(0, 0, 0, 192)
 
 -     color4 = Color.new(64, 0, 0, 192)
 
 -     color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
 
 -     color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
 
 -     # 変数expに描画するゲージの幅を代入
 
 -     if actor.next_exp != 0
 
 -       exp = (width + plus_width) * actor.now_exp * rate_width /
 
 -                                                           100 / actor.next_exp
 
 -     else
 
 -       exp = (width + plus_width) * rate_width / 100
 
 -     end
 
 -     # ゲージの描画
 
 -     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
 
 -                 width, plus_width + width * rate_width / 100,
 
 -                 height, exp, align1, align2, align3,
 
 -                 color1, color2, color3, color4, color5, color6, grade1, grade2)
 
 -     # オリジナルのEXP描画処理を呼び出し
 
 -     draw_actor_exp_original(actor, x, y)
 
 -   end
 
 -   #---------------------------------------------------------
 
 -   # ● ゲージの描画
 
 -   #-----------------------------------------------------
 
 -   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
 
 -                 color1, color2, color3, color4, color5, color6, grade1, grade2)
 
 -     case align1
 
 -     when 1
 
 -       x += (rect_width - width) / 2
 
 -     when 2
 
 -       x += rect_width - width
 
 -     end
 
 -     case align2
 
 -     when 1
 
 -       y -= height / 2
 
 -     when 2
 
 -       y -= height
 
 -     end
 
 -     # 枠描画
 
 -     self.contents.fill_rect(x, y, width, height, color1)
 
 -     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
 
 -     if align3 == 0
 
 -       if grade1 == 2
 
 -         grade1 = 3
 
 -       end
 
 -       if grade2 == 2
 
 -         grade2 = 3
 
 -       end
 
 -     end
 
 -     if (align3 == 1 and grade1 == 0) or grade1 > 0
 
 -       color = color3
 
 -       color3 = color4
 
 -       color4 = color
 
 -     end
 
 -     if (align3 == 1 and grade2 == 0) or grade2 > 0
 
 -       color = color5
 
 -       color5 = color6
 
 -       color6 = color
 
 -     end
 
 -     # 空ゲージの描画
 
 -     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
 
 -                                   color3, color4, grade1)
 
 -     if align3 == 1
 
 -       x += width - gauge
 
 -     end
 
 -     # 実ゲージの描画
 
 -     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
 
 -                                   color5, color6, grade2)
 
 -   end
 
 - end
 
  
- #--------------------------------------------------------------
 
 - #  Bitmapクラスに新たな機能を追加します。
 
 - #===================================================================
 
  
- class Bitmap
 
 -   #------------------------------------------------------------
 
 -   # ● 矩形をグラデーション表示
 
 -   #     color1 : スタートカラー
 
 -   #     color2 : エンドカラー
 
 -   #     align  :  0:横にグラデーション
 
 -   #               1:縦にグラデーション
 
 -   #               2:斜めにグラデーション(激重につき注意)
 
 -   #--------------------------------------------------------
 
 -   def gradation_rect(x, y, width, height, color1, color2, align = 0)
 
 -     if align == 0
 
 -       for i in x...x + width
 
 -         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
 
 -         green = color1.green +
 
 -                 (color2.green - color1.green) * (i - x) / (width - 1)
 
 -         blue  = color1.blue +
 
 -                 (color2.blue - color1.blue) * (i - x) / (width - 1)
 
 -         alpha = color1.alpha +
 
 -                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
 
 -         color = Color.new(red, green, blue, alpha)
 
 -         fill_rect(i, y, 1, height, color)
 
 -       end
 
 -     elsif align == 1
 
 -       for i in y...y + height
 
 -         red   = color1.red +
 
 -                 (color2.red - color1.red) * (i - y) / (height - 1)
 
 -         green = color1.green +
 
 -                 (color2.green - color1.green) * (i - y) / (height - 1)
 
 -         blue  = color1.blue +
 
 -                 (color2.blue - color1.blue) * (i - y) / (height - 1)
 
 -         alpha = color1.alpha +
 
 -                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
 
 -         color = Color.new(red, green, blue, alpha)
 
 -         fill_rect(x, i, width, 1, color)
 
 -       end
 
 -     elsif align == 2
 
 -       for i in x...x + width
 
 -         for j in y...y + height
 
 -           red   = color1.red + (color2.red - color1.red) *
 
 -                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           green = color1.green + (color2.green - color1.green) *
 
 -                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           blue  = color1.blue + (color2.blue - color1.blue) *
 
 -                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           alpha = color1.alpha + (color2.alpha - color1.alpha) *
 
 -                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           color = Color.new(red, green, blue, alpha)
 
 -           set_pixel(i, j, color)
 
 -         end
 
 -       end
 
 -     elsif align == 3
 
 -       for i in x...x + width
 
 -         for j in y...y + height
 
 -           red   = color1.red + (color2.red - color1.red) *
 
 -                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           green = color1.green + (color2.green - color1.green) *
 
 -                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           blue  = color1.blue + (color2.blue - color1.blue) *
 
 -                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           alpha = color1.alpha + (color2.alpha - color1.alpha) *
 
 -                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
 
 -           color = Color.new(red, green, blue, alpha)
 
 -           set_pixel(i, j, color)
 
 -         end
 
 -       end
 
 -     end
 
 -   end
 
 - end
 
  
- #==================================================================
 
 - # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 
 - #================================================================== 
 
 
  复制代码 |   
 
 
 
 |