습작님이 올려주신 ESG를 사용하다가 직접 수정을 해보았습니다.
그러나 오류가 나더군요.
오류는 55번째줄이라는데 스크립트는 잘 모르는데다 또 오류가 날 것 같아서 올려봅니다.
전문 올립니다.
(기본 RGSS2에 있는 Scene Menu입니다.)
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# 메뉴 화면의 처리를 실시하는 클래스입니다.
#==============================================================================
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# menu_index : 커멘드의 커서 초기 위치
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# ● 개시 처리
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@status_window = Window_MenuStatus.new(160, 0)
end
#--------------------------------------------------------------------------
# ● 종료 처리
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
super
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
#--------------------------------------------------------------------------
# ● 커멘드 윈도우의 작성
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::item
s2 = game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
if $game_party.members.size == 0 # 파티 인원수가 0 명의 경우
@command_window.draw_item(0, false) # 아이템을 무효화
@command_window.draw_item(1, false) # 스킬을 무효화
@command_window.draw_item(2, false) # 장비를 무효화
@command_window.draw_item(3, false) # 스테이터스를 무효화
end
if $game_system.save_disabled # 세이브 금지의 경우
@command_window.draw_item(4, false) # 세이브를 무효화
end
end
#--------------------------------------------------------------------------
# ● 커멘드 선택의 갱신
#--------------------------------------------------------------------------
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0 # 아이템
$scene = Scene_Item.new
when 1 # 게임 종료
$scene = Scene_End.new
end
end
end
#--------------------------------------------------------------------------
# ● 액터 선택의 개시
#--------------------------------------------------------------------------
def start_actor_selection
@command_window.active = false
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
#--------------------------------------------------------------------------
# ● 액터 선택의 종료
#--------------------------------------------------------------------------
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
#--------------------------------------------------------------------------
# ● 액터 선택의 갱신
#--------------------------------------------------------------------------
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when 1 # 스킬
$scene = Scene_Skill.new(@status_window.index)
when 2 # 장비
$scene = Scene_Equip.new(@status_window.index)
when 3 # 스테이터스
$scene = Scene_Status.new(@status_window.index)
end
end
end
end