ちゅうと さんが書きました:プレイヤー接触で逃げるイベントを
トリアコンタン様のプラグインを利用し、複製していく予定です。
プレイヤー接触で逃げるイベントは作れましたが、
イベントが端に来た時にイベントが動けなくなります。
イベントが動けない状況になったらすり抜けてプレイヤーの後ろ側に移動させたいのですが
そのような動作はどのように組めばいいのでしょうか。
イベントは向き固定で以下のように作成しています。
◆条件分岐:プレイヤーが下を向いている
◆移動ルートの設定:このイベント (飛ばす)
: :◇下に移動
◆
:それ以外のとき
◆条件分岐:プレイヤーが左を向いている
◆移動ルートの設定:このイベント (飛ばす)
: :◇左に移動
◆
:それ以外のとき
◆条件分岐:プレイヤーが右を向いている
◆移動ルートの設定:このイベント (飛ばす)
: :◇右に移動
◆
:それ以外のとき
◆条件分岐:プレイヤーが上を向いている
◆移動ルートの設定:このイベント (飛ばす)
: :◇上に移動
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
試しに作ってみたのですが、複雑な条件を考慮すると、とても難しいというのが分かりました。
多分、概ね下記で上手く動作するかと思います。
しかし、サンプルを見ていただくと、「この時どうするの?」という挙動になります。
1.隊列歩行ONだとフォロワーが邪魔してしまうので、その部分を追加する必要があります。
2.イベント同士がぶつかるとどうなるか…考慮して組んでいないので、変な挙動だと思います。
3.プレイヤーをすり抜けて反対側に行った先がイベントや壁だったら…
できるだけ基本機能で作りましたが、行き止まりの判定だけはスクリプトを使わないと難しそうでした。
どうしても、一時的に向き固定をOFFにする必要があるので、できればキャラクターの方を加工して全方向同じキャラにすることで、見かけだけ向き固定っぽくするほうが簡単に実装できると思います。
ちなみに
$gameMap.isPassable($gameVariables.value(1), $gameVariables.value(2), $gameVariables.value(3));
は
$gameMap.isPassable(x,y,d)
が元です。
x,y座標のタイルがdの値2,4,6,8(方向:下左右上、テンキーの配置です)に進行可能か判断するスクリプトです。
もしかしたら、変数3が上下左右逆かも知れない(検証が甘くてすいません)ので、その場合は
◆変数の操作:#0003 = 10 - $gameVariables.value(3)
を入れてください。
コード: 全て選択
◆変数の操作:#0001 = このイベントのマップX
◆変数の操作:#0002 = このイベントのマップY
◆変数の操作:#0003 = プレイヤーの向き
◆条件分岐:プレイヤーが下を向いている
◆変数の操作:#0002 += 1
◆
:分岐終了
◆条件分岐:プレイヤーが左を向いている
◆変数の操作:#0001 -= 1
◆
:分岐終了
◆条件分岐:プレイヤーが右を向いている
◆変数の操作:#0001 += 1
◆
:分岐終了
◆条件分岐:プレイヤーが上を向いている
◆変数の操作:#0002 -= 1
◆
:分岐終了
◆条件分岐:スクリプト:$gameMap.isPassable($gameVariables.value(1), $gameVariables.value(2), $gameVariables.value(3));
◆移動ルートの設定:このイベント
: :◇プレイヤーから遠ざかる
◆
:それ以外のとき
◆移動ルートの設定:このイベント
: :◇向き固定OFF
: :◇プレイヤーの方を向く
: :◇すり抜けON
: :◇一歩前進
: :◇一歩前進
: :◇すり抜けOFF
: :◇向き固定ON
◆
:分岐終了
※「プレイヤーから遠ざかる」を使う解説は、初心者講座にあります。
https://tkool.jp/mv/guide/006_003q.html
追記
書き終えたらsally氏が書いていましたね…
こちらの内容だとスクリプトが要らないのと、他イベントが邪魔で動かないケースも対応できて、より簡潔になりそうです。
(ツクラーとしての発想力レベルの差が明らかに…)
コード: 全て選択
◆変数の操作:#0001 = このイベントのマップX
◆変数の操作:#0002 = このイベントのマップY
◆移動ルートの設定:このイベント (飛ばす, ウェイト)
: :◇プレイヤーから遠ざかる
◆変数の操作:#0003 = このイベントのマップX
◆変数の操作:#0004 = このイベントのマップY
◆条件分岐:#0001 = #0003
◆条件分岐:#0002 = #0004
◆移動ルートの設定:このイベント
: :◇向き固定OFF
: :◇プレイヤーの方を向く
: :◇すり抜けON
: :◇一歩前進
: :◇一歩前進
: :◇すり抜けOFF
: :◇向き固定ON
◆
:分岐終了
◆
:分岐終了