Project1

标题: [已经解决] 如何让队长标记"蓝条"[email protected]_counter [打印本页]

作者: 金芒芒    时间: 2023-11-18 11:50
标题: [已经解决] 如何让队长标记"蓝条"[email protected]_counter
本帖最后由 金芒芒 于 2023-11-18 14:35 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■  RMXP
  3.   #--------------------------------------------------------------------------
  4.   #  作者:刺夜之枪
  5. #==============================================================================
  6. #==============================================================================
  7. # ■ Sprite_Character
  8. #==============================================================================
  9.  
  10. class Sprite_Character < RPG::Sprite
  11.   #--------------------------------------------------------------------------
  12.   # ● 参数设置 正太君改
  13.   #--------------------------------------------------------------------------
  14.   # 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
  15.   # 图片放在 Graphics/Pictures/ 文件夹下
  16.   TeamTagFileName = "大脚"#团队组标记文件名
  17.   # 设置显示友军标记的开关号
  18.   TeamTagBar = 10
  19.  
  20.   #--------------------------------------------------------------------------
  21.   # ● 初始化对像
  22.   #--------------------------------------------------------------------------
  23.   #别名hzhj旧初始化使标记初始化
  24.   alias hzhj_old_init_make_tag initialize
  25.   #定义初始化参数
  26.   def initialize(*args)
  27.    #@团队标记精灵= 精灵新建(参数[0])
  28.     @team_tag_sprite = Sprite.new(args[0])
  29.     @tags_sprites = [] #@标记精灵=[]
  30.     #@标记精灵 << @团队标记精灵
  31.     @tags_sprites << @team_tag_sprite
  32.     # @团队标记精灵位图 = RPG::缓存。图片(团队标记文件名)
  33.     @team_tag_sprite.bitmap = RPG::Cache.picture(TeamTagFileName)
  34.     #队旗精灵=精灵.new(参数[0])
  35.     @team_flag_sprite = Sprite.new(args[0])
  36.     # 团队旗帜精灵位图= RPG::缓存。图片("队标")
  37.     @team_flag_sprite.bitmap =  RPG::Cache.picture("蓝条")
  38.  
  39.    # @team_flag_sprite.bitmap = RPG::Cache.icon(Figter_data::CHARACTER_NAME)
  40.    # if args == [2]RPG::Cache.icon(Figter_data::CHARACTER_NAME[@selected_units[@index][i]])
  41.    # @team_flag_sprite.bitmap = RPG::Cache.Icons("E_HeavyInfantry")
  42.    # end
  43.    #@标记精灵 << @团队旗帜精灵
  44.     @tags_sprites << @team_flag_sprite
  45.  
  46.     @count = 0 #@计数=0
  47.     @wait_count = 0#@等待计数=0
  48.     #hzhj旧初始化使用标记(*参数)
  49.     hzhj_old_init_make_tag(*args)
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 释放
  53.   #--------------------------------------------------------------------------
  54.   #别名hzhj旧的布置使标记布置除非$@
  55.   alias hzhj_old_dispose_make_tag dispose unless $@
  56.   def dispose#定义布置
  57.    # @标记精灵。每个{|精灵|精灵.布置}
  58.     @tags_sprites.each{|sprite|sprite.dispose}
  59.     #hzhj旧的布置使用标志
  60.     hzhj_old_dispose_make_tag
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 获取事件 HP # 正太君改
  64.   #--------------------------------------------------------------------------
  65.   def event_hp#定义事件hp
  66.      return 0 if @character.nil?#如果@角色,则返回0。无
  67.      #如果@角色,则返回0。是a吗?(游戏玩家)
  68.      return 0 if @character.is_a?(Game_Player)
  69.      #返回@角色hp
  70.      return @character.hp
  71.   end
  72.  
  73.   #--------------------------------------------------------------------------
  74.   # ● 判断是否显示队长旗子
  75.   #--------------------------------------------------------------------------
  76.   def show_team_flag?#是否定义显示队长旗子?
  77.     #如果@角色.是_a?则返回假的?(游戏玩家)
  78.     return false if @character.is_a?(Game_Player)
  79.      #如果@角色.是_a?则返回假的?(EFS英雄)
  80.     return false if @character.is_a?(EFS_Hero)
  81.     #如果$场景可以用的队组 == 无     则返回假的
  82.     return false if $scene.group_lisenter == nil
  83.     #挑选选着=$场景。小组成员。包括?(@角色队组)
  84.     selected = $scene.group_lisenter.include?(@character.group)
  85.    # cp队长=场景。小组[@角色.队组-1].队长
  86.    #cp = $scene.team_groups[@character.group-1].captain
  87.  
  88.     cp = $scene.team_groups[@character.group[4]-1].captain
  89.     if cp == @character #如果队长==@角色
  90.       #返回$游戏开关[TeamTagBar]
  91.        return $game_switches[TeamTagBar]
  92.    else#否则
  93.       return false#返回假的
  94.     end  
  95.    # cp = $scene.team_groups[@character.group-1].captain
  96.    # if cp == @character
  97.    # bitmap = nil
  98.    # @character.id= Figter_data::data_id
  99.    # case @character.id
  100.    # 队长 id 为 2 显示 E_HeavyInfantry
  101.    # when 2 then bitmap = RPG::Cache.Icons("E_HeavyInfantry")
  102.    # end
  103.    # @team_flag_sprite.bitmap = bitmap if bitmap
  104.    # end   
  105.  
  106. end
  107.  
  108.   #--------------------------------------------------------------------------
  109.   # ● 判断是否显示队友标记
  110.   #--------------------------------------------------------------------------
  111.   def show_team_tag?#是否定义显示队友标记?
  112.     #under construct
  113.     #如果@角色.是_a?则返回假的?(游戏玩家)
  114.     return false if @character.is_a?(Game_Player)
  115.     #如果$场景可以用的队组 == 无     则返回假的
  116.     return false if $scene.group_lisenter == nil
  117.     #挑选选着=$场景。小组成员。包括?(@角色队组)
  118.     @selected = $scene.group_lisenter.include?(@character.group)
  119.     cp = $scene.team_groups[@character.group[4]-1].captain
  120.     if cp == @character
  121.    # event_hp = $scene.team_groups[@character.group[1]-1].event_hp
  122.     #如果事件hp>0且@角色.团队==1且@角色已删除
  123.   #  if event_hp > 0 and @character.team == 1 and [email protected] # and selected
  124.       ##返回$游戏开关[TeamTagBar]
  125.       return $game_switches[TeamTagBar]
  126.     else#否者
  127.       return false#返回假的
  128.     end  
  129.  
  130.   end
  131.  
  132.   #--------------------------------------------------------------------------
  133.   # ● 更新画面
  134.   #--------------------------------------------------------------------------
  135.   #别名hzhj旧更新使标记更新
  136.   alias hzhj_old_update_make_tag update
  137.   def update#定义更新
  138.     hzhj_old_update_make_tag#hzhj旧更新标记
  139.     #如果@角色.is_a?(EFS_Battler)和@角色.is_a?(游戏玩家)
  140.     if !@character.is_a?(EFS_Battler) and !@character.is_a?(Game_Player)
  141.       #@标记精灵。每个{|sprite|sprite.可见=false}
  142.       @tags_sprites.each{|sprite|sprite.visible = false}
  143.     else#否则
  144.       if show_team_flag?#如果展示队旗?
  145.        # @队旗精灵。可见=真
  146.         @team_flag_sprite.visible =  true
  147.       else #否则
  148.         @team_flag_sprite.visible =  false # @队旗精灵。可见=假
  149.       end  
  150.       # 刷新 标记 可见状态
  151.       if show_team_tag?
  152.         # @队旗精灵。可见=真
  153.         @team_tag_sprite.visible =  true
  154.  
  155.         if @selected#如果@选定
  156.          # @标记精灵。每个do|精灵|
  157.           @tags_sprites.each do |sprite|
  158.  
  159.  
  160.           sprite.ox = sprite.bitmap.width / 2
  161.           sprite.oy = sprite.bitmap.height
  162.           sprite.z = z
  163.          # 精灵.x =   @角色。屏幕_x
  164.            shif = @character.is_cal
  165.           #sprite.x = @character.screen_x
  166.           sprite.x = shif ? 320:@character.screen_x
  167.           #blink_on
  168.          # 函数键=@角色。是使用权限
  169.           shif = @character.is_cal
  170.           #sprite.x = shif [email protected]_x : 120+i+160
  171.           if @character.ammo>0#如果@角色。弹药>0
  172.  
  173.           #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60  
  174.          # sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
  175.           sprite.y = shif ? 520 : @character.screen_y-60
  176.           else#否者
  177.  
  178.            #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
  179.           #sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
  180.           sprite.y = shif ? 520 : @character.screen_y-60
  181.           end
  182.           sprite.opacity = 255#精灵不透明度=255
  183.           end#loop
  184.  
  185.         else
  186.  
  187.         # 刷新坐标
  188.         @tags_sprites.each do |sprite|#@标记精灵。每个do|sprite|
  189.           #sprite.zoom_y = 1
  190.           sprite.ox = sprite.bitmap.width / 2
  191.           sprite.oy = sprite.bitmap.height
  192.           sprite.z = z
  193.           # 精灵.x =   @角色。屏幕_x
  194.        #   sprite.x = shif [email protected]_x : 120+screen_x+160
  195.           shif = @character.is_cal
  196.          # if @character.ammo>0
  197.           sprite.x = shif ? 320:@character.screen_x#520 #@character.screen_x
  198.           #blink_on
  199.           # 函数键=@角色。是使用权限
  200.           shif = @character.is_cal
  201.  
  202.           if @character.ammo>0#如果@角色。弹药>0\
  203.  
  204.           #精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60
  205.           sprite.y = shif ? 520 : @character.screen_y-60
  206.          # sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
  207.           else#否者
  208.  
  209.           #精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
  210.          # sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
  211.           sprite.y = shif ? 510 : @character.screen_y-50
  212.           end
  213.           sprite.opacity = 125#精灵不透明度=125
  214.         end#loop
  215.  
  216.         end #if include
  217.  
  218.       else#否者
  219.         #@标记精灵。每个{|sprite|sprite.可见度=假的}
  220.         @tags_sprites.each{|sprite|sprite.visible = false}
  221.       end
  222.  
  223.     end
  224.  
  225.  
  226.  
  227.   end
  228.  
  229.  
  230. end

作者: 金芒芒    时间: 2023-11-18 14:36
  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 && [email protected]
  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
复制代码





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