今すぐ思いつくのは2種類、
システムへの依存度に違いがあるので、用途に合わせて修正が必要かも
(1)処理に無駄は発生しますが、以下のような方法はあります。
コモンEvの並列実行から、決定キーが押された時、
マップ内の全マップEvのIDを取得してリスト化(マップに入った時点での事前作成可能)した上で、各IDに注目してループ処理
【変数操作+】から取得できる「起動範囲拡張X・Y」を誤差範囲として、
キー押下時の「各マップEv座標」と「主人公座標」の差で判定する.
(主人公の向きも加算するなら、視線先と足元で2度判定?)
判定に合致したマップEvのページ処理を呼び出す.
※【変数操作+】から「現在の起動ページ」を取得することで、ページ数を相対的に呼び出せば 同イベントIDに複数の処理を割り当て可能
※マップEvの全ID取得については、ID抜けを考慮するなら以下のような処理で確認可能
・【変数操作+】から「現在マップのマップイベント数」を取得
・変数を用いてID:0から順に【変数操作+】から「イベントID」を取得(存在しない場合-1が返る)
・発見数が前述の「現在マップのマップイベント数」に到達するまでループ
利点:マップEvの起動中ページや起動条件に左右されない
欠点:ある程度、ウディタのコマンド知識が必要
(2)あるいは、ユーザー側で書くコマンド数を少なくするなら、
全てのイベントの最上ページの起動条件を「イベントと接触」に設定、
イベント内容は、マップEvのIDを、*特定変数(複数判定なら文字列へ)に保存するものとする
コモンEvの並列実行から、決定キーを押した時に、*特定変数に保存されたマップEvのイベント内容を呼び出す(*特定変数は、フレーム毎に初期化が必須)
利点:作成が楽
欠点:マップEvの実行ページがほぼ固定されてしまう、主人公の向きが考慮されない
なお、これらについては、
マップEvのイベント内容の呼び出しは、【イベント挿入】から
別イベントの実行中に呼び出さないために、「システム変数13」を確認する必要もあります。
こんな感じでいかがでしょうか?