ページ 11

イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月24日(日) 16:53
by Mr.あきちゃん
いつも大変お世話になっております。
過去に同様のトピックがあったら申し訳ありません。

イベント戦闘で、変数1の値に応じて敵キャラの能力値(攻撃力など)を変えたいのですが、
「バトルイベント」のバトル開始時に、
$gameTroop.members()[0].param(2) = $gameVariables.value(1)
とやってもうまくいきません。
$gameTroop.members()[敵ID].param(n)というのは参照専用なのでしょうか?

うまく変更できる方法があったら、何卒ご教示ください。
よろしくお願いいたします。

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月24日(日) 17:04
by トリアコンタン
こんにちは!
パラメータの設定は以下の通りです。

コード: 全て選択

$gameTroop.members()[n].enemy().params[m] = $gameVariables.value(1);

n:敵キャラインデックス(0~)
m:パラメータインデックス(0:最大HP、1:最大MP、2:攻撃力...)

敵グループのインデックスではなく敵キャラIDで指定する場合は以下の通りです。

コード: 全て選択

$dataEnemies[n].params[m] = 999;

n:敵キャラID(1~)
m:パラメータインデックス(0:最大HP、1:最大MP、2:攻撃力...)

なお、特にプラグインを使用しない場合、パラメータの最大値は以下の通りです。
最大HP:999999
最大MP:9999
その他:999

注意点として、変更した値はセーブ&ロードすると破棄されます。
また、同一IDの敵キャラがいた場合、その敵キャラのパラメータも同じように変化します。

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月25日(月) 01:30
by Mr.あきちゃん
トリアコンタン様

いつもお世話になっております。
ご教示いただき、ありがとうございました。
なるほど、enemy()を間に入れるのですね。

ちなみに最大HPは
$gameTroop.members()[0].enemy().params[0] = $gameVariables.value(1);
で良いのですが、HPの場合だと
$gameTroop.members()[0].enemy().hp = $gameVariables.value(1);
とやってもうまくいきません。
同様の方法でHP・MPは変えられますか?

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月25日(月) 05:15
by トリアコンタン
こんな感じになります。

コード: 全て選択

$gameTroop.members()[0].enemy().setHp($gameVariables.value(1));
$gameTroop.members()[0].enemy().setMp($gameVariables.value(1));


HPやMPの増減であればイベントコマンドの「敵キャラのHPの増減」等でも可能です。

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月27日(水) 15:13
by Mr.あきちゃん
トリアコンタン様

いつも大変お世話になっております。
返信が遅くなってしまい、申し訳ありませんでした。

HPは「敵キャラのHPの増減」でも出来るのですね。
値の指定ではなく、増加という形になりますが、問題はないです。

大変ご丁寧にご教示いただき、ありがとうございました。


ちなみに、ご教示いただいた
$gameTroop.members()[0].enemy().setHp($gameVariables.value(1));
だと、実行時に
TypeError: undefined is not a function
という別窓(?)のエラーが出ます。
導入しているプラグインのせいでしょうかね?

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月27日(水) 17:53
by まっつUP
Mr.あきちゃん様
お世話になります。
試してませんがenemy().を削除すれば動いてくれると思います。

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月27日(水) 23:37
by トリアコンタン
ああ、すみません……
ご指摘の通り、enemy() は不要です。

$gameTroop.members()[0].setHp($gameVariables.value(1));

Re: イベント戦闘時の敵キャラの能力値変更について

Posted: 2017年9月28日(木) 00:07
by Mr.あきちゃん
まっつUP様
トリアコンタン様

お世話になります。
確かにenemy().を除いたら問題なく動きました。
プラグインが原因でなくてよかったです。
ありがとうございました。

それにしても同じHP関係の設定なのに、
enemy() が要ったり要らなかったり‥
もう少し統一された仕様にならなかったんですかね…^^;
私はBasicなら若干読めるのですが、Javascriptは全く読めないので、
enemy() の要否とか(他のもそうですが)わからないのです…

いつも皆様のご教示に感謝いたします。