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

vibrato08
記事: 7
登録日時: 2016年6月13日(月) 13:44

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

投稿記事 by vibrato08 »

こんにちは、はじめまして。Vibratoと申します。

RPGツクールMVのイベントコマンド”変数の操作”において、
アクターや敵キャラのレベルや攻撃力などのステータスを代入することができますが、
ここで、”スキル実行者”や”ターゲット”のステータスを代入する方法はありませんでしょうか?
変数の操作のオペランドにスクリプトの項目があったので、
そこからなにか出来ないかと思った次第です。
最後に編集したユーザー vibrato08 [ 2016年6月16日(木) 08:12 ], 累計 3 回
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

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

投稿記事 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」に代入
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
vibrato08
記事: 7
登録日時: 2016年6月13日(月) 13:44

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

投稿記事 by vibrato08 »

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

確認時は、スキルの使用効果でコモンイベントを選び、
コモンイベントには「スクリプト」と「文章の表示」\v[n]で代入した変数を確認しました。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

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

投稿記事 by トリアコンタン »

失礼しました。
$gameVariableではなく$gameVariablesが正しいです。

コード: 全て選択

$gameVariables.setValue
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
vibrato08
記事: 7
登録日時: 2016年6月13日(月) 13:44

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

投稿記事 by vibrato08 »

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

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

投稿記事 by vibrato08 »

申し訳ありません。
今、気づいたのですが、敵が2体以上いた場合、1ターン目で敵Aにスキルを使用後、
2ターン目で敵Bにスキルを使用すると、敵Aのステータスが反映されてしまいました。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

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

投稿記事 by トリアコンタン »

いくつかパターンを試してみたのですが、こちらでは想定通りに動作しているようです。
問題の切り分けのため、念のため以下をお試しください。

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

なお、仕様上、複数をターゲットにした場合は最後に攻撃した対象の情報のみが保存されます。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
vibrato08
記事: 7
登録日時: 2016年6月13日(月) 13:44

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

投稿記事 by vibrato08 »

なるほど、うっかりしておりました。
通常通り、使用効果でコモンイベントを発動した場合は正常にうごきました。

スキルで使用した際には、YEP Action Sequencesを使用しており、
<target action>内のcommon event: x で発動した場合に、
前述の症状がでてしまうようでした。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

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

投稿記事 by トリアコンタン »

了解しました。
当該プラグインと両立させて、<target action>内のcommon event: xで発動した場合にもターゲットを取得できるようにするには、別途プラグインが必要になるかと思います。
作業量としてはそれほど多くはないはずなので、おそらくプラグインとして作成することも可能ですが、作成しますか?
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
vibrato08
記事: 7
登録日時: 2016年6月13日(月) 13:44

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

投稿記事 by vibrato08 »

ありがとうございます!
まさかスクリプトを作って頂けるとは・・・!
是非、お願いしたく思います!
返信する

“MV:質問”に戻る