【解決済み】トリガー拡張プラグインで、「タッチ」時に重なっているイベントを全て実行したい

論理イヌ
記事: 186
登録日時: 2020年3月13日(金) 13:05

【解決済み】トリガー拡張プラグインで、「タッチ」時に重なっているイベントを全て実行したい

投稿記事by 論理イヌ » 2021年7月17日(土) 06:31

トリガー拡張プラグイン(https://paradre.com/post-1288/)を使用しています。
このプラグインは、タッチしたイベントを実行してくれる非常に素晴らしいプラグインですが、
イベントが重なった状態の時、上にあるイベントのみを実行します。
※新規プロジェクトでこのプラグインのみ入れた状態で上記動作ですので、仕様だと思います。

重なったイベントがあったとき、両方のイベントを実行するようにするには、どのようにしたらいいでしょうか?
できれば、重なったイベントの処理順番を、たとえばID小さい順などに決められたら嬉しいです……できればですが……

状況を再現するサンプルプロジェクトを作成しました(ギガファイル便/60日保管/パスワードなし)。
https://52.gigafile.nu/0915-d6048b67784 ... 8942e0157d

今作っているゲームの根幹に関わる問題のため、ご協力いただけますと幸いです。お願いいたします。
最後に編集したユーザー 論理イヌ on 2021年7月17日(土) 14:47 [ 編集 1 回目 ]

名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: トリガー拡張プラグインで、「タッチ」時に重なっているイベントを全て実行したい

投稿記事by 名無し蛙 » 2021年7月17日(土) 13:06

どうもこんにちは
思っていた構造と違うけど多分374行目のif文を外せば良い気がしますねぇ

コード: 全て選択

if (!$gameMap.isEventRunning()) {
}
構造上、パッチを作るのも面倒なのでどこかに変更履歴を記した上で直接コメントアウトした方が早いかな?
恐らくイベントID順に実行されると思います
「イベント実行中はタッチイベント起動を封印する」
という条件分岐を消したのでそれに伴う副作用が予想されます。

要約すればクリックすると._statingというイベント起動フラグが立ち
イベント実行中でない時にイベントIDが若い順に_startingフラグが立っているかチェックして
立っていればそのイベントを起動する、という処理をしているので
重大な問題が発生するとは考えづらいですけどまた別の意図しない挙動をするかもしれませんね。
その辺は動作チェックして検証しない事には分かりません。
論理イヌ
記事: 186
登録日時: 2020年3月13日(金) 13:05

Re: トリガー拡張プラグインで、「タッチ」時に重なっているイベントを全て実行したい

投稿記事by 論理イヌ » 2021年7月17日(土) 14:46

>名無し蛙さん
教えていただいたところをコメントアウトして確認したところ、バッチリ両方のイベントが、イベントID順に実行してくれました。

「イベント実行中はタッチイベント起動を封印する」
という条件分岐を消したのでそれに伴う副作用が予想されます。

要約すればクリックすると._statingというイベント起動フラグが立ち
イベント実行中でない時にイベントIDが若い順に_startingフラグが立っているかチェックして
立っていればそのイベントを起動する、という処理をしているので
重大な問題が発生するとは考えづらいですけどまた別の意図しない挙動をするかもしれませんね。
その辺は動作チェックして検証しない事には分かりません。

コメントアウト部分の説明と、副作用の説明もありがとうございます。
また、プラグインの作り方の説明もありがとうございます。
最初は「???」しか浮かびませんでしたが、「フラグをチェックして実行」という知識で挑んでみたら、
なんとなくですが読み進めることができました。

知識が足りず、ツクールの機能をオーバーライドしている部分と、プラグインで作り込んでいる機能とが、
いまいち掴めなかったので、闇に光が差しました。ありがとうございます!!

“MV:質問” へ戻る