【解決済み】条件によって、任意の方向への移動を禁止する

アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

【解決済み】条件によって、任意の方向への移動を禁止する

投稿記事by MEIKOI » 2020年11月17日(火) 15:48

 あいう
こ■■■え
け■★■お
 くきか

こんにちは、いつもありがとうございますmm

冒頭の図は、マップ上での
★:自立移動するイベントの座標
■:プレイヤー進入禁止の座標
ひらがな:プレイヤーの座標
を表しています。(いるつもりです・・・^^;)

例えば、
「あいう」の座標に居る時に 、下へ移動する事を禁止する。
「えお」の座標に居る時に、左へ移動する事を禁止する。
「くきか」の座標に居る時に、上へ移動する事を禁止する。
「こけ」の座標に居る時に、右へ移動する事を禁止する。

と言う事をしたい場合、実現するにはどのようにすれば良いでしょうか?

縛りとして、■にイベントを配置するのは、無しです。(進入禁止の範囲は、広がる場合があるため)

これまでは、■の座標へプレイヤーが移動をはじめた時に、移動ルートの設定でプレイヤーを後退させて
元の座標に戻していたのですが、★イベントが自立移動しているので
状況次第で入れ替わり(すり抜け)してしまいます。

まとめると 「条件によって、任意の方向への移動を禁止する」ようにしたい。になります。

また任意の方向への移動の禁止・許可をON/OFFできるプラグインをご存じの方がいましたら教えていただきたいです。


ご教授いただけるとありがたいです。よろしくお願いいたします。
最後に編集したユーザー MEIKOI on 2020年11月27日(金) 21:34 [ 編集 1 回目 ]

jp_asty
記事: 81
登録日時: 2019年11月12日(火) 15:34

Re: 条件によって、任意の方向への移動を禁止する

投稿記事by jp_asty » 2020年11月25日(水) 11:36

こんにちは。

自分の解釈が正確か分かりませんが、プラグイン化してみました。

使い方
1.移動不可にしたい場所にリージョンを置く。(リージョン1番など)
2.プラグインパラメーターのリージョン番号に上で置いたリージョン番号を追加。
とするとそのリージョンは移動不可になります。

プラグインコマンドで対象のリージョンの追加・削除が可能で、削除するとそのリージョンは移動可能になります。

一応お試し版という形にしてあります。
https://raw.githubusercontent.com/ste0/ ... eRegion.js

よろしくお願いします。
---------------------------------------------------------------------------------------------
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: 条件によって、任意の方向への移動を禁止する

投稿記事by MEIKOI » 2020年11月26日(木) 11:37

jp_asty様

こんにちは!いつもアドバイスありがとうございます。
プラグイン化して下さり感謝申し上げます!
今晩からテストをさせて頂きまして、動作を確認してご報告させて頂きます。
移動禁止リージョンがプラグインコマンドでon/offできるようで汎用性が高そうですね!
テスト楽しみです。ありがとうございます!m(_ _)m
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: 条件によって、任意の方向への移動を禁止する

投稿記事by MEIKOI » 2020年11月26日(木) 21:33

jp_asty様

こんばんは!早速、プラグインを新規プロジェクトに入れて動かしてみました。
リージョン番号を指定して、通行可能/不能にして制限をする機能を確認いたしました。
汎用性が高く、色々な場面で利用が想定できるプラグインだと思います!
このプラグインは、とても便利なので利用させて頂きますm(_ _)m

ただ、私のトピックの建て方が悪かったので、利用シーンがうまく伝わらなかったので
改めて、書かせていただきますが・・・プラグインの製作を依頼するのは
おこがましいかと思いますので、聞き流して頂いて大丈夫ですm(_ _)m

例えば、
 イベントid1がマップ上を自由に移動している状態で
 プレイヤーは、イベントid1に近づこうとするが
 イベントid1の座標から左x_leftマス、右x_rightマス、上y_topマス、下y_underマスに
 プレイヤーは、進入する事はできない。
 逆に言えば、イベントid1からも近づけない事になります。

 場面としては、イベントid1が結界を張っているようなイメージだったり
 イベントid1が48×48ではなく192×192などのピクチャで表示されている状態などです。


自分では、イベントコマンドでこれを再現しようと変数を上下左右分の4つを用意して
イベントid1の座標を中心に上下左右の変数を加算減算した座標にプレイヤーが進入した時に
移動ルートの設定でプレイヤーを後退させてなんとなく実現したのですが
進入禁止の座標に一旦プレイヤーが進んでしまうので、すこし具合が悪い事もあり
今回の質問をさせていただきました。

ややこしいと思いますので、気にしないで下さい・・・^^;
親切にプラグインを製作していただきましたので、説明しなおしをさせて頂いた次第です。
プレイヤー移動のコアスクリプトの部分をもうちょっと調べて勉強しなおそうとも思ってます。
いつもありがとうございます(^^)
jp_asty
記事: 81
登録日時: 2019年11月12日(火) 15:34

Re: 条件によって、任意の方向への移動を禁止する

投稿記事by jp_asty » 2020年11月27日(金) 06:59

自分では、イベントコマンドでこれを再現しようと変数を上下左右分の4つを用意して
イベントid1の座標を中心に上下左右の変数を加算減算した座標にプレイヤーが進入した時に
移動ルートの設定でプレイヤーを後退させてなんとなく実現したのですが
進入禁止の座標に一旦プレイヤーが進んでしまうので、すこし具合が悪い事もあり
今回の質問をさせていただきました。

メンバーの隊列歩行がOFFのとき限定ですが、
移動ルードの設定でプレイヤーの位置を後退させている部分を
スクリプトで
$gamePlayer.locate(x, y); //x:後退後のx座標, y:後退後のy座標
とするとそれらしくなる可能性はあります。
---------------------------------------------------------------------------------------------
プラグイン置き場 : https://github.com/ste0/RPG-Maker-MV-Plugins
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: 条件によって、任意の方向への移動を禁止する

投稿記事by MEIKOI » 2020年11月27日(金) 21:34

jp_asty様

アドバイスありがとうございます!
教えて頂いたスクリプトでテストしてみた結果・・・
進入禁止の表現をうまくする事ができました!

一応、誰の参考にしないかもしれませんが
何かの役に立つかもしれないのでコードのサンプルを残しておきます。

コード: 全て選択

if (
this.character($gameVariables.value(304)).y == this.character(-1).y  &&
this.character($gameVariables.value(304)).x + $gameVariables.value(319) <= this.character(-1).x &&
this.character($gameVariables.value(304)).x + $gameVariables.value(320) >= this.character(-1).x &&
$gamePlayer.direction() == 8
)
{
$gamePlayer.locate(this.character(-1).x, this.character(-1).y + 1);
}


教えてもらえれば、簡単な事でも
自分的には、かなり長い時間考えていたので、大変助かりました!ありがとうございました!

“MV:質問” へ戻る