ページ 12

(解決済み)ステータスを変数に格納するには?

Posted: 2016年6月13日(月) 13:51
by vibrato08
こんにちは、はじめまして。Vibratoと申します。

RPGツクールMVのイベントコマンド”変数の操作”において、
アクターや敵キャラのレベルや攻撃力などのステータスを代入することができますが、
ここで、”スキル実行者”や”ターゲット”のステータスを代入する方法はありませんでしょうか?
変数の操作のオペランドにスクリプトの項目があったので、
そこからなにか出来ないかと思った次第です。

Re: ステータスを変数に格納するには?

Posted: 2016年6月14日(火) 05:23
by トリアコンタン
こんにちは。

スキルの実行者については「変数の操作」から以下の通り取得可能です。

コード: 全て選択

BattleManager._subject.atk; // 攻撃力の場合
BattleManager._subject.hp;  // HPの場合
※ 他の取得項目については戦闘計算式で使用する名称(防御の場合は「def」等)と同一です。

スキルのターゲットはやや複雑です。「変数の操作」では入りきらないので「スクリプト」から以下の通り実行してください。

コード: 全て選択

var action = BattleManager._action;
var unit = action.isForOpponent() ? action.opponentsUnit() : action.friendsUnit();
var target = unit.members()[BattleManager._subject._lastTargetIndex];
$gameVariable.setValue(n, target.atk); // 攻撃力を変数「n」に代入

Re: ステータスを変数に格納するには?

Posted: 2016年6月14日(火) 06:43
by vibrato08
お答えいただきありがとうございます!
早速試してみたところ、「変数の操作」からスキル実行者の攻撃力は取得できました!
しかし、「スクリプト」でターゲットの攻撃力は
Reference Error
$gameVariable is not deifned
というエラーが出てしまい取得できませんでした。

確認時は、スキルの使用効果でコモンイベントを選び、
コモンイベントには「スクリプト」と「文章の表示」\v[n]で代入した変数を確認しました。

Re: ステータスを変数に格納するには?

Posted: 2016年6月14日(火) 13:12
by トリアコンタン
失礼しました。
$gameVariableではなく$gameVariablesが正しいです。

コード: 全て選択

$gameVariables.setValue

Re: ステータスを変数に格納するには?

Posted: 2016年6月14日(火) 13:42
by vibrato08
確認したところ、エラーが発生することなく実行でき、
ターゲットのステータスを変数に入れることができました!
とても助かりました!ありがとうございます!

Re: ステータスを変数に格納するには?

Posted: 2016年6月14日(火) 15:01
by vibrato08
申し訳ありません。
今、気づいたのですが、敵が2体以上いた場合、1ターン目で敵Aにスキルを使用後、
2ターン目で敵Bにスキルを使用すると、敵Aのステータスが反映されてしまいました。

Re: ステータスを変数に格納するには?

Posted: 2016年6月14日(火) 22:19
by トリアコンタン
いくつかパターンを試してみたのですが、こちらでは想定通りに動作しているようです。
問題の切り分けのため、念のため以下をお試しください。

1. なにかプラグインを適用している場合は、外して確認してみる。
2. スキルではなく通常攻撃で試してみる。

なお、仕様上、複数をターゲットにした場合は最後に攻撃した対象の情報のみが保存されます。

Re: ステータスを変数に格納するには?

Posted: 2016年6月15日(水) 00:50
by vibrato08
なるほど、うっかりしておりました。
通常通り、使用効果でコモンイベントを発動した場合は正常にうごきました。

スキルで使用した際には、YEP Action Sequencesを使用しており、
<target action>内のcommon event: x で発動した場合に、
前述の症状がでてしまうようでした。

Re: ステータスを変数に格納するには?

Posted: 2016年6月15日(水) 01:16
by トリアコンタン
了解しました。
当該プラグインと両立させて、<target action>内のcommon event: xで発動した場合にもターゲットを取得できるようにするには、別途プラグインが必要になるかと思います。
作業量としてはそれほど多くはないはずなので、おそらくプラグインとして作成することも可能ですが、作成しますか?

Re: ステータスを変数に格納するには?

Posted: 2016年6月15日(水) 01:46
by vibrato08
ありがとうございます!
まさかスクリプトを作って頂けるとは・・・!
是非、お願いしたく思います!