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

Project1

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

[已经过期] Adjust Limits 请问坐标 怎么修改 HP才能正常显示

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2392
在线时间
912 小时
注册时间
2014-10-14
帖子
1331

开拓者

跳转到指定楼层
1
发表于 2017-6-27 22:24:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 j296196585 于 2017-6-28 14:14 编辑

RUBY 代码复制
  1. 如何才能达到图2HP 血条那种显示
  2. Adjust Limits 这又全是 外语
  3. 走过  路过  大佬不要 错过 请问
  4. 坐标在哪里填
  5.  
  6. 门外汉 不懂( ⊙ o ⊙ )啊!

RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Boss HP Meter (V1.4) +++
  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. #==============================================================================
  10. # UTILIZAÇÃO
  11. #==============================================================================
  12. # Coloque o seguinte comentário na caixa de notas do inimigo.
  13. #
  14. # <Boss HP Meter>
  15. #
  16. # Caso desejar ocultar o valor numérico do HP use o código abaixo.
  17. #
  18. # <Boss HP Hide Number>
  19. #
  20. #==============================================================================
  21. # Caso precisar mudar a posição do medidor no meio do jogo use o código abaixo
  22. #
  23. # boss_hp_position(X,Y)
  24. #
  25. #==============================================================================
  26. # Serão necessários as imagens.
  27. #
  28. # Battle_Boss_Meter.png
  29. # Battle_Boss_Meter_Layout.png
  30. #==============================================================================
  31. # FACES (Opcional)
  32. #==============================================================================
  33. # Nomeie o arquivo da face da seguinte maneira. (Graphics/Faces/)
  34. #
  35. # Enemy_Name + _F.png         (Slime_F.png)
  36. #
  37. #==============================================================================
  38. # Definindo o LEVEL (Opcional)
  39. #==============================================================================
  40. # Coloque o seguinte comentário na caixa de notas do inimigo.
  41. #
  42. # <Level = X>
  43. #
  44. #==============================================================================
  45.  
  46. #==============================================================================
  47. # Histórico
  48. #==============================================================================
  49. # v1.4 - Melhoria de compatibilidade de scripts.
  50. #==============================================================================
  51.  
  52. $imported = {} if $imported.nil?
  53. $imported[:mog_blitz_commands] = true
  54.  
  55. module MOG_BOSS_HP_METER
  56.    #总体布局的位置.
  57.     LAYOUT_POSITION = [325,30]#[60,30]
  58.     #表的位置.
  59.     METER_POSITION = [3,3]
  60.     #位置的敌人的名字.
  61.     NAME_POSITION = [200,8]
  62.     #Posição da face.
  63.     FACE_POSITION = [100,-30]
  64.     #Posição do level do inimigo.水平位置的敌人
  65.     LEVEL_POSITION = [150, -24]#[290, 0]
  66.     #Posição do numero  de HP
  67.     HP_NUMBER_POSITION = [-20, 0]
  68.     #空间的定义HP数值
  69.     HP_STRING_SPACE = -10
  70.     #Ativar efeito wave
  71.     HP_NUMBER_WAVE_EFFECT = true
  72.     #Definição da palavra Level.
  73.     LEVEL_WORD = "LV "
  74.     #动画速度计
  75.     METER_ANIMATION_SPEED = 10   
  76.     #定义的字体大小.
  77.     FONT_SIZE = 18
  78.     #激活的源边界。
  79.     FONT_BOLD = true
  80.     #斜体字体.
  81.     FONT_ITALIC = false#true
  82.     #光源颜色的定义。
  83.     FONT_COLOR = Color.new(255,0,0)
  84.     #优先权的定义 HUD.
  85.     PRIORITY_Z = 50
  86.     end
  87.  
  88. #==============================================================================
  89. # ■ Game System
  90. #==============================================================================
  91. class Game_System
  92.  
  93. attr_accessor :boss_hp_meter
  94.  
  95. #--------------------------------------------------------------------------
  96. # ● Initialize
  97. #--------------------------------------------------------------------------  
  98. alias mog_boss_hp_meter_initialize initialize
  99. def initialize
  100.      ix = MOG_BOSS_HP_METER::LAYOUT_POSITION[0]
  101.      iy = MOG_BOSS_HP_METER::LAYOUT_POSITION[1]
  102.      @boss_hp_meter = [ix,iy,false,"",0,1,0,nil,0,false]
  103.      mog_boss_hp_meter_initialize
  104. end
  105.  
  106. end
  107.  
  108. #==============================================================================
  109. # ■ Game Enemy
  110. #==============================================================================
  111. class Game_Enemy < Game_Battler
  112.  
  113.   attr_accessor :boss_hp_meter
  114.   attr_accessor :boss_hp_number
  115.   attr_accessor :level
  116.  
  117.   #--------------------------------------------------------------------------
  118.   # ● Initialize
  119.   #--------------------------------------------------------------------------
  120.   alias mog_boss_hp_meter_initialize initialize
  121.   def initialize(index, enemy_id)
  122.       mog_boss_hp_meter_initialize(index, enemy_id)
  123.       @boss_hp_meter = enemy.note =~ /<Boss HP Meter>/ ? true : false
  124.       @boss_hp_number = enemy.note =~ /<Boss HP Hide Number>/ ? false : true
  125.       @level = enemy.note =~ /<Level = (\d+)>/i ? $1 : nil
  126.   end  
  127.  
  128. end
  129.  
  130. #==============================================================================
  131. # ■ Game Temp
  132. #==============================================================================
  133. class Game_Temp
  134.  
  135.   attr_accessor :battle_end
  136.  
  137.   #--------------------------------------------------------------------------
  138.   # ● Initialize
  139.   #--------------------------------------------------------------------------  
  140.   alias mog_boss_hp_meter_initialize initialize
  141.   def initialize
  142.       @battle_end = false
  143.       mog_boss_hp_meter_initialize
  144.   end  
  145.  
  146. end
  147.  
  148. #==============================================================================
  149. # ■ Game Interpreter
  150. #==============================================================================
  151. class Game_Interpreter
  152.  
  153. #--------------------------------------------------------------------------
  154. # ● Initialize
  155. #--------------------------------------------------------------------------   
  156. def boss_hp_position(x = 0,y = 0)
  157.      $game_system.boss_hp_meter[0] = x
  158.      $game_system.boss_hp_meter[1] = y
  159. end
  160.  
  161. end
  162.  
  163. #==============================================================================
  164. # ■ Game Temp
  165. #==============================================================================
  166. class Game_Temp
  167.  
  168.   attr_accessor :cache_boss_hp
  169.  
  170. #--------------------------------------------------------------------------
  171. # ● Initialize
  172. #--------------------------------------------------------------------------   
  173.   alias mog_boss_hp_initialize initialize
  174.   def initialize
  175.       mog_boss_hp_initialize
  176.       cache_bosshp
  177.   end
  178.  
  179. #--------------------------------------------------------------------------
  180. # ● Cache Bosshp
  181. #--------------------------------------------------------------------------  
  182.   def cache_bosshp
  183.       @cache_boss_hp = []
  184.       @cache_boss_hp.push(Cache.system("Battle_Boss_Meter_Layout"))
  185.       @cache_boss_hp.push(Cache.system("Battle_Boss_Meter"))
  186.       @cache_boss_hp.push(Cache.system("Battle_Boss_Number"))
  187.   end
  188.  
  189. end
  190.  
  191. #==============================================================================
  192. # ■ Boss HP Meter
  193. #==============================================================================
  194. class Boss_HP_Meter
  195.   include MOG_BOSS_HP_METER
  196.  
  197.   #--------------------------------------------------------------------------
  198.   # ● Initialize
  199.   #--------------------------------------------------------------------------  
  200.   def initialize(viewport = nil)
  201.       clear_enemy_setup
  202.       @hp_vieport = nil
  203.       check_boss_avaliable
  204.   end
  205.  
  206.   #--------------------------------------------------------------------------
  207.   # ● Clear Enemy Setup
  208.   #--------------------------------------------------------------------------   
  209.   def clear_enemy_setup
  210.       @name = ""   
  211.       @hp = 0
  212.       @hp2 = 0
  213.       @hp3 = 0
  214.       @maxhp = 0
  215.       @hp_old = 0
  216.       @level = nil
  217.       $game_system.boss_hp_meter[2] = false
  218.       $game_system.boss_hp_meter[3] = ""
  219.       $game_system.boss_hp_meter[4] = 0
  220.       $game_system.boss_hp_meter[5] = 1
  221.       $game_system.boss_hp_meter[7] = nil
  222.       $game_system.boss_hp_meter[8] = 0
  223.       $game_system.boss_hp_meter[9] = true
  224.   end
  225.  
  226.   #--------------------------------------------------------------------------
  227.   # ● Check Boss Avaliable
  228.   #--------------------------------------------------------------------------   
  229.   def check_boss_avaliable
  230.       return if $game_troop.all_dead?
  231.       for i in $game_troop.members
  232.           if i.boss_hp_meter and !i.hidden? and i.hp > 0
  233.              create_boss_hp_meter(i)
  234.              break
  235.           end
  236.       end
  237.   end
  238.  
  239.   #--------------------------------------------------------------------------
  240.   # ● Create Boss HP Meter
  241.   #--------------------------------------------------------------------------      
  242.   def create_boss_hp_meter(i)
  243.       $game_system.boss_hp_meter[2] = true
  244.       $game_system.boss_hp_meter[3] = i.name
  245.       $game_system.boss_hp_meter[4] = i.hp
  246.       $game_system.boss_hp_meter[5] = i.mhp
  247.       $game_system.boss_hp_meter[6] = i.hp
  248.       $game_system.boss_hp_meter[7] = i.level rescue nil
  249.       $game_system.boss_hp_meter[8] = 0
  250.       $game_system.boss_hp_meter[9] = i.boss_hp_number
  251.       refresh_hp_meter
  252.       create_layout
  253.       create_meter
  254.       create_name
  255.       create_face
  256.       create_level
  257.       create_hp_number
  258.   end
  259.  
  260.   #--------------------------------------------------------------------------
  261.   # ● Create Layout
  262.   #--------------------------------------------------------------------------        
  263.   def create_layout
  264.       return if @layout != nil
  265.       @layout = Sprite.new
  266.       @layout.bitmap = $game_temp.cache_boss_hp[0]
  267.       @layout.x = $game_system.boss_hp_meter[0]
  268.       @layout.y = $game_system.boss_hp_meter[1]
  269.       @layout.viewport = @hp_vieport
  270.       @layout.z = PRIORITY_Z
  271.   end
  272.  
  273.   #--------------------------------------------------------------------------
  274.   # ● Create Meter
  275.   #--------------------------------------------------------------------------         
  276.   def create_meter
  277.       return if @meter_image != nil
  278.       hp_setup
  279.       @meter_image = $game_temp.cache_boss_hp[1]
  280.       @meter_cw = @meter_image.width / 3
  281.       @meter_ch = @meter_image.height / 2
  282.       [url=home.php?mod=space&uid=1330256]@meter[/url] = Sprite.new
  283.       @meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  284.       @meter.z = @layout.z + 1
  285.       @meter.x = @layout.x + METER_POSITION[0]
  286.       @meter.y = @layout.y + METER_POSITION[1]
  287.       @meter.viewport = @hp_vieport
  288.       @hp_flow = 0
  289.       @hp_flow_max = @meter_cw * 2
  290.       update_hp_meter
  291.   end
  292.  
  293.   #--------------------------------------------------------------------------
  294.   # ● Create Name
  295.   #--------------------------------------------------------------------------            
  296.   def create_name
  297.       @name_sprite = Sprite.new
  298.       @name_sprite.bitmap = Bitmap.new(200,32)
  299.       @name_sprite.z = @layout.z + 2
  300.       @name_sprite.x = @layout.x + NAME_POSITION[0]
  301.       @name_sprite.y = @layout.y + NAME_POSITION[1]
  302.       @name_sprite.bitmap.font.size = FONT_SIZE
  303.       @name_sprite.bitmap.font.bold = FONT_BOLD
  304.       @name_sprite.bitmap.font.italic = FONT_ITALIC
  305.       @name_sprite.bitmap.font.color = FONT_COLOR
  306.       @name_sprite.viewport = @hp_vieport
  307.       refresh_name
  308.   end
  309.  
  310.   #--------------------------------------------------------------------------
  311.   # ● Create Face
  312.   #--------------------------------------------------------------------------
  313.   def create_face
  314.       @face_sprite = Sprite.new
  315.       @face_sprite.x = @layout.x + FACE_POSITION[0]
  316.       @face_sprite.y = @layout.y + FACE_POSITION[1]
  317.       @face_sprite.z = @layout.z + 2
  318.       @face_sprite.viewport = @hp_vieport
  319.       refresh_face
  320.   end
  321.  
  322.   #--------------------------------------------------------------------------
  323.   # ● Create Level
  324.   #--------------------------------------------------------------------------  
  325.   def create_level
  326.       @level_sprite = Sprite.new
  327.       @level_sprite.bitmap = Bitmap.new(120,32)
  328.       @level_sprite.z = @layout.z + 2
  329.       @level_sprite.x = @layout.x + LEVEL_POSITION[0]
  330.       @level_sprite.y = @layout.y + LEVEL_POSITION[1]
  331.       @level_sprite.bitmap.font.size = FONT_SIZE
  332.       @level_sprite.bitmap.font.bold = FONT_BOLD
  333.       @level_sprite.bitmap.font.italic = FONT_ITALIC
  334.       @level_sprite.bitmap.font.color = FONT_COLOR
  335.       @level_sprite.viewport = @hp_vieport
  336.       refresh_level
  337.   end
  338.  
  339.   #--------------------------------------------------------------------------
  340.   # ● Create HP Number
  341.   #--------------------------------------------------------------------------   
  342.   def create_hp_number
  343.       @hp2 = $game_system.boss_hp_meter[4]
  344.       @hp3 = @hp2
  345.       @hp_old2 = @hp2
  346.       @hp_ref = @hp_old2
  347.       @hp_refresh = false   
  348.       @hp_number_image = $game_temp.cache_boss_hp[2]
  349.       @hp_cw = @hp_number_image.width / 10
  350.       @hp_ch = @hp_number_image.height / 2
  351.       @hp_ch2 = 0
  352.       @hp_ch_range = HP_NUMBER_WAVE_EFFECT == true ? @hp_ch / 3 : 0
  353.       @hp_number_sprite = Sprite.new
  354.       @hp_number_sprite.bitmap = Bitmap.new(@hp_number_image.width, @hp_ch * 2)
  355.       @hp_number_sprite.z = @layout.z + 2
  356.       @hp_number_sprite.x = @layout.x + HP_NUMBER_POSITION[0]
  357.       @hp_number_sprite.y = @layout.y + HP_NUMBER_POSITION[1]
  358.       @hp_number_sprite.viewport = @hp_vieport
  359.       @hp_number_sprite.visible = $game_system.boss_hp_meter[9]
  360.       refresh_hp_number
  361.   end
  362.  
  363.   #--------------------------------------------------------------------------
  364.   # ● update_hp_number
  365.   #--------------------------------------------------------------------------
  366.   def update_hp_number
  367.       return if @hp_number_sprite == nil
  368.       @hp_number_sprite.visible = $game_system.boss_hp_meter[9]
  369.       if @hp_old2 < $game_system.boss_hp_meter[4]
  370.          number_refresh_speed
  371.          @hp2 += @hp_ref     
  372.          reset_hp_number  if @hp2 >= $game_system.boss_hp_meter[4]
  373.       elsif @hp_old2 > $game_system.boss_hp_meter[4]           
  374.          number_refresh_speed
  375.          @hp2 -= @hp_ref               
  376.          reset_hp_number if @hp2 <= $game_system.boss_hp_meter[4]
  377.       end  
  378.   end   
  379.  
  380.   #--------------------------------------------------------------------------
  381.   # ● Number Refresh Speed
  382.   #--------------------------------------------------------------------------
  383.   def number_refresh_speed
  384.       @hp_refresh = true  
  385.       @hp_ref = (3 * (@hp_old2 - $game_system.boss_hp_meter[4]).abs / 100) rescue nil
  386.       @hp_ref = 1 if @hp_ref == nil or @hp_ref < 1
  387.   end
  388.  
  389.   #--------------------------------------------------------------------------
  390.   # ● Refresh HP Number
  391.   #--------------------------------------------------------------------------      
  392.   def refresh_hp_number
  393.       return if @hp_number_sprite == nil
  394.       @hp_refresh = false
  395.       @hp_number_sprite.bitmap.clear
  396.       number = @hp2.abs.to_s.split(//)
  397.       @hp_ch2 = 0
  398.       for r in 0..number.size - 1
  399.           number_abs = number[r].to_i
  400.           nsrc_rect = Rect.new(@hp_cw * number_abs, 0, @hp_cw, @hp_ch)
  401.           @hp_ch2 = @hp_ch2 == @hp_ch_range ? 0 : @hp_ch_range
  402.           @hp_number_sprite.bitmap.blt(HP_STRING_SPACE + (@hp_cw *  r), @hp_ch2, @hp_number_image, nsrc_rect)        
  403.       end      
  404.       nsrc_rect = Rect.new(0, @hp_ch, @hp_number_image.width, @hp_ch)
  405.       @hp_number_sprite.bitmap.blt(0, 0, @hp_number_image, nsrc_rect)     
  406.   end
  407.  
  408.   #--------------------------------------------------------------------------
  409.   # ● Reset HP Number
  410.   #--------------------------------------------------------------------------        
  411.   def reset_hp_number
  412.       @hp_refresh = true
  413.       @hp_old2 = $game_system.boss_hp_meter[4]
  414.       @hp2 = $game_system.boss_hp_meter[4]
  415.       @hp_ref = 0
  416.       refresh_hp_number
  417.   end
  418.  
  419.   #--------------------------------------------------------------------------
  420.   # ● Refresh Level
  421.   #--------------------------------------------------------------------------   
  422.   def refresh_level
  423.       return if @level_sprite == nil
  424.       @level_sprite.bitmap.clear
  425.       @level = $game_system.boss_hp_meter[7]
  426.       return if @level == nil
  427.       level_text = LEVEL_WORD + @level.to_s
  428.       @level_sprite.bitmap.draw_text(0,0,120,32,level_text.to_s)
  429.   end
  430.  
  431.   #--------------------------------------------------------------------------
  432.   # ● Refresh Face
  433.   #--------------------------------------------------------------------------  
  434.   def refresh_face
  435.       return if @face_sprite == nil
  436.       dispose_bitmap_face
  437.       @face_sprite.bitmap = Cache.face(@name + "_f") rescue nil
  438.       @face_sprite.bitmap = Cache.face("") if @face_sprite.bitmap == nil
  439.   end
  440.  
  441.   #--------------------------------------------------------------------------
  442.   # ● Refresh Name
  443.   #--------------------------------------------------------------------------              
  444.   def refresh_name
  445.       return if @name_sprite == nil
  446.       @name = $game_system.boss_hp_meter[3]   
  447.       @name_sprite.bitmap.clear
  448.       @name_sprite.bitmap.draw_text(0,0,190,32,@name.to_s)
  449.       refresh_face
  450.       refresh_level
  451.       reset_hp_number
  452.       @hp_old = @meter_cw * @hp / @maxhp
  453.   end
  454.  
  455.   #--------------------------------------------------------------------------
  456.   # ● HP Setup
  457.   #--------------------------------------------------------------------------            
  458.   def hp_setup
  459.       @hp = $game_system.boss_hp_meter[4]
  460.       @maxhp = $game_system.boss_hp_meter[5]
  461.   end  
  462.  
  463.   #--------------------------------------------------------------------------
  464.   # ● Dispose
  465.   #--------------------------------------------------------------------------  
  466.   def dispose
  467.       dispose_layout
  468.       dispose_meter
  469.       dispose_name
  470.       dispose_face
  471.       dispose_level
  472.       dispose_hp_number      
  473.   end
  474.  
  475.   #--------------------------------------------------------------------------
  476.   # ● Dispose Name
  477.   #--------------------------------------------------------------------------              
  478.   def dispose_name
  479.       return if @name_sprite == nil
  480.       @name_sprite.bitmap.dispose
  481.       @name_sprite.dispose
  482.       @name_sprite = nil
  483.   end  
  484.  
  485.   #--------------------------------------------------------------------------
  486.   # ● Dispose Layout
  487.   #--------------------------------------------------------------------------   
  488.   def dispose_layout
  489.       return if @layout == nil
  490.       @layout.dispose
  491.       @layout = nil
  492.   end
  493.  
  494.   #--------------------------------------------------------------------------
  495.   # ● Dispose Meter
  496.   #--------------------------------------------------------------------------      
  497.   def dispose_meter
  498.       return if @meter == nil
  499.       @meter.bitmap.dispose
  500.       @meter.dispose
  501.       @meter = nil
  502.   end
  503.  
  504.   #--------------------------------------------------------------------------
  505.   # ● Dispose Face
  506.   #--------------------------------------------------------------------------  
  507.   def dispose_face
  508.       return if @face_sprite == nil
  509.       dispose_bitmap_face
  510.       @face_sprite.dispose
  511.       @face_sprite = nil
  512.   end
  513.  
  514.   #--------------------------------------------------------------------------
  515.   # ● Dispose Bitmap Face
  516.   #--------------------------------------------------------------------------   
  517.   def dispose_bitmap_face
  518.       return if @face_sprite == nil
  519.       return if @face_sprite.bitmap == nil
  520.       @face_sprite.bitmap.dispose rescue nil
  521.       @face_sprite.bitmap = nil
  522.   end  
  523.  
  524.   #--------------------------------------------------------------------------
  525.   # ● Dispose Level
  526.   #--------------------------------------------------------------------------   
  527.   def dispose_level
  528.       return if @level_sprite == nil
  529.       @level_sprite.bitmap.dispose
  530.       @level_sprite.dispose
  531.       @level_sprite = nil
  532.   end  
  533.  
  534.   #--------------------------------------------------------------------------
  535.   # ● Dispose HP Number
  536.   #--------------------------------------------------------------------------      
  537.   def dispose_hp_number
  538.       return if @hp_number_sprite == nil
  539.       @hp_number_sprite.bitmap.dispose
  540.       @hp_number_sprite.dispose
  541.   end   
  542.  
  543.   #--------------------------------------------------------------------------
  544.   # ● Update
  545.   #--------------------------------------------------------------------------  
  546.   def update
  547.       refresh_hp_meter
  548.       refresh_hp_number if @hp_refresh
  549.       update_hp_meter
  550.       update_hp_number
  551.       update_fade_end
  552.       update_visible
  553.   end
  554.  
  555.   #--------------------------------------------------------------------------
  556.   # ● Update Visible
  557.   #--------------------------------------------------------------------------  
  558.   def update_visible
  559.       return if @meter_image == nil
  560.       vis = bhp_visible?
  561.       @layout.visible = vis   
  562.       @meter.visible = vis   
  563.       @name_sprite.visible = vis   
  564.       @face_sprite.visible = vis   
  565.       @level_sprite.visible = vis   
  566.       @hp_number_sprite.visible = vis   
  567.   end
  568.  
  569.   #--------------------------------------------------------------------------
  570.   # ● Bhp Visible?
  571.   #--------------------------------------------------------------------------  
  572.   def bhp_visible?
  573.       return false if $game_message.visible
  574.       return true
  575.   end
  576.  
  577.   #--------------------------------------------------------------------------
  578.   # ● Update Fade End
  579.   #--------------------------------------------------------------------------   
  580.   def update_fade_end
  581.       return if !$game_temp.battle_end
  582.       return if @meter_image == nil
  583.       @layout.opacity -= 5
  584.       @meter.opacity -= 5
  585.       @name_sprite.opacity -= 5
  586.       @face_sprite.opacity -= 5
  587.       @level_sprite.opacity -= 5
  588.       @hp_number_sprite.opacity -= 5
  589.   end
  590.  
  591.   #--------------------------------------------------------------------------
  592.   # ● Refresh HP Meter
  593.   #--------------------------------------------------------------------------         
  594.   def refresh_hp_meter
  595.       return if !$game_system.boss_hp_meter[2]
  596.       $game_system.boss_hp_meter[2] = false
  597.       hp_setup
  598.       refresh_name if @name != $game_system.boss_hp_meter[3]
  599.   end
  600.  
  601.   #--------------------------------------------------------------------------
  602.   # ● Update HP Meter
  603.   #--------------------------------------------------------------------------            
  604.   def update_hp_meter
  605.       return if @meter_image == nil
  606.       @meter.bitmap.clear
  607.       hp_width = @meter_cw * @hp / @maxhp      
  608.       execute_damage_flow(hp_width)      
  609.       hp_src_rect = Rect.new(@hp_flow, 0,hp_width, @meter_ch)
  610.       @meter.bitmap.blt(0,0, @meter_image, hp_src_rect)  
  611.       @hp_flow += METER_ANIMATION_SPEED
  612.       @hp_flow = 0 if @hp_flow >= @hp_flow_max
  613.   end  
  614.  
  615.   #--------------------------------------------------------------------------
  616.   # ● Execute Damage Flow
  617.   #--------------------------------------------------------------------------
  618.   def execute_damage_flow(hp_width)
  619.       return if @hp_old == hp_width
  620.       n = (@hp_old - hp_width).abs * 3 / 100
  621.       damage_flow = [[n, 2].min,0.5].max
  622.       @hp_old -= damage_flow      
  623.       @hp_old = hp_width if @hp_old <= hp_width
  624.       src_rect_old = Rect.new(0,@meter_ch, @hp_old, @meter_ch)
  625.       @meter.bitmap.blt(0,0, @meter_image, src_rect_old)      
  626.   end   
  627.  
  628. end
  629.  
  630. #==============================================================================
  631. # ■ Spriteset Battle
  632. #==============================================================================
  633. class Spriteset_Battle
  634.  
  635.   #--------------------------------------------------------------------------
  636.   # ● Initialize
  637.   #--------------------------------------------------------------------------  
  638.   alias mog_enemy_bhp_initialize initialize
  639.   def initialize
  640.       mog_enemy_bhp_initialize
  641.       create_boss_hp_meter
  642.   end
  643.  
  644.   #--------------------------------------------------------------------------
  645.   # ● Create Boss HP Meter
  646.   #--------------------------------------------------------------------------  
  647.   def create_boss_hp_meter
  648.       @boss_hp_meter = Boss_HP_Meter.new(@viewport1)
  649.   end
  650.  
  651.   #--------------------------------------------------------------------------
  652.   # ● Dispose
  653.   #--------------------------------------------------------------------------      
  654.   alias mog_enemy_bhp_dispose dispose
  655.   def dispose
  656.       dispose_boss_hp_meter   
  657.       mog_enemy_bhp_dispose
  658.   end  
  659.  
  660.   #--------------------------------------------------------------------------
  661.   # ● Dispose Boss HP Meter
  662.   #--------------------------------------------------------------------------         
  663.   def dispose_boss_hp_meter
  664.       return if @boss_hp_meter == nil
  665.       @boss_hp_meter.dispose
  666.       @boss_hp_meter = nil
  667.   end
  668.  
  669.   #--------------------------------------------------------------------------
  670.   # ● Update
  671.   #--------------------------------------------------------------------------        
  672.   alias mog_enemy_bhp_update update
  673.   def update
  674.       mog_enemy_bhp_update
  675.       update_boss_hp_meter
  676.   end
  677.  
  678.   #--------------------------------------------------------------------------
  679.   # ● Update Boss HP Meter
  680.   #--------------------------------------------------------------------------            
  681.   def update_boss_hp_meter
  682.       return if @boss_hp_meter == nil
  683.       @boss_hp_meter.update
  684.   end
  685.  
  686. end
  687.  
  688. #==============================================================================
  689. # ■ Game_Battler
  690. #==============================================================================
  691. class Game_Battler < Game_BattlerBase
  692.  
  693.   #--------------------------------------------------------------------------
  694.   # ● Item Apply
  695.   #--------------------------------------------------------------------------        
  696.   alias mog_boss_hp_item_apply item_apply
  697.   def item_apply(user, item)
  698.       check_boss_hp_before
  699.       mog_boss_hp_item_apply(user, item)
  700.       check_boss_hp_after
  701.   end
  702.  
  703.   #--------------------------------------------------------------------------
  704.   # ● Regenerate HP
  705.   #--------------------------------------------------------------------------
  706.   alias mog_boss_hp_regenerate_hp regenerate_hp
  707.   def regenerate_hp
  708.       check_boss_hp_before
  709.       mog_boss_hp_regenerate_hp
  710.       check_boss_hp_after
  711.   end  
  712.  
  713.   #--------------------------------------------------------------------------
  714.   # ● Check Boss HP Before
  715.   #--------------------------------------------------------------------------         
  716.   def check_boss_hp_before
  717.       return if self.is_a?(Game_Actor)
  718.       return if !self.boss_hp_meter
  719.       $game_system.boss_hp_meter[6] = self.hp
  720.   end
  721.  
  722.   #--------------------------------------------------------------------------
  723.   # ● Check Boss HP After
  724.   #--------------------------------------------------------------------------            
  725.   def check_boss_hp_after
  726.       return if self.is_a?(Game_Actor)
  727.       return if !self.boss_hp_meter
  728.       $game_system.boss_hp_meter[2] = true
  729.       $game_system.boss_hp_meter[3] = self.name
  730.       $game_system.boss_hp_meter[4] = self.hp
  731.       $game_system.boss_hp_meter[5] = self.mhp
  732.       $game_system.boss_hp_meter[7] = self.level rescue nil     
  733.       $game_system.boss_hp_meter[9] = self.boss_hp_number
  734.   end
  735.  
  736. end
  737.  
  738. #==============================================================================
  739. # ■ Game_Interpreter
  740. #==============================================================================
  741. class Game_Interpreter
  742.  
  743.   #--------------------------------------------------------------------------
  744.   # ● Check Boss Meter
  745.   #--------------------------------------------------------------------------   
  746.   def check_boss_meter
  747.       return if !SceneManager.scene_is?(Scene_Battle)
  748.       iterate_enemy_index(@params[0]) do |enemy|
  749.         if enemy.boss_hp_meter
  750.            $game_system.boss_hp_meter[2] = true
  751.            $game_system.boss_hp_meter[3] = enemy.name
  752.            $game_system.boss_hp_meter[4] = enemy.hp
  753.            $game_system.boss_hp_meter[5] = enemy.mhp
  754.            $game_system.boss_hp_meter[6] = enemy.hp   
  755.            $game_system.boss_hp_meter[7] = enemy.level rescue nil
  756.            $game_system.boss_hp_meter[9] = enemy.boss_hp_number
  757.         end
  758.      end
  759.   end
  760.  
  761.   #--------------------------------------------------------------------------
  762.   # ● Command 331
  763.   #--------------------------------------------------------------------------  
  764.   alias mog_boss_meter_command_331 command_331
  765.   def command_331
  766.       mog_boss_meter_command_331
  767.       check_boss_meter
  768.   end
  769.  
  770.   #--------------------------------------------------------------------------
  771.   # ● Command 334
  772.   #--------------------------------------------------------------------------  
  773.   alias mog_boss_meter_command_334 command_334
  774.   def command_334
  775.       mog_boss_meter_command_334
  776.       check_boss_meter
  777.   end   
  778.  
  779. end
  780.  
  781. #==============================================================================
  782. # ■ BattleManager
  783. #==============================================================================
  784. class << BattleManager
  785.  
  786.   #--------------------------------------------------------------------------
  787.   # ● Init Members
  788.   #--------------------------------------------------------------------------         
  789.   alias mog_boss_meter_init_members init_members
  790.   def init_members
  791.       $game_temp.battle_end = false
  792.       mog_boss_meter_init_members
  793.   end  
  794.  
  795.   #--------------------------------------------------------------------------
  796.   # ● Process Victory
  797.   #--------------------------------------------------------------------------            
  798.   alias mog_boss_meter_process_victory process_victory
  799.   def process_victory
  800.       $game_temp.battle_end = true
  801.       mog_boss_meter_process_victory
  802.   end
  803.  
  804.   #--------------------------------------------------------------------------
  805.   # ● Process Abort
  806.   #--------------------------------------------------------------------------            
  807.   alias mog_boss_meter_process_abort process_abort
  808.   def process_abort
  809.       $game_temp.battle_end = true
  810.       mog_boss_meter_process_abort
  811.   end
  812.  
  813.   #--------------------------------------------------------------------------
  814.   # ● Process Defeat
  815.   #--------------------------------------------------------------------------            
  816.   alias mog_boss_meter_process_defeat process_defeat
  817.   def process_defeat
  818.       $game_temp.battle_end = true
  819.       mog_boss_meter_process_defeat
  820.   end
  821.  
  822. end

360截图20170627222242637.jpg (86.14 KB, 下载次数: 8)

360截图20170627222242637.jpg

141617bsfvhv1xyxssuiy5.jpg (17.04 KB, 下载次数: 15)

141617bsfvhv1xyxssuiy5.jpg
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2025-7-23 02:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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