プレイヤーが一定範囲の外に動くと発生するイベント

Ho9tocraft

ユーザー
名前の通りのイベントです。
(例)現在位置から6歩外側に動いたらその地点で戦闘発生(強制エンカウントなのでランダムエンカウントではない)
 
コモンイベントふたつで実現できます。capture138.png
これが範囲内にいるかを監視し続けるコモンイベントです。
特定のスイッチ(ここでは3番)がONの間だけ、
(5,5)-(10,10)にいるかを判定します。
そこからはずれたら、イベント起動用スイッチ(ここでは4番)が起動します。


capture139.png
これが、イベント起動の例です。イベント起動用スイッチ(ここでは4番)が
自動実行の起動条件になっています。

この内容は、一定の距離から離れた時に、強制的に主人公を(8,6)に戻すというものです。
最後に、行動制限を続けたい場合は、再び並列コモンイベントの起動スイッチ(4番)をONにします。

以上のやり方でいかがでしょう。
健闘を祈ります。
 

Ho9tocraft

ユーザー
表現がまずかっただけかもしれませんが、
□□□□□イ□□□□□
□□□□イ■イ□□□□
□□□イ■■■イ□□□
□□イ■■■■■イ□□
□イ■■■■■■■イ□
イ■■■■プ■■■■イ
□イ■■■■■■■イ□
□□イ■■■■■イ□□
□□□イ■■■イ□□□
□□□□イ■イ□□□□
□□□□□イ□□□□□
プのところにプレイヤーがいて(原点とする)、その原点から(この表では)4マス分(■)は何も起きず、イに踏み込んだ瞬間に発生させるイベントにしたいです。
その場合はどうなるでしょうか
 
これはリージョンを使うといいんじゃないでしょうか。
上記のプログラムの応用になります。

イベント発生個所すべてを特定のリージョン番号にして、
並列処理で、毎フレーム、プレイヤーの位置(x, y)の現リージョン番号を
イベントコマンド「指定位置の情報取得」で変数に取得する。
変数で、その値が、リージョン番号と一緒なら、イベント起動、
という風にすればいいんじゃないでしょうか。

以上、ご検討を祈ります。
よく分からない場合、上記のようにイベントサンプル書かせていただきます。
 
最後に編集:

Ho9tocraft

ユーザー
上記のスクリーンショットにあるように、変数で取得が可能ですよ。
スクリプトは一切必要ありませんので、少し挑戦してみてください。
変数の代入時に「スクリプト」と呼ばれる項目があるじゃないですか。そこに記入するのか、っていうことです
 
ああ、すいません。説明不足で。大変失礼いたしました!
「オペランド」は「スクリプト」ではなく、「ゲームデータ」です。
以下のように選択すると、「プレイヤーのマップX」などが取得できます。
capture140.png
なお、今回のケースでは、プレイヤーの現在位置のリージョンIDの取得方法も、
必要なようですね。それの取得方法もご説明しておきます。
イベントコマンド「指定位置の情報取得」(3ページ目の右上の方にあります)で可能です。
capture141.png
どうでしょう。これが取得出来れば、「リージョンIDを見て、イベントを起動」という
コモンイベントが作れるんじゃないでしょうか。
ご健闘を祈ります。
まだ、分からない場合、改めてご相談に乗ります。
 
以下のようなコモンイベントを作ってください。
最初にスイッチ3番「行動制限中」をONにすると、
リージョン1番のマスに止まった時に、イベントが発生します。
capture143.png
以下は、イベントの例です。
capture144.png
プレイヤーのマップXや、リージョンIDの取得方法は前の書き込みに書いた通りです。
イベントが発生するすべての箇所にリージョンを忘れず設定してください
では、健闘を祈ります。
 
最後に編集:
トップ