Scene_ItemBase의 가장 마지막 부분을 보면
#--------------------------------------------------------------------------
# ● アイテムの使用
#--------------------------------------------------------------------------
def use_item
play_se_for_item
user.use_item(item)
use_item_to_actors
check_common_event
check_gameover
@actor_window.refresh
end
#--------------------------------------------------------------------------
# ● コモンイベント予約判定
# イベントの呼び出しが予約されているならマップ画面へ遷移する。
#--------------------------------------------------------------------------
def check_common_event
SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
end
end
이런 식으로 되어 있는데 효과 항목에 커먼이벤트가 존재하는 아이템(이하 스킬도 포함)을 사용한 뒤
씬매니저를 통해 메뉴를 닫고 필드 화면을 보여주는 작동을 하게 되어있습니다
이걸 특정 조건, 가령 스위치나 변수, 메모란에 키워드를 적어 넣는 것으로
커먼이벤트가 존재하더라도 메뉴창이 닫히지 않게끔 할 수는 없을까요?
밑에서 세번째 줄을 아예 없애버리면 커먼이벤트가 포함된 아이템을 사용해도 메뉴가 닫히지 않습니다만
메뉴가 닫혀야 하는 경우도 필요하기에 닫히는 경우, 닫히지 않는 경우를 조건부로 나눌 수 있게끔 도움을 요청해봅니다
if 이하의 조건을 바꾸면 될 것 같긴 한데 rgss 언어를 전혀 몰라서...
커먼 이벤트는 스크립트 구조상 Scene_Map 에서만 실행됩니다.
그래서 (커먼 이벤트를 바로 실행하기 위해) 맵으로 돌아가는 겁니다.
class Scene_ItemBase < Scene_MenuBase
def check_common_event
return unless item.note.slice(/<Exit(?:=|= | = )(\d+)>/i)[$1].to_i == 1 rescue return
return unless $game_temp.common_event_reserved?
SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
end
end
일단 이런식으로 아이템 쪽에 있는 메모란을 체크해줄 수 있습니다.
<Exit=1> 이면 커먼 이벤트가 설정되어있는 아이템 사용 시에 메뉴를 빠져나갑니다.
그러나 <Exit=0> 이거나 설정되어있지 않으면 메뉴가 종료되지 않습니다.
그런데 이렇게 되면, 메뉴를 수동으로 끈 후에나 커먼이벤트가 실행될 겁니다.