【解決済み】『木星ペンギン』様制作のATBにてcannot read property "setTarget" of null と不具合が出る

とらっしゅ

ユーザー
とらっしゅ / 湿度ケイと申します。
表題の通り質問がございます。

『木星ペンギン』様制作のATBプラグイン(下記サイトよりDL、バージョン2.8)にて、
以下の画像のように、cannot read property "setTarget" of null というエラーが起きました。
http://woodpenguin.web.fc2.com/MV_Plugin/ActiveTimeBattle.html

ツクールMVのバージョンは1.6.1です。
このデータはoggonly.jsでm4aデータを削除した、およびメモ欄でatbゲージを設定した以外何もしておらず、
またこのプラグイン以外のプラグインはすべてOFFにしております。

どのような原因が予想されますでしょうか。
または設定し忘れている項目はございますでしょうか
お知恵をお借りしたく思います。

upload_2018-12-2_13-12-27.png

追記:空のプロジェクトにこのプラグインのみ導入した場合でも同じことが起きました。
 

Attachments

最後に編集:

kuro

フォーラムスタッフ
おつかれさまです。
・1.6.1
・プラグイン:MPP_ActiveTimeBattleとCommunity_Basicのみ有効(設定は初期値)
・システム「サイドビュー戦闘を使用」にチェック

上記で正しく機能することを確認しました。

・エラー時にF12キーでDevelopper Toolsを開き、エラー箇所を貼ると何か手がかりが得られるかもしれません。
・敵グループを他のものに変えてはいかがでしょうか?
 

とらっしゅ

ユーザー
kuro様
挙動お知らせありがとうございます。
MPP_ActiveTimeBattleとCommunity_Basicのみ有効にした場合も同様にエラーが起きました。(Community_Basicで画面サイズが変わっています。)
設定はATB速度関係のみいじったと記憶しております。
upload_2018-12-2_15-15-55.png

Developper tools の表示は以下の通りでした。
upload_2018-12-2_15-18-2.png

引き続き確認いたします。
 
最後に編集:

奏ねこま

ユーザー
(調査報告です。解決には至っていません)

こちらでも新規プロジェクトで本プラグインのみ導入して試してみたところ同様のエラーが発生しました。
MVのバージョンは1.5.2と1.6.1で確認、ニューゲームで始めて戦闘に入り、1人目のアクターが行動可能になったら攻撃→敵を選択して決定(エラー)という流れです。

ソースをざっと拝見しましたが、
攻撃対象決定→行動選択中のアクターの番号をクリア→行動選択中のアクターの情報を取得(直前にクリアされているので取れずエラー)
となっており、私が見る限りではエラーになるのは当然でならないほうが不思議なレベルです。

更新履歴を見た感じ、昨日(2018年12月1日)も更新されており
作者さんもリアルタイムで手を入れているプラグインのようですので
直接質問したほうが早いかもしれません。
 

とらっしゅ

ユーザー
奏ねこま様

情報を共有いただきありがとうございます。
中身の精査には至っていなかったのですが、
もしかすると昨日のバージョンにて不具合が起きてしまったのかもしれませんね。

ブログの方にお問い合わせ等がなく、作者様へのコンタクト方法がわからなかったためこちらに共有したのですが、ご助言いただいた通り何か連絡する方法を探してみたく思います。
ありがとうございました。
 

canotun

ユーザー
こんにちは!調査してみたところ
『木星ペンギン』様制作のATBプラグイン 2011行目 Scene_Battle.prototype.onEnemyOkにて
Alias.ScBa_onEnemyOk.call(this);でactorを参照する必要があるにもかかわらず
その前の行のBattleManager.actor().onMadeAction();から呼ばれる
プラグイン1043行目のBattleManager.deleteDeactiveBattler();
でアクターへの参照をリセットしてしまっているため、アクターを取り出すことができずにエラーになっているようです。
プラグインのエラーですねぇ

2010行目近辺を以下のように書き換えるとうまく動きますが、
親メソッドを呼ばなくなるので副作用があります

コード:
//335
Alias.ScBa_onEnemyOk = Scene_Battle.prototype.onEnemyOk;
Scene_Battle.prototype.onEnemyOk = function() {
    var action = BattleManager.inputtingAction();
    action.setTarget(this._enemyWindow.enemyIndex());
    BattleManager.actor().onMadeAction();
    this._enemyWindow.hide();
    this._skillWindow.hide();
    this._itemWindow.hide();
    this.selectNextCommand();
};
 
最後に編集:
こんにちは、不具合の方確認しました。
canotunさんの書かれている通り、その一行を追加したのが原因のようです。
動作確認が不十分だったようです。

解決でき次第、更新したいと思います。
 

とらっしゅ

ユーザー
canotun様

詳細なご情報ありがとうございます。
プラグイン内部で問題が起きていたのですね、、、呼び出す行が間違ってしまっているのでしょうか?
PCツクールはまだ不慣れなので、大変助かりました。ありがとうございました。
 

とらっしゅ

ユーザー
木星ペンギン様

こんにちは。
迅速なご対応ありがとうございます。

さまざまなすばらしいプラグインを共有していただき、ありがとうございます。
何卒よろしくお願いいたします。
 
不具合の修正を行いました。
今度こそ大丈夫なはずです。

ダウンロードページ
http://woodpenguin.web.fc2.com/MV_Plugin/ActiveTimeBattle.html
もしくは↓からどうぞ

あと不具合の報告はメールフォームでもブログのコメントでもどこでも大丈夫です。
だいたい、ご報告いただくのはこのどちらかです。
ブログもどの日付の記事でも問題ありません。
 

Attachments

とらっしゅ

ユーザー
木星ペンギン様

迅速なご対応ありがとうございます。
使わせていただきます。

また、メールフォームやコメントの方法を見つけられず、フォーラムでのお願いとなり申し訳ございません。
今後はそのようにいたします。
 
トップ