【解決済】指定したリージョン内の全マスで並列イベントを実行する方法

絶対完成

ユーザー
いつもお世話になっております。
前に投稿させていただいた内容と若干重なってしまう部分もあるのですが、自力ではどう調べてもできなかったためお力をお貸し願えればと思います。

【やりたいこと】
タイトル通りなのですが、より具体的に言うと
プレイヤーの位置に関わらず、指定したリージョン内にいるとき条件分岐でイベントを実行できるようにしたい。
ということです。

MVの 指定位置に岩を動かすイベントを作る などの記事やこちらに投稿されていたリージョン条件分岐の記事はすでに参照しているのですが、
「プレイヤーの位置に関わらずリージョン内の全マスで」というものが見当たらず、なおかつ上手く応用できなかったため投稿させていただきました。

【イベントコマンドとスクリプト】
スクリーンショット (144).png
5行目の変数操作のスクリプトは以下になります。


[1,4].includes($gameMap.regionId(this.character(-1).x,this.character(-1).y))

エラーは出ていないのですが、実行できなかったです。
その上の「プレイヤーが動いているかどうか」という条件分岐のスクリプトは問題なく実行できました。
MVの記事などからもしかすると変数でプレイヤーのX座標とY座標をそれぞれ代入する必要があるのかもしれないのですが、MZでは座標の項目が見つからなかったのでもし必要であれば、大変お手数なのですがスクリプトでオペランドを指定する方法も一緒に教えていただけますと大変助かります。

恐れ入りますが、ご助言をお願い致します。

追記:
以前 【解決済】特定の範囲だけ足音を鳴らしたい というスレッドで質問させていただいたものと実行したい内容自体は似ているのですが、
ウェイトの調節やこの後使う予定のイベントでリージョンを条件分岐にする方法を知っておく必要があると判断したため質問させていただきました。
以前ご回答くださった神無月サスケ様、改めてありがとうございました。


【すごくめんどくさい解決法】
リージョンの取得がうまくできなかったのですが、座標取得と条件分岐を駆使してすごくめんどくさいやり方で指定できました。
要約すると、
「プレイヤーのX座標とY座標を変数に格納して、条件分岐で範囲を何回も絞りまくる」
という力技になります。条件分岐を10回ぐらい使う上に、微妙に漏れが出てしまうためおススメしません。
絶対にもっと良いやり方があると思います。

一応イベントコマンド画像を置いておきます。分かりにくいことを先におわびいたします。

1.png2.png3.png
 
最後に編集:

munokura

ユーザー
いつもお世話になっております。
前に投稿させていただいた内容と若干重なってしまう部分もあるのですが、自力ではどう調べてもできなかったためお力をお貸し願えればと思います。

【やりたいこと】
タイトル通りなのですが、より具体的に言うと
プレイヤーの位置に関わらず、指定したリージョン内にいるとき条件分岐でイベントを実行できるようにしたい。
ということです。

MVの 指定位置に岩を動かすイベントを作る などの記事やこちらに投稿されていたリージョン条件分岐の記事はすでに参照しているのですが、
「プレイヤーの位置に関わらずリージョン内の全マスで」というものが見当たらず、なおかつ上手く応用できなかったため投稿させていただきました。

【イベントコマンドとスクリプト】
View attachment 10869
5行目の変数操作のスクリプトは以下になります。


[1,4].includes($gameMap.regionId(this.character(-1).x,this.character(-1).y))

エラーは出ていないのですが、実行できなかったです。
その上の「プレイヤーが動いているかどうか」という条件分岐のスクリプトは問題なく実行できました。
MVの記事などからもしかすると変数でプレイヤーのX座標とY座標をそれぞれ代入する必要があるのかもしれないのですが、MZでは座標の項目が見つからなかったのでもし必要であれば、大変お手数なのですがスクリプトでオペランドを指定する方法も一緒に教えていただけますと大変助かります。

恐れ入りますが、ご助言をお願い致します。

追記:
以前 【解決済】特定の範囲だけ足音を鳴らしたい というスレッドで質問させていただいたものと実行したい内容自体は似ているのですが、
ウェイトの調節やこの後使う予定のイベントでリージョンを条件分岐にする方法を知っておく必要があると判断したため質問させていただきました。
以前ご回答くださった神無月サスケ様、改めてありがとうございました。
MVの事例ですが、そのまま使えると思います。
変数を結構使いますが、スクリプトは使わないで済みそうです。


コード:
◆変数の操作:#0002 2:x = プレイヤーのマップX
◆変数の操作:#0003 3:y = プレイヤーのマップY
◆条件分岐:2:x ≠ 27:X(前の値)
  ◆スイッチの操作:#0010 座標変更 = ON
  ◆
:分岐終了
◆条件分岐:3:y ≠ 28:Y(前の値)
  ◆スイッチの操作:#0010 座標変更 = ON
  ◆
:分岐終了
◆条件分岐:座標変更がON
  ◆変数の操作:#0027 27:X(前の値) = 2:x
  ◆変数の操作:#0028 28:Y(前の値) = 3:y
  ◆指定位置の情報取得:1:指定位置のリージョン, リージョンID, ({2:x},{3:y})
  ◆条件分岐:1:指定位置のリージョン = 5
    ◆コモンイベント:指定リージョンを通過
    ◆
  :分岐終了
  ◆スイッチの操作:#0010 座標変更 = OFF
  ◆
:分岐終了
◆ウェイト:4フレーム
 

chronicle

ユーザー
5行目(変数操作のスクリプト)は必要ありませんね。
指定位置の情報取得のみで十分です。
そのスクリプトはBoolean型になるので、基本的にスイッチか条件分岐でしか使用できません。
 

絶対完成

ユーザー
5行目(変数操作のスクリプト)は必要ありませんね。
指定位置の情報取得のみで十分です。
そのスクリプトはBoolean型になるので、基本的にスイッチか条件分岐でしか使用できません。
chronicleさま

ご回答ありがとうございます!そうなんですね、存じ上げませんでした。ありがとうございました。
 

絶対完成

ユーザー
リージョンで区切って並列でプレイヤーが今いるリージョンを取得、変数に格納して条件分岐「変数=リージョンID」でイベント内容実行でできました。下の画像ではリージョンID4を使っています。
 

Attachments

  • スクリーンショット (163).png
    スクリーンショット (163).png
    152.6 KB · 閲覧: 3
トップ