=begin
========================================
マップイベントを呼び出すスクリプトです。
イベントコマンドのスクリプトから実行します。
本スクリプトはRGSS3専用です。
●使い方
マップイベントID:4、ページ3を呼び出したい。
call_map_event(4,3)
イベントページ無指定でマップイベント5を呼び出したい。
start_map_event(5)
このように変数で指定することも可能です。
call_map_event($game_variables[1],$game_variables[2])
●ページ指定でマップイベントを呼び出す。
call_map_event(id,page)
起動後の@event_idは指定先のイベントIDに依存します。
●ページ無指定でマップイベントを呼び出す。
start_map_event(id)
起動後の@event_idは指定先のイベントIDに依存します。
●ページ指定でマップイベントを呼び出す。
call_map_event_carried_id(id,page)
起動後の@event_idは指定元のイベントIDに依存します。
但し、指定元の@event_idが0の場合はイベントは実行されません。
●ページ無指定でマップイベントを呼び出す。
start_map_event_carried_id(id)
起動後の@event_idは指定元のイベントIDに依存します。
但し、指定元の@event_idが0の場合はイベントは実行されません。
●他マップのイベントをページ指定で呼び出す。
call_other_map_event(map_id,event_id,page)
他マップのイベントをページ指定で呼び出します。
========================================
=end
#==============================================================================
# ■ Vocab
#------------------------------------------------------------------------------
# 用語とメッセージを定義するモジュールです。定数でメッセージなどを直接定義す
# るほか、グローバル変数 $data_system から用語データを取得します。
#==============================================================================
module Vocab
EventOverflow = "マップイベントまたはコモンイベントの呼び出しが上限を超えました。"
end
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
#☆カスタム
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# ● IDからイベントをページ指定で起動
# id : 起動するイベントのID
# page : 起動するイベントのページ
#--------------------------------------------------------------------------
def call_map_event(id,page)
event = $game_map.events[id]
@child = Game_Interpreter.new(@depth+1)
@child.setup(event.instance_variable_get(:@event).pages[page-1].list,id)
@child.run
end
#--------------------------------------------------------------------------
# ● IDからイベントを起動
# id : 起動するイベントのID
#--------------------------------------------------------------------------
def start_map_event(id)
event = $game_map.events[id]
@child = Game_Interpreter.new(@depth + 1)
@child.setup(event.list, id)
@child.run
end
#--------------------------------------------------------------------------
# ● IDからイベントをページ指定で起動(イベントIDは引き継ぎ)
# id : 起動するイベントのID
# page : 起動するイベントのページ
#--------------------------------------------------------------------------
def call_map_event_carried_id(id,page)
event = $game_map.events[id]
@child = Game_Interpreter.new(@depth+1)
@child.setup(event.instance_variable_get(:@event).pages[page-1].list,@event_id)
@child.run
end
#--------------------------------------------------------------------------
# ● IDからイベントを起動(イベントIDは引き継ぎ)
# id : 起動するイベントのID
#--------------------------------------------------------------------------
def start_map_event_carried_id(id)
event = $game_map.events[id]
@child = Game_Interpreter.new(@depth + 1)
@child.setup(event.list, @event_id)
@child.run
end
#--------------------------------------------------------------------------
# ● 別マップのマップイベントを呼び出す。(IDは引き継ぎ。)
# map_id : 起動するイベントがあるマップのID
# event_id : 起動するイベントID
# page : 起動するイベントのページ
#--------------------------------------------------------------------------
def call_other_map_event(map_id,event_id,page)
if @map_id != map_id
event = load_data(sprintf("Data/Map%03d.rvdata2", map_id)).events[event_id]
event = Game_Event.new(map_id, event)
else
event = $game_map.events[id]
end
@child = Game_Interpreter.new(@depth+1)
@child.setup(event.instance_variable_get(:@event).pages[page-1].list,@event_id)
@child.run
end
end