見出し画像

SRPG Studio プラグイン 移動量に応じたHP回復ユニットコマンド&Pluginの作り方( OriginalContent オリジナルコンテンツの使用方法)

こんにちは熱帯魚ことRYBAです。

移動量に応じたHPの回復ユニットコマンドを作りたい方向け

作り方に興味ねーよという方はPluginのところまで飛んでください。

では移動量に応じたHP回復ユニットコマンドについて解説します。

オリジナルコンテンツ

プラグインでオリジナルコンテンツを参照するコード

root.getEventCommandObject().getOriginalContent();

これで情報を参照できます。

ユニット

root.getEventCommandObject().getOriginalContent().getUnit();

変数1

root.getEventCommandObject().getOriginalContent().getValue(0);

このように情報参照が可能となります。

※今回はオリジナルコンテンツを無理やり活用するために作ったプラグインです。自分でプラグイン作らない方には解説項目は結構関係なさそうな気がします。

移動量に応じたHP回復値を計算する処理

SRPGStudioのイベントコマンドは豊富なので
大抵のことはイベントコマンドの組み合わせで解決できます。

今回はイベントコマンドでは取得できない
アクティブなユニットの移動量をもとに
HP回復値を計算する処理を作ります。

この消費移動量を参照にはこの関数となります

unit.getMostResentMov();

まずオリジナルコンテンツを格納しておきます。
コードが短くなり可読性がアップします。

var content = root.getEventCommandObject().getOriginalContent();

次にユニットやしきい値も格納しましょう
この時unitがnullなら計算せずreturn 0;で終了します。

しきい値は変数2の値を使用します
今回は基準数値×しきい値(threshold)=HP回復値とするので
thresholdが1未満にならないように補正します。

    var unit = content.getUnit();
	if(!unit){
		return 0;
	}

   var threshold = content.getValue(1);
   if(threshold < 1){
       threshold = 1;
   }

最後に基準数値を計算します。
変数1をtypeの値とし、計算方法を切り替えできるようにします。

   var type = content.getValue(0);
   var movValue = 0;
   if(type === 1){
       movValue = unit.getMostResentMov();
   }else if(type === 2){
       movValue = content.getValue(2) - unit.getMostResentMov();
   }else{
       movValue = ParamBonus.getMov(unit) - unit.getMostResentMov();
   }

設定しないと0なので
残っている移動力が基準数値となります。

typeが1だと
消費した移動力が基準数値となります。

typeが2だと
変数3に設定した数値 - 消費した移動力 = 基準数値
となります

設定方法

ユニットコマンドに設定します。

画像1

画像2

画像3

これだとHP回復コマンドを使用したユニット(Avtive)が

[数値3] - [消費した移動量] = [基準数値]
[基準数値] × [数値2]
例えば3マス移動した場合、
10 - 3 = 7
7 × 1 = 7
よって7回復します。

用途

あえて移動しないでHP回復するという選択肢を与えることができる
ユニットコマンドを作成したい時に。

1以上は回復してほしい場合、
下記の設定にすれば1は回復します。

画像4

応用編

しきい値に少数を使用したい!

という場合は

Math.floor();

を活用しましょう。

あらかじめ、しきい値を100で割った数値を使用する
という取り決めで改造すると

var hpRecoveryValue = Math.floor(movValue * threshold / 100);

という記述に変更し、
数値2を150に設定すると

しきい値は1.5として機能します。

注意点としてMath.floorし忘れると
JavaScriptの仕様上C言語などと異なり
少数となってしまい
意図しない結果を生み出す可能性があります。

Plugin

まとめ

もしかしたら公式が対応してしまうかもしれませんが
一応作り方まで記載しておきました。

今後は作成方法も合わせて
Pluginをひっそりと公開していきます。

良かったらフォローお願い致します!
Twitterのほうもよろしくお願い致します!

参考までにこちらもどうぞ↓


この記事が気に入ったらサポートをしてみませんか?