(解決済み)属性毎にMP消費率を変える方法を知りたいです。

名無し蛙
記事: 305
登録日時: 2015年11月23日(月) 02:46

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by 名無し蛙 » 2021年12月29日(水) 02:45

では嘴挟んで投げるのもあれなので引き継ぎます。
改造自体は簡単ですけど着脱自由で競合対策も考えるとなると、自分は独自特徴化が無難な手法だと思います。

①以下のコードをコピって適当なファイルに保存してプラグインに追加してください
ライセンスは適当に作ったものなのでcc0。如何なる権利も放棄します。一段落ついたら保守もしません

コード: 全て選択

(() => {
    'use strict'

    const _DataManager_extractMetadata = DataManager.extractMetadata;
    DataManager.extractMetadata = function(data) {
        _DataManager_extractMetadata.apply(this, arguments);
        if (data.meta['属性MP消費率']) {
            const result = data.meta['属性MP消費率'].match(/(\d+)\,\s*(\d+)\%/);
            if (result) {
                const code = 101;
                const dataId = Number(result[1]);
                const value = Number(result[2]) * 0.01;
                const trait = {"code" :code, "dataId" :dataId, "value" :value};
                data.traits.push(trait);
            }
        }
    };

    Game_BattlerBase.prototype.elementMpCostPer = function(elementId) {
        return this.traitsPi(101, elementId);
    }

    const _Game_BattlerBase_skillMpCost = Game_BattlerBase.prototype.skillMpCost;
    Game_BattlerBase.prototype.skillMpCost = function(skill) {
        return Math.floor(_Game_BattlerBase_skillMpCost.apply(this, arguments)
            * this.elementMpCostPer(skill.damage.elementId));
    };

})();

②消費率を変更したいアクター、またはそのアクターに影響を与える
オブジェクト(職業、武器、防具、ステート、パッシブスキル等)のメモ欄に以下のタグ付けを行う
内部的に特徴に変換しているので既存の特徴と同じように運用してください。
小数点の端数は切り捨て。
複数のオブジェクトで変更が加えられた場合は全て乗算した数値で計算されます。

<属性MP消費率:属性ID, 消費率(%)>
例:<属性MP消費率:2, 200%> // 炎属性スキルのMP消費率を200%にする
例:<属性MP消費率:3, 50%> // 氷属性スキルのMP消費率を50%にする
例:<属性MP消費率:4, 0%> // 雷属性スキルのMP消費率を0%にする

アバター
なぴぃ
記事: 41
登録日時: 2021年12月19日(日) 19:47
連絡を取る:

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by なぴぃ » 2021年12月29日(水) 03:36

名無し蛙さんありがとうございました。

こちらもちゃんと動かないものを教えてしまった手前ですので
ご指摘頂いた点を踏まえプラグイン化してみてました。
せっかくですのでこちらも貼っておきます。
https://napiiey.github.io/plugins/napi_elementmpcost.html

パッシブスキルとして追加という話があったためパッシブスキル追加プラグインでも設定できる属性有効度を引き続き利用しています。
パッシブスキルを追加する方法もいろいろあるので、もし独自の特徴でも設定できそうであれば名無し蛙さんのものを利用された方がスマートでいいと思います。
独自の特徴付与に対応していないプラグインを使いたい場合はこちらを思い出して頂けたら幸いです。
なぴぃ
Twitter: https://twitter.com/napiiey
プラグイン置き場: https://napiiey.github.io/plugins/
あきまり
記事: 48
登録日時: 2018年2月04日(日) 06:45

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by あきまり » 2021年12月29日(水) 08:21

名無し蛙様返答ありがとうございます。

書いて頂いたモノをJSファイルにコピーペーストしたのですがタイトル画面で

Error
Uncaught TypeError: Cannot read property 'push' of undefined
と出てしまいましたどうすれば良いのでしょうか?

zokuseisyouhiritu が今回頂いた文を張り付けたファイルです。
F8?には下記の文言がありました

rpg_managers.js:1919 Uncaught TypeError: Cannot read property 'push' of undefined
SceneManager.onError @ rpg_managers.js:1919
rpg_managers.js:1920 chrome-extension://odlameecjipmbmbejkplpemijjgpljce/js/plugins/zokuseisyouhiritu.js 14
SceneManager.onError @ rpg_managers.js:1920
zokuseisyouhiritu.js:14 Uncaught TypeError: Cannot read property 'push' of undefined
at Function.DataManager.extractMetadata (zokuseisyouhiritu.js:14)
at Function.DataManager.onLoad (rpg_managers.js:142)
at XMLHttpRequest.xhr.onload (rpg_managers.js:86)
あきまり
記事: 48
登録日時: 2018年2月04日(日) 06:45

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by あきまり » 2021年12月29日(水) 08:48

なぴぃ様返信ありがとうございます。

作成して頂いたプラグインの手順に従い
5:15で属性:属性軽減率を設定し
キャラクターの特徴で有効度を50、パッシブスキルで50で2度試してみたのですが
MPの消費が軽減されませんでしたどうすれば良いでしょうか?
アバター
なぴぃ
記事: 41
登録日時: 2021年12月19日(日) 19:47
連絡を取る:

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by なぴぃ » 2021年12月29日(水) 10:05

あきまりさん
お試しいただきありがとうございました。

作成して頂いたプラグインの手順に従い
5:15で属性:属性軽減率を設定し
キャラクターの特徴で有効度を50、パッシブスキルで50で2度試してみたのですが
MPの消費が軽減されませんでしたどうすれば良いでしょうか?


状況を再現しようと、属性5を「水」、属性15を「水MP消費率」としてからプラグインパラメーターで5:15に設定し紐づけた状態でテストしてみました。
キャラクターの特徴に「水MP消費率」400%を加えテストしたところ問題なく動作いたしました。
メニューでも戦闘中のメニューでも4倍になっていますし、きちんと表示の通り消費しています。
装備の特徴や、他の複数キャラ同時、他の属性、いろいろ試してみましたが全て問題ありませんでした。

状況が再現できない為どうする事もできない状態です。

考えられるとしたら 5:15 の:(コロン)が全角になっているとかでしょうか。
後は競合は比較的起こりにくいように書いていますが設定をまるごと上書きしてしまうタイプのプラグインと一緒に使うと動かない可能性はあります。
なぴぃ
Twitter: https://twitter.com/napiiey
プラグイン置き場: https://napiiey.github.io/plugins/
アバター
なぴぃ
記事: 41
登録日時: 2021年12月19日(日) 19:47
連絡を取る:

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by なぴぃ » 2021年12月29日(水) 10:18

度々すみません。
新規プロジェクトで試してみたところ反映されない状況が再現できましたので検証してみます。
なぴぃ
Twitter: https://twitter.com/napiiey
プラグイン置き場: https://napiiey.github.io/plugins/
アバター
なぴぃ
記事: 41
登録日時: 2021年12月19日(日) 19:47
連絡を取る:

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by なぴぃ » 2021年12月29日(水) 10:29

カンマが1つ抜けていてプラグインパラメーターの初期値が機能していなかったみたいです。
お手数おかけして申し訳ございません。

https://napiiey.github.io/plugins/napi_elementmpcost.html
修正版をアップしました。
必ず古いファイルを一度消してから新しいものを読み込んでください。
上書き後一度消さないと初期値を引き継いでしまいます。

リストがこういう状態になれば正常です。
https://gyazo.com/6f2b3568f48245d3a6eeab5dacd47d89
なぴぃ
Twitter: https://twitter.com/napiiey
プラグイン置き場: https://napiiey.github.io/plugins/
アバター
なぴぃ
記事: 41
登録日時: 2021年12月19日(日) 19:47
連絡を取る:

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by なぴぃ » 2021年12月29日(水) 11:12

なお 名無し蛙さんのプラグインも試してみたのですが原因は不明ですがこちらでは問題なく動作していました。
一応ご報告しておきます。
なぴぃ
Twitter: https://twitter.com/napiiey
プラグイン置き場: https://napiiey.github.io/plugins/
あきまり
記事: 48
登録日時: 2018年2月04日(日) 06:45

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by あきまり » 2021年12月29日(水) 11:13

なぴぃ様修正ありがとうございます。

新しいモノにした所MP消費率軽減出来ましたありがとうございます。

ちなみにすみません下記のこの部分なのですが
なぴぃ様に教えて頂いた文の通り 属性「炎MP消費率」30、70、200で試してみましたがちゃんと増減していましたもしかしてしばらくするとエラーを起こす様になるのでしょうか?

テスト時にアクターを一人しか使わないモノで正常に動いてる様に見えていました申し訳ございません。
あきまり
記事: 48
登録日時: 2018年2月04日(日) 06:45

Re: 属性毎にMP消費率を変える方法を知りたいです。

投稿記事by あきまり » 2021年12月29日(水) 11:24

すみません名無し蛙様のプラグインは導入自体は出来たのですが

メモに
<属性MP消費率:5, 200%>

と書くとゲームが起動せずエラーが起きてしまいます。

“MV:質問” へ戻る