イベントコマンドからの攻撃対象を通常攻撃した相手と同じにする方法について

アバター
ram04
記事: 37
登録日時: 2018年10月14日(日) 21:50

イベントコマンドからの攻撃対象を通常攻撃した相手と同じにする方法について

投稿記事by ram04 » 2018年12月06日(木) 01:12

こんにちは、いつもお世話になっております。
戦闘時にコモンイベントを利用し、通常攻撃後に制限時間内であれば任意のボタンを押すことで追加攻撃できるシステムを考え、試作してみました。(イメージ的にはMotehr3のサウンドバトルに近い感じです)
ある程度思った通りの挙動にはなったのですが、下記の点について、どうしても分からなかったので教えて頂けると嬉しいです。

・追加攻撃する対象を、通常攻撃時に選択した相手と同じにしたい
ツクールの仕様上、対象モンスターのHPを減らす場合にIDを指定しないといけないのですが、あくまでも「追加攻撃」という扱いですので、IDを指定してしまうと処理にずれが生じてしまいます。
また、対象の敵キャラが既に倒されていた場合、追加攻撃の処理をキャンセルするための条件分岐を作成しましたが、
こちらも対象モンスターのIDを指定しないといけません。
スクリプトで指定する方法や、代替案等がありましたら、教えて頂けると嬉しいです。
(コモンイベント自体は、通常攻撃のスキルに設定してあります)

また、余談ではありますが、この手の処理を作る際に他に何か実行した方が良い処理等があれば教えて欲しいです。
戦闘中のイベントをいじるのは今回が初めてなのですが、webで調べてみても、この手の作り方について解説されているサイトがあまりなかったもので、色々と模索している最中です…。
既に経験者の方がおりましたら、「他にこういった処理を行っておいた方が良い」等のアドバイスを頂けると嬉しいです。

どうぞよろしくお願いいたします。


※ダメージのポップアップについて(実行内容中のスクリプト)は、こちらの記事を参考にさせて頂いたことを申し添えておきます。
viewtopic.php?t=1404
添付ファイル
キャ   プチャ.PNG

----------------------------------------------------------------
ツクールMV一年生です。
現在自身の創作をモチーフにしたゲームを製作中です。
家庭用はSFCの2とPSの3が大好きです。
アバター
フトコロ
記事: 988
登録日時: 2017年2月06日(月) 21:32

Re: イベントコマンドからの攻撃対象を通常攻撃した相手と同じにする方法について

投稿記事by フトコロ » 2018年12月14日(金) 20:29

こんにちは。

最後に攻撃した相手のIDは、以下で取得できます。

$gameParty.members()[n]._lastTargetIndex
n : パーティーの並び順(先頭が0)

ちなみに、戦闘行動の強制コマンド、またはスクリプトによる戦闘行動の強制ではだめなのでしょうか。
あれならラストターゲットが設定できるので。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
アバター
ram04
記事: 37
登録日時: 2018年10月14日(日) 21:50

Re: イベントコマンドからの攻撃対象を通常攻撃した相手と同じにする方法について

投稿記事by ram04 » 2018年12月17日(月) 01:51

>フトコロ様

フトコロ様こんにちは、長らく回答される方がいなかったので、お返事頂けるとは思ってもみませんでした…ご親切にどうもありがとうございます!
調べ方を変えながら色々と模索していたところ、丁度こちら(https://tm.lucky-duet.com/viewtopic.php?t=166)の過去の質問に辿り着いたところでした;せっかく答えて頂いたのに申し訳ございません。
記事を参考にいじってみたところ、コマンドの組み方に少々難がありますが(出だしの条件式だとか…)、とりあえずラストターゲットを選ぶことができました。

そして「戦闘行動の強制」なるコマンドで「ラストターゲット」が選べることを初めて知りました。
教えて頂きありがとうございます!灯台下暗しとはこのことですね。
ただ、こちらの場合はアクターも指定しないといけないので、「アクター1が攻撃の時」みたいな条件式を書く必要があるのでしょうか…?

また、もしよろしければ、もう2つほど教えて頂きたいことがあります。
追加攻撃をする際の処理に組み込みたいのですが、
「攻撃をミスした場合(もしくは攻撃が成功した場合)」
「会心の一撃が出た場合」という情報を取得するためのスクリプトというのはあるのでしょうか。
対象はどちらもアクター側です。
rpg_scenes.jsを覗いてみたものの、現在の私の知識ではそこまで認識することができませんでした。
季節柄何かとお忙しいとは思いますが、よろしければご回答の方をどうぞよろしくお願いいたします。
添付ファイル
キャ  プチ ャ.PNG
----------------------------------------------------------------
ツクールMV一年生です。
現在自身の創作をモチーフにしたゲームを製作中です。
家庭用はSFCの2とPSの3が大好きです。
アバター
フトコロ
記事: 988
登録日時: 2017年2月06日(月) 21:32

Re: イベントコマンドからの攻撃対象を通常攻撃した相手と同じにする方法について

投稿記事by フトコロ » 2018年12月17日(月) 22:32

ram04 さんが書きました:そして「戦闘行動の強制」なるコマンドで「ラストターゲット」が選べることを初めて知りました。
教えて頂きありがとうございます!灯台下暗しとはこのことですね。
ただ、こちらの場合はアクターも指定しないといけないので、「アクター1が攻撃の時」みたいな条件式を書く必要があるのでしょうか…?

「戦闘行動の強制」をイベントコマンドで実行する場合は、アクターごとに条件分岐を書く必要がありますが
スクリプトで実行すれば、アクターを指定する部分もスクリプトで書けますので。
http://rpgmaker-script-wiki.xyz/battleaction_mv.php

もしくは、戦闘行動の強制に関するプラグインを使うという方法もあります。
ちなみに私もプラグインは作成しています。
https://github.com/futokoro/RPGMaker/bl ... tion.ja.md

ram04 さんが書きました:追加攻撃をする際の処理に組み込みたいのですが、
「攻撃をミスした場合(もしくは攻撃が成功した場合)」
「会心の一撃が出た場合」という情報を取得するためのスクリプトというのはあるのでしょうか。
対象はどちらもアクター側です。

この場合、スキルを使用した結果は、攻撃を受ける側(この場合はエネミーでしょうか)に
記録されます。

命中したか判定:
$gameTroop.members()[ラストID].result().isHit()

クリティカルが出たか:
$gameTroop.members()[ラストID].result().critical

このあたりは、rpg_objects.js の Game_ActionResult に記載あります。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。

“MV:質問” へ戻る