マップでステート中、コモンイベントを呼び出す

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

マップでステート中、コモンイベントを呼び出す

投稿記事by にゃたま » 2016年5月19日(木) 07:57

いつもお世話になっております。
マップにいてステートにかかっている間、一歩進むごとに
コモンイベントを呼び出すようなことはできないでしょうか?
1歩ごとでなくても3歩とか5歩ごとに変更もできると嬉しいです。
例えば数歩進むごとに画面揺らしたり色調変化(フラッシュ)させたいです。
プラグインがなくても可能ならその方法とかご教授いただけないでしょうか?
良いプラグインがありましたら是非お願いします。
よろしくお願いします。

ゆわか
記事: 306
登録日時: 2015年11月10日(火) 20:08
連絡を取る:

Re: マップでステート中、コモンイベントを呼び出す

投稿記事by ゆわか » 2016年5月19日(木) 11:28

じゃあ、プラグインを使わない方法を一つ。

並列処理のマップイベントまたはコモンイベントを1つ用意します。
あとは、変数を3つ用意。(前の歩数、現在の歩数、歩数の差)

以下入力例です。

--------------------------------------------------------
変数の操作で、現在の歩数を取得
歩数の差に、現在の歩数を代入
歩数の差 ー 前の歩数を計算
条件分岐で歩数の差が3または5以上の時に
特定のステートにかかっていたら
 画面をシェイクしたりフラッシュするエフェクトイベントを挿入し
 前の歩数に現在の歩数を代入
条件を満たしていない場合はなにもしない
並列なのでまた勝手に最初の処理に戻る
------------------------------------------------------------

以上。

エフェクトイベントの条件を満たした場合は、前の歩数を更新するのをお忘れなく。
なおエフェクトイベントの条件を満たしていないのに、前の歩数を更新すると
いつまでもエフェクトイベントの条件が満たされず、イベントが起こらないので注意。

パーティ人数が多くて、一人一人ステートの判定をするのが大変な場合は
条件分岐にスクリプトを使う方法もある。
やや上級向きなので、以下の説明でわからない場合は、地道に一人一人条件分岐した方がいいです。

$gameActors.actor($gameVariables.value(1)).isStateAffected(10)
例は、変数1番のIDのアクターが、ID10番のステートにかかっている、という条件です。
(参考:ツクールMVスクリプトリファレンスwikiさん)

これをループイベントを使って、変数1番の内容を+1していくことにより
アクターID1~最後のIDまでのステートを調べていきます。
存在するIDの最後まで調べたら、処理を停止しないと、存在しないIDを調べようとするのでエラーになります。
ご注意下さい。

以下入力例です。

-----------------------------------------------------
変数1番に0を代入
ループ
 変数1番に+1
 条件分岐 $gameActors.actor($gameVariables.value(1)).isStateAffected(10)
  変数1番のキャラが10番のステートにかかっていたら以下を実行
   画面をシェイク等と前の歩数に現在の歩数を代入して、ループを終了またはイベントの中断
 条件を満たしていない場合は以下を実行
 条件分岐 変数1番=パーティの最大人数(現在のパーティ人数ではありません、データベースに存在する最大値です)
  今調べたアクターIDが最後のIDだったら、ループを終了またはイベントの中断
以上繰り返し(ループはここまで、という意味だよ)
-------------------------------------------------------

以上。

ループイベントの後も続けてイベントを入れたい場合は、ループの終了。
ループイベントの後何もイベントがないなら、イベントの中断でOK
状況に応じて使い分けてね。

なお、上の例では
パーティメンバーにいないキャラも調べるので、別れるときにはそのキャラのステートを解除しておかないと
誰もそのステートにかかってないのに、エフェクトだけかかるみたいなことになります。
ご注意を。

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

Re: マップでステート中、コモンイベントを呼び出す

投稿記事by にゃたま » 2016年5月19日(木) 21:44

ゆわか様

はじめまして。お返事ありがとうございます。
プラグインを使わずして出来てしまうなんてすごいです!
上級のスクリプトを使ってアクター全員分やってしまう技勉強になりました。
とりあえずパーティの人数は1〜2で考えておりましたのでそこまでせずとも
一人一人でなんとかなりそうです。
まだ実践はしてないので今はお礼だけになってしまいますが、
一度試してみて再度報告したいと思います。
スクリプトの方解析に時間かかりそうなので試せるのがいつになるかわかりませんが、
こちらも試作次第、逐一報告していきたいです。
プラグインはスクリプトを使わなくても簡単に出来る方法があればこれからも募集します。
とりあえずなんとななりそうです。本当にありがとうございます!!

話は変わりますがゆわか様は公式サンプルの鍵守の勇者を開発された方ですよね??
公式に採用されてしまうなんてすごいです!
まだクリアはしてませんがツクる上で参考にさせていただきます!
クエストの張り紙システムはステキです。
自分のゲームにもあのノベルっぽい部分を入れてみようと思ってます。

“MV:プラグイン素材のリクエスト” へ戻る