P.F Lab

ゲーム作ってる人のメモ帳

SRPGStudioプラグイン説明:オリジナルデータの作成

使用するプラグイン内で言及していない限り関係ない話題です。自作だとシステム変数で必要なのでここに書いておきます。
なお、イベントコマンド「スクリプトの実行」にもオリジナルデータがあって構成も同じですが、実行時の付属データみたいな扱いなので、これらの内容とはまた別の話です。


ツール→オプション→上級で「コンフィグでオリジナルデータを表示する」にチェックを入れると、ツール→データ設定→コンフィグの形態変化設定の隣に「オリジナルデータ」ボタンが表示されているので、そこから編集できます。変数と同じようにタブで複数のグループに分けられています。


例えば上記のシステム変数では、ここに必要な分だけ新規作成して名前や初期値を決めて・・・となります。


で、これは何かというと(プラグイン前提で)エディタ上に独自のデータベースを作ることができます。プラグイン内に巨大な配列を作ったりCSVファイルを読み込んだりしても同じことができると思いますが、画像(特にアイコン)を扱う場合は視覚的にわかりやすいんじゃないかと。

SRPGStudioプラグイン説明:カスタムパラメータの結合

他所でも説明されてますが、たまに問い合わせがあるのでここにも書いておきます。
複数のプラグインで同じ箇所(ユニットやアイテムなど)にカスタムパラメータを設定する場合の書き方です。

プラグインAでユニットのカスタムパラメータ

{
    a:0
}

プラグインBでユニットのカスタムパラメータ

{
    b:1
}

の時、プラグインAとBを同時に使うには

{
    a:0,
    b:1
}

となります。他にもあるならカンマ区切りで下に加えていきます。

{
    a:0, b:1, c:2
}

とか

{
    a:0
    ,b:1
    ,c:2
}

みたいな書き方でもOKです。

SRPGStudio用プラグイン:属性によるダメージ変化(更新)

プラグイン一式はこちらから

複数の要素から攻撃属性が付与される際、優先度が以下のようになっていました。
ユニット<クラス<武器<アイテム<スキル<地形<ステート
今回の更新によりこの順番を変更できるようになりました。

また、攻撃属性が設定されていない場合は一番上の属性(デフォルトは無属性)にしていましたが「属性なし」という扱いになりました。

メイン処理
ダウンロード
アイテム情報ウィンドウ
ダウンロード
地形ウィンドウ
ダウンロード

SRPGStudio用プラグイン:アイテム所持個数制限(更新)

ダウンロード
・情報ウィンドウにアイテムのサイズが表示されない不具合修正
・武器(アイテム)タイプごとに所持数を制限できるプラグインですが、タイプによらず武器(アイテム)の所持数でも制限を設定できるようになりました。例えば「5枠のうち武器は3個まで持てる」みたいな使い方ができます

SRPGStudio用プラグイン:武器耐久の一括回復

ユニットが所持する武器の耐久を一括で最大値まで回復します。
ダウンロード

アイテムも回復したい場合は以下のように書き換えてください。
変更前

if(item !== null && item.isWeapon()) {

変更後

if(item !== null) {

AIスコア調整1.279

ver1.279でスコア算出方法が少しだけ変わったので、元に戻したい人や調整したい人はどうぞ。「AI_FirstStageChanger」を使ってる人はこの処理は上書きされてるので無視していいです。

(function() {

//HP減少優先の基準スコア(デフォルトは10)。0にすればver1.278と同じになる
var decreaseScore = 10;

AIScorer.Weapon._getDamageScore = function(unit, combination) {
	var damage;
	var score = 0;
	var hp = combination.targetUnit.getHp();
	var isDeath = false;
	
	damage = this._getDamage(unit, combination);
	
	hp -= damage;
	if (hp <= 0) {
		isDeath = true;
	}
	
	score = Miscellaneous.convertAIValue(damage);
	
	// 相手を倒せる場合は、優遇する
	if (isDeath) {
		score += 50;
	}
	else {
		// HPの減りが強いターゲットは優先して狙われる。10は基準スコア
		score += Math.floor(decreaseScore * (1 - (hp / ParamBonus.getMhp(combination.targetUnit))));
	}
	
	return score;
};

})();