[背景]
アクションRPGを以下のサイトを参考に制作しています。
https://blogs.yahoo.co.jp/fermiumbay2/41545381.html
[質問]
上記サイトのようにコモンイベントにて、敵への攻撃エフェクトを実装しています。
しかし、マップ上での会話時、決定ボタン押下と同時に攻撃エフェクトが発動してしまいます。
会話中であることをスイッチとして(会話開始オン、会話終了オフ)イベントに実装して試しましたが、結局、イベントが発動してしまいました。
会話中に決定ボタン押下トリガーのコモンイベントが発動出来ない方法を知っていたら教えて下さい。
よろしくお願いします。
【解決済み】会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
Re: 会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
コモンイベントの内容がテキストで貼ってあればアドバイスしやすいです。
単純な実装だと仮定し、攻撃エフェクトの発生は並列処理で実装・会話も通常の方法で実装と仮定します。
多分コモンイベントはこんな感じなんだろうと思います。
一つの方法としては、コモンイベントを2段階にする方法があります。
ボタンを押した際にすぐに攻撃エフェクトを出すのではなく、攻撃エフェクト発生を行うコモンイベントのトリガーとなるスイッチをONにするようにしてみてはどうでしょうか?
こうすれば、エフェクト呼び出し→会話→エフェクト発生の順で処理が行われると思います。
単純な実装だと仮定し、攻撃エフェクトの発生は並列処理で実装・会話も通常の方法で実装と仮定します。
多分コモンイベントはこんな感じなんだろうと思います。
コード: 全て選択
◆条件分岐:会話中がOFF
◆注釈:攻撃エフェクトを出す処理
◆
:分岐終了
一つの方法としては、コモンイベントを2段階にする方法があります。
ボタンを押した際にすぐに攻撃エフェクトを出すのではなく、攻撃エフェクト発生を行うコモンイベントのトリガーとなるスイッチをONにするようにしてみてはどうでしょうか?
こうすれば、エフェクト呼び出し→会話→エフェクト発生の順で処理が行われると思います。
現在、プラグイン依頼はお休み中です。
Re: 会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
しぐれん さんが書きました:コモンイベントの内容がテキストで貼ってあればアドバイスしやすいです。
単純な実装だと仮定し、攻撃エフェクトの発生は並列処理で実装・会話も通常の方法で実装と仮定します。
多分コモンイベントはこんな感じなんだろうと思います。コード: 全て選択
◆条件分岐:会話中がOFF
◆注釈:攻撃エフェクトを出す処理
◆
:分岐終了
一つの方法としては、コモンイベントを2段階にする方法があります。
ボタンを押した際にすぐに攻撃エフェクトを出すのではなく、攻撃エフェクト発生を行うコモンイベントのトリガーとなるスイッチをONにするようにしてみてはどうでしょうか?
こうすれば、エフェクト呼び出し→会話→エフェクト発生の順で処理が行われると思います。
しぐれんさん
返答ありがとうございます。
コモンイベントは以下のように実装しています。
イベントは2つに分けています・・・
コード: 全て選択
イベント①:キー入力受付
◆条件分岐:会話フラグがオフである(会話中はオン)
◆条件分岐:ボタン[決定]が押されている
◆処理~
◆スイッチ操作:攻撃エフェクト開始=オン
:分岐終了
:分岐終了
イベント②:攻撃エフェクト
※スイッチ:攻撃エフェクト開始=オン
◆処理
Re: 会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
似たようなイベントを書いてダメでしたので別案を提示します。
攻撃エフェクトを出す前の処理で、プレイヤーの目の前に会話可能なイベントが存在するかをチェックして存在したらエフェクトを出さないようにするのはどうでしょうか?
正面にいるのが敵キャラであれば、そのままエフェクトを再生します。
Game_MapにeventsXy()などのイベントの座標を引数にして指定した座標のイベントを取得する関数があるので、これで存在チェックはできると思います。
攻撃エフェクトを出す前の処理で、プレイヤーの目の前に会話可能なイベントが存在するかをチェックして存在したらエフェクトを出さないようにするのはどうでしょうか?
正面にいるのが敵キャラであれば、そのままエフェクトを再生します。
Game_MapにeventsXy()などのイベントの座標を引数にして指定した座標のイベントを取得する関数があるので、これで存在チェックはできると思います。
現在、プラグイン依頼はお休み中です。
Re: 会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
Slip様
お世話になります。
攻撃エフェクトとやらが発生するイベントの実行内容の先頭に
以下の処理を加えるとよいでしょう。
◆条件分岐:スクリプト:!$gamePlayer.canMove()
◆イベント処理の中断
◆
:分岐終了
(本来はイベント処理の中断の前に条件をオフにする処理を加えます。これは例なので入れてません。)
場合によって会話スイッチの条件も入れておいてもよいでしょう。
あと並列処理の初めか終わりにはウェイトを入れたほうがいいです。
ボタン[決定]が押されているを使う上でのメリットでもありますので。
お世話になります。
攻撃エフェクトとやらが発生するイベントの実行内容の先頭に
以下の処理を加えるとよいでしょう。
◆条件分岐:スクリプト:!$gamePlayer.canMove()
◆イベント処理の中断
◆
:分岐終了
(本来はイベント処理の中断の前に条件をオフにする処理を加えます。これは例なので入れてません。)
場合によって会話スイッチの条件も入れておいてもよいでしょう。
あと並列処理の初めか終わりにはウェイトを入れたほうがいいです。
ボタン[決定]が押されているを使う上でのメリットでもありますので。
RPGで笑顔を・・・
ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup
github
https://github.com/mattuup/RPGMakerMZ
ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup
github
https://github.com/mattuup/RPGMakerMZ
Re: 会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
しぐれん さんが書きました:似たようなイベントを書いてダメでしたので別案を提示します。
攻撃エフェクトを出す前の処理で、プレイヤーの目の前に会話可能なイベントが存在するかをチェックして存在したらエフェクトを出さないようにするのはどうでしょうか?
正面にいるのが敵キャラであれば、そのままエフェクトを再生します。
Game_MapにeventsXy()などのイベントの座標を引数にして指定した座標のイベントを取得する関数があるので、これで存在チェックはできると思います。
しぐれんさん
再度の回答ありがとうございます!
前提として、「会話のトリガーがプレイヤーの目の前の会話可能イベントと話さない」ことなので
上記の方法では解決できないです(;_;)
Re: 会話時に決定ボタンをトリガーとするコモンイベントを発動出来なくしたい
まっつUP さんが書きました:Slip様
お世話になります。
攻撃エフェクトとやらが発生するイベントの実行内容の先頭に
以下の処理を加えるとよいでしょう。
◆条件分岐:スクリプト:!$gamePlayer.canMove()
◆イベント処理の中断
◆
:分岐終了
(本来はイベント処理の中断の前に条件をオフにする処理を加えます。これは例なので入れてません。)
場合によって会話スイッチの条件も入れておいてもよいでしょう。
あと並列処理の初めか終わりにはウェイトを入れたほうがいいです。
ボタン[決定]が押されているを使う上でのメリットでもありますので。
まっつUPさん
回答ありがとうございます!
上記の通りに修正したところ、攻撃エフェクトが発動しなくなりました!
ありがとうございます!
大変助かりました!