【解決済】プラグインを動的にON、OFFする方法(バックログのプラグインの不具合対応)

よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

【解決済】プラグインを動的にON、OFFする方法(バックログのプラグインの不具合対応)

投稿記事by よしだとものり » 2017年8月16日(水) 01:30

現在、ぽに犬様のバックログのプラグインを利用させて頂いているのですが、
戦闘画面に入るとtypeエラーが表示されます。

そこで、プラグインコマンドで戦闘画面に入る前にOFFにして
戦闘画面を抜けたらONにするようにしようと考えています。

プラグインコマンドのBackLogOFFで変数に1を
BackLogONで変数に0を入れるようにして
プラグインコマンドの処理が終わったら
変数が1ならばreturnするようにしてみたのですが
変わらずエラーが発生します。

最初は即時関数内で変数を宣言したからかなと思い
即時関数の外で var xxx;と宣言してみましたが
変わらずエラーが発生します。

即時関数の中でreturnしてもプラグインを無効にすることは
できないのでしょうか?

また、動的に無効にするにはどのようにしたらよろしいのでしょうか?
怪しい箇所を全て if(xxx==0) で括るしかないのでしょうか?
最後に編集したユーザー よしだとものり on 2017年8月16日(水) 21:23 [ 編集 3 回目 ]

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: プラグインを動的にON、OFFする方法

投稿記事by しぐれん » 2017年8月16日(水) 03:28

原理的にほぼ無理です。
できたとしても、動的に切り替えたことによるバグが発生する可能性があるでしょう。
なので、条件を詳しく調べてバグ報告がいいと思います。

typeエラーが undefined not a functionを指すのであれば、どこかで存在しない関数を呼んでいる可能性があります。
(2016年の記述ですが)調べたところver1.0未満で人柱との記述がありました。
F8でスタックトレースを出して、エラーの原因を特定するのが良いでしょう。
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: プラグインを動的にON、OFFする方法

投稿記事by よしだとものり » 2017年8月16日(水) 10:17

ありがとうございます。
解決しました。
発生個所はBackLog.prototype.ButtonPress
picIDがバトル中は何故か0になってましたので
0ならreturnするようにしたら解決しました。

なお、私はツイッターも何もやらないので、ぽに犬様への報告方法は
分かりません。
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: 【解決済】プラグインを動的にON、OFFする方法

投稿記事by しぐれん » 2017年8月16日(水) 12:59

調べたところぽに犬さんのブログがあるようですので、そこに書き込んでみるのはどうでしょうか?
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 【解決済】プラグインを動的にON、OFFする方法

投稿記事by よしだとものり » 2017年8月16日(水) 16:54

先ほど、ブログを探してコメントしました。
ありがとうございました。

追記
そのうち対応されるかと思いますが、詳しくは以下のように
最後の行を追加するとエラーが出なくなります。
ただし自分は素人なので自己責任でお願いします。

BackLog.prototype.ButtonPress = function(picID) {

if($gameScreen.picture(picID)==null)return 0;
if($gameScreen.picture(picID)._visible==false)return 0;

var tx = TouchInput.x;
var ty = TouchInput.y;

var nPictureId=picID-1;
//配列の[0]に1番を入れて順に格納してるのでアクセスする際にずれを訂正しておく。

//
var nButtonW,nButtonH;
//下の一行を追加します。
if(picID==0) return;

“MV:質問” へ戻る