こんにちは。
少し長いので結論を先に書くと、タイトル通りですが
『最後にダメージを受けた敵』をスクリプトで変数に格納する方法を知りたいのです。
[経緯]
攻撃アイテムで、「敵単体にダメージ(確定効果)」処理の後、確率による追加効果で「『同じ敵に』追加ダメージ」もしくは「『アイテム使用者が』ダメージ」という効果を持つアイテムを設定したいです。
これを実現するために考えた方法が以下の通りです。
①アイテムの効果に確定効果のHPダメージを設定
②アイテムの効果にコモンイベントを追加。乱数と条件分岐により追加効果を確率分岐させる
③スクリプトを用いて「『同じ敵に』追加ダメージを与える」、「『アイテム使用者が』ダメージ」を設定
この③について、『アイテム使用者が』を変数に格納するには
$gameVariables.setValue([変数ID], BattleManager._action._subjectActorId); でできると見つけたのですが、
『同じ敵に(最後にダメージを受けた敵)』をスクリプトで変数に格納する方法が見つかりませんでした。
どなたかご存知の方お教えいただけないでしょうか。
もしくは、別の方法で実現できますでしょうか。
よろしくお願いします。
【解決済み】『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
【解決済み】『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
最後に編集したユーザー nomaly on 2018年11月05日(月) 08:59 [ 編集 1 回目 ]
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
敵の番号(1体目が0、2体目が1、3体目が2…)を取得するなら
$gameActors.actor(BattleManager._action._subjectActorId)._lastTargetIndex
こうでしょうか。
似たようなものに
BattlerManager._action._targetIndex
というものがありますが、これは行動決定時に選択した敵になるので
例えば「1体目を選択していたけど他のキャラが1体目を倒してしまったので自動的に2体目を攻撃した」という場合に
1にはなってくれず0のままになります。1つめのスクリプトなら1になります。
$gameActors.actor(BattleManager._action._subjectActorId)._lastTargetIndex
こうでしょうか。
似たようなものに
BattlerManager._action._targetIndex
というものがありますが、これは行動決定時に選択した敵になるので
例えば「1体目を選択していたけど他のキャラが1体目を倒してしまったので自動的に2体目を攻撃した」という場合に
1にはなってくれず0のままになります。1つめのスクリプトなら1になります。
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
奏ねこま様
回答ありがとうございます。
現在作っているゲームでは、既に倒した敵を別のアクターが目標にする可能性はないです。(フトコロ様の敵味方交互ターン戦闘プラグイン)
スクリプトの知識に乏しく、完成形が分からないのですが、前者なら
$gameVariables.setValue([変数ID], $gameActors.actor(BattleManager._action._subjectActorId)._lastTargetIndex);
後者なら
$gameVariables.setValue([変数ID],BattlerManager._action._targetIndex);
にすれば使えるのでしょうか。
回答ありがとうございます。
現在作っているゲームでは、既に倒した敵を別のアクターが目標にする可能性はないです。(フトコロ様の敵味方交互ターン戦闘プラグイン)
スクリプトの知識に乏しく、完成形が分からないのですが、前者なら
$gameVariables.setValue([変数ID], $gameActors.actor(BattleManager._action._subjectActorId)._lastTargetIndex);
後者なら
$gameVariables.setValue([変数ID],BattlerManager._action._targetIndex);
にすれば使えるのでしょうか。
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
ありがとうございました!
検索用 指定の敵 特定の敵 スクリプト
検索用 指定の敵 特定の敵 スクリプト
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
こんにちは。敵キャラIDを取得することはできたようです。
しかし、私が見つけた敵キャラのHPを減らす際のスクリプト
this.iterateEnemyIndex(敵ID, function(enemy) {
this.changeHp(enemy, 増減値, 戦闘不能を許可するか);
}.bind(this));
で敵ID(や増減値に)変数を使うとエラーになってしまうようです。
敵キャラを指定してHPの増減を行う他のスクリプトがあるのでしょうか。
しかし、私が見つけた敵キャラのHPを減らす際のスクリプト
this.iterateEnemyIndex(敵ID, function(enemy) {
this.changeHp(enemy, 増減値, 戦闘不能を許可するか);
}.bind(this));
で敵ID(や増減値に)変数を使うとエラーになってしまうようです。
敵キャラを指定してHPの増減を行う他のスクリプトがあるのでしょうか。
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
変数を使ったからエラーになったんじゃなくて
書き方を間違えたからエラーになったんじゃないですかね?
書き方を間違えたからエラーになったんじゃないですかね?
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
再びありがとうございます。
イベントコマンドで、
スクリプト $gameVariables.setValue(26, $gameActors.actor(BattleManager._action._subjectActorId)._lastTargetIndex);
変数ID27の定義
スクリプト this.iterateEnemyIndex(\V[26], function(enemy) {
this.changeHp(enemy, \V[27], true);
}.bind(this));
の3段階の手順にしていて、エラーになります。
最後の部分を
スクリプト this.iterateEnemyIndex(0, function(enemy) {
this.changeHp(enemy, 100, true);
}.bind(this));
にするとエラーなく動きます。
何か初歩的な部分を間違えているのでしょうか。
イベントコマンドで、
スクリプト $gameVariables.setValue(26, $gameActors.actor(BattleManager._action._subjectActorId)._lastTargetIndex);
変数ID27の定義
スクリプト this.iterateEnemyIndex(\V[26], function(enemy) {
this.changeHp(enemy, \V[27], true);
}.bind(this));
の3段階の手順にしていて、エラーになります。
最後の部分を
スクリプト this.iterateEnemyIndex(0, function(enemy) {
this.changeHp(enemy, 100, true);
}.bind(this));
にするとエラーなく動きます。
何か初歩的な部分を間違えているのでしょうか。
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
スクリプト内で「\V[26]」のような表記は使えません。
これは文章の表示でのみ可能な記述です(何らかのプラグインによる機能拡張があれば話は変わる)。
スクリプト内で変数を使いたい場合は
$gameVariables.value(26)
という風にしてください。
これは文章の表示でのみ可能な記述です(何らかのプラグインによる機能拡張があれば話は変わる)。
スクリプト内で変数を使いたい場合は
$gameVariables.value(26)
という風にしてください。
Re: 『最後にダメージを受けた敵』をスクリプトで変数に格納する方法 (敵にダメージ後、確率で追加ダメージor自分がダメージを設定したい)
$gameVariables.value(26) を試したところ、エラーなく動きました!
ありがとうございました、重ねて感謝申し上げます!
ありがとうございました、重ねて感謝申し上げます!