设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 670|回复: 0
打印 上一主题 下一主题

[已经过期] [XAS]想改XAS显示敌方生命值的脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1388
在线时间
343 小时
注册时间
2016-7-17
帖子
132
跳转到指定楼层
1
发表于 2021-2-5 02:18:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,想改成每个敌方被打到就显示生命值在怪的头上,然后一次能显示多个HP条,有没有大佬提供下思路。
RUBY 代码复制
  1. #==============================================================================
  2. # ■ +++ MOG - XAS ENEMY HP METER VX (v1.0) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com[/url]
  6. #==============================================================================
  7. # Translated by Calvin624                                                      #
  8. # [url]http://www.xasabs.wordpress.com[/url]                                              #
  9. #==============================================================================#
  10. ###############################-DESCRIPTION-####################################
  11. #==============================================================================#
  12. # 当你攻击敌人时,显示敌人HP和名字的数据窗口                                     #
  13. #                                                                              #
  14. #==============================================================================#
  15. #   
  16. #==============================================================================#       
  17. # To change the appearance of the meter in preparation for a boss fight        #
  18. # you must first pull up a SCRIPT command window and complete the following:   #
  19. #                                                                              #
  20. # BOSS名字显示:                                                                #
  21. # $game_temp.enemy_name = "Name"                                               #
  22. #                                                                              #
  23. # HP显示:                                                                #
  24. # $game_temp.enemy_maxhp = X                                                   #
  25. # $game_temp.enemy_hp = X                                                      #
  26. #                                                                              #
  27. # HUD的位置显示:                                                         #
  28. # $xas_enemy_boss_wind_x = X                                                   #
  29. # $xas_enemy_boss_wind_y = X                                                   #
  30. #==============================================================================#
  31. # Once you've done that simply turn on the Boss Mode Meter                     #
  32. # using SWITCH 11 (Default).                                                   #
  33. #==============================================================================#
  34. #                                                                              #
  35. # Graphics 需要一些素材:                                                           #
  36. #                                                                              #
  37. # E_HP                                                                         #
  38. # E_HP_BOSS                                                                    #
  39. # E_HP_Number                                                                  #
  40. # E_Layout                                                                     #
  41. # E_Layout_BOSS                                                                #
  42. #                                                                              #
  43. # 素材必须都放置在 Windowskin 文件夹的内部.                                     #
  44. #                                                                              #
  45. #==============================================================================#
  46. # For more information visit: [url]http://xasabs.wordpress.com/enemy-hp/[/url]            #
  47. #==============================================================================#
  48.  
  49. module MOG_XAS_ENEMY_HP
  50.  
  51. # 开关决定是否启用关闭ENEMY HP系统...........................[SWITCH]
  52.   INFO_DISABLE_SWITCH_ID = 9  
  53. # 敌人数据窗口显示停留的时间............................[TIME_SECONDS]
  54.   ENEMY_INFO_FADE_TIME = 2 #(s)
  55. # 底图 Enemy HP (X,Y)...............................[HUD_POSITIONING]
  56.   E_HUD_POS = [0,20]
  57. # 血条 Enemy HP (X,Y)...............................[HUD_POSITIONING]
  58.   E_LAYOUT_POS = [0,0]
  59. # 数字 Enemy HP (X,Y)...............................[HUD_POSITIONING]
  60.   E_NUMBER_POS = [35,20]
  61. # 敌人HP计量表(X,Y)的位置。.......................[HUD_POSITIONING]
  62.   E_METER_POS = [28,16]
  63. # 敌人的名字的位置 (X,Y)...........................  [HUD_POSITIONING]
  64.   E_NAME_POS = [60,-10]
  65. # Z坐标  
  66.   E_WINDOWS_PRIORITY_Z = 160
  67. #==============================================================================#
  68. #.................................[BOSS MODE]..................................#
  69. #==============================================================================#
  70.  
  71. # 开启BOSS模式的开关....................................[SWITCH]
  72.   BOSS_INFO_SWITCH_ID = 11
  73. # BOSS 状态显示的位置 (X,Y).........................[HUD_POSITIONING]
  74.   E_LAYOUT_BOSS_POS = [0,0]
  75. # HP数字的位置 (X,Y).........................[HUD_POSITIONING]
  76.   E_NUMBER_BOSS_POS = [210,22]
  77. # BOSSHO条的位置 (X,Y)..........................[HUD_POSITIONING]
  78.   E_METER_BOSS_POS = [2,18]
  79. # BOSS名称的位置 (X,Y).............................[HUD_POSITIONING]
  80.   E_NAME_BOSS_POS = [70,-10]
  81. # BOSS HP条的移动速度
  82.   E_METER_FLOW_SPEED = 3
  83. end
  84.  
  85. #==============================================================================
  86. # ■ Game_Temp
  87. #==============================================================================
  88. class Game_Temp
  89.   attr_accessor :enemy_hp
  90.   attr_accessor :enemy_maxhp
  91.   attr_accessor :enemy_oldhp
  92.   attr_accessor :enemy_name
  93.   attr_accessor :enemy_hud_x
  94.   attr_accessor :enemy_hud_y
  95.   attr_accessor :enemy_hud_opa
  96.   attr_accessor :enemy_hud_shake
  97.   attr_accessor :enemy_info_ref
  98.   attr_accessor :enemy_refresh_old
  99.   attr_accessor :enemy_number_refresh
  100.   attr_accessor :enemy_hud_need_refresh
  101.  
  102. #--------------------------------------------------------------------------
  103. # ● Initialize
  104. #--------------------------------------------------------------------------
  105. alias enemy_hud_initialize initialize
  106. def initialize
  107.      enemy_hud_initialize  
  108.      @enemy_hp = 0
  109.      @enemy_maxhp = 1
  110.      @enemy_oldhp = 0
  111.      @enemy_name = ""
  112.      @enemy_hud_x = 0
  113.      @enemy_hud_y = 0
  114.      @enemy_hud_opa = 0
  115.      @enemy_hud_shake = 0
  116.      @enemy_refresh_old = false
  117.      @enemy_number_refresh = false
  118.      @enemy_info_ref = 0
  119.      @enemy_hud_need_refresh = false
  120.      $xas_enemy_boss_wind_x = 130
  121.      $xas_enemy_boss_wind_y = 30     
  122. end
  123.  
  124. #--------------------------------------------------------------------------
  125. # ● Enemy Hud Opa
  126. #--------------------------------------------------------------------------
  127. def enemy_hud_opa
  128.    return [[@enemy_hud_opa, 0].max,255].min   
  129. end
  130.  
  131. #--------------------------------------------------------------------------
  132. # ● Enemy Info Ref
  133. #--------------------------------------------------------------------------
  134. def enemy_info_ref
  135.     n = 40 * MOG_XAS_ENEMY_HP::ENEMY_INFO_FADE_TIME
  136.     return [[@enemy_info_ref, 0].max,n].min   
  137. end   
  138.  
  139. #--------------------------------------------------------------------------
  140. # ● Enemy Hud Shake
  141. #--------------------------------------------------------------------------
  142. def enemy_hud_shake
  143.     return [[@enemy_hud_shake, 0].max,30].min   
  144. end  
  145. end
  146.  
  147. #===============================================================================
  148. # ■ XRXS_BattlerAttachment
  149. #==============================================================================
  150. module XRXS_BattlerAttachment
  151.  
  152.   #--------------------------------------------------------------------------
  153.   # ● Action Effect Before
  154.   #--------------------------------------------------------------------------  
  155.   alias x_ehp_shoot_effect_before_damage shoot_effect_before_damage
  156.   def shoot_effect_before_damage(skill, bullet, user)
  157.       check_enemy_hp_before(skill)
  158.       x_ehp_shoot_effect_before_damage(skill, bullet, user)
  159.   end
  160.  
  161.   #--------------------------------------------------------------------------
  162.   # ● Action Effect After
  163.   #--------------------------------------------------------------------------  
  164.   alias x_ehp_shoot_effect_after_damage shoot_effect_after_damage
  165.   def shoot_effect_after_damage(skill, bullet, user)
  166.       check_enemy_hp_after(skill)
  167.       x_ehp_shoot_effect_after_damage(skill, bullet, user)
  168.   end  
  169.  
  170.   #--------------------------------------------------------------------------
  171.   # ● Check Enemy HP before
  172.   #--------------------------------------------------------------------------   
  173.   def check_enemy_hp_before(skill)
  174.       return if self.battler.is_a?(Game_Actor)
  175.       return if self.battler.no_damage_pop
  176.       return if skill.damage.to_mp?
  177.       $game_temp.enemy_oldhp = self.battler.hp
  178.       $game_temp.enemy_refresh_old = true              
  179.       $game_temp.enemy_hp = self.battler.hp
  180.       $game_temp.enemy_maxhp = self.battler.mhp
  181.       $game_temp.enemy_name = $data_enemies[self.battler.enemy_id].name   
  182.   end  
  183.  
  184.   #--------------------------------------------------------------------------
  185.   # ● Check Enemy HP After
  186.   #--------------------------------------------------------------------------   
  187.   def check_enemy_hp_after(skill)
  188.       return if self.battler.is_a?(Game_Actor)
  189.       return if self.battler.no_damage_pop
  190.       return if skill.damage.to_mp?
  191.       $game_temp.enemy_hp = self.battler.hp
  192.       $game_temp.enemy_maxhp = self.battler.mhp
  193.       $game_temp.enemy_name = $data_enemies[self.battler.enemy_id].name
  194.       $game_temp.enemy_hud_shake = 30 if self.battler.damage > 0
  195.       $game_temp.enemy_hud_need_refresh = true      
  196.   end      
  197.  
  198. end  
  199.  
  200.  
  201. #==============================================================================
  202. # ■ Game_Character
  203. #==============================================================================
  204. class Game_Character < Game_CharacterBase
  205.  
  206. #--------------------------------------------------------------------------
  207. # ● Execute States Slip Damage
  208. #--------------------------------------------------------------------------        
  209. alias x_ehp_execute_state_slip_damage execute_state_slip_damage
  210. def execute_state_slip_damage(damage)
  211.      x_ehp_execute_state_slip_damage(damage)
  212.      check_enemy_hp_slip_damage
  213. end
  214.  
  215. #--------------------------------------------------------------------------
  216. # ● Check Enemy HP Slip Damage
  217. #--------------------------------------------------------------------------         
  218. def check_enemy_hp_slip_damage
  219.      return unless $game_switches[MOG_XAS_ENEMY_HP::BOSS_INFO_SWITCH_ID]
  220.      return if self.battler.is_a?(Game_Actor)
  221.      return if self.battler.no_damage_pop   
  222.      $game_temp.enemy_hp = self.battler.hp
  223.      $game_temp.enemy_maxhp = self.battler.mhp
  224.      $game_temp.enemy_name = $data_enemies[self.battler.enemy_id].name
  225.      $game_temp.enemy_hud_shake = 30 if self.battler.damage > 0
  226.      $game_temp.enemy_hud_need_refresh = true            
  227. end  
  228.  
  229. end
  230.  
  231. #==============================================================================
  232. # ■ Enemy_HP_Sprite
  233. #==============================================================================
  234. class Enemy_HP_Sprite   
  235.   include MOG_XAS_ENEMY_HP
  236.  
  237. #--------------------------------------------------------------------------
  238. # ● Initialize
  239. #--------------------------------------------------------------------------
  240. def initialize
  241.       @name = $game_temp.enemy_name
  242.       @hp = $game_temp.enemy_hp
  243.       @maxhp = $game_temp.enemy_maxhp
  244.       @hp_ref = @hp
  245.       @boss_mode = $game_switches[BOSS_INFO_SWITCH_ID]
  246.       @visible_mode = $game_switches[INFO_DISABLE_SWITCH_ID]
  247.       create_layout
  248.       create_hp_number
  249.       create_hp_meter        
  250.       create_name
  251.       hp_flow_update
  252.       e_hud_pos
  253.       e_hud_visible
  254. end
  255.  
  256. #--------------------------------------------------------------------------
  257. # ● Create Layout
  258. #--------------------------------------------------------------------------
  259. def create_layout
  260.     if @boss_mode == true
  261.         @layout_image = Cache.system("XAS_E_Layout_BOSS")
  262.         @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
  263.         @layout_sprite = Sprite.new
  264.         @layout_sprite.bitmap = @layout_bitmap
  265.         @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
  266.         @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
  267.         @layout_sprite.z = 7 + MOG_XAS_ENEMY_HP::E_WINDOWS_PRIORITY_Z
  268.         @layout_sprite.x = E_HUD_POS[0] + $xas_enemy_boss_wind_x
  269.         @layout_sprite.y = E_HUD_POS[1] + $xas_enemy_boss_wind_y      
  270.         @layout_sprite.opacity = $game_temp.enemy_hud_opa           
  271.     else
  272.         @layout_image = Cache.system("XAS_E_Layout")
  273.         @layout_bitmap = Bitmap.new(@layout_image.width,@layout_image.height)
  274.         @layout_sprite = Sprite.new
  275.         @layout_sprite.bitmap = @layout_bitmap
  276.         @layout_src_rect_back = Rect.new(0, 0,@layout_image.width, @layout_image.height)
  277.         @layout_bitmap.blt(0,0, @layout_image, @layout_src_rect_back)      
  278.         @layout_sprite.z = 7 + MOG_XAS_ENEMY_HP::E_WINDOWS_PRIORITY_Z
  279.         @layout_sprite.x = E_HUD_POS[0] + E_LAYOUT_POS[0] + $game_temp.enemy_hud_x
  280.         @layout_sprite.y = E_HUD_POS[1] + E_LAYOUT_POS[1] + $game_temp.enemy_hud_y      
  281.         @layout_sprite.opacity = $game_temp.enemy_hud_opa
  282.     end  
  283. end
  284.  
  285. #--------------------------------------------------------------------------
  286. # ● Create HP Number
  287. #--------------------------------------------------------------------------
  288. def create_hp_number
  289.      @hp_number_image = Cache.system("XAS_E_HP_Number")
  290.      @hp_number_bitmap = Bitmap.new(@hp_number_image.width,@hp_number_image.height)
  291.      @hp_number_sprite = Sprite.new
  292.      @hp_number_sprite.bitmap = @hp_number_bitmap
  293.      @hp_number_sprite.z = 9 + MOG_XAS_ENEMY_HP::E_WINDOWS_PRIORITY_Z
  294.      @hp_number_sprite.x = E_HUD_POS[0] + E_NUMBER_POS[0] + $game_temp.enemy_hud_x
  295.      @hp_number_sprite.y = E_HUD_POS[1] + E_NUMBER_POS[1] + $game_temp.enemy_hud_y
  296.      @hp_number_sprite.opacity = $game_temp.enemy_hud_opa
  297.      @im_cw = @hp_number_image.width / 10
  298.      @im_ch = @hp_number_image.height
  299.      @hp_src_rect = Rect.new(@im_cw,0, @im_cw, @im_ch)
  300.      @hp_number_text = @hp.abs.to_s.split(//)
  301.      for r in 0..@hp_number_text.size - 1         
  302.          @hp_number_abs = @hp_number_text[r].to_i
  303.          @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, 0, @im_cw, @im_ch)
  304.          @hp_number_bitmap.blt(@im_cw *  r, 0, @hp_number_image, @hp_src_rect)        
  305.      end   
  306. end
  307.  
  308. #--------------------------------------------------------------------------
  309. # ● Create HP Meter
  310. #--------------------------------------------------------------------------
  311. def create_hp_meter
  312.      @hp_flow = 0
  313.      @hp_damage_flow = 0   
  314.      if @boss_mode
  315.         @hp_image = Cache.system("XAS_E_HP_BOSS")
  316.         @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
  317.         @hp_range = @hp_image.width / 3
  318.         @hp_width = @hp_range  * @hp / @maxhp
  319.         @hp_height = @hp_image.height / 2
  320.         @hp_width_old = @hp_width
  321.         @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
  322.         @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
  323.         @hp_sprite = Sprite.new
  324.         @hp_sprite.bitmap = @hp_bitmap
  325.         @hp_sprite.z = 8 + MOG_XAS_ENEMY_HP::E_WINDOWS_PRIORITY_Z
  326.         @hp_sprite.x = E_METER_BOSS_POS[0] + $xas_enemy_boss_wind_x
  327.         @hp_sprite.x = E_METER_BOSS_POS[1]+ $xas_enemy_boss_wind_y
  328.         @hp_sprite.opacity = $game_temp.enemy_hud_opa      
  329.       else   
  330.         @hp_image = Cache.system("XAS_E_HP")
  331.         @hp_bitmap = Bitmap.new(@hp_image.width,@hp_image.height)
  332.         @hp_range = @hp_image.width / 3
  333.         @hp_width = @hp_range  * @hp / @maxhp
  334.         @hp_height = @hp_image.height / 2
  335.         @hp_width_old = @hp_width
  336.         @hp_src_rect = Rect.new(@hp_range, 0, @hp_width, @hp_height)
  337.         @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)
  338.         @hp_sprite = Sprite.new
  339.         @hp_sprite.bitmap = @hp_bitmap
  340.         @hp_sprite.z = 8 + MOG_XAS_ENEMY_HP::E_WINDOWS_PRIORITY_Z
  341.         @hp_sprite.x = E_HUD_POS[0] + E_METER_POS[0] + $game_temp.enemy_hud_x
  342.         @hp_sprite.y = E_HUD_POS[1] + E_METER_POS[1] + $game_temp.enemy_hud_y
  343.         @hp_sprite.opacity = $game_temp.enemy_hud_opa
  344.       end      
  345. end
  346.  
  347. #--------------------------------------------------------------------------
  348. # ● Create Name
  349. #--------------------------------------------------------------------------
  350. def create_name
  351.       @ename = Sprite.new
  352.       @ename.bitmap = Bitmap.new(160,100)
  353.       @ename.x = E_HUD_POS[0] + E_NAME_POS[0] + $game_temp.enemy_hud_x
  354.       @ename.y = E_HUD_POS[1] + E_NAME_POS[1] + $game_temp.enemy_hud_y
  355.       @ename.opacity = $game_temp.enemy_hud_opa
  356.       @ename.z = 9 + MOG_XAS_ENEMY_HP::E_WINDOWS_PRIORITY_Z
  357.       @ename.bitmap.font.size = 14
  358.       @ename.bitmap.font.bold = true
  359.       @ename.bitmap.font.italic = true
  360.       @ename.bitmap.draw_text(0, 0, 100, 32, @name,0)   
  361. end
  362.  
  363. #--------------------------------------------------------------------------
  364. # ● Dispose
  365. #--------------------------------------------------------------------------
  366.   def dispose
  367.       @hp_number_sprite.bitmap.dispose
  368.       @hp_number_sprite.dispose
  369.       @hp_number_bitmap.dispose
  370.       @hp_sprite.bitmap.dispose
  371.       @hp_sprite.dispose
  372.       @hp_bitmap.dispose
  373.       @ename.bitmap.dispose
  374.       @ename.dispose
  375.       @layout_sprite.bitmap.dispose
  376.       @layout_sprite.dispose
  377.       @layout_bitmap.dispose
  378.       @layout_image.dispose
  379.       @hp_number_image.dispose
  380.       @hp_image.dispose      
  381.   end
  382.  
  383. #--------------------------------------------------------------------------
  384. # ● E Boss Mode Check
  385. #--------------------------------------------------------------------------
  386.   def e_boss_mode_check
  387.       @boss_mode = $game_switches[MOG_XAS_ENEMY_HP::BOSS_INFO_SWITCH_ID]
  388.       dispose         
  389.       create_layout
  390.       create_hp_number
  391.       create_hp_meter        
  392.       create_name
  393.       hp_flow_update   
  394.       hp_number_refresh
  395.       e_hud_pos      
  396.       $game_temp.enemy_hud_opa = 0
  397.       $game_temp.enemy_info_ref = 0
  398.       $game_temp.enemy_hud_x = 0
  399.       $game_temp.enemy_hud_need_refresh = true
  400.   end
  401.  
  402. #--------------------------------------------------------------------------
  403. # ● Update
  404. #--------------------------------------------------------------------------
  405.   def update
  406.      e_hud_visible #if @visible_mode != $game_switches[INFO_DISABLE_SWITCH_ID]
  407.      name_refresh if @name != $game_temp.enemy_name
  408.      hp_number_refresh if $game_temp.enemy_hud_need_refresh
  409.      e_boss_mode_check if @boss_mode != $game_switches[MOG_XAS_ENEMY_HP::BOSS_INFO_SWITCH_ID]
  410.      if $game_temp.enemy_hud_opa <= 0
  411.         @layout_sprite.opacity = $game_temp.enemy_hud_opa
  412.         @ename.opacity = $game_temp.enemy_hud_opa
  413.         @hp_sprite.opacity = $game_temp.enemy_hud_opa
  414.         @hp_number_sprite.opacity = $game_temp.enemy_hud_opa         
  415.         return
  416.      end   
  417.      hp_flow_update
  418.      e_hud_pos
  419.      e_hud_slide     
  420.   end
  421.  
  422. #--------------------------------------------------------------------------
  423. # ● E Hud Visible
  424. #--------------------------------------------------------------------------
  425.   def e_hud_visible
  426.       if $game_message.visible or $game_system.hud_visible == false
  427.          visible = false
  428.       else  
  429.          visible = true
  430.       end  
  431.       @ename.visible = visible
  432.       @hp_sprite.visible = visible
  433.       @hp_number_sprite.visible = visible
  434.       @layout_sprite.visible = visible
  435.   end
  436.  
  437. #--------------------------------------------------------------------------
  438. # ● E Hud Slide
  439. #--------------------------------------------------------------------------
  440.   def e_hud_slide
  441.     $game_temp.enemy_info_ref -= 1
  442.     $game_temp.enemy_hud_shake -= 1
  443.     if $game_temp.enemy_info_ref == 0 and
  444.        $game_switches[MOG_XAS_ENEMY_HP::BOSS_INFO_SWITCH_ID] == false
  445.        $game_temp.enemy_hud_x += 1
  446.        $game_temp.enemy_hud_opa -= 10
  447.     elsif $game_temp.enemy_info_ref > 0 or
  448.        $game_switches[MOG_XAS_ENEMY_HP::BOSS_INFO_SWITCH_ID] == true
  449.        $game_temp.enemy_hud_opa += 10
  450.        $game_temp.enemy_hud_x += 1 if  $game_temp.enemy_hud_x < 0
  451.     end
  452.   end
  453.  
  454. #--------------------------------------------------------------------------
  455. # ● E Hud Pos
  456. #--------------------------------------------------------------------------
  457.   def e_hud_pos
  458.     if $game_switches[MOG_XAS_ENEMY_HP::BOSS_INFO_SWITCH_ID]   
  459.        if $game_temp.enemy_hud_shake > 0
  460.           @layout_sprite.x = E_LAYOUT_BOSS_POS[0] + $xas_enemy_boss_wind_x
  461.           @layout_sprite.y = E_LAYOUT_BOSS_POS[1] + $xas_enemy_boss_wind_y + rand(4)
  462.           @hp_sprite.x = E_METER_BOSS_POS[0] + $xas_enemy_boss_wind_x
  463.           @hp_sprite.y = E_METER_BOSS_POS[1] + $xas_enemy_boss_wind_y + rand(4)
  464.        else
  465.           @layout_sprite.x = E_LAYOUT_BOSS_POS[0] + $xas_enemy_boss_wind_x
  466.           @layout_sprite.y = E_LAYOUT_BOSS_POS[1] + $xas_enemy_boss_wind_y
  467.           @hp_sprite.x = E_METER_BOSS_POS[0] + $xas_enemy_boss_wind_x
  468.           @hp_sprite.y = E_METER_BOSS_POS[1] + $xas_enemy_boss_wind_y
  469.        end
  470.        @hp_number_sprite.x = E_NUMBER_BOSS_POS[0] + $xas_enemy_boss_wind_x
  471.        @hp_number_sprite.y = E_NUMBER_BOSS_POS[1] + $xas_enemy_boss_wind_y
  472.        @ename.x = E_NAME_BOSS_POS[0] + $xas_enemy_boss_wind_x
  473.        @ename.y = E_NAME_BOSS_POS[1] + $xas_enemy_boss_wind_y
  474.     else
  475.        @layout_sprite.x = E_HUD_POS[0] + E_LAYOUT_POS[0] + $game_temp.enemy_hud_x
  476.        @layout_sprite.y = E_HUD_POS[1] + E_LAYOUT_POS[1] + $game_temp.enemy_hud_y
  477.        @hp_number_sprite.x = E_HUD_POS[0] + E_NUMBER_POS[0] + $game_temp.enemy_hud_x
  478.        @hp_number_sprite.y = E_HUD_POS[1] + E_NUMBER_POS[1] + $game_temp.enemy_hud_y
  479.        @hp_sprite.x = E_HUD_POS[0] + E_METER_POS[0] + $game_temp.enemy_hud_x
  480.        @hp_sprite.y = E_HUD_POS[1] + E_METER_POS[1] + $game_temp.enemy_hud_y
  481.        @ename.x = E_HUD_POS[0] + E_NAME_POS[0] + $game_temp.enemy_hud_x
  482.        @ename.y = E_HUD_POS[1] + E_NAME_POS[1] + $game_temp.enemy_hud_y
  483.     end
  484.     @layout_sprite.opacity = $game_temp.enemy_hud_opa
  485.     @ename.opacity = $game_temp.enemy_hud_opa
  486.     @hp_sprite.opacity = $game_temp.enemy_hud_opa
  487.     @hp_number_sprite.opacity = $game_temp.enemy_hud_opa
  488.   end  
  489.  
  490. #--------------------------------------------------------------------------
  491. # ● Name Refresh
  492. #--------------------------------------------------------------------------
  493.   def name_refresh
  494.       @ename.bitmap.clear
  495.       @name = $game_temp.enemy_name
  496.       @ename.bitmap.draw_text(0, 0, 100, 32, @name)
  497.   end
  498.  
  499. #--------------------------------------------------------------------------
  500. # ● HP Number Refresh
  501. #--------------------------------------------------------------------------
  502.   def hp_number_refresh      
  503.       if $game_temp.enemy_hud_need_refresh
  504.          $game_temp.enemy_hud_need_refresh = false
  505.          $game_temp.enemy_hud_opa = 255
  506.       end
  507.       if $game_temp.enemy_hud_opa < 100
  508.          $game_temp.enemy_hud_x = -20
  509.       else
  510.          $game_temp.enemy_hud_x = 0
  511.       end
  512.       $game_temp.enemy_info_ref = 40 * ENEMY_INFO_FADE_TIME
  513.       @hp_number_sprite.bitmap.clear
  514.       if @hp > $game_temp.enemy_hp
  515.          $game_temp.enemy_hud_shake = 30
  516.       end
  517.       @hp = $game_temp.enemy_hp
  518.       @maxhp = $game_temp.enemy_maxhp      
  519.       @hp_number_text = @hp.abs.to_s.split(//)
  520.       for r in 0..@hp_number_text.size - 1         
  521.          @hp_number_abs = @hp_number_text[r].to_i
  522.          @hp_src_rect = Rect.new(@im_cw * @hp_number_abs, 0, @im_cw, @im_ch)
  523.          @hp_number_bitmap.blt(@im_cw *  r , 0, @hp_number_image, @hp_src_rect)        
  524.        end  
  525.   end   
  526.  
  527. #--------------------------------------------------------------------------
  528. # ● HP Old
  529. #--------------------------------------------------------------------------
  530.   def hp_old
  531.       @hp_width_old = @hp_range  * $game_temp.enemy_oldhp / $game_temp.enemy_maxhp
  532.       $game_temp.enemy_refresh_old = false
  533.   end
  534.  
  535. #--------------------------------------------------------------------------
  536. # ● HP Flow Update
  537. #--------------------------------------------------------------------------
  538.   def hp_flow_update
  539.       @hp_sprite.bitmap.clear
  540.       @hp_width = @hp_range  * $game_temp.enemy_hp / $game_temp.enemy_maxhp
  541.       hp_old if $game_temp.enemy_refresh_old == true
  542.       #HP Damage---------------------------------
  543.           if @hp_width_old != @hp_width
  544.              valor = (@hp_width_old - @hp_width) * 3 / 100
  545.              valor = 0.2 if valor < 1
  546.           @hp_width_old -= valor if @hp_width_old > @hp_width  
  547.             if @hp_width_old < @hp_width
  548.                @hp_width_old = @hp_width
  549.             end      
  550.           @hp_src_rect_old = Rect.new(@hp_flow, @hp_height,@hp_width_old, @hp_height)
  551.           @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect_old)      
  552.           end        
  553.       #HP Real------------------------------------
  554.       @hp_src_rect = Rect.new(@hp_flow, 0,@hp_width, @hp_height)
  555.       @hp_bitmap.blt(0,0, @hp_image, @hp_src_rect)         
  556.       @hp_flow += E_METER_FLOW_SPEED
  557.       if @hp_flow >= @hp_image.width - @hp_range
  558.          @hp_flow = 0  
  559.       end
  560.     end   
  561.  
  562. end  
  563.  
  564. #==============================================================================
  565. # ■ Spriteset_Map
  566. #==============================================================================
  567. class Spriteset_Map
  568.  
  569.   #--------------------------------------------------------------------------
  570.   # ● initialize  
  571.   #--------------------------------------------------------------------------
  572.   alias xas_enemyhp_initialize initialize
  573.   def initialize  
  574.       @enemy_hp = Enemy_HP_Sprite.new
  575.       xas_enemyhp_initialize
  576.   end
  577.  
  578.   #--------------------------------------------------------------------------
  579.   # ● Dispose
  580.   #--------------------------------------------------------------------------
  581.   alias xas_enemyhp_dispose dispose
  582.   def dispose   
  583.       @enemy_hp.dispose
  584.       xas_enemyhp_dispose
  585.   end
  586.  
  587.   #--------------------------------------------------------------------------
  588.   # ● update   
  589.   #--------------------------------------------------------------------------
  590.   alias xas_enemyhp_update update
  591.   def update   
  592.       @enemy_hp.update
  593.       xas_enemyhp_update
  594.   end
  595.  
  596. end   
  597.  
  598. $mog_rgss3_xas_enemy_hp = true
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-29 17:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表