Project1

标题: 求显示敌人血量脚本 [打印本页]

作者: 144138182    时间: 2014-2-3 09:51
标题: 求显示敌人血量脚本
求显示敌人血量脚本,每次看都没有敌人血量条,怎样添加呢?

捕获.PNG (421.19 KB, 下载次数: 45)

捕获.PNG

作者: taroxd    时间: 2014-2-3 10:57
本帖最后由 taroxd 于 2014-2-3 10:59 编辑

我知道论坛里一定有制作精良的……不过我懒得找了。

我自己写过一个超简易的,要的就拿去吧
http://rpg.blue/thread-344203-1-1.html  6L
作者: 黑崎一护    时间: 2014-2-3 10:58
本帖最后由 黑崎一护 于 2014-2-3 11:02 编辑

还是用芙蕾雅大大的脚本吧~ = =

实际效果~



颜色什么的自己尝试修改吧~我也不会~ = =

先插入这个脚本~
  1. #==============================================================================
  2. # F01 - 细节美化 - By芙蕾娅
  3. #------------------------------------------------------------------------------
  4. #  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
  5. #==============================================================================
  6. module Freya
  7.   # 值槽的种类
  8.   # 0 = 默认
  9.   # 1 = 描绘边框
  10.   # 2 = 渐变
  11.   # 3 = 描绘边框 + 渐变
  12.   Gauge_Type = 3
  13. end
  14. #==============================================================================
  15. # ■ Window_Base
  16. #------------------------------------------------------------------------------
  17. #  游戏中所有窗口的父类
  18. #==============================================================================
  19. class Window_Base < Window
  20.   #--------------------------------------------------------------------------
  21.   # ☆ 放大字体尺寸
  22.   #    放大字体尺寸从8更改为4
  23.   #--------------------------------------------------------------------------
  24.   def make_font_bigger
  25.     contents.font.size += 4 if contents.font.size <= 64
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ☆ 缩小字体尺寸
  29.   #    缩小字体尺寸从8更改为4
  30.   #--------------------------------------------------------------------------
  31.   def make_font_smaller
  32.     contents.font.size -= 4 if contents.font.size >= 16
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ☆ 绘制值槽
  36.   #     rate   : 比率(1.0 为满值)
  37.   #     color1 : 渐变色的左端
  38.   #     color2 : 渐变色的右端
  39.   #    增加了绘制种类
  40.   #--------------------------------------------------------------------------
  41.   def draw_gauge(x, y, width, rate, color1, color2)
  42.     if Freya::Gauge_Type == 0
  43.       fill_w = (width * rate).to_i
  44.       gauge_y = y + line_height - 8
  45.       contents.fill_rect(x, gauge_y, width, 6, gauge_back_color)
  46.       contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2)
  47.     elsif Freya::Gauge_Type == 1
  48.       fill_w = ((width - 2) * rate).to_i
  49.       gauge_y = y + line_height - 8
  50.       contents.fill_rect(x, gauge_y, width, 6, gauge_back_color)
  51.       contents.gradient_fill_rect(x + 1, gauge_y + 1, fill_w, 4, color1, color2)
  52.     elsif Freya::Gauge_Type == 2
  53.       fill_w = ((width) * rate).to_i
  54.       gauge_y = y + line_height - 8
  55.       contents.fill_rect(x, gauge_y, width, 6, gauge_back_color)
  56.       contents.gradient_fill_rect(x, gauge_y, fill_w / 2, 6, color1, color2)
  57.       contents.gradient_fill_rect(x + fill_w / 2, gauge_y, fill_w / 2, 6, color2, color1)
  58.     elsif Freya::Gauge_Type == 3
  59.       fill_w = ((width - 2) * rate).to_i
  60.       gauge_y = y + line_height - 8
  61.       contents.fill_rect(x, gauge_y, width, 6, gauge_back_color)
  62.       contents.gradient_fill_rect(x + 1, gauge_y + 1, fill_w / 2, 4, color1, color2)
  63.       contents.gradient_fill_rect(x + 1 + fill_w / 2, gauge_y + 1, fill_w / 2, 4, color2, color1)
  64.     end
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ☆ 以 当前值/最大值 这样的分数形式绘制当前值和最大值
  68.   #     current : 当前值
  69.   #     max     : 最大值
  70.   #     color1  : 当前值的颜色
  71.   #     color2  : 最大值的颜色
  72.   #    稍微缩小字体大小,移动一些坐标
  73.   #--------------------------------------------------------------------------
  74.   def draw_current_and_max_values(x, y, width, current, max, color1, color2)
  75.     change_color(color1)
  76.     xr = x + width
  77.     contents.font.size = 15
  78.     if width < 96
  79.       draw_text(xr - 40, y, 42, line_height, current, 2)
  80.     else
  81.       draw_text(xr - 92, y, 42, line_height, current, 2)
  82.       change_color(color2)
  83.       draw_text(xr - 52, y, 12, line_height, "/", 2)
  84.       draw_text(xr - 42, y, 42, line_height, max, 2)
  85.     end
  86.     contents.font.size = Font.default_size
  87.   end
  88. end
复制代码
再把这个脚本插在下面~ = =
  1. #==============================================================================
  2. # F08 - 战斗敌人显示血条 - By芙蕾娅
  3. #------------------------------------------------------------------------------
  4. #  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
  5. #==============================================================================
  6. module Freya
  7.   # 隐藏HP的文本
  8.   HideGaugeText = "Hide_Gauge"
  9.   # 血条颜色
  10.   EnemyHPGaugeColor1 = Color.new(64,128,96)
  11.   EnemyHPGaugeColor2 = Color.new(96,192,160)
  12. end
  13. #==============================================================================
  14. # ■ Sprite_Battler_HP
  15. #------------------------------------------------------------------------------
  16. #  显示战斗者的生命在战斗者的精灵下面。
  17. #==============================================================================
  18. class Sprite_Battler_HP < Sprite
  19.   #--------------------------------------------------------------------------
  20.   # ● 初始化对象
  21.   #--------------------------------------------------------------------------
  22.   def initialize(viewport,battler)
  23.     super(viewport)
  24.     [url=home.php?mod=space&uid=133701]@battler[/url] = battler
  25.     @last_hp = 0
  26.     create_bitmap
  27.     update
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 释放
  31.   #--------------------------------------------------------------------------
  32.   def dispose
  33.     self.bitmap.dispose
  34.     super
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 生成位图
  38.   #--------------------------------------------------------------------------
  39.   def create_bitmap
  40.     @last_hp = @battler.hp
  41.     bw = 96
  42.     bh = 6
  43.     self.bitmap = Bitmap.new(bw, bh)
  44.     self.bitmap.fill_rect(0, 0, bw, bh, Color.new(32,32,64))
  45.     if Freya::Gauge_Type.nil? or Freya::Gauge_Type == 0
  46.       hp = ((bw) * @battler.hp_rate).to_i
  47.       self.bitmap.gradient_fill_rect(0, 0, hp, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  48.     elsif Freya::Gauge_Type == 1
  49.       hp = ((width - 2) * @battler.hp_rate).to_i
  50.       self.bitmap.gradient_fill_rect(1, 1, hp, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  51.     elsif Freya::Gauge_Type == 2
  52.       hp = ((width) * @battler.hp_rate).to_i
  53.       self.bitmap.gradient_fill_rect(0, 0, hp / 2, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  54.       self.bitmap.gradient_fill_rect(hp / 2, 0, hp / 2, bh, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
  55.     elsif Freya::Gauge_Type == 3
  56.       hp = ((width - 2) * @battler.hp_rate).to_i
  57.       self.bitmap.gradient_fill_rect(1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  58.       self.bitmap.gradient_fill_rect((hp / 2) + 1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
  59.     end
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 更新画面
  63.   #--------------------------------------------------------------------------
  64.   def update
  65.     super
  66.     unless self.bitmap.nil?
  67.       self.x = @battler.screen_x - self.width / 2
  68.       self.y = @battler.screen_y
  69.       create_bitmap if @last_hp != @battler.hp
  70.       hide = $data_enemies[@battler.enemy_id].note.include?(Freya::HideGaugeText)
  71.       if @battler.hp == 0 or hide
  72.         self.opacity = 0
  73.       elsif @battler.hp > 0 && !hide
  74.         self.opacity = 255
  75.       end
  76.     end
  77.   end
  78. end

  79. #==============================================================================
  80. # ■ Sprite_Battler
  81. #------------------------------------------------------------------------------
  82. #  显示战斗者的精灵。根据 Game_Battler 类的实例自动变化。
  83. #==============================================================================
  84. class Sprite_Battler < Sprite_Base
  85.   #--------------------------------------------------------------------------
  86.   # ☆ 初始化对象
  87.   #--------------------------------------------------------------------------
  88.   alias initialize_freya_enemy_hp initialize
  89.   def initialize(viewport, battler = nil)
  90.     initialize_freya_enemy_hp(viewport, battler)
  91.     if @battler.is_a?(Game_Enemy)
  92.       @hp_gauge = Sprite_Battler_HP.new(viewport, battler)
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ☆ 释放
  97.   #--------------------------------------------------------------------------
  98.   alias dispose_freya_enemy_hp dispose
  99.   def dispose
  100.     dispose_freya_enemy_hp
  101.     unless @hp_gauge.nil?
  102.       @hp_gauge.dispose
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ☆ 更新画面
  107.   #--------------------------------------------------------------------------
  108.   alias update_freya_enemy_hp update
  109.   def update
  110.     update_freya_enemy_hp
  111.     @hp_gauge.update unless @hp_gauge.nil?
  112.   end
  113. end
复制代码
这样子应该就可以了~ = =
作者: 144138182    时间: 2014-2-3 13:53
本帖最后由 144138182 于 2014-2-3 13:54 编辑

不能用啊!第24、40行有问题!

捕获.PNG (18.61 KB, 下载次数: 38)

捕获.PNG





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1