プラグインのDotMoveSystem.jsを使っています。
プラグインを導入し、並列処理でマップイベントをはしらせると以下のエラーが発生します。
rpg_managers.js:1949 TypeError: Cannot read property 'pages' of undefined
at Function.getNote (DotMoveSystem.js:221)
at Function.getNoteValue (DotMoveSystem.js:212)
at Function.getHeightArea (DotMoveSystem.js:206)
at EventMover.heightArea (DotMoveSystem.js:1428)
at Game_PrefabEvent.Game_Event.heightArea (DotMoveSystem.js:2238)
at Game_Player.startMapEvent (DotMoveSystem.js:2159)
at Game_Player.checkEventTriggerHere (DotMoveSystem.js:2201)
at Game_Player.updateNonmoving (DotMoveSystem.js:1996)
at Game_Player.update (DotMoveSystem.js:1951)
at Scene_Map.updateMain (rpg_scenes.js:609)
原因や対処策わかる方いたら教えて欲しいです。
よろしくお願いします。
【解決済み】DotMoveSystemのエラーについて
【解決済み】DotMoveSystemのエラーについて
最後に編集したユーザー rpgcode [ 2021年6月06日(日) 13:05 ], 累計 1 回
Re: DotMoveSystemのエラーについて
その後、調べたところ
EventReSpawn で再生成しているイベントのトリガーが「並列処理」で実行内容で「イベントの一時消去」をしているときに発生することがわかりました。
使用プラグインは
TemplateEvent
EventReSpawn
DotMoveSystem
https://raw.githubusercontent.com/triac ... teEvent.js
https://raw.githubusercontent.com/triac ... ReSpawn.js
http://unagiootoro.f5.si/?archive=52
です。
以下に検証用プロジェクト作りました。
https://firestorage.jp/download/02ee0a2 ... 4b36e82f31
プレイヤーが宝箱に当たるとエラーが発生します。
対処方法ありませんでしょうか。
EventReSpawn で再生成しているイベントのトリガーが「並列処理」で実行内容で「イベントの一時消去」をしているときに発生することがわかりました。
使用プラグインは
TemplateEvent
EventReSpawn
DotMoveSystem
https://raw.githubusercontent.com/triac ... teEvent.js
https://raw.githubusercontent.com/triac ... ReSpawn.js
http://unagiootoro.f5.si/?archive=52
です。
以下に検証用プロジェクト作りました。
https://firestorage.jp/download/02ee0a2 ... 4b36e82f31
プレイヤーが宝箱に当たるとエラーが発生します。
対処方法ありませんでしょうか。
Re: DotMoveSystemのエラーについて
最適解ではないので削除しました。添付画像のみ残します。
最後に編集したユーザー マドレーヌ [ 2021年6月06日(日) 20:55 ], 累計 3 回
Re: DotMoveSystemのエラーについて
マドレーヌさん
返信ありがとうございます。
いくつかわからないことがあったので確認させて下さい。
TemplateEvent.jsのヘルプを見ると以下のように書かれています。
"テンプレートイベントに置き換えたいイベントのメモ欄を記述"
"<TE:1> テンプレートマップのID[1]のイベントに置き換わります。"
この説明を読むと、私はそう読み取れるのですが。
ERS_MAKE_TEMPLATE_RANDOM 1 1 2 3 5 4(ヘルプに書かれていること:パラメータ6つ)
ERS_MAKE_TEMPLATE_RANDOM 1 1 1 1 0 1 1(頂いたもの:パラメータ7つ)
どちらが正確な情報なのでしょうか?
返信ありがとうございます。
いくつかわからないことがあったので確認させて下さい。
テンプレートマップにおかれている「宝箱」イベントのメモ欄についてですが、テンプレートマップの宝箱イベントメモ欄に「<TE:1>」と入れるのはなぜでしょうか。1、コピーする元のイベントの(宝箱イベント)の名前が違います。メモが不足していました。
2、宝箱イベントのメモに<TE:1>と記入することでプレイヤーいるMAPのEV001と交換するイメージです。
TemplateEvent.jsのヘルプを見ると以下のように書かれています。
テンプレートマップの「宝箱」イベントはコピー元であり、実際に宝箱を配置するイベント(コピー先)のメモ欄に「<TE:1>」と入れるとコピー先イベントがコピー元イベントに置き換わるという認識なのですが、これが間違っているということでしょうか?利用手順
1.テンプレートマップを作成して、テンプレートイベントを配置します。
2.テンプレートイベントに置き換えたいイベントのメモ欄を記述します。
IDとイベント名の双方が指定可能です。
<TE:1> テンプレートマップのID[1]のイベントに置き換わります。
"テンプレートイベントに置き換えたいイベントのメモ欄を記述"
"<TE:1> テンプレートマップのID[1]のイベントに置き換わります。"
この説明を読むと、私はそう読み取れるのですが。
と書かれているので、ID指定した場合、イベント名は任意でも大丈夫な気がするのですがダメなんでしょうかね?IDとイベント名の双方が指定可能です。
EventReSpawnのヘルプを見ると以下のように書かれています。3、プラグインコマンドでイベントのコピーする数が設定されていませんでした。
1なら1個イベント生成 10なら10個イベント生成です。
ヘルプで例示されているものを見ると、ERS_MAKE_TEMPLATE_RANDOM コマンドに渡すパラメータの数は「6個」に見えるのですが、頂いたものをみると「7個」渡しているように見えます。生成位置をランダムにすることもできます。ただのランダムではなく
以下の補助条件を指定したうえでのランダムです。
a. 通行可能かどうか(0:判定なし 1:通行可能タイルのみ)
b. 画面内 or 画面外(0:判定なし 1:画面内 2:画面外)
c. 他のキャラとの重なり(0:判定なし 1:プレイヤー 2:イベント 3:両方)
d. 地形タグ(0:判定なし 1..:指定した地形タグ)
e. リージョン(0:判定なし 1..:指定したリージョン)
ERS_ランダム生成 1 1 2 3 5 4 # イベントID[1]のイベントを下記の条件(※)で配置
ERS_MAKE_RANDOM 1 1 2 3 5 4 # 同上
ERS_テンプレートランダム生成 1 1 2 3 5 4 # テンプレート[1]をランダム生成
ERS_MAKE_TEMPLATE_RANDOM 1 1 2 3 5 4 # 同上
※ 補助条件に関しては「ERS_ランダム生成」と同様です。
ERS_MAKE_TEMPLATE_RANDOM 1 1 2 3 5 4(ヘルプに書かれていること:パラメータ6つ)
ERS_MAKE_TEMPLATE_RANDOM 1 1 1 1 0 1 1(頂いたもの:パラメータ7つ)
どちらが正確な情報なのでしょうか?
Re: DotMoveSystemのエラーについて
rpgcode さん
私の実装方法は最適解ではありませんでした。
回りくどい実装してました。
テンプレートもとの宝箱イベントのトリガーを並列処理から決定ボタンにするだけで
エラーでは無くなります。それで解決でしょうか?
最初の質問に戻りますが、宝箱イベントのトリガーを並列処理して何がしたいのですか?
回りくどい実装が出来るように実装方法はいくつかあると思いますが、
それで実現出来ない内容でしょうか。
<TE:1>をメモに書くのは必要ならば使用します。今回の件では使用しなくても問題ありませんでした。
<TE:1>をどこに書くのかですが、おっしゃるとおりプレイヤーのMAP方に書く方が適切でした。
イベント名も任意で問題ありませんでした。
EventReSpawnプラグインの説明では下記のように7番目のパラメータと明記されています。
私の実装方法は最適解ではありませんでした。
回りくどい実装してました。
テンプレートもとの宝箱イベントのトリガーを並列処理から決定ボタンにするだけで
エラーでは無くなります。それで解決でしょうか?
最初の質問に戻りますが、宝箱イベントのトリガーを並列処理して何がしたいのですか?
回りくどい実装が出来るように実装方法はいくつかあると思いますが、
それで実現出来ない内容でしょうか。
<TE:1>をメモに書くのは必要ならば使用します。今回の件では使用しなくても問題ありませんでした。
<TE:1>をどこに書くのかですが、おっしゃるとおりプレイヤーのMAP方に書く方が適切でした。
イベント名も任意で問題ありませんでした。
ヘルプで例示されているものを見ると、ERS_MAKE_TEMPLATE_RANDOM コマンドに渡すパラメータの数は「6個」に見えるのですが、頂いたものをみると「7個」渡しているように見えます。
ERS_MAKE_TEMPLATE_RANDOM 1 1 2 3 5 4(ヘルプに書かれていること:パラメータ6つ)
ERS_MAKE_TEMPLATE_RANDOM 1 1 1 1 0 1 1(頂いたもの:パラメータ7つ)
どちらが正確な情報なのでしょうか?
EventReSpawnプラグインの説明では下記のように7番目のパラメータと明記されています。
ランダム生成する個数を設定できます。7番目のパラメータから指定します。
ERS_MAKE_RANDOM 1 1 1 1 1 1 2 # [2]個のイベントをランダム生成します。
Re: DotMoveSystemのエラーについて
マドレーヌさん
ありがとうございます。
アドバイス頂いたようなイベントの実装方法を変えることでエラー回避もできるのがわかったのでありがたいです。
このエラーについてDotMoveSystemプラグイン作者のうなぎおおとろさんに確認したところ、以下の返答を頂きました。
https://raw.githubusercontent.com/unagi ... eSystem.js
からダウンロードできます。
現在の最新バージョンは既存セーブデータ読み込みにも対応したDot movement system v1.6.1です。
マドレーヌさん、うなぎおおとろさん、どうもありがとうございました!
解決しましたので解決済みにします。
ありがとうございます。
アドバイス頂いたようなイベントの実装方法を変えることでエラー回避もできるのがわかったのでありがたいです。
このエラーについてDotMoveSystemプラグイン作者のうなぎおおとろさんに確認したところ、以下の返答を頂きました。
ドット移動システムv1.6.0にアップデートして下さったので、v1.6.0以降ではこのエラーが発生しなくなりました。動的イベントでGame_PrefabEvent#eraseで$dataMap.eventsに割り当てたイベントを解放していますが、ドット移動システムでは常にGame_Eventから$dataMap.eventsのデータを参照できる前提で作っているのでそこで競合してるみたいですね
https://raw.githubusercontent.com/unagi ... eSystem.js
からダウンロードできます。
現在の最新バージョンは既存セーブデータ読み込みにも対応したDot movement system v1.6.1です。
マドレーヌさん、うなぎおおとろさん、どうもありがとうございました!
解決しましたので解決済みにします。