【解決済み】「common event calls exceeded the limit」というエラーについて

ヒュー広
記事: 11
登録日時: 2020年7月10日(金) 08:12

【解決済み】「common event calls exceeded the limit」というエラーについて

投稿記事by ヒュー広 » 2021年12月19日(日) 17:00

当方、ツクールMVではじめてゲームを作っている初心者です。
作ってみたゲームをプレイ中に、「common event calls exceeded the limit」というエラーが出て困っています。
調べてみたところ、コモンイベントが多すぎてこのエラーが出てしまうことが分かりました。
ですが、作り直すのも面倒なので、プラグインなど、他の方法でエラーを出さないようにするような方法があれば知りたいです。
ご存知の方いらっしゃいましたらご回答いただければ幸いです。よろしくお願いいたします。
エラーの詳細です↓
rpg_managers.js:1949 Error: Common event calls exceeded the limit
at Game_Interpreter.checkOverflow (rpg_objects.js:8784)
at Game_Interpreter.initialize (rpg_objects.js:8773)
at new Game_Interpreter (rpg_objects.js:8768)
at Game_Interpreter.setupChild (rpg_objects.js:9378)
at Game_Interpreter.command117 (rpg_objects.js:9372)
at Game_Interpreter.executeCommand (rpg_objects.js:8930)
at Game_Interpreter.update (rpg_objects.js:8838)
at Game_Interpreter.updateChild (rpg_objects.js:8849)
at Game_Interpreter.update (rpg_objects.js:8832)
at Game_Interpreter.updateChild (rpg_objects.js:8849)
最後に編集したユーザー ヒュー広 on 2021年12月20日(月) 14:28 [ 編集 2 回目 ]

chro
記事: 86
登録日時: 2021年2月14日(日) 11:26

Re: 「common event calls exceeded the limit」というエラーについて

投稿記事by chro » 2021年12月19日(日) 18:02

ヒュー広 さんが書きました:「common event calls exceeded the limit」というエラーが出て困っています。
調べてみたところ、コモンイベントが多すぎてこのエラーが出てしまうことが分かりました。


コモンイベントを呼び出し、さらにコモンイベントを呼び出し・・・と繰り返した場合に発生します。

多くの場合、コモンイベントの呼び出しを間違えて、コモンイベントが無限に実行されている場合のフリーズ対策です。

例:
cevent.png
cevent.png (25.82 KiB) 閲覧数: 1941 回

コモンイベント31→コモンイベント31→コモンイベント31→コモンイベント31・・・と無限に実行されるので、エラーで止まります。
ヒュー広
記事: 11
登録日時: 2020年7月10日(金) 08:12

Re: 「common event calls exceeded the limit」というエラーについて

投稿記事by ヒュー広 » 2021年12月19日(日) 19:07

返信いただきありがとうございます。

ご回答を踏まえたうえで考え直してみると、三つ疑問が浮かびました。

①私の場合、コモンイベント→別のコモンイベントという場合はあるのですが、無限ループになるような処理は行っておりません。
また、エラーが発生するタイミングは私が確認する限りでは不規則でした。
エラーを防ぐためには、コモンイベントから別のコモンイベントを呼び出すという処理はやらない方が良いということなのでしょうか?

②再度調べてみると、「イベント処理の中断やイベントが最後まで実行されていない形で、100回子として呼び出されるとエラーとなる」というようなことでした。
コモンイベント上でゲームを進行し続けるのがいけないのでしょうか?

③トリアコンタン様の作成した「ロード失敗エラーのすり抜けプラグイン」というものを拝見したのですが、このプラグインのように、発生したエラーを無かったことにはできないのでしょうか?

ご教授いただけると幸いです。
アバター
なぴぃ
記事: 41
登録日時: 2021年12月19日(日) 19:47
連絡を取る:

Re: 「common event calls exceeded the limit」というエラーについて

投稿記事by なぴぃ » 2021年12月19日(日) 20:23

処理に問題が無く純粋にエラーをスルーできればよいという事であればコアスクリプト rpg_objects.js の8782行近辺にある

コード: 全て選択

Game_Interpreter.prototype.checkOverflow = function() {
    if (this._depth >= 100) {
        throw new Error('Common event calls exceeded the limit');
    }
};

このメソッドの数字の100の部分を300等にして上限を引き上げるかエラーの処理自体を消し以下のような形にすれば恐らくスルーできるんじゃないかと思います。

コード: 全て選択

Game_Interpreter.prototype.checkOverflow = function() {
};

このコードをプラグイン化して読み込むのでもOKです。
なぴぃ
Twitter: https://twitter.com/napiiey
プラグイン置き場: https://napiiey.github.io/plugins/
chro
記事: 86
登録日時: 2021年2月14日(日) 11:26

Re: 「common event calls exceeded the limit」というエラーについて

投稿記事by chro » 2021年12月19日(日) 20:42

ヒュー広 さんが書きました:②再度調べてみると、「イベント処理の中断やイベントが最後まで実行されていない形で、100回子として呼び出されるとエラーとなる」というようなことでした。
コモンイベント上でゲームを進行し続けるのがいけないのでしょうか?

製作ミスやバグ等の異常な状態か、正常な処理なのか判別が出来ないので、一律でエラーになります。

ゲームを進行させ続けると、コモンイベントが100以上実行中のままになってしまうので、
セーブ関連で肥大化したり動作が遅くなったりします。

2、300程度発生しないとは思いますが、メモリ不足などで強制終了したりする可能性もありますので、上限なく実行させるのは難しいです。
最後に編集したユーザー chro on 2021年12月20日(月) 21:31 [ 編集 2 回目 ]
ヒュー広
記事: 11
登録日時: 2020年7月10日(金) 08:12

Re: 「common event calls exceeded the limit」というエラーについて

投稿記事by ヒュー広 » 2021年12月20日(月) 14:28

napiiey様
教えていただいた方法でエラーが出なくなりました!
ご回答いただきありがとうございます。とても助かりました。

chro様
エラーが出ることが問題ではなく、コモンイベント上でゲームを進行させ続けること自体が負担になるということですね。
その点を踏まえ、今後はそのような処理を避けてゲームを製作していこうと思います。
再度回答していただきありがとうございました。勉強になりました。

“MV:質問” へ戻る