通ったタイルを通行不能にしたい

累積比率パレートマン
記事: 33
登録日時: 2022年1月12日(水) 01:12

通ったタイルを通行不能にしたい

投稿記事by 累積比率パレートマン » 2024年4月20日(土) 15:29

エンジニアの皆様


お疲れ様です。


ゼルダっぽいアクションRPGを作っています(プレイヤーパーティーは一人固定です)。

特定のステートにかかった状態で通ったタイルを通行不能にしたいのですが

イベントではなくマップタイルを通行不能にしていくようにすることは可能でしょうか?

そのようなことが実現できそうなプラグインがありましたら、ご教示いただけますと幸いに存じます。

何卒、宜しくお願い申し上げます。

アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 通ったタイルを通行不能にしたい

投稿記事by 剣崎 宗二 » 2024年4月22日(月) 14:56

実作業の時間が取れませんので、取り急ぎ、新規プラグインを作った場合大まかな行うべきロジックだけ示します。


1. Game_Player.prototype.moveStraight 改変
実行完了後に、プレイヤーに指定されたステートがある場合、現在座標をGame_MapにあるArrayに記録する

2. Game_Map.prototype.isPassable 改変
Game_MapにあるArrayに、その座標がある場合falseを返す

この2つだけでも述べられた部分は実装できるかとは思います。
後は、マップ移動した際にその通行不可になった部分が元に戻るか、などで色々追加の動きは必要になるかとは思いますね。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
累積比率パレートマン
記事: 33
登録日時: 2022年1月12日(水) 01:12

Re: 通ったタイルを通行不能にしたい

投稿記事by 累積比率パレートマン » 2024年4月22日(月) 22:11

剣崎様


貴重な助言を下さり、ありがとうございます!

いただいた情報を元に、コアスクリプトを眺めながら考えてみようと思います。


・・・・・し、しかし、すみません。

MZで作っているのにMVで質問してしまったことに今さら気づいてしまいました。

MZの場合、マップの取り扱いが異なりますよね?


同じく、 Game_Player.prototype.moveStraightと

Game_Map.prototype.isPassableのやり取りで、実現できますでしょうか?
アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: 通ったタイルを通行不能にしたい

投稿記事by 剣崎 宗二 » 2024年4月24日(水) 16:58

こちら私のざっくりした確認ですと、同じ動作のはずです。何をしているのか根本的に説明しますと:

1. プレイヤーが移動した際に、移動し終えたパネルの座標を記録する
2. 通行可能判定の際に、上記で記録した座標のいずれかに該当する際、強制的にfalse(通行不可)を返す

と言うだけの話ですので…
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。

“MV:質問” へ戻る