ムノクラ様
Plasma Dark様
ご回答ありがとうございます。
実は以下のようなVX AceのスクリプトにあるのがMVでもないかなーなどと
思ってたんですがなかったので質問しました。
http://heptanas.mamagoto.com/Entry/138/
とりあえずムノクラ様の手法でやってみましたが
いい感じな動作にはなりましたがいくつか理想の動作にならない点が
あったのでお手数おかけして申し訳ないですが教えていただけないでしょうか?
プラグインはトリアコンタン様のDTextPicture及びNpcFollowerを入れています。
やりたいことというのはイベントを引っ張るという動作です。
具体的にはイベントAをキーボードのAボタンを押している間、
隊列歩行でついてくるようにしたいです。
入力判定スクリプトには'connect'が指定されていますが
これはInput.keyMapper[65] = 'connect';でAボタンに関連付けています。
このイベントAのページ1にはプライオリティは「通常キャラと同じ」で
トリガーに「並列処理」を指定しています。実行内容は以下のとおりです。
※キャラ画像はアクター2のものに設定してます。
コード: 全て選択
◆変数の操作:#0016 プレイヤー位置X = プレイヤーのマップX
◆変数の操作:#0017 プレイヤー位置Y = プレイヤーのマップY
◆変数の操作:#0019 connectイベント位置X = このイベントのマップX
◆変数の操作:#0020 connectイベント位置Y = このイベントのマップY
◆条件分岐:プレイヤー位置X ≠ connectイベント位置X
◆ピクチャの消去:#11
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:プレイヤー位置Y ≠ connectイベント位置Y
◆ピクチャの消去:#11
◆イベント処理の中断
◆
:分岐終了
◆条件分岐:スクリプト:Input.isPressed('connect')
◆プラグインコマンド:NF_NPC追加 2 1
◆コモンイベント:隊列集合
◆隊列歩行の変更:ON
◆セルフスイッチの操作:A = ON
◆
:分岐終了
◆プラグインコマンド:D_TEXT \I[82]【Button A Push】引っ張る 32
◆ピクチャの表示:#11, なし, 左上 (0,0), (100%,100%), 255, 通常
このイベントAのページ2にはプライオリティは「通常キャラと同じ」で
トリガーに「並列処理」を指定しています。実行内容は以下のとおりです。
※条件にはセルフスイッチAを指定しています。
コード: 全て選択
◆変数の操作:#0016 プレイヤー位置X = プレイヤーのマップX
◆変数の操作:#0017 プレイヤー位置Y = プレイヤーのマップY
◆変数の操作:#0019 connectイベント位置X = $gamePlayer.followers()._data[0].x
◆変数の操作:#0020 connectイベント位置Y = $gamePlayer.followers()._data[0].y
◆条件分岐:スクリプト:!Input.isPressed('connect')
◆変数の操作:#0019 connectイベント位置X = プレイヤーのマップX
◆変数の操作:#0020 connectイベント位置Y = プレイヤーのマップY
◆セルフスイッチの操作:A = OFF
◆条件分岐:プレイヤーが下を向いている
◆移動ルートの設定:このイベント
: :◇下を向く
◆変数の操作:#0020 connectイベント位置Y -= 1
◆
:分岐終了
◆条件分岐:プレイヤーが左を向いている
◆移動ルートの設定:このイベント
: :◇左を向く
◆変数の操作:#0019 connectイベント位置X += 1
◆
:分岐終了
◆条件分岐:プレイヤーが右を向いている
◆移動ルートの設定:このイベント
: :◇右を向く
◆変数の操作:#0019 connectイベント位置X -= 1
◆
:分岐終了
◆条件分岐:プレイヤーが上を向いている
◆移動ルートの設定:このイベント
: :◇上を向く
◆変数の操作:#0020 connectイベント位置Y += 1
◆
:分岐終了
◆イベントの位置設定:このイベント, ({connectイベント位置X},{connectイベント位置Y})
◆プラグインコマンド:NF_NPC削除 1
◆隊列歩行の変更:OFF
◆
:分岐終了
コモンイベントの隊列集合には以下の実行内容を設定しています。
これはムノクラ様の仰られたとおりです。
コード: 全て選択
◆変数の操作:#0016 プレイヤー位置X = プレイヤーのマップX
◆変数の操作:#0017 プレイヤー位置Y = プレイヤーのマップY
◆変数の操作:#0015 プレイヤーMAPID = マップID
◆場所移動:{プレイヤーMAPID} ({プレイヤー位置X},{プレイヤー位置Y}) (フェード: なし)
この状態で実行するとAボタンを押しながらイベントに触れた時
プレイヤーがイベントを通り越してしまいます。
それとAボタンを離したときにイベントが一瞬前を向くので
このチラツキ動作も気になります。
上記2点の問題点を解決する方法はあるでしょうか?
組み方を直したほうがいいとかあれば教えてもらえると助かります。
質問内容からすこしずれてきてますがもしよければ回答もらえませんか?
※すみません。ページ1、2ともオプションにすり抜け設定してます(漏れてました)