기타

스테이터스 표시 플러스 1.00ver

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
#==============================================================================
# ++ 스테이터스 표시 플러스 ver. 1.00 ++
#  Script by 파라개
#  http://para.j-mx.com/
#------------------------------------------------------------------------------
# [기능1] 스테이터스 화면의 액터명을 풀네임으로 표시
# [기능2] 스테이터스 화면의 그래픽을 변경
# [기능3] 클래스명을 비표시
#------------------------------------------------------------------------------
# [그래픽의 종류 「픽처」의 사용법]
# 「Graphics/Pictures」폴더에, 액터 그래픽과 동명의 화상 파일을
# 임포트 합니다.
# 「보행 그래픽에 의존」의 경우는 보행 그래픽명이,
# 「버틀러에 의존」의 경우는 버틀러 그래픽명이
# 픽처의 파일명이 됩니다.
#==============================================================================

module PARA_STSW

  # 액터의 풀네임(서식은 FULLNAME[ 액터ID ] = "이름")
  FULLNAME=[]#이 행은 지우지 말아 주세요
  FULLNAME[1] = "아르시스=못체리노"
  FULLNAME[2] = "“타와시두의 프린스”바질"
 
  # 그래픽의 종류
  #( 0:보행 그래픽 / 1:버틀러 그래픽 /
  #  2:픽처(보행 그래픽에 의존) / 3:픽처(버틀러에 의존) )
  STATUS_GRAPHIC_TYPE = 1
 
  # 문자 위치를 옆에 늦춘다
  # (픽처의 사이즈가 너무 커서 문자와 겹칠 때 설정.0그리고 초기 위치)
  STATUS_SHIFT = 32
 
  # 클래스명을 비표시(? true / false )
  DRAW_SKIP_CLASS = false

end

# ↑ 설정 항목 여기까지
#------------------------------------------------------------------------------

#==============================================================================
# ■ Window_Status
#==============================================================================

class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ● 리프레쉬
  #--------------------------------------------------------------------------
  alias refresh_para_stsw refresh
  def refresh
    @draw_skip_graphic = true
    @draw_skip_name = true
    @draw_skip_class = true
    refresh_para_stsw
    # 상세 스테이터스의 문자 위치를 옆에 늦추는
    if PARA_STSW::STATUS_SHIFT != 0
      @status_sprite = Sprite.new
      @status_sprite.x = 16 + PARA_STSW::STATUS_SHIFT
      @status_sprite.y = 16
      @status_sprite.z = self.z + 1
      @status_sprite.bitmap = self.contents.dup
      self.contents.clear
    end
    # 그래픽을 묘화
    @draw_skip_graphic = false
    case PARA_STSW::STATUS_GRAPHIC_TYPE
      when 0
        draw_actor_graphic(@actor, 40, 112)
      when 1
        draw_battler_graphic_para(@actor, 0, 40)
      when 2
        draw_actor_picture_para(@actor, 0, 40)
      when 3
        draw_battler_picture_para(@actor, 0, 40)
    end
    # 액터의 이름을 묘화
    @draw_skip_name = false
    @draw_skip_class = PARA_STSW::DRAW_SKIP_CLASS
    if PARA_STSW::FULLNAME[@actor.id] != nil
      self.contents.draw_text(4, 0, 260, 32, PARA_STSW::FULLNAME[@actor.id])
      draw_actor_class(@actor, 4 + 284, 0)
    else
      draw_actor_name(@actor, 4, 0)
      draw_actor_class(@actor, 4 + 144, 0)
    end
  end
  #--------------------------------------------------------------------------
  # ○ 파기
  #--------------------------------------------------------------------------
  alias dispose_para_stsw dispose
  def dispose
    dispose_para_stsw
    if @status_sprite != nil
      @status_sprite.dispose
    end
  end
end

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 오브젝트 초기화
  #--------------------------------------------------------------------------
  alias initialize_para_stsw initialize
  def initialize(x, y, width, height)
    initialize_para_stsw(x, y, width, height)
    @draw_skip_graphic = false
    @draw_skip_name = false
    @draw_skip_class = PARA_STSW::DRAW_SKIP_CLASS
  end
  #--------------------------------------------------------------------------
  # ● 그래픽의 묘화
  #--------------------------------------------------------------------------
  alias draw_actor_graphic_para_stsw draw_actor_graphic
  def draw_actor_graphic(actor, x, y)
    if !(@draw_skip_graphic)
      draw_actor_graphic_para_stsw(actor, x, y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 이름의 묘화
  #--------------------------------------------------------------------------
  alias draw_actor_name_para_stsw draw_actor_name
  def draw_actor_name(actor, x, y)
    if !(@draw_skip_name)
      draw_actor_name_para_stsw(actor, x, y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 클래스의 묘화
  #--------------------------------------------------------------------------
  alias draw_actor_class_para_stsw draw_actor_class
  def draw_actor_class(actor, x, y)
    if !(@draw_skip_class)
      draw_actor_class_para_stsw(actor, x, y)
    end
  end
  #--------------------------------------------------------------------------
  # ○ 버틀러 그래픽의 묘화
  #--------------------------------------------------------------------------
  def draw_battler_graphic_para(actor, x, y)
    bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x, y, bitmap, src_rect)
  end
  #--------------------------------------------------------------------------
  # ○ 픽처의 묘화(액터)
  #--------------------------------------------------------------------------
  def draw_actor_picture_para(actor, x, y)
    bitmap = RPG::Cache.picture(actor.character_name)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x, y, bitmap, src_rect)
  end
  #--------------------------------------------------------------------------
  # ○ 픽처의 묘화(버틀러)
  #--------------------------------------------------------------------------
  def draw_battler_picture_para(actor, x, y)
    bitmap = RPG::Cache.picture(actor.battler_name)
    cw = bitmap.width
    ch = bitmap.height
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x, y, bitmap, src_rect)
  end
end


출처:http://para.j-mx.com/