ツクールMVのスクリプトでHPの増減を行う方法
RPGツクールVXAce & MVスクリプトwikiとプラグイン

ツクールMVのスクリプトでHPの増減を行う方法 > MVスクリプトwiki

トップページ > ツクールMVスクリプトリファレンスwikiトップページ > HPの増減

HPの増減 / ツクールMVスクリプトリファレンスwiki

ツクールMVでHPの増減をスクリプトで行うなら以下の通りです。


this.changeHp($gameActors.actor(アクターのID), 変化量, 戦闘不能を許可するか[true or false])

サンプルコード(アクターIDが2のアクターのHPを100減らす。戦闘不能を許可する)

this.changeHp($gameActors.actor(2), -100, true)


コード解説


変数により増減を決めたい場合、変化量のパラメータに変数を代入してください。

"changeHp"内部では指定したアクターのhpが減らす値よりも小さかった場合(つまり致死量の場合)かつ、戦闘不能を許可していない場合、hpを1残しhpを増減させ、戦闘不能を許可しており、死んでしまった場合は死亡アニメーションを実行するという処理を行っています。

似たようなメソッドに"gainHp"というものがありますが、こちらは死亡時の処理は含まれていないため、死亡時のアクションがありません。

ちなみに以下のようなものです。

$gameActors.actor(アクターID).gainHp(変化量)

そのシチュエーションによって使い分けてください。

HPを増やすときは「戦闘不能を許可する」のパラメータはtrueでもfalseでも構いません。

パーティー全体にHPの増減処理を行いたい場合は以下の通りです。

$gameParty.members().forEach(function(actor) {
		this.changeHp(actor, 変化量, 戦闘不能を許可するか[true or false]);
		}.bind(this));

サンプルコード(パーティー全体のHPを100マイナス、戦闘不能を許可)

$gameParty.members().forEach(function(actor) {
		this.changeHp(actor, -100, true);
		}.bind(this));

$gameParty.members()で現在パーティーにいるメンバー全員の情報を配列として取得しています。

"forEach"メソッドとは配列の要素の数だけ{}内の処理を繰り返すというものです。

{}内では要素は"function(変数)"の変数に代入されています。(上記の例ではactor)

上記の例では要素の数(パーティーにいるアクターの人数分)だけHPの増減を要素(アクター)に対して繰り返しています。

3行目にあるbindメソッドはforeach内のfunctionで使用するthisをGame_Interpreterに指定しています。

この記述が無いとthisが意図していない"Window"を指定してしまい、"TypeError: undefined is not a function"というエラーを吐いてしまいます。

javascriptでは"this"は様々な意味を持つため、このような要素指定が必要になります。

 

ツクールMVスクリプトリファレンスwikiトップページへ戻る




オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。



表示変更

任意の色に変えるときはテキストボックスをクリックしてカラーピッカーで決め、変更ボタンを押してください



文字色変更





コード色変更





コード背景色変更





背景色変更