ページ 11

【解決済み】指定したアイテムに対してのみ売却額を変更したい

Posted: 2020年1月04日(土) 01:51
by てるてる坊主
お世話になります。

今回は、指定したIDのアイテムのみ売却できるショップをどうにか実装できないかお聞きしたいです。
というのも当方、アイテムに時間経過で価格が変動する株券を実装しているのですが、
その株券はショップの仕様上、売却時は半額でしか売れないのです。

これでは安い株券を買って、値上がりしてから売るにしても倍額以上でない限り損になってしまいます。

MrTS_SimpleShopTaxで売却倍率を操作しようとしましたが、
これだと他の関係ないアイテムまでそのままの値段で売れてしまいます。

まっつUP様のPawnShop.jsと併せればと考えましたが、どうやらカテゴリでしか分けられないみたいです。

そこで、指定したアイテムに対してのみ売却額を変更する方法があれば、教えて頂けますでしょうか?
若しくは、指定したアイテムIDのみが売却可能なショップの実装方法でも構いません。
宜しくお願い致します。

Re: 指定したアイテムに対してのみ売却額を変更したい

Posted: 2020年1月04日(土) 13:45
by 剣崎 宗二
プラグイン類で済ませるというのであれば、Scene_Shop.prototype.sellingPriceへの改造で可能と考えます。

一例として以下を新規プラグインにしてみてください:

コード: 全て選択

var _rndmcode_Scene_Shop_prototype_sellingPrice = Scene_Shop.prototype.sellingPrice;
Scene_Shop.prototype.sellingPrice = function() {
	if (this._item.id == 10)
	{
		return 50;
	}
	return _rndmcode_Scene_Shop_prototype_sellingPrice.call(this);
};
これならばアイテムIDが10のアイテムのみ、強制的に価額が50となるはずです。

Re: 指定したアイテムに対してのみ売却額を変更したい

Posted: 2020年1月05日(日) 18:26
by てるてる坊主
剣崎 宗二 さんが書きました:プラグイン類で済ませるというのであれば、Scene_Shop.prototype.sellingPriceへの改造で可能と考えます。

一例として以下を新規プラグインにしてみてください:

コード: 全て選択

var _rndmcode_Scene_Shop_prototype_sellingPrice = Scene_Shop.prototype.sellingPrice;
Scene_Shop.prototype.sellingPrice = function() {
	if (this._item.id == 10)
	{
		return 50;
	}
	return _rndmcode_Scene_Shop_prototype_sellingPrice.call(this);
};
これならばアイテムIDが10のアイテムのみ、強制的に価額が50となるはずです。
無事に価格の変更ができました!
私の環境でも問題なく動作します。

アイテムの価格はトリアコンタン氏のDynamicDatabase.jsを使用のため、変数で管理していたので
returnを使っていた変数に指定することで購入時と同じ価格で売ることができました!
お陰様で諦めかけていた株式売買が実装できます。

速やかな対応による修正に感謝します。
有難うございました。