ページ 11

【解決済み】同じ座標で重なったイベントのID取得について

Posted: 2019年11月16日(土) 19:01
by ぼた餅
こんばんは。

二つのイベントが同じ座標で重なったとします。
このうちメモ欄に<AAA>と書かれたほうのイベントIDを取得したいのですが、どのようなスクリプトの記述をすればいいのでしょうか?
(前提として<AAA>同士が重なることはありません)


みなさんお力添えお願いいたします。

Re: 同じ座標で重なったイベントのID取得について

Posted: 2019年11月20日(水) 22:54
by みなわ
ぼた餅さま、こんばんは。

たとえば以下のような状況設定だったとして。
---------------------------------------
イベント1:イベントキャラに踏まれるのを待っているスイッチ
イベント2:マップ上を移動しているイベントキャラ(メモ欄に<AAA>)
---------------------------------------

以下のような設定を施したイベント1をマップに配置すれば、
他の<AAA>イベントが重なった瞬間、<AAA>のイベントIDを取得できます。
キャプチャ.PNG
ただし、ウェイトを入れているとはいえ並列で延々処理を繰り返しているため、
条件を満たした(用が済んだ)時点で、別のページに切り替える処理を追加したほうがよいでしょう。
(自分で書いてて怪しい実装なので、他に上手いやり方を教えてくれる方がいたら、そちらをおススメします)

Re: 同じ座標で重なったイベントのID取得について

Posted: 2019年11月21日(木) 18:08
by ぼた餅
みなわさん

返信ありがとうございます。
ご提示いただいた方法を試したところ、以下のエラー画面が発生してしまいます。
無題2.png
タイミングとしては
1 別イベントに話しかけ、<AAA>イベントを移動させる
2 <AAA>イベントがスイッチに接触
3 エラー画面
というものです。


スクリプトはいじらずに、そっくりそのまま写しております。
無題.png

どこを改善すればよいのでしょうか?

Re: 同じ座標で重なったイベントのID取得について

Posted: 2019年11月21日(木) 19:56
by みなわ
ぼた餅さま。

スクリプト if文内の
「 //$gameVariables.setValue(任意の変数ID, evtObj._eventId); 」
を、
「 $gameVariables.setValue(1, evtObj._eventId); 」に置き換え、
スクリプト末尾に付け足した
「 $gameVariables.setValue(1, evtObj._eventId); 」を削除。

これで動くかと思います。
(ただし、2つ以上の<AAA>イベントが同時にスイッチに接触した場合、おそらく後のほうのイベントIDが変数1にセットされます)
(前提条件で<AAA>同士が重なることはないとのことなので特に問題はないと思いますが、一応ご承知おきください)

Re: 同じ座標で重なったイベントのID取得について

Posted: 2019年11月21日(木) 22:35
by ぼた餅
無事希望通りの挙動を確認しました。
私の初歩的ミスだったのですね、お恥ずかしい限りです。

このたびはご丁寧に教えてくださりありがとうございます。
かなり悩まされていた問題でしたので、解決できてとても嬉しいです。