给一个RPGXP 的血条脚本 谢谢

 我来答
157238349
2012-03-18 · TA获得超过506个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:532万
展开全部
  #===============================================================
  # 本脚本来自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 = -20
  rate_width = 100
  height = 12
  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, 0)
  color2 = Color.new(255, 255, 255, 192)
  color3 = Color.new(0, 0, 0, 96)
  color4 = Color.new(0, 0, 0, 96)
  color5 = Color.new(255, 255, 0, 192)
  color6 = Color.new(255, 0, 0, 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 = -20
  rate_width = 100
  height = 12
  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, 0)
  color2 = Color.new(255, 255, 255, 192)
  color3 = Color.new(0, 0, 0, 96)
  color4 = Color.new(0, 0, 0, 96)
  color5 = Color.new(0, 255, 255, 192)
  color6 = Color.new(0, 0, 255, 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 = 32
  rate_x = 0
  plus_y = 25
  plus_width = -20
  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, 0)
  color2 = Color.new(255, 255, 255, 192)
  color3 = Color.new(0, 0, 0, 96)
  color4 = Color.new(0, 0, 0, 96)
  color5 = Color.new(0, 255, 204, 192)
  color6 = Color.new(0, 255, 0, 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,使用和转载请保留此信息
  #==================================================================
喵了个咪个咪个
2012-03-18 · TA获得超过111个赞
知道答主
回答量:17
采纳率:0%
帮助的人:12万
展开全部
脚本很长的,给你网址吧
http://www.66rpg.com/articles/3062
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式