ページ 11

【解決】ショップコマンド省略とSupponShopStockの競合

Posted: 2020年2月02日(日) 17:18
by ムノクラ
SupponShopStock 1.04m1 を愛用しております。
viewtopic.php?t=7951

tomoaky氏作のショップコマンド省略
https://hikimoki.sakura.ne.jp/plugin/TM ... Command.js
と使用したところ、競合を起こしてしまったようで、下記のエラーが出てしまいました。

コード: 全て選択

rpg_managers.js:1949 TypeError: Cannot read property '1' of undefined
    at Scene_supponSSshop.Scene_Shop.create (TMOmitShopCommand.js:46)
    at Function.SceneManager.changeScene (rpg_managers.js:2005)
    at Function.SceneManager.updateMain (rpg_managers.js:1982)
    at Function.SceneManager.update (rpg_managers.js:1907)


在庫ショップだけで買取をし、他のショップでは販売のみをしようとしたので、ショップコマンドを省略しようと導入したところでした。

こちらの回避方法がございましたら、ご指導をお願いいたします。

Re: ショップコマンド省略とSupponShopStockの競合

Posted: 2020年2月02日(日) 20:20
by Suppon
ムノクラさん、こんにちは。

在庫ショップを買い取りだけにしたいのなら、
tomoaky様のプラグイン(46行目)を下記のように書き換えると、
エラーは回避できると思います。

コード: 全て選択

//if (this._goods[0][1] === 0) {
if (this._goods.length==0 || this._goods[0][1] === 0) {

Re: ショップコマンド省略とSupponShopStockの競合

Posted: 2020年2月02日(日) 20:29
by ムノクラ
Suppon さんが書きました:ムノクラさん、こんにちは。

在庫ショップを買い取りだけにしたいのなら、
tomoaky様のプラグイン(46行目)を下記のように書き換えると、
エラーは回避できると思います。

コード: 全て選択

//if (this._goods[0][1] === 0) {
if (this._goods.length==0 || this._goods[0][1] === 0) {


ご返信いただき、ありがとうございます。
こちらを試した所、在庫ショップが買取のみになってしまいました。

在庫ショップは通常通り(売買可能で、売ったものだけが在庫になる)に動作させたいのです。
他のショップで販売のみにした時に、選択を飛ばす処理(ショップコマンド省略)を追加したいのです。

説明が足らず、申し訳ありません。

Re: ショップコマンド省略とSupponShopStockの競合

Posted: 2020年2月02日(日) 22:47
by Suppon
在庫ショップは、通常通りでよかったのですね。

でしたら、tomoaky様のプラグインを以下のように
修正すると、お望みの動作が得られるかと思います。

46行目の部分に★印のコードを挿入してみてください。

コード: 全て選択

var _Scene_Shop_create = Scene_Shop.prototype.create;
  Scene_Shop.prototype.create = function() {
    _Scene_Shop_create.call(this);
    if(this._goods.length==0){return}//★ここを追加
    if (this._goods[0][1] === 0) {
    ・
    ・

Re: ショップコマンド省略とSupponShopStockの競合

Posted: 2020年2月02日(日) 23:00
by ムノクラ
Suppon さんが書きました:在庫ショップは、通常通りでよかったのですね。

でしたら、tomoaky様のプラグインを以下のように
修正すると、お望みの動作が得られるかと思います。

46行目の部分に★印のコードを挿入してみてください。

コード: 全て選択

var _Scene_Shop_create = Scene_Shop.prototype.create;
  Scene_Shop.prototype.create = function() {
    _Scene_Shop_create.call(this);
    if(this._goods.length==0){return}//★ここを追加
    if (this._goods[0][1] === 0) {
    ・
    ・


バッチリ解決できました!
せっかくですのでMITに基づき再配布させていただきます。

https://fungamemake.com/archives/7481