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

てるてる坊主
記事: 22
登録日時: 2018年10月09日(火) 19:01

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

投稿記事by てるてる坊主 » 2020年1月04日(土) 01:51

お世話になります。

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

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

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

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

そこで、指定したアイテムに対してのみ売却額を変更する方法があれば、教えて頂けますでしょうか?
若しくは、指定したアイテムIDのみが売却可能なショップの実装方法でも構いません。
宜しくお願い致します。
最後に編集したユーザー てるてる坊主 on 2020年1月05日(日) 18:24 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

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

投稿記事by 剣崎 宗二 » 2020年1月04日(土) 13:45

プラグイン類で済ませるというのであれば、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となるはずです。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
てるてる坊主
記事: 22
登録日時: 2018年10月09日(火) 19:01

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

投稿記事by てるてる坊主 » 2020年1月05日(日) 18:26

剣崎 宗二 さんが書きました:プラグイン類で済ませるというのであれば、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を使っていた変数に指定することで購入時と同じ価格で売ることができました!
お陰様で諦めかけていた株式売買が実装できます。

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

“MV:質問” へ戻る