3テラバイト

プログラム関連備忘録サイト。主にゲーム。

RPGツクールMV スクリプト

RPGツクールMVでMPの増減をスクリプトから行う

投稿日:2021年3月28日 更新日:

RPGツクールMVでMPの増減をスクリプトから行う方法についてまとめていきます。

イベントコマンドの1ページ目、アクター > MPの増減と同様の操作を、
イベントコマンドの3ページ目、上級 > スクリプトから行う方法です。

スクリプトコード

iterateActorExを使用する場合

以下のようにthis.iterateActorEx関数を使用して、スクリプトからMPの増減を行うことができます。

iterateActorExの第一引数には、第二引数でアクターのIDを固定で指定するか、変数で指定するかを示す値を渡します。(固定の場合は0、変数の場合は1)
第二引数にはアクターのID、または変数のIDを指定します。
第三引数にはfunctionを渡していますが、この関数の引数に対象のアクターが渡されるため、その値を用いて対象アクターに処理を行っていきます。

第三引数に渡している関数の内部で呼び出しているactor.gainMp関数の引数には増減する値を指定します。

以下の例ではアクターの1番のMPを10減らしています。

this.iterateActorEx(0, 1, function(actor) {
    actor.gainMp(-10);
}.bind(this));

iterateActorExを使用しない場合

上記の例は、実際にイベントコマンドでMPの増減が設定されている場合に使用されている関数ですが、アクター単体であれば以下のようにアクターのデータは$gameActors.actor関数で取得し、取得したアクターのgainMp関数を呼び出す方法もあります。

$gameActors.actor関数の引数にはアクターIDを指定します。

$gameActors.actor(1).gainMp(-10);

イベントコマンドの内容

イベントコマンドのMPの増減を追加した場合、内部的には以下のようなデータが挿入されており、
js\rpg_objects.jsの10211行目に定義されているcommand312関数が呼び出され、引数にparametersの値が渡されています。

{"code":312,"indent":0,"parameters":[0,1,1,0,10]}

parametersの値の内容は以下の通りです。

インデックス内容
[0][1]に格納されている値が固定か変数かを示す値(0 : 固定、1 : 変数)
[1]アクターのID、または変数のID
[2]どの操作を行うかを示す値(0 : 増やす、1 : 減らす)
[3][4]に格納されている値が定数か変数かを示す値(0 : 定数、1 : 変数)
[4]オペランドの定数の値、または変数のID

-RPGツクールMV, スクリプト


comment

メールアドレスが公開されることはありません。

関連記事

no image

RPGツクールMVで別マップから開始するニューゲームを追加できるプラグインAnotherNewGameの使い方

このプラグインを導入すると、上の画像のようにタイトル画面に指定マップからゲームを開始するコマンドを追加することができます。 このプラグインはトリアコンタン様が制作されたものです。 確認環境 RPGツク …

no image

RPGツクールMVでセーブデータに変数の値を表示するプラグインTMSaveDataLabelの使い方

プラグインを導入すると、セーブデータを表示する画面で任意の変数の値をセーブデータに表示することができます。 このプラグインはtomoaky様が制作されたものです。 確認環境 RPGツクールMV Ver …

no image

RPGツクールMV – プラグインからも使用できるシーンクラスまとめ

こんにちは、今日はRPGツクールMVで様々な画面の表示を司るシーンクラスについてまとめていきます。 シーンクラスはjs/rpg_scenes.jsに定義されており、ゲーム内で表示されるシーンは全てここ …

no image

RPGツクールMVでアイテムごとに所持上限を設定できるプラグインTMMaxItemsの使い方

このプラグインを導入すると、通常全アイテム99個までとなっている所持上限を、メモ欄の設定でアイテムごとに所持上限を設定可能になります。 このプラグインはtomoaky様が制作されたものです。 確認環境 …

no image

RPGツクールMV – System.jsonとデータベースの対応表

こんにちは、今日はRPGツクールMVのデータベースで設定できるシステム情報の格納先とエディタ上での設定との対応についてまとめたいと思います。 プロジェクトフォルダ/data/System.json S …