【解決】敵グループを作らずに、敵キャラで戦闘の処理

アンドゥトロワ
記事: 35
登録日時: 2021年8月26日(木) 21:53

【解決】敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by アンドゥトロワ » 2022年8月09日(火) 10:13

閲覧ありがとうございます。

・やりたいこと
敵グループを指定して、スクリプトで戦闘の処理を行う方法はわかったのですが、
敵グループを作らずに、敵キャラをIDで指定して戦闘の処理を行う方法はありますでしょうか?

スクリプトではなくプラグインでも良いので
良い方法があれば教えて下さい。


トリアコンタン様のカスタムメニュー作成プラグインで
一覧ウィンドウに表示した「データベースの敵キャラ一覧」から選択した敵キャラと戦闘したいと思ってます。

知恵をお貸しください、よろしくお願い致しますm(_ _)m
最後に編集したユーザー アンドゥトロワ on 2022年8月13日(土) 01:51 [ 編集 1 回目 ]

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: 敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by しぐれん » 2022年8月09日(火) 11:32

手動で戦闘に突入し、戦闘画面に入る前に変身させるのが良いでしょう。

コード: 全て選択

const enemyId = $gameVariables.value(11); //エネミーIDを入れた変数
if($dataEnemies[enemyId]){
const troopId =13;//ダミー用に使う敵グループ
  if ($dataTroops[troopId]) {
      BattleManager.setup(troopId, false,false );
      for(const e of $gameTroop.members()){
          e.transform(enemyId);//エネミーデータを書き換え         
      }
      $gamePlayer.makeEncounterCount(); //戦闘回数を記録
      SceneManager.push(Scene_Battle);
  }
}
現在、プラグイン依頼はお休み中です。
アンドゥトロワ
記事: 35
登録日時: 2021年8月26日(木) 21:53

Re: 敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by アンドゥトロワ » 2022年8月09日(火) 23:08

しぐれん様

回答ありがとうございます!
そのような方法は思いつきませんでした!
ありがとうございます!!

こちらは、イベントのスクリプトで記述したらよろしいでしょうか?
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: 敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by しぐれん » 2022年8月10日(水) 03:46

はい、イベントのスクリプトです。
MZであれば、プラグインコマンドを作成したのですが…
現在、プラグイン依頼はお休み中です。
アンドゥトロワ
記事: 35
登録日時: 2021年8月26日(木) 21:53

Re: 敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by アンドゥトロワ » 2022年8月11日(木) 23:39

しぐれん様 申し訳ございません、、、

教えていただいたコードを実行し、実現する事が出来ました!!
本当にありがとうございました!

そこで、敵の変身と同時に敵を全回復させて
さらに戦闘結果を返されるようにするにはどういったコードになるでしょう、、、

スクリプトが分からず出来ませんでした(*_*)
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: 敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by しぐれん » 2022年8月12日(金) 01:08

HPが減ったままで戦闘開始になったという事でしょうか。
ダミー用モンスターのHP/MPを99999にしておけば大丈夫だと思います。
出現時に全回復させるのであれば、以下のコードです。

コード: 全て選択

const enemyId = $gameVariables.value(11); //エネミーIDを入れた変数
if($dataEnemies[enemyId]){
const troopId =13;//ダミー用に使う敵グループ
  if ($dataTroops[troopId]) {
      BattleManager.setup(troopId,
          false, //逃走可能
          false //敗北可能
       );
      for(const e of $gameTroop.members()){
          e.transform(enemyId);//エネミーデータを書き換え
          e.recoverAll();//全回復       
      }
      $gamePlayer.makeEncounterCount(); //戦闘回数を記録
      SceneManager.push(Scene_Battle);
  }
}


戦闘結果の受け取り方法ですが、ダミー用敵グループにイベントを入れて色々やってみてください。
0ターン目に結果記録用スイッチなどを操作して、戦闘終了時にそのスイッチの結果を見て分岐すればよいです。
現在、プラグイン依頼はお休み中です。
アンドゥトロワ
記事: 35
登録日時: 2021年8月26日(木) 21:53

Re: 敵グループを作らずに、敵キャラで戦闘の処理

投稿記事by アンドゥトロワ » 2022年8月13日(土) 01:51

しぐれん様

大変ありがとうございました!
戦闘開始で変数に0を代入し、敵を倒した時に1を代入する事で上手くいきました!!

おかげさまで完璧に思い通りの動きが実現出来ました!

本当にありがとうございました!!!

“MV:質問” へ戻る