VX 스크립트

이하는 스크립트입니다.
변함없이 소재하위에 인스톨 하시면 적용 됩니다.

그리고 첨부한 Menus압축을 자신의 게임 Graphics폴더에다가 풀어주시면 됩니다.

GraphicsMenus/그림파일
이런 상태를 만들어주세요.


p.s

스테이터스 최대 표시량은 999입니다.
그리고 마나를 비롯한 스테이터스바(status bar)가 뜨는 속성값은 절대 0을 주면 안됩니다.(에러뜨는상황을 확인했습니다.)
감사합니다~


##################################################
# Mog Menu_Status_Aya V 1.0                                      #
##################################################
# By Moghunter
# http://www.atelier-rgss.com
##################################################
# Menu Status com layout em pictures.
# É necessário criar uma pasta com o nome de
# Menus e colocar todas as imagens dentro dela, de resto
# é só criar o seu próprio estilo de menu através de um
#editor de imagem.
#-------------------------------------------------
module MOG_VX07
#Definição do parameter maximo.
MAX_PARAMETER = 999
end
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
###############
# module Cache #
###############
module Cache
def self.menu(filename)
load_bitmap("Graphics/Menus/", filename)
end
end
##############
# Window_Base #
##############
class Window_Base < Window 
 def draw_actor_atk_menu_status(actor, x, y)
 back = Cache.menu("Parameter_Bar_Back")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch + 30, back, src_rect)
 meter = Cache.menu("Parameter_Bar")   
 cw = meter.width  * actor.atk / MOG_VX07::MAX_PARAMETER
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch + 30, meter, src_rect)
 self.contents.font.size = 14
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.atk.to_s , 2)
 end    
 def draw_actor_def_menu_status(actor, x, y)
 back = Cache.menu("Parameter_Bar_Back")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch + 30, back, src_rect)
 meter = Cache.menu("Parameter_Bar")   
 cw = meter.width  * actor.def / MOG_VX07::MAX_PARAMETER
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch + 30, meter, src_rect)
 self.contents.font.size = 14
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.def.to_s , 2)
 end    
 def draw_actor_spi_menu_status(actor, x, y)
 back = Cache.menu("Parameter_Bar_Back")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch + 30, back, src_rect)
 meter = Cache.menu("Parameter_Bar")   
 cw = meter.width  * actor.spi / MOG_VX07::MAX_PARAMETER
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch + 30, meter, src_rect)
 self.contents.font.size = 14
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.spi.to_s , 2)
 end    
 def draw_actor_agi_menu_status(actor, x, y)
 back = Cache.menu("Parameter_Bar_Back")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch + 30, back, src_rect)
 meter = Cache.menu("Parameter_Bar")   
 cw = meter.width  * actor.agi / MOG_VX07::MAX_PARAMETER
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch + 30, meter, src_rect)
 self.contents.font.size = 14
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.agi.to_s , 2)
 end
 def draw_item_name_menu_status(item, x, y, enabled = true)
 if item != nil
 draw_icon(item.icon_index, x, y, enabled)
 self.contents.font.color = normal_color
 self.contents.font.color.alpha = enabled ? 255 : 128
 self.contents.draw_text(x + 30, y, 155, WLH, item.name)
 end
 end
 def draw_equipments_menu_status(actor, x, y)
 draw_item_name_menu_status(actor.equips[0], x , y)
 draw_item_name_menu_status(actor.equips[1], x , y + 45)
 draw_item_name_menu_status(actor.equips[2], x , y + 90)
 draw_item_name_menu_status(actor.equips[3], x + 125, y + 20)
 draw_item_name_menu_status(actor.equips[4], x + 125, y + 65)
 end
 def draw_actor_hp_menu_status(actor, x, y)
 back = Cache.menu("MeterBack")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch + 30, back, src_rect)
 meter = Cache.menu("HPMeter")   
 cw = meter.width  * actor.hp / actor.maxhp
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch + 30, meter, src_rect)
 self.contents.font.size = 14
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 22, y + 5 , 80, 32, actor.hp.to_s + " / " + actor.maxhp.to_s, 1)
 end 
 def draw_actor_mp_menu_status(actor, x, y)
 back = Cache.menu("MeterBack")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch + 30, back, src_rect)
 meter = Cache.menu("MPMeter")   
 cw = meter.width  * actor.mp / actor.maxmp
 ch = meter.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch + 30, meter, src_rect)
 self.contents.font.size = 14
 self.contents.font.color = Color.new(255,255,255,255)
 self.contents.draw_text(x + 22, y + 5 , 80, 32, actor.mp.to_s + " / " + actor.maxmp.to_s, 1)
 end 
 def draw_actor_class_menu_status(actor, x, y)
 self.contents.font.color = normal_color
 self.contents.draw_text(x, y, 90, WLH, actor.class.name, 1)
 end
 def draw_actor_level_menu_status(actor, x, y)
 self.contents.font.color = normal_color
 self.contents.draw_text(x + 32, y, 24, WLH, actor.level, 1)
 end 
 def draw_menu_status_obj(x,y)
 lay = Cache.menu("Menu_Status_OBJ")
 cw = lay.width
 ch = lay.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x , y - ch, lay, src_rect)   
 end
 def draw_actor_exp_meter_status_menu(actor, x, y) 
 if actor.next_exp != 0
 rate = actor.now_exp.to_f / actor.next_exp
 else
 rate = 1
 end
 back = Cache.menu("MeterBack")   
 cw = back.width 
 ch = back.height
 src_rect = Rect.new(0, 0, cw, ch)   
 self.contents.blt(x , y - ch , back, src_rect)
 bitmap = Cache.menu("EXPMeter")
 if actor.level < 99
 cw = bitmap.width * rate
 else
 cw = bitmap.width
 end  
 ch = bitmap.height
 src_rect = Rect.new(0, 0, cw, ch)
 self.contents.blt(x  , y - ch , bitmap, src_rect)
 if actor.next_exp != 0
 self.contents.draw_text(x + 30, y - 20, 80, 32, actor.next_rest_exp_s, 2)   
 else
 self.contents.draw_text(x + 30, y - 20, 80, 32, "Max", 2)
 end
 self.contents.draw_text(x - 30, y + 10, 120, 32, actor.exp_s.to_s, 2)
 end 
end
####################
# Window_Status_Left #
####################
class Window_Status_Left < Window_Base
  def initialize(actor)
    super(0, 0, 560, 430)
    @actor = actor
    self.opacity = 0
    self.contents.font.bold = true
    self.contents.font.shadow = true
    refresh
  end
  def refresh
    self.contents.clear
    draw_actor_face(@actor, 350, 90)
    draw_actor_class_menu_status(@actor, 350, 195)
    draw_actor_level_menu_status(@actor, 450, 195)
    draw_actor_hp_menu_status(@actor, 350, 213)
    draw_actor_mp_menu_status(@actor, 380, 240)
    draw_actor_exp_meter_status_menu(@actor, 350, 300)
    draw_actor_atk_menu_status(@actor, 50, 170)
    draw_actor_def_menu_status(@actor, 70, 200)
    draw_actor_spi_menu_status(@actor, 90, 230)
    draw_actor_agi_menu_status(@actor, 110, 260)
    draw_equipments_menu_status(@actor, 30, 40)
    draw_actor_state(@actor,190, 320)
  end
end
#####################
# Window_Status_Right #
#####################
class Window_Status_Right < Window_Base
  def initialize(actor)
    super(0, 0, 560, 430)
    @actor = actor
    self.opacity = 0
    self.contents.font.bold = true
    self.contents.font.shadow = true
    refresh
  end
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 55, 367)
    draw_menu_status_obj(0, 380)
  end
end
###############
# Scene_Status #
###############
class Scene_Status
  def main
    start                       
    perform_transition         
    Input.update                 
    loop do
      Graphics.update            
      Input.update               
      update                   
      break if $scene != self    
    end
    Graphics.update
    pre_terminate                
    Graphics.freeze            
    terminate                   
  end 
  def initialize(actor_index = 0)
    @actor_index = actor_index
  end
  def start
    @actor = $game_party.members[@actor_index]
    @status_window_right = Window_Status_Right.new(@actor)
    @status_window_right.x = 544
    @status_window_right.contents_opacity = 0
    @status_window_left = Window_Status_Left.new(@actor)
    @status_window_left.x = -544
    @status_window_left.contents_opacity = 0
    @menu_back = Plane.new   
    @menu_back.bitmap = Cache.menu("Background")
    @menu_layout = Sprite.new 
    @menu_layout.bitmap = Cache.menu("Menu_Status_Layout") 
 end
  def perform_transition
    Graphics.transition(0)
  end 
  def pre_terminate
       for i in 0..25
       @status_window_right.x += 25
       @status_window_left.x -= 25 
       @status_window_right.contents_opacity -= 15      
       @status_window_left.contents_opacity -= 15
       @menu_back.ox += 1      
       Graphics.update  
       end
  end 
  def terminate
    @status_window_right.dispose
    @status_window_left.dispose
    @menu_back.dispose
    @menu_layout.dispose
  end
  def return_scene
    $scene = Scene_Menu.new(3)
  end
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Status.new(@actor_index)
  end
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Status.new(@actor_index)
  end
  def update
    @menu_back.ox += 1
    @status_window_right.contents_opacity += 10    
    @status_window_left.contents_opacity += 10   
    if @status_window_right.x  > 0
       @status_window_right.x -= 25
    elsif @status_window_right.x  <= 0
       @status_window_right.x = 0
       @status_window_right.contents_opacity = 255
    end
    if @status_window_left.x  < 0
       @status_window_left.x += 25
    elsif @status_window_left.x  >=0
       @status_window_left.x = 0
       @status_window_left.contents_opacity = 255      
    end    
    @status_window_right.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::R) or Input.trigger?(Input::RIGHT)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L) or Input.trigger?(Input::LEFT)
      Sound.play_cursor
      prev_actor
    end
    super
  end
end
#-------------------------------------------------
$mogscript = {} if $mogscript == nil
$mogscript["menu_status_aya"] = true
#-------------------------------------------------
Comment '5'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
577 기타 커스텀 페이지 스크립트 9 file 달표범 2009.09.07 3140
576 커서 애니메이션 12 file RPGbooster 2008.10.11 3127
575 메뉴 커서 모양 바꾸는 스크립트 16 아방스 2009.01.20 3959
574 전투 커먼이벤트 컷인 스크립트 15 허걱 2009.08.23 3399
573 키입력 커맨드 입력 스킬 시스템 17 file 양념통닼 2008.05.29 3345
572 기타 커맨드 시스템 7 file 허걱 2009.07.21 2856
571 액터 캐릭터에 다양한 효과주기 투명도 조절 9 아방스 2008.03.04 2943
570 메뉴 캐릭터설명을 심플하게! 스크립트. 13 file 할렘 2009.02.03 4848
569 기타 캐릭터 소개화면 16 file 좀비사냥꾼 2009.03.29 6044
568 메시지 캐릭터 대화상자 - Character's Textbox ver 1.0 6 아방스 2010.12.17 6456
567 기타 카지노 슬롯머신 15 file 아방스가 짱 2010.02.28 3024
566 전투 카운트배틀 시스템(스크립트 한글살짝번역) 10 file 카르와푸딩의아틀리에 2009.06.17 5520
565 장비 카드 슬롯 장비 스크립트[수정] 2 빙하 2012.11.11 2058
564 장비 카드 슬롯 장비 스크립트 18 file 아이미르 2011.10.13 4131
563 맵/타일 추가 맵칩 사용 - 공개 34 file 허걱 2009.08.19 6491
562 제작도구 최대한 한글로 변혁 했음Window Maker V1.0(대박) 15 Man... 2008.10.29 4673
561 파티 최대 파티 늘리는 스크립트 59 file 아방스 2008.03.09 5431
560 장비 초보적인 장비레벨 개념 스크립트 - 수정 및 덤 9 아이미르 2011.09.06 2657
559 스킬 체스트 팝업 3.0 9 file 파이어 2010.12.05 3037
558 체력 게이지바 스크립트 30 아방스 2008.09.01 5829
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 32 Next
/ 32