查看: 2007|回复: 1

[已经过期] 使用战斗指针脚本后的问题

[复制链接]
梦石
0
星屑
50
在线时间
49 小时
注册时间
2013-5-23
回帖
8
发表于 2013-6-8 22:14:16 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 skgame 于 2013-6-8 22:16 编辑

111

111


如何让选择技能后系统默认的技能窗口关闭?
或者直接不出现系统自带的选择敌人的窗口?
求帮助
另外,指针脚本如下,禁用后就是系统默认的,应该不存在冲突问题。
[pre lang="ruby" line="1"]#==============================================================================
# +++ MOG - Combo Count (v1.2) +++
#==============================================================================
# By Moghunter
#==============================================================================
# Apresenta a quantidade de acertos no alvo e o dano maximo.
#==============================================================================
# É necessário ter os arquivos imagens na pasta Graphics/Systems.
# Combo_Damage.png
# Combo_Hud.png
# Combo_Number.png
#==============================================================================

#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.2 - Corrigido o erro de crash randômico. (relativo a dispose de imagem.)
# v 1.1 - Opção de definir a prioridade da Hud.
#==============================================================================
module MOG_COMBO_COUNT
  #Ativar tempo para fazer combo.
  TIME_COUNT = true
  # Tempo para fazer um combo. (60 = 1s)
  COMBO_TIME = 120
  # 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 = [10,90]
  # Posição do número de HITS. X Y
  HIT_POSITION = [55,20]
  # Posição do número de dano. X Y
  TOTAL_POSITION = [100,-20]
  # Prioridade da HUD
  HUD_Z = 1
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

#===============================================================================
# ■ Game_Battler
#===============================================================================
class Game_Battler
  
  #--------------------------------------------------------------------------
  # ● Item Apply
  #--------------------------------------------------------------------------      
  alias mog_combo_display_item_apply item_apply
  def item_apply(user, item)
      mog_combo_display_item_apply(user, item)
      unless @result.hit?
         $game_temp.combo_time = 0
      end  
  end  
  
  #--------------------------------------------------------------------------
  # ● execute_damage
  #--------------------------------------------------------------------------     
  alias mog_combo_display_execute_damage execute_damage
  def execute_damage(user)
      mog_combo_display_execute_damage(user)
      if @result.hp_damage > 0   
          if user.is_a?(Game_Actor)  
             $game_temp.combo_hit += 1
             $game_temp.max_damage += @result.hp_damage
             $game_temp.combo_time = MOG_COMBO_COUNT::COMBO_TIME
          else
             $game_temp.combo_time = 0 if MOG_COMBO_COUNT::ENEMY_CANCEL_COMBO == true
          end  
      end  
    end
end

#===============================================================================
# Scene_Battle
#===============================================================================
class Scene_Battle < Scene_Base

  #--------------------------------------------------------------------------
  # ● start
  #--------------------------------------------------------------------------
  alias mog_combo_start start
  def start
      create_cb_sprite
      mog_combo_start
  end
  
  #--------------------------------------------------------------------------
  # ● create_cb_sprite
  #--------------------------------------------------------------------------  
  def create_cb_sprite
      @combo_sprite = Combo_Sprite_Hud.new
  end

  #--------------------------------------------------------------------------
  # ● Terminate
  #--------------------------------------------------------------------------  
  alias mog_combo_terminate terminate
  def terminate
      mog_combo_terminate
      @combo_sprite.dispose
  end
  
  #--------------------------------------------------------------------------
  # ● update_basic
  #--------------------------------------------------------------------------
  alias mog_combo_update_basic update_basic
  def update_basic
      mog_combo_update_basic
      update_combo_hit   
  end      
  
  #--------------------------------------------------------------------------
  # ● Update Combo Hit
  #--------------------------------------------------------------------------   
  def update_combo_hit
      @combo_sprite.update
      if (@spriteset.animation? or @spriteset.effect?)
          @combo_sprite.combo_wait = true
      else
          @combo_sprite.combo_wait = false
      end      
  end
   
end  

#===============================================================================
# ■ Combo_Sprite_Hud
#===============================================================================
class Combo_Sprite_Hud
   attr_accessor :combo_wait
   include MOG_COMBO_COUNT
   
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
  def initialize
      dispose
      @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 = Cache.system("Combo_HUD")
     @hud.z = HUD_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 = Cache.system("Combo_damage")
     @total = Sprite.new
     @total.bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
     @total_im_cw = @total_image.width / 10
     @total_im_ch = @total_image.height     
     @total.z = HUD_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 = Cache.system("Combo_Number")
     @combo = Sprite.new
     @combo.bitmap = Bitmap.new(@combo_image.width,@combo_image.height)
     @combo_im_cw = @combo_image.width / 10
     @combo_im_ch = @combo_image.height     
     @combo.z = HUD_Z + 2
     @combo_orig_x = COMBO_POSITION[0] + HIT_POSITION[0]
     @combo_orig_y = COMBO_POSITION[1] + HIT_POSITION[1]
     @combo.zoom_x = 1.00
     @combo.zoom_y = 1.00
     @combo.opacity = 250
     @combo.visible = false
end  

#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
   def dispose
       return if @hud == nil
       @hud.bitmap.dispose
       @hud.dispose
       @hud = nil
       @combo_image.dispose
       @combo.bitmap.dispose
       @combo.dispose
       @total_image.dispose      
       @total.bitmap.dispose
       @total.dispose
   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(@combo_im_cw *  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(@total_im_cw *  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
    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
           @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
      return if @hud == nil
      refresh if $game_temp.combo_hit != @combo_hit_old
      slide_update
  end   
end

$mog_rgss3_combo_count = true[/pre]
梦石
0
星屑
50
在线时间
49 小时
注册时间
2013-5-23
回帖
8
 楼主| 发表于 2013-6-9 12:46:12 | 显示全部楼层
呃,难道我发的问题都那么难么?就没人帮忙?
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部