【解決済み】アクターに装備の設定能力値が加算(減算)する処理を行なっているプログラム

返信する
フジナー
記事: 16
登録日時: 2022年2月10日(木) 06:06

【解決済み】アクターに装備の設定能力値が加算(減算)する処理を行なっているプログラム

投稿記事 by フジナー »

初めて質問をします。

現在、私はjavascriptを勉強中でして、
RPGツクールMVのプロジェクトフォルダにある実行プログラムについて色々と調べているのですが、
そのプログラムの中で
「武器(防具)装備時にその装備に設定している能力値変化量が装備したアクターに加算(減算)される」
という処理を実行しているプログラムはどのファイルの何行目にあるのでしょうか?

自分では「rpg_objects.js」の3639行~3645行にあるプログラムが
アクターに武器(防具)の装備についての処理をしているのではと考えているのですが(間違ってたらスミマセン)、
肝心の「アクターに装備に設定されている能力値変化量を加算(減算)する」処理らしきプログラムが見つかりません。
最後に編集したユーザー フジナー [ 2022年2月10日(木) 20:38 ], 累計 1 回
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: アクターに装備の設定能力値が加算(減算)する処理を行なっているプログラム

投稿記事 by 名無し蛙 »

コード: 全て選択

    this.releaseUnequippableItems(true);
    this.refresh();
};

Game_Actor.prototype.tradeItemWithParty = function(newItem, oldItem) {
    if (newItem && !$gameParty.hasItem(newItem)) {
        return false;
v1.6.2の3639-3645行ってここなんですけどえらく中途半端ですね
こういう時にも伝わりづらいしコアスクリプトの直接編集はしない方が良いですよ
装備品能力値の加算に関しては3847-3857行目ですね

コード: 全て選択

Game_Actor.prototype.paramPlus = function(paramId) {
    var value = Game_Battler.prototype.paramPlus.call(this, paramId);
    var equips = this.equips();
    for (var i = 0; i < equips.length; i++) {
        var item = equips[i];
        if (item) {
            value += item.params[paramId];
        }
    }
    return value;
};
毎回atkやdef等で能力値にアクセスする度に
「(職業に設定された能力値曲線+(ドーピング能力値+装備品能力値の合計)) * 特徴による能力変化率 * バフによる能力変化率」
という計算を行って該当パラメータを算出しています。
フジナー
記事: 16
登録日時: 2022年2月10日(木) 06:06

Re: アクターに装備の設定能力値が加算(減算)する処理を行なっているプログラム

投稿記事 by フジナー »

ありがとうございます!
行指定が間違っていました。正しくは↓の記述のことです。

Game_Actor.prototype.changeEquipById = function(etypeId, itemId) {
var slotId = etypeId - 1;
if (this.equipSlots()[slotId] === 1) {
this.changeEquip(slotId, $dataWeapons[itemId]);
} else {
this.changeEquip(slotId, $dataArmors[itemId]);
}

あとコアスクリプトを編集しようとしてたわけではなく、
単にそのプログラムを参考にプラグイン制作をしてみようと思っただけです。
返信する

“MV:質問”に戻る