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 5430
77 미니맵 미니맵 스크립트(아랫거랑 다른거) 75 file 츠키아 2008.08.08 6146
76 액터 스탯 시스탬 29 츠키아 2008.08.08 4216
75 다음 레벨까지의 경험치 강제조정 13 정의로운녀석 2008.07.24 3273
74 상점 상점 아이템 목록 정리 14 정의로운녀석 2008.07.22 3771
73 변수/스위치 맵에 변수와 스위치 설정하기.. 5 정의로운녀석 2008.07.22 1985
72 영상 RMVX에서 AVI 재생 스크립트 12 Nymph 2008.07.07 4110
71 전투 [vx] ATB 시스템. 10 만들어보자꾸나 2008.07.05 4926
» 메뉴 지난 메뉴 스크립트에 이은 스테이터스 스크립트! 5 file 독사 2008.06.29 3546
69 저장 [퍼옴] Neo_Save_System ver.1.0 10 레오 2008.06.14 4451
68 기타 [KGC]한계돌파 9 방콕족의생활 2008.06.13 3602
67 메뉴 헬프 윈도우 중앙표시 스크립트 11 file 양념통닼 2008.06.10 3349
66 장비 장비 확장 및 EP 기능 18 만들어보자꾸나 2008.06.10 3656
65 맵/타일 타일셋 변경 10 file 만들어보자꾸나 2008.06.08 4371
64 맵/타일 타일 태그 및 4방향 설정 7 file 만들어보자꾸나 2008.06.08 2669
63 기타 빛 이펙트 71 file DEVIL<Li Patanis Roni Kraudus> 2008.06.06 5861
62 미니맵 미니맵 띠우는 스크립트 ^^ 37 file 아방스 2008.06.02 7248
61 제작도구 게임제작에 필수인 테스트 플레이 고속화 스크립트! ! ! ! 25 양념통닼 2008.05.30 4446
60 키입력 커맨드 입력 스킬 시스템 17 file 양념통닼 2008.05.29 3347
59 메뉴 창 크기 변경 스크립트 6 file Incubus 2008.05.25 5945
58 키입력 마우스 시스템 Simple Mouse System (수정) 42 Incubus 2008.05.24 5695
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32