查看: 2395|回复: 3

[已经解决] 求一个显示敌人血量的脚本

[复制链接]
梦石
0
星屑
50
在线时间
7 小时
注册时间
2014-8-28
回帖
11
发表于 2014-9-20 15:40:29 | 显示全部楼层 |阅读模式

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

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

×
网上好多脚本都不能用,求一个。。。。
梦石
0
星屑
50
在线时间
206 小时
注册时间
2014-2-8
回帖
378
发表于 2014-9-20 18:40:55 | 显示全部楼层
  1. class Window_Help < Window_Base
  2. def set_enemy(actor)
  3. self.contents.clear
  4. draw_actor_name(actor, 4, 0)
  5. draw_actor_state(actor, 140, 0)
  6. carol3_draw_hp_bar(actor, 380, 0)
  7. carol3_draw_sp_bar(actor, 495, 0)
  8. @text = nil
  9. self.visible = true
  10. end
  11. def carol3_draw_hp_bar(actor, x, y, width = 100) #宽度可调
  12. self.contents.font.color = system_color
  13. self.contents.fill_rect(x-1, y+17, width+2,6, Color.new(0, 0, 0, 255))
  14. w = width * actor.hp / actor.maxhp
  15. self.contents.fill_rect(x, y+18, w,1, Color.new(255, 96, 96, 255))
  16. self.contents.fill_rect(x, y+19, w,1, Color.new(255, 0, 0, 255))
  17. self.contents.fill_rect(x, y+20, w,1, Color.new(128, 0, 0, 255))
  18. self.contents.fill_rect(x, y+21, w,1, Color.new(0, 0, 0, 255))
  19. self.contents.draw_text(x,y,128,32,$data_system.words.hp,1)
  20. self.contents.font.color = normal_color
  21. end
  22. def carol3_draw_sp_bar(actor, x, y, width = 100)
  23. self.contents.font.color = system_color
  24. self.contents.fill_rect(x-1, y+17, width+2,6, Color.new(0, 0, 0, 255))
  25. w = width * actor.sp / actor.maxsp
  26. self.contents.fill_rect(x, y+18, w,1, Color.new(128, 255, 255, 255))
  27. self.contents.fill_rect(x, y+19, w,1, Color.new(0, 255, 255, 255))
  28. self.contents.fill_rect(x, y+20, w,1, Color.new(0, 192, 192, 255))
  29. self.contents.fill_rect(x, y+21, w,1, Color.new(0, 128, 128, 255))
  30. self.contents.draw_text(x,y,128,32,$data_system.words.sp,1)
  31. self.contents.font.color = normal_color
  32. end
  33. end
复制代码

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

刚接触RPG的新人们裤艾来这里!在这里能够帮助你们提高自身的能力,让大家来帮助每个人实现自己的创意、构想!
也许你只是正在看RPG教程的新人,或者是正在努力学着制作自己的RPG的制作者,或者是狂热的RPG游戏喜爱者,
但都不重要!
加入我们,我们会帮助你实现梦想,或者帮助你更好的运用RPG并且创造个人的一片天地!周末我们会不定时间开放RM技术讨论活动或者RM经验交流课!
加入我们,我们愿意与你共同创造奇迹,共同进步!
QQ群号:329443038  
或者联系QQ:573932914
我们和你站在同一线!
要求只有:常能上线
我们会用十分的热情接纳你!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2014-8-28
回帖
11
 楼主| 发表于 2014-9-21 11:19:33 | 显示全部楼层
573932914 发表于 2014-9-20 18:40

谢谢!!!!!!!!!!!
回复

使用道具 举报

梦石
0
星屑
431
在线时间
403 小时
注册时间
2014-9-6
回帖
1212
发表于 2014-9-21 11:55:53 | 显示全部楼层
[pre lang="ruby" line="1"]#===============================================================
# 本脚本来自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,使用和转载请保留此信息
#==================================================================[/pre]


這是我從6R主站上搞來的,效果似乎和囧魂如出一轍哦!

点评

而且好像也能顯示敵人血量什麼的。但沒有精確數字。  发表于 2014-9-21 21:26
似乎如果顯示敵人血量就不好玩了哦!  发表于 2014-9-21 21:05
你那個是角色顯示HP/SP/EXP條吧= =  发表于 2014-9-21 13:38
大家好,我今年24岁,是学生
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部