메뉴

스테이터스 화면 개조 - 커스텀 버전

by 훈덕 posted Jun 15, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

스테이터스 화면 개조 - 모든 스텟 커스텀.jpg

 

스테이터스 화면에 큰 그림을 표시하는 스크립트를 제가 약간 수정했습니다.

본명(풀네임)을 설정할 수 있으며,

종전과는 달리 명중률, 회피율, 크리티컬 확률까지 표시가 됩니다.

 

혹시 버그가 있으면 덧글 달아주세요.

 

설정할 내용은 스크립트에 전부 포함되어 있습니다.

 

 

 

#==============================================================================
# ☆ Window_Status_profile0     Ver. 1.01 (Custom by LOM)
#------------------------------------------------------------------------------
# 스테이터스 화면에 큰 그림을 표시하며, 더 많은 스텟을 표시해줍니다.
#==============================================================================

#//////////////////////////////////////
#명칭변경
#//////////////////////////////////////
module Vocab
  # 스테이터스 화면
  ExpTotal        = "EXP"      # 경험치
  ExpNext         = "NEXT"   # 다음 레벨까지 경험치
end


#//////////////////////////////////////////
#본명(풀네임) 기재 on/off
#0: 통상의 이름 1: 본명(풀네임)으로 기재
#//////////////////////////////////////////
DRAW_ACTOR_STATUS_NAME_ONOFF=1

#//////////////////////////////////////////////////
#본명 설정
#//////////////////////////////////////////////////
DRAW_ACTOR_STATUS_NAME={
   0=>"",
   1=>"랄프 빈데바르트",
   2=>"울리카 아브 바덴",
   3=>"도니 죤 베넷트",
   4=>"이르바 오크센셰르나",
   5=>"",
   6=>"오스카 슈타이넬",
   7=>"",
   8=>"에르마 라자루스",
   9=>"",
  10=>""
}

#//////////////////////////////////////////////////
#그림 파일명을 설정해주세요.
#설정 방법은:
# Cache.face("그림파일")          ===> graphicsface그림파일.png
# Cache.picture("그림파일")      ===> graphicspicture그림파일.png
#//////////////////////////////////////////////////
DRAW_ACTOR_STATUS_FACE={
   0=>Cache.picture(""),
   1=>Cache.picture("Actor1-1"),
   2=>Cache.picture("Actor1-4"),
   3=>Cache.picture("Actor2-3"),
   4=>Cache.picture("Actor2-6"),
   5=>Cache.picture(""),
   6=>Cache.picture("Evil-5"),
   7=>Cache.picture(""),
   8=>Cache.picture("Actor3-3"),
   9=>Cache.picture(""),
  10=>Cache.picture("")
}

#//////////////////////////////////////////////////
#그림의 크기
#//////////////////////////////////////////////////
DRAW_ACTOR_STATUS_FACE_X=272
DRAW_ACTOR_STATUS_FACE_Y=288

#//////////////////////////////////////////////////
#그림의 위치
#//////////////////////////////////////////////////
DRAW_ACTOR_STATUS_FACE_X2=0
DRAW_ACTOR_STATUS_FACE_Y2=78


class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ☆ リフレッシュ <変更>
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_status_class(@actor, 0, 32) #ここ変更:初期は(264, 32)
    draw_basic_info(264, 0)          #ここ変更:初期は(264, 64)
    draw_parameters(264, 108)         #ここ変更:初期は(264,172)
    draw_exp_info(398, 0)            #ここ変更:初期は(398, 64)
    draw_equipments(264, 228)         #ここ変更:初期は(264,228)
    draw_actor_status_face(@actor, DRAW_ACTOR_STATUS_FACE_X2, DRAW_ACTOR_STATUS_FACE_Y2)    #ここ新規追加:初期は(272,288)
    if DRAW_ACTOR_STATUS_NAME_ONOFF==1
      draw_actor_status_name(@actor, 0, 0)     #ここ新規追加:初期は(264,  0)
    else
      draw_actor_name(@actor, 0, 0)
    end
  end
  #--------------------------------------------------------------------------
  # ☆ 本名の描画 <新規追加>
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_actor_status_name(actor, x, y)
    self.contents.font.color = hp_color(actor)
    self.contents.draw_text(x, y, 288, WLH, DRAW_ACTOR_STATUS_NAME[actor.id])
  end
  #--------------------------------------------------------------------------
  # ☆ 能力値の描画 <変更>
  #     x : 描画先 X 座標
  #     y : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_parameters(x, y)
    draw_actor_status_parameter(@actor, x, y + WLH * 0, 0)
    draw_actor_status_parameter(@actor, x+130, y + WLH * 0, 1)
    draw_actor_status_parameter(@actor, x, y + WLH * 1, 2)   
    draw_actor_status_parameter(@actor, x+130, y + WLH * 1, 3)
###############################################
    draw_actor_status_parameter(@actor, x, y + WLH * 2.5, 4)
    draw_actor_status_parameter(@actor, x+130, y + WLH * 2.5, 5)
    draw_actor_status_parameter(@actor, x, y + WLH * 3.5, 6)   
    #draw_actor_status_parameter(@actor, x+130, y + WLH * 3.5, 7) # Odds
###############################################
  end
  #--------------------------------------------------------------------------
  # ☆ 経験値情報の描画 <変更>
  #     x : 描画先 X 座標
  #     y : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_exp_info(x, y)
    s1 = @actor.exp_s
    s2 = @actor.next_rest_exp_s
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y + WLH * 0, 90, WLH, Vocab::ExpTotal)
    self.contents.draw_text(x, y + WLH * 2, 90, WLH, s_next)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y + WLH * 1, 110, WLH, s1, 2)
    self.contents.draw_text(x, y + WLH * 3, 110, WLH, s2, 2)
  end
  #--------------------------------------------------------------------------
  # ☆ 能力値の描画 <新規追加>
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     type  : 能力値の種類 (0~3)
  #--------------------------------------------------------------------------
  def draw_actor_status_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = Vocab::atk
      parameter_value = actor.atk
    when 1
      parameter_name = Vocab::def
      parameter_value = actor.def
    when 2
      parameter_name = Vocab::spi
      parameter_value = actor.spi
    when 3
      parameter_name = Vocab::agi
      parameter_value = actor.agi
############################################
# 파라미터 이름을 설정해주세요
############################################
    when 4
      parameter_name = "HIT"  # 명중률
      parameter_value = sprintf("%d%%", @actor.hit)
    when 5
      parameter_name = "EVA"  # 회피율
      parameter_value = sprintf("%d%%", @actor.eva)
    when 6
      parameter_name = "CRI"  # 크리티컬
      parameter_value = sprintf("%d%%", @actor.cri)
    when 7
      parameter_name = "Odds"  # 이것은 손대지 마세요 
      parameter_value = @actor.odds     
############################################
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 70, WLH, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 80, y, 36, WLH, parameter_value, 2)
  end
  #--------------------------------------------------------------------------
  # ☆ アクターのステータス画面の顔グラフィックの描画 <新規追加>
  #     face_name  : 顔グラフィック ファイル名
  #     face_index : 顔グラフィック インデックス
  #     x          : 描画先 X 座標
  #     y          : 描画先 Y 座標
  #     size       : 表示サイズ
  #--------------------------------------------------------------------------
  def draw_actor_status_face(face_name,x, y)
    bitmap = DRAW_ACTOR_STATUS_FACE[face_name.id]
    rect = Rect.new(0, 0, 0, 0)
    rect.x = 0
    rect.y = 0
    rect.width = DRAW_ACTOR_STATUS_FACE_X
    rect.height =DRAW_ACTOR_STATUS_FACE_Y
    self.contents.blt(x, y, bitmap, rect)
    #bitmap.dispose
  end
  #--------------------------------------------------------------------------
  # ☆ ステータス画面上でクラスの描画 <新規追加> Ver.1.01~
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_actor_status_class(actor, x, y)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, 288, WLH, actor.class.name)
  end
end
 
#////////////////////////////////////////////////////////////////
#作成者:ehime
#http://www.abcoroti.com/~nekoneko/index.html
#readmeやスタッフロールの明記,使用報告は任意.
#////////////////////////////////////////////////////////////////