いつもお世話になっております。
以前MVの方で似た質問をさせて頂き無事解決でき、大変助かりました。
この度はMZを購入し新たにゲームを作っているのですが、MVの時と同様に敗北イベントを
設定しようとするとエラーが出てしまい上手くいきません…。
MVの時はフトコロ様のFTKR_ExBattleEventプラグインを使用させて頂き、敗北をした時に
$gameTroop.members() ? BattleManager._subject._enemyId : $gameTroop.members()._enemyId
というスクリプトでエネミーIDを取得し、最後に攻撃を行った敵エネミーごとのイベントを作成しておりました。
MZでは敗北イベント自体は作れているのですが、敵キャラごとのID取得が上手くいっていない様子です。
スクリプト等詳しくなく、調べても似たような事例が見つからず困っております。。
なにかプラグインやスクリプト等、そのほか敵キャラIDに応じた敗北イベントの作成方法があれば何卒ご教授頂けますと幸いです。
【解決済み】バトラーごとの敗北イベントの作り方
-
- 記事: 14
- 登録日時: 2021年6月10日(木) 18:31
【解決済み】バトラーごとの敗北イベントの作り方
最後に編集したユーザー mochimochi [ 2024年12月13日(金) 12:27 ], 累計 1 回
Re: バトラーごとの敗北イベントの作り方
うまくいかないというのをもう少し具体的に説明できるでしょうか。
FTKR_ExBattleEvent は MV 向けだと思うのでエラーが出るとか
エラーは出てないけど意図しない値が取得されてしまうとか
あとこのスクリプトもちょっと疑問が…
$gameTroop.members() が true か false かで処理をわけているのですが
js は空の配列も truthy でありこの処理分けには意味がなさそう。
ゆえに顕在化していないのだと思いますが
$gameTroop.members()._enemyId は undefined になるはずです。
と、書いてる途中に思い出したのですが
MZ では変数に直前に行動した敵キャラのインデックスを取得する機能が実装されましたね。
バトルイベントで変数に代入するだけでいけるかもしれません。
FTKR_ExBattleEvent は MV 向けだと思うのでエラーが出るとか
エラーは出てないけど意図しない値が取得されてしまうとか
あとこのスクリプトもちょっと疑問が…
コード: 全て選択
$gameTroop.members() ? BattleManager._subject._enemyId : $gameTroop.members()._enemyId
js は空の配列も truthy でありこの処理分けには意味がなさそう。
ゆえに顕在化していないのだと思いますが
$gameTroop.members()._enemyId は undefined になるはずです。
と、書いてる途中に思い出したのですが
MZ では変数に直前に行動した敵キャラのインデックスを取得する機能が実装されましたね。
バトルイベントで変数に代入するだけでいけるかもしれません。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
https://twitter.com/wtr_in_reverie/
-
- 記事: 715
- 登録日時: 2018年12月23日(日) 13:55
Re: バトラーごとの敗北イベントの作り方
こんにちは。
FTKR_ExBattleEventをきちんと試して、MZで完全な動作をするか確認してませんが、
少なくとも、敗北時のコモンイベント実行機能は、一応 MZでも動かせるはずです。
敗北時のコモンイベントは、戦闘シーン内で実行されるので、
$gameTroop.members() は空の配列ではなくて、メンバの配列をきちんと返すと思います。
ただ、コモンイベントが実行される段階で
BattleManager._subject には null が入っているので、
でエネミーIDを取得しようとすると、
cant read property '_enemyId' of null
というエラーが出力されるはずです。
また、WTR さんが仰っていますが、
$gameTroop.members() はメンバーの配列なので、
ここに _enemyId というプロパティは存在しておらず、
というコードでは、undefined が返ってきます。
となるのが正しいコードのはずです。
質問内容として、
欲しいのは、最後に攻撃した敵キャラのエネミーIDでしたよね?
でしたら、
敗北時のイベント内で、変数の取得のスクリプト等で、
とすれば、最後に攻撃した敵キャラのエネミーIDが取得できるのではないかと思います。
$gameTemp.lastActionData(3) というのが、
WTR さんのおっしゃっている、
直前に行動した敵キャラのインデックスを取得する機能
に相当するスクリプトです。
このスクリプトで返ってくるインデックスは、
先頭が 0 ではなく 1 になっているので、 -1 をしています。
ご確認ください。
mochimochi さんが書きました:いつもお世話になっております。
以前MVの方で似た質問をさせて頂き無事解決でき、大変助かりました。
この度はMZを購入し新たにゲームを作っているのですが、MVの時と同様に敗北イベントを
設定しようとするとエラーが出てしまい上手くいきません…。
MVの時はフトコロ様のFTKR_ExBattleEventプラグインを使用させて頂き、敗北をした時に
$gameTroop.members() ? BattleManager._subject._enemyId : $gameTroop.members()._enemyId
というスクリプトでエネミーIDを取得し、最後に攻撃を行った敵エネミーごとのイベントを作成しておりました。
MZでは敗北イベント自体は作れているのですが、敵キャラごとのID取得が上手くいっていない様子です。
スクリプト等詳しくなく、調べても似たような事例が見つからず困っております。。
なにかプラグインやスクリプト等、そのほか敵キャラIDに応じた敗北イベントの作成方法があれば何卒ご教授頂けますと幸いです。
ちょっと補足。WTR さんが書きました:うまくいかないというのをもう少し具体的に説明できるでしょうか。
FTKR_ExBattleEvent は MV 向けだと思うのでエラーが出るとか
エラーは出てないけど意図しない値が取得されてしまうとか
あとこのスクリプトもちょっと疑問が…$gameTroop.members() が true か false かで処理をわけているのですがコード: 全て選択
$gameTroop.members() ? BattleManager._subject._enemyId : $gameTroop.members()._enemyId
js は空の配列も truthy でありこの処理分けには意味がなさそう。
ゆえに顕在化していないのだと思いますが
$gameTroop.members()._enemyId は undefined になるはずです。
と、書いてる途中に思い出したのですが
MZ では変数に直前に行動した敵キャラのインデックスを取得する機能が実装されましたね。
スクリーンショット 2024-12-12 160905.png
バトルイベントで変数に代入するだけでいけるかもしれません。
FTKR_ExBattleEventをきちんと試して、MZで完全な動作をするか確認してませんが、
少なくとも、敗北時のコモンイベント実行機能は、一応 MZでも動かせるはずです。
敗北時のコモンイベントは、戦闘シーン内で実行されるので、
$gameTroop.members() は空の配列ではなくて、メンバの配列をきちんと返すと思います。
ただ、コモンイベントが実行される段階で
BattleManager._subject には null が入っているので、
コード: 全て選択
BattleManager._subject._enemyId
cant read property '_enemyId' of null
というエラーが出力されるはずです。
また、WTR さんが仰っていますが、
$gameTroop.members() はメンバーの配列なので、
ここに _enemyId というプロパティは存在しておらず、
コード: 全て選択
$gameTroop.members()._enemyId
コード: 全て選択
$gameTroop.members()[最後に攻撃した敵キャラのインデックス].enemyId()
質問内容として、
欲しいのは、最後に攻撃した敵キャラのエネミーIDでしたよね?
でしたら、
敗北時のイベント内で、変数の取得のスクリプト等で、
コード: 全て選択
$gameTroop.members()[$gameTemp.lastActionData(3) - 1].enemyId()
$gameTemp.lastActionData(3) というのが、
WTR さんのおっしゃっている、
直前に行動した敵キャラのインデックスを取得する機能
に相当するスクリプトです。
このスクリプトで返ってくるインデックスは、
先頭が 0 ではなく 1 になっているので、 -1 をしています。
ご確認ください。
-
- 記事: 14
- 登録日時: 2021年6月10日(木) 18:31
Re: バトラーごとの敗北イベントの作り方
WTR様 ecf5DTTzl6h6lJj02 様
ご返信頂きありがとうございます。
お二方の記して頂いた事をもとに試してみると無事解決できました!
まさに困っていたのがcant read property '_enemyId' of nullというエラーが出てしまい進まず、エネミーIDをどうにか取得したいと思っておりました。
こちら、ecf5DTTzl6h6lJj02 様の記して頂いた代入方法で行うと無事IDを取得することができました。
また、インデックスに付きましてもありがとうございました。様々理解できました。
スクリプトの知識がなく制作が進まず困っていたところでして、本当に助かりました。
この度は丁寧に教えて頂き大変ありがとうございました。
ご返信頂きありがとうございます。
お二方の記して頂いた事をもとに試してみると無事解決できました!
まさに困っていたのがcant read property '_enemyId' of nullというエラーが出てしまい進まず、エネミーIDをどうにか取得したいと思っておりました。
こちら、ecf5DTTzl6h6lJj02 様の記して頂いた代入方法で行うと無事IDを取得することができました。
また、インデックスに付きましてもありがとうございました。様々理解できました。
スクリプトの知識がなく制作が進まず困っていたところでして、本当に助かりました。
この度は丁寧に教えて頂き大変ありがとうございました。