ページ 11

FTKR_ItemSubCommand.jsでアイテムを捨てる時のセーブデータについて

Posted: 2019年11月19日(火) 23:33
by MEIKOI
こんにちは。いつも質問ばかりしてすみません。

YPE_ITEMCORE
DreamX/Random Equipment Prefixes & Affixes
を使って武器&防具(以下アイテム)を固有アイテムで生成して所持しています。

標準機能では、捨てる事ができないので
アイテムボックスにサブコマンドを追加するプラグイン
FTKR_ItemSubCommand.js
で、「捨てる」コマンドを使えるようにして

「捨てる」を行っていますが
アイテムを捨てても「セーブデータ容量が削減」できません。

たとえば、100個アイテムを入手して
すべて100個「捨てる」コマンドから捨てても
セーブデータは、減りません。


トピックを検索していたら
似たような相談を見つけました。
viewtopic.php?f=23&t=7200


ほぼ、この現象と同じなのだろうと思っているのですが
FTKR_ItemSubCommand.jsのドコにどの様に基礎データの削除を記述すれば良いのかわからないです。


アイテムを捨てる処理の部分のコードは、
//------------------------------------------------------------------------
Scene_Item.prototype.createNumberWindow = function() {
var wnd = FTKR.ISC.subcom.number;
var wx = this.convertX(wnd);
var wy = this.convertY(wnd);
var wh = this.convertHeight(wnd);
this._numberWindow = new Window_ItemNumber(wx, wy, wh);
this._numberWindow.hide();
this._numberWindow.setHandler('ok', this.onNumberOk.bind(this));
this._numberWindow.setHandler('cancel', this.onNumberCancel.bind(this));
this.addWindow(this._numberWindow);
};

Scene_Item.prototype.onNumberOk = function() {
if (FTKR.ISC.subcom.enableConf) {
SoundManager.playOk();
this._confTitleWindow.setItem(this._subCommandWindow._item, this._numberWindow.number());
this._confTitleWindow.show();
this._confWindow.show();
this._confWindow.actSelect(0);
} else {
this.itemDiscard();
}
};

Scene_Item.prototype.onNumberCancel = function() {
this._numberWindow.hide();
this._subCommandWindow.actSelect(this._subCommandWindow.index());
};

Scene_Item.prototype.itemDiscard = function() {
AudioManager.playSe(FTKR.ISC.subcom.sound.disposal);
$gameParty.gainItem(this._subCommandWindow._item, -this._numberWindow.number());
this.onSubComCancel();
};

の様になっているのですが
DataManager.removeIndependentItemは、どこにどの様に記述すれば良いのでしょうか?

ある程度自分で考えてみているのですが。
そもそも、すべてが間違っている場合は、すみません。。。

Re: FTKR_ItemSubCommand.jsでアイテムを捨てる時のセーブデータについて

Posted: 2019年11月20日(水) 10:23
by 剣崎 宗二
お疲れ様です。
DataManager.removeIndependentItemは、どこにどの様に記述すれば良いのでしょうか?

この件は、実は前回の回答内にヒントがございます。

前回の回答時、
loseItemの仕組みは実質、量を-にしたgainItemとなります。

という解説を行ないました。
なので、今回のスクリプトに於いては、前回同様「loseItem/gainItem」の直後に置けばいいかと思います。
具体的には

コード: 全て選択

Scene_Item.prototype.itemDiscard = function() {
AudioManager.playSe(FTKR.ISC.subcom.sound.disposal);
$gameParty.gainItem(this._subCommandWindow._item, -this._numberWindow.number());
DataManager.removeIndependentItem(this._subCommandWindow._item);
this.onSubComCancel();
};


となるかと思います。

Re: FTKR_ItemSubCommand.jsでアイテムを捨てる時のセーブデータについて

Posted: 2019年11月20日(水) 13:32
by MEIKOI
剣崎 宗二様

またまた回答頂きましてありがとうございます!

捨てるのスクリプトの中になぜ、GAINITEMがあるのかなと思ったのですが
実際、-の意味がわかってなくて、気が付きませんでした^^;

今晩にでも書き換えて動かしてテストさせて頂きまして、報告いたします。

助かりましたmm 誠にありがとうございます!


追記です。

コードを付け加えて
無事にセーブデータ量の削減をする事ができました。
ありがとうございました!!