イベント起動時の関数

アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

イベント起動時の関数

投稿記事by にゃたま » 2019年4月04日(木) 21:41

こんばんは。

イベントが起動している事を表す関数は$gameMap.isEventRunning()ということは
わかりますがイベントを起動したときに呼ばれるメソッド(function?)はありますか?
そして、イベントが終了したときに呼ばれるメソッドも知りたいです。
ざっと探したのですが私の探し方がわるいのか見つけられませんでした。
わかる方いましたらお返事くださいませ。

あとメソッドという言い方をしてますがこの言い方が正しいのかわかりません。
なんでも関数といったほうがよいのでしょうか…?
javascriptに疎いので読み方が違っていたら申し訳ございません。

アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: イベント起動時の関数

投稿記事by まっつUP » 2019年4月04日(木) 23:41

にゃたま様
お世話になります。

おそらく人により見解が分かれると思うのですが、直接的な見方をすると

開始、終了はそれぞれ以下になると思います。関数名がそのままなので分かりやすいと思います。
(引数は割愛)
Game_Interpreter.prototype.setup
Game_Interpreter.prototype.terminate
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: イベント起動時の関数

投稿記事by にゃたま » 2019年4月05日(金) 17:22

まっつUP様

こんばんは。お世話になります。
メソッド名を教えていただきありがとうございます。

この件でちょっとお聞きしたいことがあるのですが、
早速Game_Interpreter.prototype.setup及びGame_Interpreter.prototype.terminateに
console.logで出力してみたところ双方ともイベントの実行に関わらず、実行され続けてしまいました。
常にこのメソッド2つともが呼ばれ続けているようです。
もしまっつUP様のほうでこの現象が発生しないとなると
当方の導入プラグイン等の環境の問題になってきますが再現しませんでしょうか?
イベントに話しかけるなど(コモンイベントの実行含)したとき(つまりイベント実行時のみ)に
呼ばれるメソッドなどというものはないのでしょうか?
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: イベント起動時の関数

投稿記事by まっつUP » 2019年4月05日(金) 17:32

プラグインなしのデフォルトのプロジェクトで
通常のイベントあるいはコモンイベントであれば
console.logで確認したところ実行開始時と終了時に該当の関数が一回ずつ呼ばれていますね。
トリガーが「並列処理」のイベントの場合も実行される度に呼ばれているので
何度も呼ばれているのは並列処理が関係しているかもしれません。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: イベント起動時の関数

投稿記事by にゃたま » 2019年4月05日(金) 17:49

まっつUP様

お返事ありがとうございます。
並列処理のときに呼ばれ続ける件了解しました。

ここからは分かる範囲でご回答いただけると幸いですが、
当該メソッド内で並列処理をスルーするような書き方というのはありませんか?
プラグイン内でオーバーライド(この言葉も合っているかわかりませんが)するので
恐らくこれができたらやりたいことができるような気がします。
よろしくお願いいたします。
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: イベント起動時の関数

投稿記事by まっつUP » 2019年4月05日(金) 21:31

当該メソッド内で並列処理をスルー


というのがよく分からないのですが
マップ上の並列処理のイベントに関しては
Game_Event.prototype.updateParallel
が内部で
Game_Interpreter.prototype.setup
を呼び出しているのでここを弄ってみるとよいかもしれません。
おそらく呼び出し元の関係でイベントの状態で分岐することなどができると思います。

追記:詳細を完全に調べたわけではありませんが
Game_Interpreter側でイベントが並列処理かどうかを評価するのは難しいと判断しました。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: イベント起動時の関数

投稿記事by にゃたま » 2019年4月05日(金) 22:35

まっつUP様

いつも素早い回答ありがとうございます。

まっつUP さんが書きました:Game_Interpreter側でイベントが並列処理かどうかを評価するのは難しいと判断しました。


お調べ頂きありがとうございます。
Game_Interpreter側では並列処理かどうかは判断できないのですね…

Game_Event.prototype.updateParallelのあたりを調べてみたいと思います。
お忙しいなかお調べいただきありがとうございました。
解決には至りませんでしたが調べたらいけそうな気がしてきました。
またお世話になることもあるかもしれませんがその節はよろしくお願いいたします。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: イベント起動時の関数

投稿記事by にゃたま » 2019年4月05日(金) 23:49

一応こちらのトピックを立てた経緯ですが以下のトピックで
お聞きしたGalv_EventSpawnTimersというプラグインの改造を行っていまして
こちらのイベントに設定されたタイマー全体を一時停止することを
イベント起動時に自動的に行いたいがために当トピックを立てた次第です。
viewtopic.php?f=23&t=7633&p=27651#p27651

もし解決策などありましたら上記トピックにお返事いただけましたら幸いです。

“MV:質問” へ戻る