イベントの強制終了

よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

イベントの強制終了

投稿記事by よしだとものり » 2017年9月16日(土) 16:45

方法はあるようなのですが、コードの書き方が分かりません。

現在、ツクールのエディタでイベントからプラグインを呼び出しています。
以下のようなイベントがあったとして、プラグインコマンドからイベントを
終了できたら楽なのですが、簡単な方法があれば教えて頂けたら助かります。

手間がかかるのであれば、プラグインコマンドで変数にエラーコードを
入れて、イベント側でエラー処理を行いますが、できればプラグインコマンド側で
イベントを抜けられれば助かります。


イベント

処理1
プラグインコマンド 1

処理2
...

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: イベントの強制終了

投稿記事by しぐれん » 2017年9月16日(土) 19:15

全てのイベントコマンドはcommand000の形でイベントコードIDと1対1の形で対応しています。
Game_Interpreterクラスのメソッドを調べて、イベントの中断の処理に該当するイベントを探せば行けます。

command115が該当します。
プログラムカウンタを末尾に移動させるみたいな処理をしています。
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: イベントの強制終了

投稿記事by よしだとものり » 2017年9月16日(土) 19:23

ちょっと調べてみます。
ただ、それ以外にもプラグイン側で
this.setupChoices([["選択肢1","選択肢2","選択肢3","選択肢4","選択肢5","選択肢6"],キャンセル時の選択,デフォルト,ウィンドウ位置,背景]);

↑が動けば問題ないのですが、thisは渡してもダメみたいですし、そのままthisと書いてもダメでした;;
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: イベントの強制終了

投稿記事by しぐれん » 2017年9月16日(土) 19:35

プラグイン側であれば、thisが状況によって異なります。
thisがGame_Interpriterを指す形にならないとsetupChoices()は機能しません。
プラグインコマンドを呼び出した部分ではthisはGame_Interpriterを指しますが、実際のコードがないと分かりません。
それと.txtだとコードが整形されてないので読めないです。

また、setupChoices()の引数はString[]ではないです。
command102にブレイクポイントを置いて確認してください。
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: イベントの強制終了

投稿記事by よしだとものり » 2017年9月16日(土) 20:23

ありがとうございます。
画像が見にくいですが添付します。
ソースは少し長いと思います。

init関連は無視しても大丈夫です
lobby_ListViewからlobby_List_switch→lobby_List_switch2と流れています。
lobby_ListViewでリストを出しlobby_List_switchが選択肢のswitch文にあたるところです。
lobby_List_switch2は同じようなことをしてるので見なくてもいいと思います。

あと動作確認していないので、変な箇所があると思います。
添付ファイル
無題.png
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: イベントの強制終了

投稿記事by よしだとものり » 2017年9月16日(土) 20:28

追記ですが、プログラムではthisの渡し方が分からなかったので書いていません。

プラグインコマンドから
lobby_List_switch this
としてプラグイン関数からthisをlobby_List_switchに渡して

lobby_List_switch(thisobj){
thisobj.setupChoices([["選択肢1","選択肢2","選択肢3","選択肢4","選択肢5","選択肢6"],キャンセル時の選択,デフォルト,ウィンドウ位置,背景]);
としていました。
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: イベントの強制終了

投稿記事by しぐれん » 2017年9月16日(土) 20:44

プラグインコマンドで渡された情報は全て文字列になるので、このままでは動きません。
thisと書いても、ただの文字列のthisとして評価されます。
プラグインコマンドの部分にブレークポイントを置いて確認してみてください。
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: イベントの強制終了

投稿記事by よしだとものり » 2017年9月16日(土) 21:45

いつも有難うございます。

今のところ、本格的にthisとかprototypeの使い方を覚える時間も頭脳も
ないので、今回はプラグイン側から変数にエラーコードを保存して
イベント側でエラー処理することにします。

オンラインバトルとバザーが形になって、あるていど余裕ができたら
考えてみます。

“MV:質問” へ戻る