【解決済】発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

【解決済】発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by はあちむ » 2021年3月06日(土) 15:19

戦闘シーンの発動前コモンプラグインで、攻撃・防御の際、
それぞれのアクターのコモンイベントにしたい(自動戦闘)

はじめまして。
▼発動前コモン(やな様作) - BeforeCommon.js
https://plugin.fungamemake.com/archives/2033
スキルやアイテムの発動前に、スキルやアイテムに設定されたコモンイベントを発生させます。

を使わせていただき、戦闘シーンのカットインを制作しております。
一つ困っていることがありますのでお知恵をお貸し頂きたいです。

主人公以外は自動戦闘にしており、
攻撃・防御の際にもカットインを入れたいと思っておりますが、
全員のスキルIDが1,2になってしまうために
それぞれが攻撃・防御を使ったときに違うカットインを入れる方法を
考えております。

ヘルプに、
【I発動者インデックス変数IDで指定した番号の変数に、
行動者のインデックスが、
対象インデックス変数IDで指定した番号の変数に、
対象のインデックスが格納されます。
ただし、対象のインデックスは対象が単体の時しか格納されず、かつ、
エネミーの行動では、コモンを実行するタイミングで対象が決定していないため、
対象には-1(特定不可)が設定されます。】
と記述があるのですが、知識が浅くどうすればいいのかよくわからず困っております。

テストではアクターID2,5,10のキャラでためしており、
画像のようなコモンイベントを設定しましたが
うまくいきませんでした。

大変恐縮ですが、お知恵をお貸いただけませんでしょうか?
添付ファイル
SnapCrab_NoName_2021-3-6_15-11-41_No-00.png
最後に編集したユーザー はあちむ on 2021年7月14日(水) 11:58 [ 編集 2 回目 ]

ecf5DTTzl6h6lJj02
記事: 455
登録日時: 2018年12月23日(日) 13:55

Re: 発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by ecf5DTTzl6h6lJj02 » 2021年3月06日(土) 15:48

はあちむ さんが書きました:戦闘シーンの発動前コモンプラグインで、攻撃・防御の際、
それぞれのアクターのコモンイベントにしたい(自動戦闘)

はじめまして。
▼発動前コモン(やな様作) - BeforeCommon.js
https://plugin.fungamemake.com/archives/2033
スキルやアイテムの発動前に、スキルやアイテムに設定されたコモンイベントを発生させます。

を使わせていただき、戦闘シーンのカットインを制作しております。
一つ困っていることがありますのでお知恵をお貸し頂きたいです。

主人公以外は自動戦闘にしており、
攻撃・防御の際にもカットインを入れたいと思っておりますが、
全員のスキルIDが1,2になってしまうために
それぞれが攻撃・防御を使ったときに違うカットインを入れる方法を
考えております。

ヘルプに、
【I発動者インデックス変数IDで指定した番号の変数に、
行動者のインデックスが、
対象インデックス変数IDで指定した番号の変数に、
対象のインデックスが格納されます。
ただし、対象のインデックスは対象が単体の時しか格納されず、かつ、
エネミーの行動では、コモンを実行するタイミングで対象が決定していないため、
対象には-1(特定不可)が設定されます。】
と記述があるのですが、知識が浅くどうすればいいのかよくわからず困っております。

テストではアクターID2,5,10のキャラでためしており、
画像のようなコモンイベントを設定しましたが
うまくいきませんでした。

大変恐縮ですが、お知恵をお貸いただけませんでしょうか?

行動者のインデックス番号は、戦闘画面での並び順の番号(先頭が0)で、
アクターIDが記録されているのではないので、アクターIDとみなして、条件分岐を書いても、正しく条件分岐を通りません。
行動者のインデックスIDから、アクターIDに変換する処理が必要になります。
行動者のインデックスIDから変換したアクターIDを記録する変数を作り、
イベントコマンド『変数の操作』で 操作: 代入、 オペランド:スクリプト で次のコードを書いてください。

コード: 全て選択

$gameParty.battleMembers()[$gameVariables.value(1)].actorId()

このコードは発動者インデックス変数IDに 1 を指定しているものとして書いています。
$gameVariables.value(1) の数字部分を実際に指定している変数IDに変えてください。

この変数を条件分岐で使用することで、正しく処理されるようになると思います。
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: 発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by はあちむ » 2021年3月06日(土) 16:08

おはやい回答をありがとうございます。
頑張って理解しようとしております。

行動者のインデックスIDから、アクターIDに変換するコードを教えていただき
ありがとうとございます。
こちらの設定は、どこの箇所に記述を入れればよろしいでしょうか?
該当呼び出しコモンイベントの頭でしょうか…?
また、メンバーチェンジや並び替えをしたときに、
行動者順をアクターに変換すると、おかしなことにならないでしょうか?
大変恐縮ですが、ご教授いただけると幸いです。
ecf5DTTzl6h6lJj02
記事: 455
登録日時: 2018年12月23日(日) 13:55

Re: 発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by ecf5DTTzl6h6lJj02 » 2021年3月06日(土) 16:21

はあちむ さんが書きました:おはやい回答をありがとうございます。
頑張って理解しようとしております。

行動者のインデックスIDから、アクターIDに変換するコードを教えていただき
ありがとうとございます。
こちらの設定は、どこの箇所に記述を入れればよろしいでしょうか?
該当呼び出しコモンイベントの頭でしょうか…?
また、メンバーチェンジや並び替えをしたときに、
行動者順をアクターに変換すると、おかしなことにならないでしょうか?
大変恐縮ですが、ご教授いただけると幸いです。

$gameParty.battleMembers()[n].actorId()は
戦闘画面のステータスウィンドウに並んでる並びの順番で、n番目(先頭が0)に書かれているアクターのアクターIDを返す処理ですので、メンバーチェンジなどをしたとしても、きちんとアクターIDが返ってきます。
コモンイベントのサンプルを画像で上げておきますので、ご参考ください。

追記
コモンイベントの内容がおかしかったので、なおしました。
敵の攻撃だった時にイベントを中断する処理を先頭に入れています。
(行動者がエネミーだった場合は、行動者のインデックスに+1000した値が入ってくるので1000以上なら処理を中断する)
添付ファイル
001.png
サンプル
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: 発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by はあちむ » 2021年3月06日(土) 18:10

お返事ありがとうございます。
足りない頭でよく考えやってみたのですが、うまくいきませんでした。
アクターは2~10のアクターがいます。
全く見当違いのことをしていると思いますが、
添削していただけると幸いです…。
(ピクチャ表示分はカットしています。)



◆条件分岐:コモン発動者 = 1
◆変数の操作:#0011 コモン発動者 = $gameParty.battleMembers()[$gameVariables.value(1)].actorId()
◆条件分岐:コモン発動者 = 2
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 3
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 4
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 5
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 6
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 7
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 8
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 9
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 10
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 2
◆変数の操作:#0011 コモン発動者 = $gameParty.battleMembers()[$gameVariables.value(2)].actorId()
◆条件分岐:コモン発動者 = 2
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 3
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 4
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 5
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 6
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 7
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 8
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 9
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 10
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 3
◆変数の操作:#0011 コモン発動者 = $gameParty.battleMembers()[$gameVariables.value(3)].actorId()
◆条件分岐:コモン発動者 = 2
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 3
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 4
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 5
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 6
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 7
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 8
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 9
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆条件分岐:コモン発動者 = 10
◆ピクチャの移動:#1, 左上 (0,0), (100%,100%), 255, 通常, 5フレーム (ウェイト)
◆ウェイト:25フレーム
◆ピクチャの消去:#1
◆イベント処理の中断

:分岐終了
◆イベント処理の中断

:分岐終了

:分岐終了

:分岐終了
ecf5DTTzl6h6lJj02
記事: 455
登録日時: 2018年12月23日(日) 13:55

Re: 発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by ecf5DTTzl6h6lJj02 » 2021年3月06日(土) 19:02

はあちむ さんが書きました:お返事ありがとうございます。
足りない頭でよく考えやってみたのですが、うまくいきませんでした。
アクターは2~10のアクターがいます。
全く見当違いのことをしていると思いますが、
添削していただけると幸いです…。
(ピクチャ表示分はカットしています。)

こんな感じでコモンイベントを作成してみてください。

コード: 全て選択

◆注釈:行動者のインデックス番号を調べ、
:  :1000以上が入っていた場合は
:  :エネミーの行動で起動しているので、
:  :処理を中断する
◆条件分岐:行動者インデックス ≥ 1000
  ◆イベント処理の中断
  ◆
:分岐終了
◆注釈:
◆注釈:行動者インデックスから、そのインデックスのアクターの
:  :アクターIDを取得する。
:  :$gameVariables(n) の n には、
:  :BeforeCommon で指定した パラメータ 『IndexVariableID』 の値を書く。
◆変数の操作:#0001 行動者のアクターID = $gameParty.battleMembers()[$gameVariables.value(n)].actorId()
◆注釈:
◆注釈:これ以下は、カットインを表示する処理。
◆条件分岐:行動者のアクターID = 2
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 2 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 3
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 3 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 4
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 4 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 5
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 5 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 6
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 6 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 7
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 7 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 8
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 8 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 9
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 9 のカットイン表示処理を追加する。
  ◆
:分岐終了
◆条件分岐:行動者のアクターID = 10
  ◆注釈:この ◆条件分岐: ~ :分岐終了 までの中に
  :  :アクターID 10 のカットイン表示処理を追加する。
  ◆
:分岐終了

注釈は、説明しているだけのものなので、適宜、削除してください。
あと、イベント処理の中断は、最初の、「エネミーの行動で起動しているから中断している」部分以外では入れなくて大丈夫です。
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: 発動前コモンを攻撃・防御の際、それぞれのアクターのコモンイベントにしたい

投稿記事by はあちむ » 2021年3月06日(土) 19:18

ありがとうございます…!
無事、思った通りに実装することができました…。
長いことお付き合いいただき感謝いたします…。
本当にありがとうございました!

“MV:質問” へ戻る