스크립트란으로 가서 Scene_Menu 를 전부 지우시고 다음을 붙여넣기 해주세요
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# 메뉴 화면의 처리를 실시하는 클래스입니다.
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# menu_index : 커멘드의 커서 초기 위치
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
def main
# 커멘드 윈도우를 작성
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "스테이터스"
@command_window = Window_Command.new(160, [s1, s2, s3, s4])
@command_window.index = @menu_index
# 파티 인원수가 0 명의 경우
if $game_party.actors.size == 0
# 아이템, 스킬, 장비, 스테이터스를 무효화
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# 플레이 시간 윈도우를 작성
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 224
# 보수 윈도우를 작성
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320
# 골드 윈도우를 작성
@gold_window = Window_Gold.new
@gold_window.x = 0
@gold_window.y = 416
# 스테이터스 윈도우를 작성
@status_window = Window_MenuStatus.new
@status_window.x = 160
@status_window.y = 0
# 트란지션 실행
Graphics.transition
# 메인 루프
loop do
# 게임 화면을 갱신
Graphics.update
# 입력 정보를 갱신
Input.update
# 프레임 갱신
update
# 화면이 바뀌면 루프를 중단
if $scene != self
break
end
end
# 트란지션 준비
Graphics.freeze
# 윈도우를 해방
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
# 윈도우를 갱신
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
# 커멘드 윈도우가 액티브의 경우: update_command 를 부른다
if @command_window.active
update_command
return
end
# 스테이터스 윈도우가 액티브의 경우: update_status 를 부른다
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# ● 프레임 갱신 (커멘드 윈도우가 액티브의 경우)
#--------------------------------------------------------------------------
def update_command
# B 버튼이 밀렸을 경우
if Input.trigger?(Input::B)
# 캔슬 SE 를 연주
$game_system.se_play($data_system.cancel_se)
# 맵 화면으로 전환해
$scene = Scene_Map.new
return
end
# C 버튼이 밀렸을 경우
if Input.trigger?(Input::C)
# 파티 인원수가 0 명으로, 세이브, 게임 종료 이외의 커멘드의 경우
if $game_party.actors.size == 0 and @command_window.index < 4
# 버저 SE 를 연주
$game_system.se_play($data_system.buzzer_se)
return
end
# 커멘드 윈도우의 커서 위치에서 분기
case @command_window.index
when 0 # 아이템
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 아이템 화면으로 전환해
$scene = Scene_Item.new
when 1 # 스킬
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 스테이터스 윈도우를 액티브하게 한다
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # 장비
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 스테이터스 윈도우를 액티브하게 한다
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # 스테이터스
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 스테이터스 윈도우를 액티브하게 한다
@command_window.active = false
@status_window.active = true
@status_window.index = 0
end
return
end
end
#--------------------------------------------------------------------------
# ● 프레임 갱신 (스테이터스 윈도우가 액티브의 경우)
#--------------------------------------------------------------------------
def update_status
# B 버튼이 밀렸을 경우
if Input.trigger?(Input::B)
# 캔슬 SE 를 연주
$game_system.se_play($data_system.cancel_se)
# 커멘드 윈도우를 액티브하게 한다
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# C 버튼이 밀렸을 경우
if Input.trigger?(Input::C)
# 커멘드 윈도우의 커서 위치에서 분기
case @command_window.index
when 1 # 스킬
# 이 액터의 행동 제한이 2 이상의 경우
if $game_party.actors[@status_window.index].restriction >= 2
# 버저 SE 를 연주
$game_system.se_play($data_system.buzzer_se)
return
end
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 스킬 화면으로 전환해
$scene = Scene_Skill.new(@status_window.index)
when 2 # 장비
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 장비 화면으로 전환해
$scene = Scene_Equip.new(@status_window.index)
when 3 # 스테이터스
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 스테이터스 화면으로 전환해
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
7090 | 멍멍 [6] | 아덜워 | 2010.01.31 | 185 |
7089 | 에..음...2k에있는 지정변수 이벤트id취득을 xp에서 비슷하게나마 할방법이 없을까요; | F☆ | 2010.01.31 | 214 |
7088 | [RPG VX]턴알 전투시 몬스터와 캐릭터 | 쉐로, | 2010.01.29 | 125 |
7087 | 게임을 찾고 있습니다. | 쉐로, | 2010.01.29 | 199 |
7086 | 알만툴 2000에서 DirectDraw Error가 뜹니다. | 쉐로, | 2010.01.29 | 174 |
7085 | VX사용중인데요 전체화면테스트시에 화면깜빡임이 너무 심해요 | 쉐로, | 2010.01.29 | 189 |
7084 | [RPG VX]턴알 전투시 몬스터와 캐릭터 [1] | 소바 | 2010.01.28 | 363 |
7083 | 게임을 찾고 있습니다. [3] | 로버트할리 | 2010.01.27 | 237 |
7082 | 살려줘요!!! 기다림의끝 판로2 ! | 김태화와왕 | 2010.01.23 | 164 |
7081 | [vx]한계돌파 스크립트 질문 다시 올립니다. | B.S.K | 2010.01.23 | 157 |
7080 | [vx]한계돌파 스크립트 사용시 아이템 수량제한이 0이 되어버리는 문제 | Vermond | 2010.01.23 | 81 |
7079 | 알만툴 2000에서 DirectDraw Error가 뜹니다. [1] | 욀 | 2010.01.23 | 714 |
7078 | [vx]한계돌파 스크립트 사용시 아이템 수량제한이 0이 되어버리는 문제 [1] | B.S.K | 2010.01.23 | 172 |
7077 | 스위치 변수에 관한 건데요 | B.S.K | 2010.01.23 | 94 |
7076 | [vx]메세지 뜨는 속도 조절하는 법 | B.S.K | 2010.01.23 | 272 |
7075 | 스위치 변수에 관한 건데요 | 호허 | 2010.01.22 | 288 |
» | 메뉴 시스템 편집 | 카리스 | 2010.01.22 | 79 |
7073 | [rpgvx]미연시처럼 앨범 넣기 | 카리스 | 2010.01.22 | 388 |
7072 | 메뉴 시스템 편집 | 마리엣타 | 2010.01.22 | 214 |
7071 | 이미지를 사용할때.... [5] | 네잎클로버 | 2010.01.21 | 257 |