제작 : rmb,gmb (둘다 저입니다!)
도움주신분(강좌) : 뮤님,운님
스크린샷 :
기타사항 : 엘범 부분은 자기가 하고 싶은거 하세요.
적용법 : 1번 스크립트는 Scene_Menu 삭제하고 스크립트 붙여 넣으시고 2번 스크립트는 그냥 추가하시면 되요.
스크립트(아래)
------------------------------------------1------------------------------------------------------------------------------
#==============================================================================
# 제작자:rpg making bot(rpg 부분은 game으로 해석해도 됩니다)
# 무단 배포시 법적 대응합니다.
#==============================================================================#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# 메뉴 화면의 처리를 실시하는 클래스입니다.
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# menu_index : 커멘드의 커서 초기 위치
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
def main
# 커멘드 윈도우를 작성
s1 = ""
s2 = ""
s3 = "엘범"
s4 = ""
s5 = ""
s6 = "게임 종료"
@command_window = Window_Command.new(160, [s3, s6])
@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
# 세이브 금지의 경우
if $game_system.save_disabled
# 세이브를 무효로 한다
@command_window.disable_item(4)
end
# 트란지션 실행
Graphics.transition
# 메인 루프
loop do
# 게임 화면을 갱신
Graphics.update
# 입력 정보를 갱신
Input.update
# 프레임 갱신
update
# 화면이 바뀌면 루프를 중단
if $scene != self
break
end
end
# 트란지션 준비
Graphics.freeze
# 윈도우를 해방
@command_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
# 윈도우를 갱신
@command_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)
# 불러오기 윈도우를 액티브하게 한다
@command_window.load
when 1 # 게임 종료
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 게임 종료 화면으로 전환해
$scene = Scene_End.new
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 # 장비
# 결정 SE 를 연주
$game_system.se_play($data_system.decision_se)
# 장비 화면으로 전환해
$scene = Scene_Equip.new(@status_window.index)
end
return
end
end
end
-----------------------------------------------2---------------------------------------------------------------------------
#==============================================================================
# 제작자:rpg making bot(rpg 부분은 game으로 해석해도 됩니다)
# 무단 배포시 법적 대응합니다.
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
#--------------------------------------------------------------------------
alias xrxs_mp7_initialize initialize
def initialize(x, y, width, height)
xrxs_mp7_initialize(x, y, width, height)
if $scene.is_a?(Scene_Menu) or
$scene.is_a?(Scene_Item) or
$scene.is_a?(Scene_Skill) or
$scene.is_a?(Scene_Equip) or
$scene.is_a?(Scene_Status) or
$scene.is_a?(Scene_End)
self.back_opacity = 160
end
end
end
#==============================================================================
# □ XRXS_MP7_Module
#==============================================================================
module XRXS_MP7_Module
def create_spriteset
# 스프라이트 세트를 작성
@spriteset_bgmap = Spriteset_Map.new
end
def dispose_spriteset
# 스프라이트 세트를 해방
@spriteset_bgmap.dispose
end
end
#==============================================================================
# ■ Scene_Menu
#==============================================================================
class Scene_Menu
include XRXS_MP7_Module
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
alias xrxs_mp7_main main
def main
create_spriteset
xrxs_mp7_main
dispose_spriteset
end
end
#==============================================================================
# ■ Scene_End
#==============================================================================
class Scene_End
include XRXS_MP7_Module
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
alias xrxs_mp7_main main
def main
create_spriteset
xrxs_mp7_main
dispose_spriteset
end
end
[첨부파일 자작 스크립트.png 다운로드] |