【解決】ダメージ倍率変更ステートについて

アバター
nextocean
記事: 52
登録日時: 2015年11月18日(水) 04:31

【解決】ダメージ倍率変更ステートについて

投稿記事by nextocean » 2018年8月21日(火) 00:12

こんばんは。nextoceanです。
本日お聞きしたいのはダメージ倍率変更のステートについてです。

全ての与えるダメージが1.3倍になる。
全ての与えるダメージが0.7倍になってしまう。
全ての受けるダメージを0.7倍にする。
全ての受けるダメージが1.3倍になってしまう。

等のステータスに関係なくダメージが増減するステートを作りたいのですが、これはプラグインを使わなければ作れないものなのでしょうか?
【追記】
プラグイン無しでの処理が非常に面倒との情報を頂きましたので、引き続きプラグインの情報提供をお願い致します。

用途としては普通にバフデバフスキルで使用、もしくはパッシブスキルのプラグインでの付与等を考えています。
どうか情報提供よろしくお願いします。
最後に編集したユーザー nextocean on 2018年8月27日(月) 02:26 [ 編集 2 回目 ]

アバター
フトコロ
記事: 853
登録日時: 2017年2月06日(月) 21:32

Re: ダメージ倍率変更ステートについて

投稿記事by フトコロ » 2018年8月26日(日) 02:55

こんにちは。

少し手間ですが、プラグインがなくても作れると思います。

スキルのダメージ計算式には、スクリプトを記述して複雑な計算を行うことができますが
スキルの使用者と対象者の属性有効度を調べてダメージ倍率を変更する計算式を考えてみました。

・以下の属性を新規で設定(IDは仮)
与えるダメージを変更する属性:10
受けるダメージを変更する属性:11

・すべてのスキルのダメージ計算式を以下に変更
(元のダメージ計算式) * a.elementRate(10) * b.elementRate(11)

あとは、属性ID 10 と 11 の属性有効度をステートの特徴で変更することで
そのステートが付与されている間はダメージ倍率が変わります。


まあ、上記の処理をプラグインとして作ってしまったほうが楽だとは思いますが。
アバター
nextocean
記事: 52
登録日時: 2015年11月18日(水) 04:31

Re: ダメージ倍率変更ステートについて

投稿記事by nextocean » 2018年8月26日(日) 19:54

御返事ありがとうございます。
なるほど。プラグイン無しでも確かに出来そうではありますが、相当手間が掛かりそうですね。
するとそういうプラグインを探した方が良さそうですね。既存のプラグインは今のところ発見したことがないのですが、どこかで配布されているのを知っている方がいらっしゃったら情報をお願い致します。
フトコロさん御返事ありがとうございました。
アバター
フトコロ
記事: 853
登録日時: 2017年2月06日(月) 21:32

Re: 【追記】ダメージ倍率変更ステートについて

投稿記事by フトコロ » 2018年8月26日(日) 23:29

簡単ですが、スクリプトを紹介します。

コード: 全て選択

var _Game_Action_evalDamageFormula = Game_Action.prototype.evalDamageFormula;
Game_Action.prototype.evalDamageFormula = function(target) {
    var value = _Game_Action_evalDamageFormula.call(this, target);
    return value * this.subject().elementRate(10) * target.elementRate(11);
};


この内容をコピーして、JSファイルとしてプラグイン管理に登録すれば多分いけます。
属性のIDは、上の返信と同じです。
アバター
nextocean
記事: 52
登録日時: 2015年11月18日(水) 04:31

Re: 【追記】ダメージ倍率変更ステートについて

投稿記事by nextocean » 2018年8月27日(月) 01:38

こんばんは。
ありがとうございます。さっそく導入してみたのですが、
// ダメージ変動ステート
/*:
@plugindesc ダメージ変動ステートプラグイン。
@author フトコロ
*/
var _Game_Action_evalDamageFormula = Game_Action.prototype.evalDamageFormula;
Game_Action.prototype.evalDamageFormula = function(target) {
var value = _Game_Action_evalDamageFormula.call(this, target);
return value * this.subject().elementRate(46) * target.elementRate(47);
};

この状態でJSファイル化したところ何故か導入時に文字化けをしてしまい、登録が上手くいきませんでした。この場合、上の文字は追加せずに実装するものなのでしょうか。
アバター
nextocean
記事: 52
登録日時: 2015年11月18日(水) 04:31

Re: 【追記】ダメージ倍率変更ステートについて

投稿記事by nextocean » 2018年8月27日(月) 02:26

追記です。
上の部分を消してコードだけ入れてみたところ導入に成功しました!
どうもありがとうございました!

“MV:質問” へ戻る