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

Project1

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

[已经解决] 如何改这个战斗时显示身像脚本使其与Sideview兼容?

[复制链接]

Lv2.观梦者

梦石
0
星屑
640
在线时间
888 小时
注册时间
2007-4-3
帖子
84
跳转到指定楼层
1
发表于 2012-8-27 12:27:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
正常情况下人物身像出现在敌人的前面,插入Sideview后人物身像出现在敌人后面了

想知道解决方法


#==============================================================================
# +++ MOG - ACTOR PICTURE CM  (v1.1) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Apresenta a imagem do personagem durante a seleção de comandos, com efeitos
# animados.
#==============================================================================
# ● Definindo o nome das imagens dos battlers.
#==============================================================================
# 1 - As imagens devem ser gravadas na pasta
#
# GRAPHICS/PICTURES
#
# 2 - Nomeie os  arquivos de imagens da seguinte forma.
#
#
# ACTOR + ID
#
# EG
#
# ACTOR1.png
#
#==============================================================================

#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.1 - Correção do bug de não apagar a imagem quando o battler usa
#         ações de que acertam todos os alvos.
#==============================================================================

module MOG_ACTOR_PICTURE_CM
  #Posição da imagem do battler. (Para fazer ajustes)
  PICTURE_POSITION = [0, 0]  
  
  #Definição da opacidade da imagem.
  PICTURE_OPACITY = 255
  
  #Velocidade de deslize
  SLIDE_SPEED = 30  
  
  #Ativar o efeito da imagem respirando.
  BREATH_EFFECT = true
  
  #Definição da prioridade  da imagem na tela.
  PICTURE_PRIORITY_Z = 101
end

#===============================================================================
# ■ Sprite_Battler_CM
#===============================================================================
class Sprite_Battler_CM < Sprite
  include MOG_ACTOR_PICTURE_CM
  
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------  
  def initialize(viewport = nil,battler_id = -1)
      super(viewport)
      filename = "Actor" + battler_id.to_s
      self.bitmap = Cache.picture(filename) rescue nil
      self.bitmap = Cache.picture("") if self.bitmap == nil
      sc = (544 / 2)  - (self.bitmap.width / 2) + PICTURE_POSITION[0]
      @size = [self.bitmap.width + PICTURE_POSITION[0] ,sc]      
      self.visible = false
      self.x = -@size[0]
      self.y = self.bitmap.height + PICTURE_POSITION[1]
      self.opacity = 0
      self.z = PICTURE_PRIORITY_Z
      self.ox = 0
      self.oy = self.bitmap.height
      @breach_effect = [1.0,0]
      @battler_id = battler_id
      @active =  false
      @cm_visible = false
  end  
  
  #--------------------------------------------------------------------------
  # ● Dispose
  #--------------------------------------------------------------------------  
  def dispose
      super
      self.bitmap.dispose
  end
  
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------  
  def update
      super
      update_slide
  end  
  
  #--------------------------------------------------------------------------
  # ● Active Battler
  #--------------------------------------------------------------------------      
  def active_battler(battler_id)
      @active = @battler_id == battler_id ? true : false
      self.visible = true if @active
      @cm_visible = false if !@active
  end
  
  #--------------------------------------------------------------------------
  # ● Refresh Battler CM
  #--------------------------------------------------------------------------        
  def refresh_battler(cm_visible, battler_index)
      @cm_visible = cm_visible
      active_battler(battler_index)
  end  
  
  #--------------------------------------------------------------------------
  # ● Update Slide
  #--------------------------------------------------------------------------  
  def update_slide
      if !@cm_visible
           self.x -= SLIDE_SPEED if self.x > -@size[0]
           self.opacity -= 25
           if self.x <= -@size[0] or self.opacity == 0
              self.visible = false
              self.opacity = 0
              self.x = -@size[0]
           end   
        else
           self.x += SLIDE_SPEED if self.x < @size[1]
           self.x = @size[1] if self.x > @size[1]
           self.opacity += 10 if self.opacity < PICTURE_OPACITY
           self.opacity = PICTURE_OPACITY if self.opacity > PICTURE_OPACITY
           update_breath_effect
      end         
  end
  
  #--------------------------------------------------------------------------
  # ● Update Breath Effect
  #--------------------------------------------------------------------------   
  def update_breath_effect
      return if !BREATH_EFFECT
      @breach_effect[1] += 1
      case @breach_effect[1]
         when 0..30
             @breach_effect[0] += 0.0004
         when 31..50
             @breach_effect[0] -= 0.0004
         else  
         @breach_effect[1] = 0
         @breach_effect[0] = 1.truncate
      end
      self.zoom_y = @breach_effect[0]
  end  
  
end

#===============================================================================
# ■ Spriteset_Battle
#===============================================================================
class Spriteset_Battle
  
  #--------------------------------------------------------------------------
  # ● Create Actors
  #--------------------------------------------------------------------------   
  alias mog_battler_cm_create_actors create_actors
  def create_actors
      mog_battler_cm_create_actors
      create_battler_pictures
  end
  
  #--------------------------------------------------------------------------
  # ● Dispose
  #--------------------------------------------------------------------------   
  alias mog_battler_cm_dispose dispose
  def dispose
      mog_battler_cm_dispose
      dispose_battler_cm
  end  

  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------   
  alias mog_battler_cm_update update
  def update
      mog_battler_cm_update
      update_battler_cm
  end   

  #--------------------------------------------------------------------------
  # ● Create Battler Pictures
  #--------------------------------------------------------------------------   
  def create_battler_pictures
      size = 0
      @battler_pictures = []
      for i in $game_party.members
          @battler_pictures.push(Sprite_Battler_CM.new(@viewport1,i.id))
          size += 1
          break if size > 3
      end   
  end   
  
  #--------------------------------------------------------------------------
  # ● Dispose Battler CM
  #--------------------------------------------------------------------------   
  def dispose_battler_cm
      return if @battler_pictures == nil
      @battler_pictures.each {|sprite| sprite.dispose }
  end  

  #--------------------------------------------------------------------------
  # ● Update Battler CM
  #--------------------------------------------------------------------------   
  def update_battler_cm
      return if @battler_pictures == nil
      @battler_pictures.each {|sprite| sprite.update }
  end   
     
  #--------------------------------------------------------------------------
  # ● Update CM Pictures
  #--------------------------------------------------------------------------      
  def update_cm_picture(cm_visible, battler_index)
      return if @battler_pictures == nil
      @battler_pictures.each {|sprite| sprite.refresh_battler(cm_visible, battler_index) }
  end  
  
end

#===============================================================================
# ■ Scene_Battle
#===============================================================================
class Scene_Battle < Scene_Base
  
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------        
  alias mog_cm_picture_update update
  def update
      mog_cm_picture_update  
      update_picture_visible
  end  
  
  #--------------------------------------------------------------------------
  # ● Update Battler CM Active
  #--------------------------------------------------------------------------      
  def update_picture_visible
      return if @actor_command_window == nil
      cm_visible = can_cm_picture_visible?      
      cm_id = BattleManager.actor.id rescue -1
      @spriteset.update_cm_picture(cm_visible, cm_id)
  end  
  
  #--------------------------------------------------------------------------
  # ● Can CM Picture Visible
  #--------------------------------------------------------------------------        
  def can_cm_picture_visible?
      return false if (@actor_window.active or @enemy_window.active) rescue return
      return false if BattleManager.actor == nil      
      return true
  end  
  
  #--------------------------------------------------------------------------
  # ● Execute Action
  #--------------------------------------------------------------------------        
  alias mog_cm_picture_execute_action execute_action
  def execute_action
      @spriteset.update_cm_picture(false, -1) if @spriteset != nil
      mog_cm_picture_execute_action
  end
  
end

$mog_rgss3_actor_picture_cm = true

Lv3.寻梦者

梦石
0
星屑
1329
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

2
发表于 2012-9-1 18:30:50 | 只看该作者
目测应该是调整PICTURE_PRIORITY_Z = 101的值。。

点评

成了!你强!  发表于 2012-9-2 11:39
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-6 11:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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