Project1

标题: 想結合兩個血量腳本...(就是讓他可以滾動這樣) [打印本页]

作者: sam870716    时间: 2017-4-11 17:38
标题: 想結合兩個血量腳本...(就是讓他可以滾動這樣)
本帖最后由 sam870716 于 2017-4-11 17:40 编辑

不好意思就是...
我想把Taroxd大大跟殇殃大大的腳本做結合...

以下是Taroxd大大給我的動態血量槽腳本~~
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ● require Taroxd基础设置,动态值槽
  3. #    战斗中敌人显示血条
  4. #    如不想显示,可在敌人处备注 <hide hp>
  5. #    可在敌人处备注 <hp width w>、<hp height h>、<hp dxy dx dy> 调整血槽。
  6. #    其中 w 表示宽度、h 表示高度,dx、dy 表示坐标的偏移。
  7. #--------------------------------------------------------------------------
  8.  
  9. Taroxd::EnemyHP = true
  10.  
  11. class RPG::Enemy < RPG::BaseItem
  12.  
  13.   note_any :hp_dxy, [0, 0], /\s+(-?\d+)\s+(-?\d+)/, '[$1.to_i, $2.to_i]'
  14.   note_i :hp_width, 80
  15.   note_i :hp_height, 6
  16.   note_bool :hide_hp?
  17.  
  18.   # 初始化并获取战斗图的尺寸
  19.   def init_width_height
  20.     bitmap = Bitmap.new("Graphics/Battlers/#{@battler_name}")
  21.     @width = bitmap.width
  22.     [url=home.php?mod=space&uid=291977]@height[/url] = bitmap.height
  23.     bitmap.dispose
  24.   end
  25.  
  26.   def width
  27.     return @width if @width
  28.     init_width_height
  29.     @width
  30.   end
  31.  
  32.   def height
  33.     return @height if @height
  34.     init_width_height
  35.     @height
  36.   end
  37. end
  38.  
  39. class Sprite_EnemyHP < Sprite
  40.  
  41.   include Taroxd::RollGauge
  42.   include Taroxd::DisposeBitmap
  43.  
  44.   HP_COLOR1 = Color.new(223, 127, 63)
  45.   HP_COLOR2 = Color.new(239, 191, 63)
  46.   BACK_COLOR = Color.new(31, 31, 63)
  47.  
  48.   def initialize(viewport, enemy)
  49.     @enemy = enemy
  50.     super(viewport)
  51.     data = enemy.enemy
  52.     @width = data.hp_width
  53.     @height = data.hp_height
  54.     self.bitmap = Bitmap.new(@width, @height)
  55.     dx, dy = enemy.enemy.hp_dxy
  56.     self.ox = @width / 2
  57.     self.oy = @height
  58.     self.x = enemy.screen_x + dx
  59.     self.y = enemy.screen_y + dy
  60.     self.z = enemy.screen_z + 10
  61.     refresh
  62.   end
  63.  
  64.   def make_gauge_transitions
  65.     Transition.new(gauge_roll_times) do
  66.       @enemy.hp.fdiv(@enemy.mhp)
  67.     end
  68.   end
  69.  
  70.   def update_gauge_transitions
  71.     gauge_transitions.update
  72.   end
  73.  
  74.   def refresh
  75.     bitmap.clear
  76.     rate = gauge_transitions.value
  77.     return if rate.zero?
  78.     fill_w = (bitmap.width * rate).to_i
  79.     bitmap.fill_rect(fill_w, 0, @width - fill_w, @height, BACK_COLOR)
  80.     bitmap.gradient_fill_rect(0, 0, fill_w, @height, HP_COLOR1, HP_COLOR2)
  81.   end
  82. end
  83.  
  84. class Spriteset_Battle
  85.  
  86.   # 导入精灵组
  87.   def_after :create_enemies do
  88.     @enemy_hp_sprites = $game_troop.members.map { |enemy|
  89.       Sprite_EnemyHP.new(@viewport1, enemy) unless enemy.enemy.hide_hp?
  90.     }.compact
  91.   end
  92.  
  93.   def_after(:update_enemies)  { @enemy_hp_sprites.each(&:update)  }
  94.   def_after(:dispose_enemies) { @enemy_hp_sprites.each(&:dispose) }
  95. end


以下是爬文找到殇殃大大的血量 hp mp槽數值顯示腳本~~
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.     [url=home.php?mod=space&uid=133701]@battler[/url] = 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


我想要就是...讓殇殃大大的腳本變得有辦法滾動這樣   
還有就是   可以再備註欄輸入一串字或者其他方法下可以讓這個腳本對這個怪物暫時失效(BOSS怪物 然後採用另一串BOSS血條腳本...)
[[url=  https://rpg.blue/forum.php?mod=v ... d=398718&extra=  ]    另一串BOSS用血條腳本[/url]--- 3F(須搭配8f素材使用)

  求幫助!!!  {:2_259:} 感謝

作者: sam870716    时间: 2017-4-19 02:36
推    刷新x1次




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