ページ 1 / 1
【解決】VE Element Set でエラー
Posted: 2020年5月14日(木) 18:56
by ムノクラ
VE Element Set でエラーが出てしまいます。
https://victorenginescripts.wordpress.c ... ement-set/
コード: 全て選択
rpg_managers.js:1949 TypeError: action.item is not a function
at Object.VictorEngine.getAllElements (VE_BasicModule.js:443)
at Object.VictorEngine.getAllElements (VE_ElementSet.js:158)
at Game_Action.calcElementRate (VE_ElementSet.js:187)
at Game_Action.makeDamageValue (rpg_objects.js:1671)
at Game_Action.apply (rpg_objects.js:1658)
at Function.BattleManager.invokeNormalAction (rpg_managers.js:2549)
at Function.BattleManager.invokeAction (rpg_managers.js:2540)
at Function.BattleManager.updateAction (rpg_managers.js:2522)
at Function.BattleManager.update (rpg_managers.js:2253)
at Scene_Battle.updateBattleProcess (rpg_scenes.js:2265)
動作環境
新規プロジェクト コア1.6.2
前提プラグイン
VE Basic Module
https://victorenginescripts.wordpress.c ... ic-module/
を入れました。
デフォルト設定のまま、戦闘を行ったら上記エラーが出ました。
バトラーが攻撃した時点でエラーが出るので、属性計算を失敗しているような気がします。
プラグインの修正点をご指導いただきたく、お願いいたします。
Re: VE Element Set でエラー
Posted: 2020年5月14日(木) 21:21
by Plasma Dark
VE_BasicModule.js と VE_ElementSet.js で VictorEngine.getAllElements の引数の型が違いますね。
BasicModule が期待する通り、 Game_Action 型を渡してあげるのが一番マシなやり方かなと思います。
コード: 全て選択
VictorEngine.ElementSet.getAllElements = VictorEngine.getAllElements;
- VictorEngine.getAllElements = function(subject, item) {
- var result = VictorEngine.ElementSet.getAllElements.call(this, subject, item);
- return result.concat(item.elementSet);
- };
+ VictorEngine.getAllElements = function(subject, action) {
+ var result = VictorEngine.ElementSet.getAllElements.call(this, subject, action);
+ return result.concat(action.item().elementSet);
+ };
...
VictorEngine.ElementSet.calcElementRate = Game_Action.prototype.calcElementRate;
Game_Action.prototype.calcElementRate = function(target) {
- elements = VictorEngine.getAllElements(this.subject(), this.item())
+ elements = VictorEngine.getAllElements(this.subject(), this);
if (elements.length > 1) {
return this.elementsMaxRate(target, elements);
} else {
return VictorEngine.ElementSet.calcElementRate.call(this, target);
}
};
Re: VE Element Set でエラー
Posted: 2020年5月15日(金) 12:16
by ムノクラ
Plasma Dark さんが書きました:VE_BasicModule.js と VE_ElementSet.js で VictorEngine.getAllElements の引数の型が違いますね。
BasicModule が期待する通り、 Game_Action 型を渡してあげるのが一番マシなやり方かなと思います。
コード: 全て選択
VictorEngine.ElementSet.getAllElements = VictorEngine.getAllElements;
- VictorEngine.getAllElements = function(subject, item) {
- var result = VictorEngine.ElementSet.getAllElements.call(this, subject, item);
- return result.concat(item.elementSet);
- };
+ VictorEngine.getAllElements = function(subject, action) {
+ var result = VictorEngine.ElementSet.getAllElements.call(this, subject, action);
+ return result.concat(action.item().elementSet);
+ };
...
VictorEngine.ElementSet.calcElementRate = Game_Action.prototype.calcElementRate;
Game_Action.prototype.calcElementRate = function(target) {
- elements = VictorEngine.getAllElements(this.subject(), this.item())
+ elements = VictorEngine.getAllElements(this.subject(), this);
if (elements.length > 1) {
return this.elementsMaxRate(target, elements);
} else {
return VictorEngine.ElementSet.calcElementRate.call(this, target);
}
};
ありがとうございます。
エラー無く動作させることが出来ました。
しかし、動作テストすると、プラグインパラメータ Element Multiplier を変更しても計算方法がデフォルトのままのように感じます。
デフォルトは「multiply」と同じですよね?
変更しても、ダメージの結果が変わらないので、働いていないのでしょうか?
YEP Element Core の代替になるかと考えていたのですが…
Re: VE Element Set でエラー
Posted: 2020年5月15日(金) 12:36
by Plasma Dark
デフォルトは「multiply」と同じですよね?
いいえ。デフォルトは highest です。
RPGツクールMVのダメージ計算式では、攻撃属性の中で最も有効な属性を計算に用います。
ちなみに、multiplyとadditionだけであればわたしの DarkPlasma_MultiElementRate.js でも代用が可能です。
https://github.com/elleonard/RPGtkoolMV ... entRate.js
スキルに属性を複数付与する と 属性ダメージ計算の方式を変更する は一緒に用いたい気持ちはとてもよくわかりますが、機能としては別なので、私個人の意見では分割されていてほしいですね。
Re: VE Element Set でエラー
Posted: 2020年5月16日(土) 12:21
by ムノクラ
Plasma Dark さんが書きました:デフォルトは「multiply」と同じですよね?
いいえ。デフォルトは highest です。
RPGツクールMVのダメージ計算式では、攻撃属性の中で最も有効な属性を計算に用います。
ちなみに、multiplyとadditionだけであればわたしの DarkPlasma_MultiElementRate.js でも代用が可能です。
https://github.com/elleonard/RPGtkoolMV ... entRate.js
スキルに属性を複数付与する と 属性ダメージ計算の方式を変更する は一緒に用いたい気持ちはとてもよくわかりますが、機能としては別なので、私個人の意見では分割されていてほしいですね。
バッチリ分かりました!…とは言えませんが、なんとなくは理解できたと思います。
ありがとうございました。