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 5398
577 풍선대화 메세지시스템 32 file RPGbooster 2008.10.11 6126
576 맵/타일 월드맵 스크립트 49 아방스 2008.09.07 6123
575 기타 게임시간&밤낮 54 file 허걱 2009.02.14 6111
574 몬스터 도감 [수정] 68 file RPGbooster 2008.10.08 6074
573 퀘스트 디아블로 스타일 퀘스트 시스템(번역) 38 file 훈덕 2009.02.03 6049
572 기타 캐릭터 소개화면 16 file 좀비사냥꾼 2009.03.29 6044
571 스킬 합성샾 스크립트 ^^ [동영상 포함] 6 file 아방스 2008.09.23 6038
570 전투 포켓몬 스크립트 한글화 완료 26 file 서울냥이 2010.10.11 6030
569 파티 대규모파티 KGC스크립 50 file RPGbooster 2008.10.08 6012
568 기타 작은 게이지바 표시 스크립트 44 file 허걱 2009.02.05 5979
567 메시지 대화창효과 8 078656577er 2009.10.20 5972
566 전투 ActBattle 전투 스크립트 13 file 사람이라면? 2010.08.16 5962
565 메뉴 창 크기 변경 스크립트 6 file Incubus 2008.05.25 5945
564 기타 빛 이펙트 71 file DEVIL<Li Patanis Roni Kraudus> 2008.06.06 5861
563 전투 지형에 따른 전투배경화면 표시 스크립트!! 30 file 레오 2008.09.17 5855
562 체력 게이지바 스크립트 30 아방스 2008.09.01 5829
561 액알 스크립트 33 츠키아 2008.08.11 5826
560 이동 및 탈것 3D 던젼 스크립트 38 아방스 2010.12.06 5772
559 스킬 무기 업그레이드 시스템 27 file 담먹캐 2009.11.01 5757
558 타이틀/게임오버 RPG VX - 타이틀 스크린 스크립트 23 아방스 2008.01.24 5740
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