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

Project1

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

[已经解决] 如何在战斗中给敌人加血槽?急.

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2012-4-28
帖子
12
跳转到指定楼层
1
发表于 2012-10-20 19:08:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小驴生制作组 于 2012-10-26 14:35 编辑

rmva,急求(无任何要求,本人小白,脚本放在哪里我都不知道!)
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

2
发表于 2012-10-21 08:05:29 | 只看该作者
本帖最后由 hcm 于 2012-10-21 08:08 编辑

地球村发的脚本合集http://rpg.blue/thread-225130-1-1.html
有的,但敌人血条仅在攻击时出现。
或者
RUBY 代码复制
  1. #==============================================================================
  2. # 功能:战斗中显示敌人血和蓝于敌人脚下
  3. # 适用:RMVX Ace
  4. # 作者:殇殃 2012.3.10
  5. # 使用方法:复制整个脚本插入到Main之前
  6. # 注意:由于血条是显示在敌人脚下,所以敌群的位置不能太靠底部,不然会被挡住。
  7. # 可以自行更改坐标修改显示位置、血条的颜色等。
  8. #==============================================================================
  9. # ■ Window_Base
  10. #------------------------------------------------------------------------------
  11. #  游戏中全部窗口的超级类。
  12. #==============================================================================
  13.  
  14. class Window_Base < Window
  15. #--------------------------------------------------------------------------
  16. # ● 描绘敌人HP
  17. #--------------------------------------------------------------------------
  18. def draw_enemy_hp(enemy, x, y, width = 80)
  19. draw_gauge(x, y, width, enemy.hp_rate, hp_gauge_color1, hp_gauge_color2)
  20. self.contents.font.color = system_color
  21. self.contents.draw_text(x, y, 30, line_height, Vocab::hp_a)
  22. self.contents.font.color = hp_color(enemy)
  23. self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.hp, 2)
  24. #一个数字占16像素
  25. end
  26. #--------------------------------------------------------------------------
  27. # ● 绘制敌人MP
  28. #--------------------------------------------------------------------------
  29. def draw_enemy_mp(enemy, x, y, width = 80)
  30. draw_gauge(x, y, width, enemy.mp_rate, mp_gauge_color1, mp_gauge_color2)
  31. self.contents.font.color = system_color
  32. self.contents.draw_text(x, y, 30, line_height, Vocab::mp_a)
  33. self.contents.font.color = mp_color(enemy)
  34. self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.mp, 2)
  35. end
  36. end
  37. #==============================================================================
  38. # ■ Sprite_Battler
  39. #------------------------------------------------------------------------------
  40. #  战斗显示用活动块。Game_Battler 类的实例监视、
  41. # 活动块的状态的监视、活动块状态自动变化。
  42. #==============================================================================
  43.  
  44. class Sprite_Battler < Sprite_Base
  45. #--------------------------------------------------------------------------
  46. # ● 初始化对象
  47. # viewport : 视区
  48. # battler : 战斗者 (Game_Battler)
  49. #--------------------------------------------------------------------------
  50. def initialize(viewport, battler = nil)
  51. super(viewport)
  52. @battler = battler
  53. @battler_visible = false
  54. @effect_type = nil
  55. @effect_duration = 0
  56. if @battler.is_a?(Game_Enemy)
  57. width = 24 + 80 #边距12*2+血条的长度(在draw_enemy_hp中定义)
  58. height = 24 + 24*2 #边距12*2+line_height*2
  59. x = @battler.screen_x - width/2 #screen_x是怪物图片水平方向上的中点位置
  60. y = @battler.screen_y - 12 #边距12,显示HP/MP的窗口无边框
  61. @enemy_hpmp_window = Window_Base.new(x, y, width, height)
  62. @enemy_hpmp_window.opacity = 0
  63. @enemy_hpmp_window.contents = Bitmap.new(width - 24, height - 24)#位图比窗口小24像素取消边框
  64. @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 0)
  65. @old_hp = -1
  66. @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 24)
  67. @old_mp = -1
  68. end
  69. end
  70. #--------------------------------------------------------------------------
  71. # ● 释放
  72. #--------------------------------------------------------------------------
  73. def dispose
  74. if self.bitmap != nil
  75. self.bitmap.dispose
  76. @enemy_hpmp_window.dispose
  77. end
  78. super
  79. end
  80. #--------------------------------------------------------------------------
  81. # ● 更新画面
  82. #--------------------------------------------------------------------------
  83. def update
  84. super
  85. if @battler == nil
  86. self.bitmap = nil
  87. else
  88. @use_sprite = @battler.use_sprite?
  89. if @use_sprite
  90. update_bitmap
  91. update_origin
  92. update_position
  93. end
  94. setup_new_effect
  95. setup_new_animation
  96. update_effect
  97. if @enemy_hpmp_window != nil and (@old_hp != @battler.hp or @old_mp != @battler.mp)
  98. if @battler.hp == 0
  99. @enemy_hpmp_window.hide
  100. else
  101. @enemy_hpmp_window.contents.clear
  102. @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 0)
  103. @old_hp = @battler.hp
  104. @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 24)
  105. @old_mp = @battler.mp
  106. @enemy_hpmp_window.show #怪物死后再被复活
  107. end #if battler.hp == 0
  108. end
  109. end #if @battler == nil
  110. end
  111.  
  112. end

或者http://rpg.blue/forum.php?m ... DQ2fDIzMTQyMQ%3D%3D
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
599
在线时间
333 小时
注册时间
2011-11-19
帖子
194
3
发表于 2012-10-21 11:26:47 | 只看该作者
本帖最后由 q854240045 于 2012-10-21 13:02 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Combo Count (v1.2) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com/[/url]
  6. #==============================================================================
  7. # Apresenta a quantidade de acertos no alvo e o dano maximo.
  8. #==============================================================================
  9. # É necessário ter os arquivos imagens na pasta Graphics/Systems.
  10. # Combo_Damage.png
  11. # Combo_Hud.png
  12. # Combo_Number.png
  13. #==============================================================================
  14.  
  15. #==============================================================================
  16. # ● Histórico (Version History)
  17. #==============================================================================
  18. # v 1.2 - Corrigido o erro de crash randômico. (relativo a dispose de imagem.)
  19. # v 1.1 - Opção de definir a prioridade da Hud.
  20. #==============================================================================
  21. module MOG_COMBO_COUNT
  22.   #Ativar tempo para fazer combo.
  23.   TIME_COUNT = true
  24.   # Tempo para fazer um combo. (60 = 1s)
  25.   COMBO_TIME = 120
  26.   # Cancelar a contagem de Combo caso o inimigo acertar o herói.
  27.   ENEMY_CANCEL_COMBO = true
  28.   # Posição geral das imagens. X Y
  29.   COMBO_POSITION = [10,90]
  30.   # Posição do número de HITS. X Y
  31.   HIT_POSITION = [55,20]
  32.   # Posição do número de dano. X Y
  33.   TOTAL_POSITION = [100,-20]
  34.   # Prioridade da HUD
  35.   HUD_Z = 1
  36. end
  37.  
  38. #===============================================================================
  39. # ■ Game_Temp
  40. #===============================================================================
  41. class Game_Temp
  42.    attr_accessor :combo_hit
  43.    attr_accessor :max_damage   
  44.    attr_accessor :combo_time  
  45.   #--------------------------------------------------------------------------
  46.   # ● initialize
  47.   #--------------------------------------------------------------------------   
  48.    alias mog_combo_display_initialize initialize
  49.    def initialize
  50.        @combo_hit = 0
  51.        @max_damage = 0  
  52.        @combo_time = 0   
  53.        mog_combo_display_initialize
  54.    end
  55. end
  56.  
  57. #===============================================================================
  58. # ■ Game_Battler
  59. #===============================================================================
  60. class Game_Battler
  61.  
  62.   #--------------------------------------------------------------------------
  63.   # ● Item Apply
  64.   #--------------------------------------------------------------------------      
  65.   alias mog_combo_display_item_apply item_apply
  66.   def item_apply(user, item)
  67.       mog_combo_display_item_apply(user, item)
  68.       unless @result.hit?
  69.          $game_temp.combo_time = 0
  70.       end  
  71.   end  
  72.  
  73.   #--------------------------------------------------------------------------
  74.   # ● execute_damage
  75.   #--------------------------------------------------------------------------     
  76.   alias mog_combo_display_execute_damage execute_damage
  77.   def execute_damage(user)
  78.       mog_combo_display_execute_damage(user)
  79.       if @result.hp_damage > 0   
  80.           if user.is_a?(Game_Actor)  
  81.              $game_temp.combo_hit += 1
  82.              $game_temp.max_damage += @result.hp_damage
  83.              $game_temp.combo_time = MOG_COMBO_COUNT::COMBO_TIME
  84.           else
  85.              $game_temp.combo_time = 0 if MOG_COMBO_COUNT::ENEMY_CANCEL_COMBO == true
  86.           end  
  87.       end  
  88.     end
  89. end
  90.  
  91. #===============================================================================
  92. # Scene_Battle
  93. #===============================================================================
  94. class Scene_Battle < Scene_Base
  95.  
  96.   #--------------------------------------------------------------------------
  97.   # ● start
  98.   #--------------------------------------------------------------------------
  99.   alias mog_combo_start start
  100.   def start
  101.       create_cb_sprite
  102.       mog_combo_start
  103.   end
  104.  
  105.   #--------------------------------------------------------------------------
  106.   # ● create_cb_sprite
  107.   #--------------------------------------------------------------------------  
  108.   def create_cb_sprite
  109.       @combo_sprite = Combo_Sprite_Hud.new
  110.   end
  111.  
  112.   #--------------------------------------------------------------------------
  113.   # ● Terminate
  114.   #--------------------------------------------------------------------------  
  115.   alias mog_combo_terminate terminate
  116.   def terminate
  117.       mog_combo_terminate
  118.       @combo_sprite.dispose
  119.   end
  120.  
  121.   #--------------------------------------------------------------------------
  122.   # ● update_basic
  123.   #--------------------------------------------------------------------------
  124.   alias mog_combo_update_basic update_basic
  125.   def update_basic
  126.       mog_combo_update_basic
  127.       update_combo_hit   
  128.   end      
  129.  
  130.   #--------------------------------------------------------------------------
  131.   # ● Update Combo Hit
  132.   #--------------------------------------------------------------------------   
  133.   def update_combo_hit
  134.       @combo_sprite.update
  135.       if (@spriteset.animation? or @spriteset.effect?)
  136.           @combo_sprite.combo_wait = true
  137.       else
  138.           @combo_sprite.combo_wait = false
  139.       end      
  140.   end
  141.  
  142. end  
  143.  
  144. #===============================================================================
  145. # ■ Combo_Sprite_Hud
  146. #===============================================================================
  147. class Combo_Sprite_Hud
  148.    attr_accessor :combo_wait
  149.    include MOG_COMBO_COUNT
  150.  
  151. #--------------------------------------------------------------------------
  152. # ● Initialize
  153. #--------------------------------------------------------------------------
  154.   def initialize
  155.       dispose
  156.       @combo_wait = false
  157.       $game_temp.combo_time = 0
  158.       $game_temp.combo_hit = 0
  159.       $game_temp.max_damage = 0     
  160.       @combo_hit_old = 0
  161.       @animation_speed = 0
  162.       @pos_x = COMBO_POSITION[0]
  163.       @pos_x_fix = 0
  164.       @pos_y = COMBO_POSITION[1]
  165.       create_combo_sprite
  166.       create_total_damage_sprite     
  167.       create_hud_sprite     
  168.    end  
  169.  
  170. #--------------------------------------------------------------------------
  171. # ● create_hud_sprite   
  172. #--------------------------------------------------------------------------
  173. def create_hud_sprite   
  174.      @hud = Sprite.new
  175.      @hud.bitmap = Cache.system("Combo_HUD")
  176.      @hud.z = HUD_Z
  177.      @hud.x = COMBO_POSITION[0]
  178.      @hud.y = COMBO_POSITION[1]
  179.      @hud.opacity = 250
  180.      @hud.visible = false
  181. end
  182.  
  183. #--------------------------------------------------------------------------
  184. # ● create_total_damage_sprite
  185. #--------------------------------------------------------------------------
  186. def create_total_damage_sprite   
  187.      @total_image = Cache.system("Combo_damage")
  188.      @total = Sprite.new
  189.      @total.bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
  190.      @total_im_cw = @total_image.width / 10
  191.      @total_im_ch = @total_image.height     
  192.      @total.z = HUD_Z + 1
  193.      @total_orig_x = COMBO_POSITION[0] + TOTAL_POSITION[0]
  194.      @total_orig_y = COMBO_POSITION[1] + TOTAL_POSITION[1]
  195.      @total.x = @total_orig_x
  196.      @total.y = @total_orig_y
  197.      @total.zoom_x = 1.00
  198.      @total.zoom_y = 1.00
  199.      @total.opacity = 250  
  200.      @total.visible = false
  201. end     
  202.  
  203. #--------------------------------------------------------------------------
  204. # ● create_combo_number  
  205. #--------------------------------------------------------------------------
  206. def create_combo_sprite
  207.      @combo_image = Cache.system("Combo_Number")
  208.      @combo = Sprite.new
  209.      @combo.bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
  210.      @combo_im_cw = @combo_image.width / 10
  211.      @combo_im_ch = @combo_image.height     
  212.      @combo.z = HUD_Z + 2
  213.      @combo_orig_x = COMBO_POSITION[0] + HIT_POSITION[0]
  214.      @combo_orig_y = COMBO_POSITION[1] + HIT_POSITION[1]
  215.      @combo.zoom_x = 1.00
  216.      @combo.zoom_y = 1.00
  217.      @combo.opacity = 250
  218.      @combo.visible = false
  219. end  
  220.  
  221. #--------------------------------------------------------------------------
  222. # ● Dispose
  223. #--------------------------------------------------------------------------
  224.    def dispose
  225.        return if @hud == nil
  226.        @hud.bitmap.dispose
  227.        @hud.dispose
  228.        @hud = nil
  229.        @combo_image.dispose
  230.        @combo.bitmap.dispose
  231.        @combo.dispose
  232.        @total_image.dispose      
  233.        @total.bitmap.dispose
  234.        @total.dispose
  235.    end
  236.  
  237. #--------------------------------------------------------------------------
  238. # ● Refresh
  239. #--------------------------------------------------------------------------
  240.    def refresh
  241.      @combo_hit_old = $game_temp.combo_hit
  242.      @combo.bitmap.clear
  243.      @total.bitmap.clear
  244.      @combo_number_text = $game_temp.combo_hit.abs.to_s.split(//)
  245.      for r in [email]0..@combo_number_text.size[/email] - 1
  246.        @combo_number_abs = @combo_number_text[r].to_i
  247.        @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
  248.        @combo.bitmap.blt(@combo_im_cw *  r, 0, @combo_image, @combo_src_rect)        
  249.      end            
  250.      @total_number_text = $game_temp.max_damage.abs.to_s.split(//)
  251.      for r in [email]0..@total_number_text.size[/email] - 1
  252.        @total_number_abs = @total_number_text[r].to_i
  253.        @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
  254.        @total.bitmap.blt(@total_im_cw *  r, 20, @total_image, @total_src_rect)        
  255.      end
  256.        #Combo Position
  257.        @pos_x_fix = (@combo_im_cw / 2 * @combo_number_text.size)
  258.        @combo.x = @combo_orig_x - @pos_x_fix
  259.        @combo.y = @combo_orig_y
  260.        @combo.zoom_x = 2
  261.        @combo.zoom_y = 2
  262.        @combo.opacity = 70
  263.        @combo.visible = true
  264.        #Total Position      
  265.        @total.x = @total_orig_x + 20
  266.        @total.y = @total_orig_y     
  267.        @total.opacity = 100
  268.        @total.visible = true            
  269.        #Hud Position
  270.        @hud.x = COMBO_POSITION[0]
  271.        @hud.y = COMBO_POSITION[1]
  272.        @hud.opacity = 255
  273.        @hud.visible = true
  274. end   
  275.  
  276. #--------------------------------------------------------------------------
  277. # ● Slide Update
  278. #--------------------------------------------------------------------------
  279.   def slide_update
  280.     return if !@combo.visible
  281.     if $game_temp.combo_time > 0 and @combo_wait == false
  282.        $game_temp.combo_time -= 1 if TIME_COUNT == true
  283.     end
  284.     if $game_temp.combo_time > 0 and $game_temp.combo_hit > 0   
  285.          #Total Damage
  286.          if @total.x > @total_orig_x
  287.             @total.x -= 1
  288.             @total.opacity += 8
  289.          else   
  290.             @total.x = @total_orig_x
  291.             @total.opacity = 255
  292.          end  
  293.          #Combo
  294.          if @combo.zoom_x > 1.00
  295.             @combo.zoom_x -= 0.05
  296.             @combo.zoom_y -= 0.05      
  297.             @combo.opacity += 8
  298.          else
  299.             @combo.zoom_x = 1
  300.             @combo.zoom_y = 1
  301.             @combo.opacity = 255
  302.             @combo.x = @combo_orig_x - @pos_x_fix
  303.             @combo.y = @combo_orig_y
  304.          end           
  305.      elsif $game_temp.combo_time == 0 and @combo.visible
  306.            @combo.x -= 5
  307.            @combo.opacity -= 10
  308.            @total.x -= 3
  309.            @total.opacity -= 10
  310.            @hud.x += 5
  311.            @hud.opacity -= 10     
  312.            $game_temp.combo_hit = 0
  313.            @combo_hit_old = $game_temp.combo_hit
  314.            $game_temp.max_damage = 0
  315.            if @combo.opacity <= 0
  316.               @combo.visible = false
  317.               @total.visible = false
  318.               @hud.visible = false
  319.            end  
  320.      end   
  321.   end
  322.  
  323. #--------------------------------------------------------------------------
  324. # ● Cancel
  325. #--------------------------------------------------------------------------   
  326.   def cancel
  327.       $game_temp.combo_hit = 0
  328.       $game_temp.max_damage = 0
  329.       $game_temp.combo_time = 0      
  330.       @combo_hit_old = $game_temp.combo_hit
  331.   end  
  332.  
  333. #--------------------------------------------------------------------------
  334. # ● Clear
  335. #--------------------------------------------------------------------------     
  336.   def clear
  337.       $game_temp.combo_time = 0
  338.   end      
  339.  
  340. #--------------------------------------------------------------------------
  341. # ● Update
  342. #--------------------------------------------------------------------------
  343.   def update
  344.       return if @hud == nil
  345.       refresh if $game_temp.combo_hit != @combo_hit_old
  346.       slide_update
  347.   end   
  348. end
  349.  
  350. $mog_rgss3_combo_count = true





















and























RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Enemy HP Meter  (v1.1) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # [url]http://www.atelier-rgss.com/[/url]
  6. #==============================================================================
  7. # Apresenta um medidor animado com o HP do inimigo.
  8. #==============================================================================
  9. # Para ocultar o HP do inimigo use a TAG abaixo na caixa de notas.
  10. #
  11. # <Hide HP>
  12. #
  13. #==============================================================================
  14. # Serão necessários as imagens.
  15. #
  16. # Battle_Enemy_HP_Layout.png
  17. # Battle_Enemy_HP_Meter.png
  18. #
  19. #
  20. #==============================================================================
  21.  
  22. #==============================================================================
  23. # ● Histórico (Version History)
  24. #==============================================================================
  25. # v 1.1 - Corrigido o erro de crash randômico. (relativo a dispose de imagem.)
  26. #==============================================================================
  27.  
  28. module MOG_ENEMY_HP
  29.    #Posição geral do medidor em relação ao battler.
  30.    POSITION_CORRECTION = [0,0]
  31.    #Posição do medidor de HP.
  32.    HP_METER_POSITION = [2,4]
  33.    #Prioridade do medidor na tela.
  34.    PRIORITY_Z = 101   
  35. end
  36.  
  37. #==============================================================================
  38. # ■ Game Enemy
  39. #==============================================================================
  40. class Game_Enemy < Game_Battler
  41.  
  42.   attr_accessor :hp_meter_active               
  43.  
  44.   #--------------------------------------------------------------------------
  45.   # ● Initialize
  46.   #--------------------------------------------------------------------------
  47.   alias mog_enemy_hp_initialize initialize
  48.   def initialize(index, enemy_id)
  49.       mog_enemy_hp_initialize(index, enemy_id)
  50.       hide = enemy.note =~ /<Hide HP>/i ? true : false
  51.       @hp_meter_active = [false,hide]
  52.   end  
  53.  
  54. end
  55.  
  56. #==============================================================================
  57. # ■ Game_Battler
  58. #==============================================================================
  59. class Game_Battler < Game_BattlerBase
  60.  
  61.   #--------------------------------------------------------------------------
  62.   # ● Item Apply
  63.   #--------------------------------------------------------------------------  
  64.    alias mog_enemy_hp_item_apply item_apply
  65.    def item_apply(user, item)
  66.        mog_enemy_hp_item_apply(user, item)
  67.        if self.is_a?(Game_Enemy)
  68.           self.hp_meter_active[0] = true if @result.hp_damage != 0
  69.        end
  70.    end
  71.  
  72.   #--------------------------------------------------------------------------
  73.   # ● Regenerate HP
  74.   #--------------------------------------------------------------------------
  75.   alias mog_enemy_hp_regenerate_hp regenerate_hp
  76.   def regenerate_hp
  77.       mog_enemy_hp_regenerate_hp
  78.       if self.is_a?(Game_Enemy)
  79.          self.hp_meter_active[0] = true if @result.hp_damage != 0      
  80.       end         
  81.   end
  82.  
  83. end
  84.  
  85.  
  86. #==============================================================================
  87. # ■ Battle_Hud
  88. #==============================================================================
  89. class Enemy_HP
  90.   include MOG_ENEMY_HP
  91.  
  92.   #--------------------------------------------------------------------------
  93.   # ● Initialize
  94.   #--------------------------------------------------------------------------   
  95.   def initialize(viewport = nil,enemy)
  96.       dispose
  97.       @enemy = enemy
  98.       @fade_time = -1
  99.       create_layout   
  100.       create_hp_meter      
  101.       b_pos = [enemy.screen_x - (@layout.width / 2) + POSITION_CORRECTION[0], enemy.screen_y + POSITION_CORRECTION[1] - (@layout.height / 2)]
  102.       @layout.opacity = 0
  103.       @org_pos1 = [b_pos[0],b_pos[1]]
  104.       @layout.x = @org_pos1[0]
  105.       @layout.y = @org_pos1[1]
  106.       @layout.visible = false
  107.       @hp_meter.opacity = 0
  108.       @hp_meter.visible = false
  109.       @org_pos2 = [b_pos[0] + HP_METER_POSITION[0], b_pos[1] + HP_METER_POSITION[1]]
  110.       @hp_meter.x = @org_pos2[0]
  111.       @hp_meter.y = @org_pos2[1]
  112.       @hp_meter.viewport = viewport
  113.       @hp_meter.z = PRIORITY_Z
  114.       @layout.viewport = viewport
  115.       @layout.z = PRIORITY_Z
  116.       @enemy.hp_meter_active[0] = false
  117.       @hide = @enemy.hp_meter_active[1]
  118.   end
  119.  
  120.   #--------------------------------------------------------------------------
  121.   # ● Create HP Meter
  122.   #--------------------------------------------------------------------------        
  123.   def create_layout
  124.       @layout = Sprite.new
  125.       @layout.bitmap = Cache.system("Battle_Enemy_HP_Layout")
  126.   end
  127.  
  128.   #--------------------------------------------------------------------------
  129.   # ● Create HP Meter
  130.   #--------------------------------------------------------------------------      
  131.   def create_hp_meter
  132.       @meter_image = Cache.system("Battle_Enemy_HP_Meter")
  133.       @meter_cw = @meter_image.width
  134.       @meter_ch = @meter_image.height / 2      
  135.       @hp_meter = Sprite.new
  136.       @hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  137.       @hp_width_old = @meter_cw * @enemy.hp / @enemy.mhp
  138.     end  
  139.  
  140.   #--------------------------------------------------------------------------
  141.   # ● Hp Flow Update
  142.   #--------------------------------------------------------------------------
  143.   def update_hp_flow
  144.       return if !@layout.visible     
  145.       hp_width = @meter_cw * @enemy.hp / @enemy.mhp
  146.       @hp_meter.bitmap.clear      
  147.       execute_damage_flow(hp_width)
  148.       hp_src_rect = Rect.new(0, 0,hp_width, @meter_ch)
  149.       @hp_meter.bitmap.blt(0,0, @meter_image, hp_src_rect)
  150.   end
  151.  
  152.   #--------------------------------------------------------------------------
  153.   # ● Execute Damage Flow
  154.   #--------------------------------------------------------------------------
  155.   def execute_damage_flow(hp_width)
  156.       n = (@hp_width_old - hp_width).abs * 3 / 100
  157.       damage_flow = [[n, 2].min,0.5].max
  158.       @hp_width_old -= damage_flow
  159.       if @hp_width_old <= hp_width
  160.          @hp_width_old = hp_width
  161.       end   
  162.       src_rect_old = Rect.new(0,@meter_ch,@hp_width_old, @meter_ch)
  163.       @hp_meter.bitmap.blt(0,0, @meter_image, src_rect_old)      
  164.   end   
  165.  
  166.   #--------------------------------------------------------------------------
  167.   # ● Dispose
  168.   #--------------------------------------------------------------------------      
  169.   def dispose
  170.       return if @meter_image == nil
  171.       @layout.bitmap.dispose
  172.       @layout.dispose
  173.       @hp_meter.bitmap.dispose
  174.       @hp_meter.dispose
  175.       @meter_image.dispose
  176.       @meter_image = nil
  177.   end
  178.  
  179.   #--------------------------------------------------------------------------
  180.   # ● Update
  181.   #--------------------------------------------------------------------------      
  182.   def update
  183.       return if @meter_image == nil
  184.       return if @hide
  185.       update_fade   
  186.       update_visible
  187.       update_hp_flow
  188.       refresh if @enemy.hp_meter_active[0]
  189.   end  
  190.  
  191.   #--------------------------------------------------------------------------
  192.   # ● Update Fade
  193.   #--------------------------------------------------------------------------        
  194.   def update_fade
  195.       @fade_time -= 1 if @fade_time > 0
  196.       return if @fade_time != 0
  197.       @layout.opacity -= 10
  198.       @hp_meter.opacity -= 10
  199.       @layout.x += 1
  200.       @hp_meter.x += 1
  201.       @fade_time = -1 if @layout.opacity == 0
  202.   end  
  203.  
  204.   #--------------------------------------------------------------------------
  205.   # ● Update Visible
  206.   #--------------------------------------------------------------------------        
  207.   def update_visible
  208.       return if !@layout.visible
  209.       vis = can_visible?
  210.       @layout.visible = vis
  211.       @hp_meter.visible = vis
  212.   end
  213.  
  214.   #--------------------------------------------------------------------------
  215.   # ● Refresh
  216.   #--------------------------------------------------------------------------         
  217.   def refresh     
  218.       @enemy.hp_meter_active[0] = false
  219.       @layout.opacity = 255
  220.       @hp_meter.opacity = 255   
  221.       @layout.visible = true
  222.       @hp_meter.visible = true
  223.       @fade_time = 60
  224.       @layout.x = @org_pos1[0]
  225.       @layout.y = @org_pos1[1]
  226.       @hp_meter.x = @org_pos2[0]
  227.       @hp_meter.y = @org_pos2[1]      
  228.       hp_width = @meter_cw * @enemy.hp / @enemy.mhp
  229.       @hp_width_old = hp_width if @hp_width_old < hp_width
  230.       update_hp_flow
  231.   end
  232.  
  233.   #--------------------------------------------------------------------------
  234.   # ● Can Visible?
  235.   #--------------------------------------------------------------------------         
  236.   def can_visible?
  237.       return false if @layout.opacity == 0      
  238.       return true
  239.   end
  240.  
  241. end
  242.  
  243. #==============================================================================
  244. # ■ Spriteset Battle
  245. #==============================================================================
  246. class Spriteset_Battle
  247.  
  248.   #--------------------------------------------------------------------------
  249.   # ● Initialize
  250.   #--------------------------------------------------------------------------  
  251.   alias mog_enemy_hp_initialize initialize
  252.   def initialize
  253.       mog_enemy_hp_initialize
  254.       create_enemy_hp      
  255.   end
  256.  
  257.   #--------------------------------------------------------------------------
  258.   # ● Create Battle Hud
  259.   #--------------------------------------------------------------------------   
  260.   def create_enemy_hp
  261.       dispose_enemy_hp
  262.       @enemy_hp = []      
  263.       for i in $game_troop.members
  264.           @enemy_hp.push(Enemy_HP.new(@viewport1,i))
  265.       end
  266.   end
  267.  
  268.   #--------------------------------------------------------------------------
  269.   # ● Dispose
  270.   #--------------------------------------------------------------------------      
  271.   alias mog_enemy_hp_dispose dispose
  272.   def dispose
  273.       mog_enemy_hp_dispose
  274.       dispose_enemy_hp
  275.   end  
  276.  
  277.   #--------------------------------------------------------------------------
  278.   # ● Dispose Enemy HP
  279.   #--------------------------------------------------------------------------        
  280.   def dispose_enemy_hp
  281.       return if @enemy_hp == nil
  282.       @enemy_hp.each {|sprite| sprite.dispose }
  283.       @enemy_hp.clear
  284.       @enemy_hp = nil
  285.   end
  286.  
  287.   #--------------------------------------------------------------------------
  288.   # ● Update
  289.   #--------------------------------------------------------------------------        
  290.   alias mog_enemy_hp_update update
  291.   def update
  292.       mog_enemy_hp_update
  293.       update_enemy_hp
  294.   end
  295.  
  296.   #--------------------------------------------------------------------------
  297.   # ● Update Enemy HP
  298.   #--------------------------------------------------------------------------         
  299.   def update_enemy_hp
  300.       return if @enemy_hp == nil
  301.       @enemy_hp.each {|sprite| sprite.update }
  302.   end  
  303. end
  304.  
  305. $mog_rgss3_enemy_hp_meter = true





按F11
左侧栏右键插入两个,分别复制粘贴












VA超级正合脚本里的,第一个是连击统计,第二个是动态血槽,配合在一起挺好用的!���
支持《彼岸之光》系列!加油!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
46 小时
注册时间
2012-4-28
帖子
12
4
 楼主| 发表于 2012-10-26 14:34:33 | 只看该作者
不好使。。。。。。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
52 小时
注册时间
2014-1-4
帖子
134
5
发表于 2014-2-7 15:15:27 | 只看该作者
您看看这个脚本适合不适合您。
地址:http://rpg.blue/thread-344203-1-1.html
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 05:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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