いつもお世話になっております。
新たなトピックを失礼致します。
イベントが実行される範囲についての質問です。
現在、マップ上を徘徊する敵と戦うアクションRPGを作成しており、敵に触れた時の交戦の挙動は設定できたので、今度は遠距離攻撃をしてくる敵を作成したいと思っています。
そこで敵(イベント)の攻撃が実行される範囲を広げればできると考え、検索して見つけた「イベントの範囲を拡大するプラグイン」をいくつも試したのですが、敵に近づくことができなくなったり、1つの挙動しかさせられなかったりと上手くいきません。
私の理想としましては、拡大された範囲でイベントが実行(敵から一方的に攻撃)されながらも、近付いて交戦することができるという形です。
拙いですが、やりたいことをイラストにしました。
①敵が索敵をしながら徘徊している
②プレイヤーor敵が移動して索敵範囲にプレイヤーが入ると敵が遠距離攻撃をしてくる。遠距離攻撃中の敵は近付いて来ない。
③索敵範囲にいる間は常に遠距離攻撃をしてくる
④目の前までいくと遠距離攻撃が止まり、敵に触れて通常の交戦になる
⑤敵から離れると再度、遠距離攻撃をしてくる
なお、上記の機構を、トリアコンタン様の「イベント動的生成プラグイン」(https://triacontane.blogspot.com/2016/08/blog-post.html)で大量に複製しても反映されるようにしたいです。
かなり複雑な機構になりそうですが、もし実装可能な方法に心当たりのある方がいらっしゃいましたら、教えて頂けますと幸いです。
【解決済】イベントの範囲設定について
【解決済】イベントの範囲設定について
最後に編集したユーザー 白白白 [ 2024年6月01日(土) 09:24 ], 累計 4 回
Re: イベントの範囲設定について(参考イラストあり)
下記のプラグインがご期待のものに近いかなと思いますが、いかがでしょうか?
プレイヤー探索プラグイン
https://mankind-games.blogspot.com/2016 ... -post.html
プレイヤー探索プラグイン
https://mankind-games.blogspot.com/2016 ... -post.html
Re: イベントの範囲設定について(参考イラストあり)
>>論理イヌ様
お返事を頂きありがとうございます。
「プレイヤー探索プラグイン」も実装して試しており、①~③は可能でしたが、④は私にはどうすればいいか分かりませんでした。ただ単に遠距離攻撃を止めて交戦に入るだけでなく、交戦を途中でやめて離れた場合は再度センサーが稼働する必要があるのが難解です。
何か上手い方法があればぜひご教示頂ければと思います。
お返事を頂きありがとうございます。
「プレイヤー探索プラグイン」も実装して試しており、①~③は可能でしたが、④は私にはどうすればいいか分かりませんでした。ただ単に遠距離攻撃を止めて交戦に入るだけでなく、交戦を途中でやめて離れた場合は再度センサーが稼働する必要があるのが難解です。
何か上手い方法があればぜひご教示頂ければと思います。
Re: イベントの範囲設定について(参考イラストあり)
>④は私にはどうすればいいか分かりませんでした。
「敵に触れた時の交戦の挙動は設定できた」ということですので、プレイヤーとイベントが隣り合ったときにイベントの監視をOFFにしてしまえばいいと考えています。
>また、2体以上の敵の探索範囲が重なった位置にいる時にそれぞれから別で遠距離攻撃ダメージを受けるというのもどうすればよいか分かりませんでした。
「敵の索敵がONになったらプレイヤーに遠距離攻撃をし続ける」という敵1体分のシステムを組めば、数が複数になってもそれぞれ攻撃し続けてくれると思います。
何を気にされていますか?
「敵に触れた時の交戦の挙動は設定できた」ということですので、プレイヤーとイベントが隣り合ったときにイベントの監視をOFFにしてしまえばいいと考えています。
>また、2体以上の敵の探索範囲が重なった位置にいる時にそれぞれから別で遠距離攻撃ダメージを受けるというのもどうすればよいか分かりませんでした。
「敵の索敵がONになったらプレイヤーに遠距離攻撃をし続ける」という敵1体分のシステムを組めば、数が複数になってもそれぞれ攻撃し続けてくれると思います。
何を気にされていますか?
Re: イベントの範囲設定について(参考イラストあり)
>>論理イヌ様
お返事を頂きありがとうございます。
2体以上の敵の探索範囲が重なった時の挙動はよく考えてみると特に問題はありませんでした。
「プレイヤーとイベントが隣り合ったときにイベントの監視をOFFにする」という案ですが、OFFにしたあとに、敵を倒しきらずに離れる場合、隣り合わなくなった(敵から1マス以上離れる)時点でイベントの監視を再度ONにする必要があるのですが、プラグインコマンド等で可能でしょうか?
お返事を頂きありがとうございます。
2体以上の敵の探索範囲が重なった時の挙動はよく考えてみると特に問題はありませんでした。
「プレイヤーとイベントが隣り合ったときにイベントの監視をOFFにする」という案ですが、OFFにしたあとに、敵を倒しきらずに離れる場合、隣り合わなくなった(敵から1マス以上離れる)時点でイベントの監視を再度ONにする必要があるのですが、プラグインコマンド等で可能でしょうか?
Re: イベントの範囲設定について(参考イラストあり)
プラグインパラメータで以下があるようです。
[Default_Auto_Sensor]
マップ描画時、自動的に探索処理を開始する場合はON、開始タイミングを自分で制御する場合はOFFを指定します。ONにした場合、プラグインコマンド[PSS start]が自動的に実行されます。
これをOFFにしてプラグインコマンドのPSS startなどを使えば制御できそうです。
[Default_Auto_Sensor]
マップ描画時、自動的に探索処理を開始する場合はON、開始タイミングを自分で制御する場合はOFFを指定します。ONにした場合、プラグインコマンド[PSS start]が自動的に実行されます。
これをOFFにしてプラグインコマンドのPSS startなどを使えば制御できそうです。
Re: イベントの範囲設定について(参考イラストあり)
>>論理イヌ様
「PSS start」や「PSS stop」でオンオフ可能なのは把握しており、触れたらオフにすることで遠距離攻撃を止めて交戦することまではできています。
ただ、繰り返しになりますが、「敵を倒しきらずに隣り合わなくなった(敵から1マス以上離れた)時点でイベントの監視を再度ONにする」という方法が分からずに悩んでおります。
「PSS start」や「PSS stop」でオンオフ可能なのは把握しており、触れたらオフにすることで遠距離攻撃を止めて交戦することまではできています。
ただ、繰り返しになりますが、「敵を倒しきらずに隣り合わなくなった(敵から1マス以上離れた)時点でイベントの監視を再度ONにする」という方法が分からずに悩んでおります。
Re: イベントの範囲設定について(参考イラストあり)
『敵に触れた時の交戦の挙動』が設定できたということでしたが、離れた場合の動作はまだ考慮されていなかったということですか?
プレイヤーの動きを並列実行で監視して、プレイヤーが座標を移動した場合にONにする、という方法はいかがでしょうか。
プレイヤーの動きを並列実行で監視して、プレイヤーが座標を移動した場合にONにする、という方法はいかがでしょうか。
Re: イベントの範囲設定について(参考イラストあり)
>>論理イヌ様
「敵に触れた時の交戦の挙動」は本記事の掲示前から出来ており、離れた場合の挙動も考慮していましたが動作が上手くいかなかったので、トピックの最初で「1つの挙動しかさせられなかった」と記載しておりました。また、途中まで出来たことを書くと説明がややこしくなると思い省いておりました。(プレイヤー探索プラグインを含む、自分で試したプラグインで出来るか分からなかったので)
確実にこのプラグインで出来るよ、というのを教えて頂くための配慮でしたが、かえって誤解させてしまい申し訳ありません。
「プレイヤーの動きを並列実行で監視してプレイヤーが座標を移動した場合にON」というのは具体的にどうすればよいでしょうか?
「敵に触れた時の交戦の挙動」は本記事の掲示前から出来ており、離れた場合の挙動も考慮していましたが動作が上手くいかなかったので、トピックの最初で「1つの挙動しかさせられなかった」と記載しておりました。また、途中まで出来たことを書くと説明がややこしくなると思い省いておりました。(プレイヤー探索プラグインを含む、自分で試したプラグインで出来るか分からなかったので)
確実にこのプラグインで出来るよ、というのを教えて頂くための配慮でしたが、かえって誤解させてしまい申し訳ありません。
「プレイヤーの動きを並列実行で監視してプレイヤーが座標を移動した場合にON」というのは具体的にどうすればよいでしょうか?
Re: イベントの範囲設定について(参考イラストあり)
変数を4つ、スイッチを1つ用意します。
今回は以下のように用意しました。
<変数>
#0001 ●プレイヤー現在X座標
#0002 ●プレイヤー現在Y座標
#0003 ★プレイヤー直前X座標
#0004 ★プレイヤー直前Y座標
<スイッチ>
#0001 プレイヤーの移動を監視
①マップイベントの【ページ1】に以下を設定します。
◆プラグインコマンド:PSS start
◆スイッチの操作:#0001 プレイヤーの移動を監視 = ON
◆変数の操作:#0003 ★プレイヤー直前X座標 = プレイヤーのマップX
◆変数の操作:#0004 ★プレイヤー直前Y座標 = プレイヤーのマップY
◆セルフスイッチの操作:A = ON ②同一イベントの【ページ2】を作成し、出現条件を「セルフスイッチ:A」にします。
中身はナシでよい。
③コモンイベントでトリガーを「並列、#0001 プレイヤーの移動を監視」にします。
イベントの内容を以下のようにします。
◆ウェイト:1フレーム
◆変数の操作:#0001 ●プレイヤー現在X座標 = プレイヤーのマップX
◆変数の操作:#0002 ●プレイヤー現在Y座標 = プレイヤーのマップY
◆注釈:■X座標
◆条件分岐:●プレイヤー現在X座標 ≠ ★プレイヤー直前X座標
◆変数の操作:#0003 ★プレイヤー直前X座標 = ●プレイヤー現在X座標
◆プラグインコマンド:PSS start
◆スクリプト:console.log("X:"+$gameVariables.value(1))
◆
:分岐終了
◆注釈:■Y座標
◆条件分岐:●プレイヤー現在Y座標 ≠ ★プレイヤー直前Y座標
◆変数の操作:#0004 ★プレイヤー直前Y座標 = ●プレイヤー現在Y座標
◆プラグインコマンド:PSS start
◆スクリプト:console.log("Y:"+$gameVariables.value(2))
◆
:分岐終了 F8を押すと、動くたびに更新されているのがわかると思います。
今回は以下のように用意しました。
<変数>
#0001 ●プレイヤー現在X座標
#0002 ●プレイヤー現在Y座標
#0003 ★プレイヤー直前X座標
#0004 ★プレイヤー直前Y座標
<スイッチ>
#0001 プレイヤーの移動を監視
①マップイベントの【ページ1】に以下を設定します。
◆プラグインコマンド:PSS start
◆スイッチの操作:#0001 プレイヤーの移動を監視 = ON
◆変数の操作:#0003 ★プレイヤー直前X座標 = プレイヤーのマップX
◆変数の操作:#0004 ★プレイヤー直前Y座標 = プレイヤーのマップY
◆セルフスイッチの操作:A = ON ②同一イベントの【ページ2】を作成し、出現条件を「セルフスイッチ:A」にします。
中身はナシでよい。
③コモンイベントでトリガーを「並列、#0001 プレイヤーの移動を監視」にします。
イベントの内容を以下のようにします。
◆ウェイト:1フレーム
◆変数の操作:#0001 ●プレイヤー現在X座標 = プレイヤーのマップX
◆変数の操作:#0002 ●プレイヤー現在Y座標 = プレイヤーのマップY
◆注釈:■X座標
◆条件分岐:●プレイヤー現在X座標 ≠ ★プレイヤー直前X座標
◆変数の操作:#0003 ★プレイヤー直前X座標 = ●プレイヤー現在X座標
◆プラグインコマンド:PSS start
◆スクリプト:console.log("X:"+$gameVariables.value(1))
◆
:分岐終了
◆注釈:■Y座標
◆条件分岐:●プレイヤー現在Y座標 ≠ ★プレイヤー直前Y座標
◆変数の操作:#0004 ★プレイヤー直前Y座標 = ●プレイヤー現在Y座標
◆プラグインコマンド:PSS start
◆スクリプト:console.log("Y:"+$gameVariables.value(2))
◆
:分岐終了 F8を押すと、動くたびに更新されているのがわかると思います。