| 赞 | 160  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 273 | 
 
| 经验 | 0 | 
 
| 最后登录 | 2025-11-4 | 
 
| 在线时间 | 5459 小时 | 
 
 
 
 
 
Lv5.捕梦者 
	- 梦石
 - 0 
 
        - 星屑
 - 27265 
 
        - 在线时间
 - 5459 小时
 
        - 注册时间
 - 2016-3-8
 
        - 帖子
 - 1685
 
 
 
 | 
	
 本帖最后由 alexncf125 于 2020-8-7 18:49 编辑  
- #==============================================================================
 
 - # F08 - 战斗敌人显示血条 - By芙蕾娅
 
 - #------------------------------------------------------------------------------
 
 - #  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
 
 - #==============================================================================
 
 - module Freya
 
 -   # 隐藏HP的文本
 
 -   HideGaugeText = "Hide_Gauge"
 
 -   # 血条颜色
 
 -   EnemyHPGaugeColor1 = Color.new(64,128,96)
 
 -   EnemyHPGaugeColor2 = Color.new(96,192,160)
 
 - end
 
 - #==============================================================================
 
 - # ■ Sprite_Battler_HP
 
 - #------------------------------------------------------------------------------
 
 - #  显示战斗者的生命在战斗者的精灵下面。
 
 - #==============================================================================
 
 - class Sprite_Battler_HP < Sprite
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(viewport,battler = nil)
 
 -     super(viewport)
 
 -     @battler = battler
 
 -     @last_hp = 0
 
 -     create_bitmap
 
 -     update
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 释放
 
 -   #--------------------------------------------------------------------------
 
 -   def dispose
 
 -     self.bitmap.dispose
 
 -     super
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成位图
 
 -   #--------------------------------------------------------------------------
 
 -   def create_bitmap
 
 -     @last_hp = @battler.hp
 
 -     bw = 96
 
 -     bh = 6
 
 -     self.bitmap = Bitmap.new(bw, bh)
 
 -     self.bitmap.fill_rect(0, 0, bw, bh, Color.new(32,32,64))
 
 -     if Freya::Gauge_Type.nil? or Freya::Gauge_Type == 0
 
 -       hp = ((bw) * @battler.hp_rate).to_i
 
 -       self.bitmap.gradient_fill_rect(0, 0, hp, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
 
 -     elsif Freya::Gauge_Type == 1
 
 -       hp = ((width - 2) * @battler.hp_rate).to_i
 
 -       self.bitmap.gradient_fill_rect(1, 1, hp, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
 
 -     elsif Freya::Gauge_Type == 2
 
 -       hp = ((width) * @battler.hp_rate).to_i
 
 -       self.bitmap.gradient_fill_rect(0, 0, hp / 2, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
 
 -       self.bitmap.gradient_fill_rect(hp / 2, 0, hp / 2, bh, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
 
 -     elsif Freya::Gauge_Type == 3
 
 -       hp = ((width - 2) * @battler.hp_rate).to_i
 
 -       self.bitmap.gradient_fill_rect(1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
 
 -       self.bitmap.gradient_fill_rect((hp / 2) + 1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更新画面
 
 -   #--------------------------------------------------------------------------
 
 -   def update
 
 -     super
 
 -     if @battler && [email protected]?
 
 -       @use_sprite = @battler.use_sprite?
 
 -       if @use_sprite
 
 -         update_origin
 
 -         update_position
 
 -       end
 
 -     else
 
 -       self.bitmap = nil
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 原点の更新
 
 -   #--------------------------------------------------------------------------
 
 -   def update_origin
 
 -     if bitmap
 
 -       self.ox = bitmap.width / 2
 
 -       self.oy = bitmap.height
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 位置の更新
 
 -   #--------------------------------------------------------------------------
 
 -   def update_position
 
 -     self.x = 72
 
 -     self.y = 24 + @battler.index * 24
 
 -     self.z = @battler.screen_z + 10
 
 -     create_bitmap if @last_hp != @battler.hp
 
 -     hide = $data_enemies[@battler.enemy_id].note.include?(Freya::HideGaugeText)
 
 -     if @battler.hp == 0 or hide
 
 -       self.opacity = 0
 
 -     elsif @battler.hp > 0 && !hide
 
 -       self.opacity = 255
 
 -     end
 
 -   end
 
 - end
 
  
- class Sprite_Battler_Name < Sprite
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(viewport,battler = nil)
 
 -     super(viewport)
 
 -     @battler = battler
 
 -     @name = ""
 
 -     create_bitmap
 
 -     update
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 释放
 
 -   #--------------------------------------------------------------------------
 
 -   def dispose
 
 -     self.bitmap.dispose
 
 -     super
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 生成位图
 
 -   #--------------------------------------------------------------------------
 
 -   def create_bitmap
 
 -     @name = @battler.name
 
 -     bw = 120
 
 -     bh = 24
 
 -     self.bitmap = Bitmap.new(bw, bh)
 
 -     self.bitmap.draw_text(0, 0, bw, bh, @name, 0)
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 更新画面
 
 -   #--------------------------------------------------------------------------
 
 -   def update
 
 -     super
 
 -     if @battler && [email protected]?
 
 -       @use_sprite = @battler.use_sprite?
 
 -       if @use_sprite
 
 -         update_origin
 
 -         update_position
 
 -       end
 
 -     else
 
 -       self.bitmap = nil
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 原点の更新
 
 -   #--------------------------------------------------------------------------
 
 -   def update_origin
 
 -     if bitmap
 
 -       self.ox = bitmap.width / 2
 
 -       self.oy = bitmap.height
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 位置の更新
 
 -   #--------------------------------------------------------------------------
 
 -   def update_position
 
 -     self.x = 72
 
 -     self.y = 24 + @battler.index * 24
 
 -     self.z = @battler.screen_z + 10
 
 -     create_bitmap if @last_hp != @battler.hp
 
 -     hide = $data_enemies[@battler.enemy_id].note.include?(Freya::HideGaugeText)
 
 -     if @battler.hp == 0 or hide
 
 -       self.opacity = 0
 
 -     elsif @battler.hp > 0 && !hide
 
 -       self.opacity = 255
 
 -     end
 
 -   end
 
 - end
 
  
- #==============================================================================
 
 - # ■ Sprite_Battler
 
 - #------------------------------------------------------------------------------
 
 - #  显示战斗者的精灵。根据 Game_Battler 类的实例自动变化。
 
 - #==============================================================================
 
 - class Sprite_Battler < Sprite_Base
 
 -   #--------------------------------------------------------------------------
 
 -   # ☆ 初始化对象
 
 -   #--------------------------------------------------------------------------
 
 -   alias initialize_freya_enemy_hp initialize
 
 -   def initialize(viewport, battler = nil)
 
 -     initialize_freya_enemy_hp(viewport, battler)
 
 -     if @battler.is_a?(Game_Enemy)
 
 -       @hp_gauge = Sprite_Battler_HP.new(viewport, battler)
 
 -       @name_gauge = Sprite_Battler_Name.new(viewport, battler)
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ☆ 释放
 
 -   #--------------------------------------------------------------------------
 
 -   alias dispose_freya_enemy_hp dispose
 
 -   def dispose
 
 -     dispose_freya_enemy_hp
 
 -     unless @hp_gauge.nil?
 
 -       @hp_gauge.dispose
 
 -     end
 
 -     unless @name_gauge.nil?
 
 -       @name_gauge.dispose
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ☆ 更新画面
 
 -   #--------------------------------------------------------------------------
 
 -   alias update_freya_enemy_hp update
 
 -   def update
 
 -     update_freya_enemy_hp
 
 -     @hp_gauge.update unless @hp_gauge.nil?
 
 -     @name_gauge.update unless @name_gauge.nil?
 
 -   end
 
 - end
 
  复制代码 |   
 
 
 
 |