05-12-2017, 10:12 PM 
(This post was last modified: 05-15-2017, 08:20 AM by Keeroh.
 Edit Reason: To add Links
)
	
	
	
		Hello! First of all, I'm glad to have joined this forum. It looks like a friendly and active place. I've posted here because I'm having a problem of campatibility between 2 scripts.
I'm using KGC_MultiAttack script to make an attack or skill have multiple hits and MOG XP - Combo Display V1.0, which shows a combo hit count during the battle. The problem that I'm having is that the combo hit count does not display the multi hit attacks, it just counts the first hit.
Is there anyone who knows scripting to help modify the Combo Display to make it count the multiple hits or know of any other solution? I'm wanting to make these two work because I'm planning on adding achievements and one of them would be achieving a high number of hits or high max damage.
Thanks for your attention!
Edit:
Combo_Hud
Combo_Number
[/url][url=http://imgur.com/Zr2fvA0]Combo_Damage
Edit2: removed KGC's code since I'll be using Mea's Multistrike
	
	
	
	
I'm using KGC_MultiAttack script to make an attack or skill have multiple hits and MOG XP - Combo Display V1.0, which shows a combo hit count during the battle. The problem that I'm having is that the combo hit count does not display the multi hit attacks, it just counts the first hit.
Is there anyone who knows scripting to help modify the Combo Display to make it count the multiple hits or know of any other solution? I'm wanting to make these two work because I'm planning on adding achievements and one of them would be achieving a high number of hits or high max damage.
Thanks for your attention!
Code:
#==============================================================================
# +++ MOG XP - Combo Display V1.0 +++
#==============================================================================
# By Moghunter 
# http://www.atelier-rgss.com/
#==============================================================================
# ■ Apresenta a quantidade de acertos no alvo e o dano maximo.
# ---------------------------------------------------------------------------
# É necessário ter os arquivos imagens na pasta Graphics/Windoskins.
# Combo_Damage.png 
# Combo_Hud.png
# Combo_Number.png
#==============================================================================
module MOG_COMBO_DISPLAY
  #Ativar tempo para fazer combo.
  TIME_COUNT = true
  # Tempo para fazer um combo. (40 = 1s) 
  COMBO_TIME = 40
  # Cancelar a contagem de Combo caso o inimigo acertar o herói.
  ENEMY_CANCEL_COMBO = true
  # Posição geral das imagens. X Y
  COMBO_POSITION = [440,60]
  # Posição do número de HITS. X Y
  HIT_POSITION = [15,20]
  # Posição do número de dano. X Y
  TOTAL_POSITION = [60,-20]
  # Prioridade das imagens.
  PRIORITY_Z = 50
end 
#===============================================================================
# ■ Game_Temp
#===============================================================================
class Game_Temp
   attr_accessor :combo_hit
   attr_accessor :max_damage   
   attr_accessor :combo_time  
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------   
   alias mog_combo_display_initialize initialize
   def initialize
       @combo_hit = 0
       @max_damage = 0  
       @combo_time = 0    
       mog_combo_display_initialize
   end
end
#===============================================================================
# ■ Combo_Sprite_Hud
#===============================================================================
class Combo_Sprite_Hud < Sprite
   attr_accessor :combo_wait
   include MOG_COMBO_DISPLAY
   
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
     super  
     @combo_wait = false
     $game_temp.combo_time = 0
     $game_temp.combo_hit = 0
     $game_temp.max_damage = 0     
     @combo_hit_old = 0
     @animation_speed = 0
     @pos_x = COMBO_POSITION[0]
     @pos_x_fix = 0
     @pos_y = COMBO_POSITION[1]
     create_combo_sprite
     create_total_damage_sprite     
     create_hud_sprite     
   end       
  #--------------------------------------------------------------------------
  # ● Create Hud Sprite   
  #--------------------------------------------------------------------------
  def create_hud_sprite   
       @hud = Sprite.new
       @hud.bitmap = RPG::Cache.windowskin("Combo_HUD")
       @hud.z = PRIORITY_Z
       @hud.x = COMBO_POSITION[0]
       @hud.y = COMBO_POSITION[1]
       @hud.opacity = 250
       @hud.visible = false
  end     
  #--------------------------------------------------------------------------
  # ● Create Total Damage Sprite
  #--------------------------------------------------------------------------
  def create_total_damage_sprite    
       @total_image = RPG::Cache.windowskin("Combo_damage")
       @total_bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
       @total = Sprite.new
       @total.bitmap = @total_bitmap
       @total_im_cw = @total_image.width / 10
       @total_im_ch = @total_image.height     
       @total_number_text = $game_temp.max_damage.abs.to_s.split(//)
       for r in 0..@total_number_text.size - 1
         @total_number_abs = @total_number_text[r].to_i 
         @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
         @total_bitmap.blt(40 + ((@total_im_cw - 12) *  r), 0, @total_image, @total_src_rect)        
       end      
       @total.z = PRIORITY_Z + 1
       @total_orig_x = COMBO_POSITION[0] + TOTAL_POSITION[0]
       @total_orig_y = COMBO_POSITION[1] + TOTAL_POSITION[1]
       @total.x = @total_orig_x
       @total.y = @total_orig_y
       @total.zoom_x = 1.00
       @total.zoom_y = 1.00
       @total.opacity = 250  
       @total.visible = false
  end     
  #--------------------------------------------------------------------------
  # ● Create Combo Number  
  #--------------------------------------------------------------------------
  def create_combo_sprite
       @combo_image = RPG::Cache.windowskin("Combo_Number")
       @combo_bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
       @combo = Sprite.new
       @combo.bitmap = @combo_bitmap
       @combo_im_cw = @combo_image.width / 10
       @combo_im_ch = @combo_image.height     
       @combo_number_text = $game_temp.combo_hit.abs.to_s.split(//)
       for r in 0..@combo_number_text.size - 1
         @combo_number_abs = @combo_number_text[r].to_i 
         @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
         @combo_bitmap.blt(40 + ((@combo_im_cw - 12) *  r), 0, @combo_image, @combo_src_rect)        
       end      
       @combo.z = PRIORITY_Z + 2
       @combo_orig_x = COMBO_POSITION[0] + HIT_POSITION[0]
       @combo_orig_y = COMBO_POSITION[1] + HIT_POSITION[1]
       @pos_x_fix = (@combo_im_cw / 2 * @combo_number_text.size)
       @combo.x = @combo_orig_x - @pos_x_fix     
       @combo.y = @combo_orig_y
       @combo.zoom_x = 1.00
       @combo.zoom_y = 1.00
       @combo.opacity = 250
       @combo.visible = false
  end  
     
  #--------------------------------------------------------------------------
  # ● Dispose
  #--------------------------------------------------------------------------
  def dispose
      @combo_bitmap.dispose
      @combo.bitmap.dispose
      @combo.dispose
      @hud.bitmap.dispose
      @hud.dispose
      @total_bitmap.dispose
      @total.bitmap.dispose
      @total.dispose
      super 
  end
    
  #--------------------------------------------------------------------------
  # ● Refresh
  #--------------------------------------------------------------------------
  def refresh
      @combo_hit_old = $game_temp.combo_hit
      @combo.bitmap.clear
      @total.bitmap.clear
      @combo_number_text = $game_temp.combo_hit.abs.to_s.split(//)
      for r in 0..@combo_number_text.size - 1
         @combo_number_abs = @combo_number_text[r].to_i 
         @combo_src_rect = Rect.new(@combo_im_cw * @combo_number_abs, 0, @combo_im_cw, @combo_im_ch)
         @combo_bitmap.blt(40 + ((@combo_im_cw - 12) *  r), 0, @combo_image, @combo_src_rect)        
       end            
       @total_number_text = $game_temp.max_damage.abs.to_s.split(//)
       for r in 0..@total_number_text.size - 1
         @total_number_abs = @total_number_text[r].to_i 
         @total_src_rect = Rect.new(@total_im_cw * @total_number_abs, 0, @total_im_cw, @total_im_ch)
         @total_bitmap.blt(40 + ((@total_im_cw - 12) *  r), 20, @total_image, @total_src_rect)        
       end
       #Combo Position
       @pos_x_fix = (@combo_im_cw / 2 * @combo_number_text.size)
       @combo.x = @combo_orig_x - @pos_x_fix
       @combo.y = @combo_orig_y
       @combo.zoom_x = 2
       @combo.zoom_y = 2
       @combo.opacity = 70
       @combo.visible = true
       #Total Position      
       @total.x = @total_orig_x + 20
       @total.y = @total_orig_y     
       @total.opacity = 100 
       @total.visible = true            
       #Hud Position 
       @hud.x = COMBO_POSITION[0]
       @hud.y = COMBO_POSITION[1]
       @hud.opacity = 255
       @hud.visible = true 
   end    
  
  #--------------------------------------------------------------------------
  # ● Slide Update
  #--------------------------------------------------------------------------
  def slide_update
    return if @combo.visible == false
    if $game_temp.combo_time > 0 and @combo_wait == false
       $game_temp.combo_time -= 1 if TIME_COUNT == true
    end 
    if $game_temp.combo_time > 0 and $game_temp.combo_hit > 0   
         #Total Damage
         if @total.x > @total_orig_x
            @total.x -= 1
            @total.opacity += 8
         else   
            @total.x = @total_orig_x
            @total.opacity = 255
         end  
         #Combo
         if @combo.zoom_x > 1.00
            @combo.zoom_x -= 0.05 
            @combo.zoom_y -= 0.05       
            @combo.opacity += 8
         else
            @combo.zoom_x = 1
            @combo.zoom_y = 1 
            @combo.opacity = 255
            @combo.x = @combo_orig_x - @pos_x_fix
            @combo.y = @combo_orig_y
         end           
     elsif $game_temp.combo_time == 0 and @combo.visible == true
           @combo.x -= 5 
           @combo.opacity -= 10
           @total.x -= 3
           @total.opacity -= 10
           @hud.x += 5
           @hud.opacity -= 10     
           $game_temp.combo_hit = 0
           @combo_hit_old = $game_temp.combo_hit 
           $game_temp.max_damage = 0
           if @combo.opacity <= 0
              @combo.visible = false
              @total.visible = false
              @hud.visible = false
           end  
     end    
  end
   
  #--------------------------------------------------------------------------
  # ● Cancel
  #--------------------------------------------------------------------------    
  def cancel
      $game_temp.combo_hit = 0
      $game_temp.max_damage = 0
      $game_temp.combo_time = 0      
      @combo_hit_old = $game_temp.combo_hit
  end  
  #--------------------------------------------------------------------------
  # ● Clear
  #--------------------------------------------------------------------------     
  def clear
      $game_temp.combo_time = 0
  end      
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------
  def update
    super
    refresh if $game_temp.combo_hit != @combo_hit_old 
    slide_update 
  end    
end
#===============================================================================
# ■ Scene_Battle
#===============================================================================
class Scene_Battle
  include MOG_COMBO_DISPLAY
  
  #--------------------------------------------------------------------------
  # ● main
  #--------------------------------------------------------------------------
  alias mog_combo_main main
  def main
    create_cb_sprite
    mog_combo_main
    dispose_cb_sprite
  end
  
  #--------------------------------------------------------------------------
  # ● create_cb_sprite
  #--------------------------------------------------------------------------  
  def create_cb_sprite
     @combo_sprite = Combo_Sprite_Hud.new
  end
   
  #--------------------------------------------------------------------------
  # ● dispose_cb_sprite
  #--------------------------------------------------------------------------
  def dispose_cb_sprite
     @combo_sprite.dispose
  end  
  
  #--------------------------------------------------------------------------
  # ● update
  #-------------------------------------------------------------------------- 
  alias mog_combo_update update
  def update
    mog_combo_update
    @combo_sprite.update       
  end      
  
  #--------------------------------------------------------------------------
  # ● mog_combo_start_phase1
  #--------------------------------------------------------------------------
  alias mog_combo_start_phase2 start_phase2
  def start_phase2
      @combo_sprite.combo_wait = false
      mog_combo_start_phase2
  end  
  
  #--------------------------------------------------------------------------
  # ● start_phase4  
  #--------------------------------------------------------------------------
  alias mog_combo_display_start_phase4 start_phase4
  def start_phase4  
      @combo_sprite.combo_wait = true
      mog_combo_display_start_phase4
  end  
  
  #--------------------------------------------------------------------------
  # ● update_phase4_step5
  #--------------------------------------------------------------------------
  alias mog_combo_display_update_phase4_step5 update_phase4_step5
  def update_phase4_step5    
      for target in @target_battlers         
        if target.damage != nil and target.damage.is_a?(Numeric) and
           target.damage.to_i > 0
          if target.is_a?(Game_Enemy)
             $game_temp.combo_hit += 1
             $game_temp.max_damage += target.damage.to_i
             $game_temp.combo_time = COMBO_TIME
          else
             $game_temp.combo_time = 0 if ENEMY_CANCEL_COMBO == true
          end             
        end
      end    
      mog_combo_display_update_phase4_step5      
   end  
  
  #--------------------------------------------------------------------------
  # ● Start After Battle Phase
  #--------------------------------------------------------------------------
  alias mog_combo_start_phase5 start_phase5
  def start_phase5 
      @combo_sprite.clear  
      mog_combo_start_phase5
  end    
end  
$mog_rgssxp_combo_display = trueEdit:
Combo_Hud
Combo_Number
[/url][url=http://imgur.com/Zr2fvA0]Combo_Damage
Edit2: removed KGC's code since I'll be using Mea's Multistrike

 
 
 Multi Attack & Combo Display
 Multi Attack & Combo Display
 

 
