查看: 1312|回复: 1

[有事请教] [已经解决] 如何让队长标记"蓝条"=@character.hp_counter

[复制链接]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2023-11-18 11:50:02 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 金芒芒 于 2023-11-18 14:35 编辑

[pre lang="ruby"]#==============================================================================
# ■  RMXP
  #--------------------------------------------------------------------------
  #  作者:刺夜之枪
#==============================================================================
#==============================================================================
# ■ Sprite_Character
#==============================================================================

class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● 参数设置 正太君改
  #--------------------------------------------------------------------------
  # 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
  # 图片放在 Graphics/Pictures/ 文件夹下
  TeamTagFileName = "大脚"#团队组标记文件名
  # 设置显示友军标记的开关号
  TeamTagBar = 10
  
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  #别名hzhj旧初始化使标记初始化
  alias hzhj_old_init_make_tag initialize
  #定义初始化参数
  def initialize(*args)
   #@团队标记精灵= 精灵新建(参数[0])
    @team_tag_sprite = Sprite.new(args[0])
    @tags_sprites = [] #@标记精灵=[]
    #@标记精灵 << @团队标记精灵
    @tags_sprites << @team_tag_sprite
    # @团队标记精灵位图 = RPG::缓存。图片(团队标记文件名)
    @team_tag_sprite.bitmap = RPG::Cache.picture(TeamTagFileName)
    #队旗精灵=精灵.new(参数[0])
    @team_flag_sprite = Sprite.new(args[0])
    # 团队旗帜精灵位图= RPG::缓存。图片("队标")
    @team_flag_sprite.bitmap =  RPG::Cache.picture("蓝条")

   # @team_flag_sprite.bitmap = RPG::Cache.icon(Figter_data::CHARACTER_NAME)
   # if args == [2]RPG::Cache.icon(Figter_data::CHARACTER_NAME[@selected_units[@index]])
   # @team_flag_sprite.bitmap = RPG::Cache.Icons("E_HeavyInfantry")
   # end
   #@标记精灵 << @团队旗帜精灵
    @tags_sprites << @team_flag_sprite
   
    @count = 0 #@计数=0
    @wait_count = 0#@等待计数=0
    #hzhj旧初始化使用标记(*参数)
    hzhj_old_init_make_tag(*args)
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  #别名hzhj旧的布置使标记布置除非$@
  alias hzhj_old_dispose_make_tag dispose unless $@
  def dispose#定义布置
   # @标记精灵。每个{|精灵|精灵.布置}
    @tags_sprites.each{|sprite|sprite.dispose}
    #hzhj旧的布置使用标志
    hzhj_old_dispose_make_tag
  end
  #--------------------------------------------------------------------------
  # ● 获取事件 HP # 正太君改
  #--------------------------------------------------------------------------
  def event_hp#定义事件hp
     return 0 if @character.nil?#如果@角色,则返回0。无
     #如果@角色,则返回0。是a吗?(游戏玩家)
     return 0 if @character.is_a?(Game_Player)
     #返回@角色hp
     return @character.hp
  end

  #--------------------------------------------------------------------------
  # ● 判断是否显示队长旗子
  #--------------------------------------------------------------------------
  def show_team_flag?#是否定义显示队长旗子?
    #如果@角色.是_a?则返回假的?(游戏玩家)
    return false if @character.is_a?(Game_Player)
     #如果@角色.是_a?则返回假的?(EFS英雄)
    return false if @character.is_a?(EFS_Hero)
    #如果$场景可以用的队组 == 无     则返回假的
    return false if $scene.group_lisenter == nil
    #挑选选着=$场景。小组成员。包括?(@角色队组)
    selected = $scene.group_lisenter.include?(@character.group)
   # cp队长=场景。小组[@角色.队组-1].队长
   #cp = $scene.team_groups[@character.group-1].captain
   
    cp = $scene.team_groups[@character.group[4]-1].captain
    if cp == @character #如果队长==@角色
      #返回$游戏开关[TeamTagBar]
       return $game_switches[TeamTagBar]
   else#否则
      return false#返回假的
    end  
   # cp = $scene.team_groups[@character.group-1].captain
   # if cp == @character
   # bitmap = nil
   # @character.id= Figter_data::data_id
   # case @character.id
   # 队长 id 为 2 显示 E_HeavyInfantry
   # when 2 then bitmap = RPG::Cache.Icons("E_HeavyInfantry")
   # end
   # @team_flag_sprite.bitmap = bitmap if bitmap
   # end   
     
end
  
  #--------------------------------------------------------------------------
  # ● 判断是否显示队友标记
  #--------------------------------------------------------------------------
  def show_team_tag?#是否定义显示队友标记?
    #under construct
    #如果@角色.是_a?则返回假的?(游戏玩家)
    return false if @character.is_a?(Game_Player)
    #如果$场景可以用的队组 == 无     则返回假的
    return false if $scene.group_lisenter == nil
    #挑选选着=$场景。小组成员。包括?(@角色队组)
    @selected = $scene.group_lisenter.include?(@character.group)
    cp = $scene.team_groups[@character.group[4]-1].captain
    if cp == @character
   # event_hp = $scene.team_groups[@character.group[1]-1].event_hp
    #如果事件hp>0且@角色.团队==1且@角色已删除
  #  if event_hp > 0 and @character.team == 1 and !@character.removed # and selected
      ##返回$游戏开关[TeamTagBar]
      return $game_switches[TeamTagBar]
    else#否者
      return false#返回假的
    end  
   
  end

  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  #别名hzhj旧更新使标记更新
  alias hzhj_old_update_make_tag update
  def update#定义更新
    hzhj_old_update_make_tag#hzhj旧更新标记
    #如果@角色.is_a?(EFS_Battler)和@角色.is_a?(游戏玩家)
    if !@character.is_a?(EFS_Battler) and !@character.is_a?(Game_Player)
      #@标记精灵。每个{|sprite|sprite.可见=false}
      @tags_sprites.each{|sprite|sprite.visible = false}
    else#否则
      if show_team_flag?#如果展示队旗?
       # @队旗精灵。可见=真
        @team_flag_sprite.visible =  true
      else #否则
        @team_flag_sprite.visible =  false # @队旗精灵。可见=假
      end  
      # 刷新 标记 可见状态
      if show_team_tag?
        # @队旗精灵。可见=真
        @team_tag_sprite.visible =  true

        if @selected#如果@选定
         # @标记精灵。每个do|精灵|
          @tags_sprites.each do |sprite|
            
            
          sprite.ox = sprite.bitmap.width / 2
          sprite.oy = sprite.bitmap.height
          sprite.z = z
         # 精灵.x =   @角色。屏幕_x
           shif = @character.is_cal
          #sprite.x = @character.screen_x
          sprite.x = shif ? 320:@character.screen_x
          #blink_on
         # 函数键=@角色。是使用权限
          shif = @character.is_cal
          #sprite.x = shif ?@character.screen_x : 120+i+160
          if @character.ammo>0#如果@角色。弹药>0
         
          #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60  
         # sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
          sprite.y = shif ? 520 : @character.screen_y-60
          else#否者
         
           #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
          #sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
          sprite.y = shif ? 520 : @character.screen_y-60
          end
          sprite.opacity = 255#精灵不透明度=255
          end#loop
        
        else

        # 刷新坐标
        @tags_sprites.each do |sprite|#@标记精灵。每个do|sprite|
          #sprite.zoom_y = 1
          sprite.ox = sprite.bitmap.width / 2
          sprite.oy = sprite.bitmap.height
          sprite.z = z
          # 精灵.x =   @角色。屏幕_x
       #   sprite.x = shif ?@character.screen_x : 120+screen_x+160
          shif = @character.is_cal
         # if @character.ammo>0
          sprite.x = shif ? 320:@character.screen_x#520 #@character.screen_x
          #blink_on
          # 函数键=@角色。是使用权限
          shif = @character.is_cal
         
          if @character.ammo>0#如果@角色。弹药>0\
           
          #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60
          sprite.y = shif ? 520 : @character.screen_y-60
         # sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
          else#否者
         
          #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
         # sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
          sprite.y = shif ? 510 : @character.screen_y-50
          end
          sprite.opacity = 125#精灵不透明度=125
        end#loop
        
        end #if include
        
      else#否者
        #@标记精灵。每个{|sprite|sprite.可见度=假的}
        @tags_sprites.each{|sprite|sprite.visible = false}
      end
      
    end
   
   
   
  end
  
  
end[/pre]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-11-18 14:36:32 | 显示全部楼层
  1.   def show_hp_bar?#是否显示hp栏?
  2.     #return false if @character.is_a?(EFS_Hero)
  3.    # 如果$场景,则返回假的。efs故事模式
  4.     return false if $scene.efs_story_mode
  5.     #如果事件hp>0&&@角色已删除  &&表示与,意为同时都要满足。&&逻辑运算符,并且是双目运算符
  6.     return false if $scene.group_lisenter == nil
  7.     #挑选选着=$场景。小组成员。包括?(@角色队组)
  8.     selected = $scene.group_lisenter.include?(@character.group)
  9.     cp = $scene.enermy_groups[@character.group[4]-1].captain
  10.    # cp = $scene.team_groups[@character.group[4]-1].captain
  11.     if cp == @character
  12.    # if event_hp > 0 && !@character.removed
  13.       #返回$游戏开关[HPBarSwitchID]||@角色.hp计数器>0
  14.       return $game_switches[HPBarSwitchID] || @character.hp_counter > 0 #) && ! $game_switches[HPBarDOESNOTSwitchID]
  15.     else #否则
  16.       return false#返回假的
  17.     end  
  18.   end
复制代码
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部