【解決済み】DotMoveSystemのエラーについて

返信する
rpgcode
記事: 47
登録日時: 2020年2月29日(土) 03:53

【解決済み】DotMoveSystemのエラーについて

投稿記事 by rpgcode »

プラグインの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)

原因や対処策わかる方いたら教えて欲しいです。
よろしくお願いします。
最後に編集したユーザー rpgcode [ 2021年6月06日(日) 13:05 ], 累計 1 回
rpgcode
記事: 47
登録日時: 2020年2月29日(土) 03:53

Re: DotMoveSystemのエラーについて

投稿記事 by rpgcode »

その後、調べたところ

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

プレイヤーが宝箱に当たるとエラーが発生します。
対処方法ありませんでしょうか。
マドレーヌ
記事: 36
登録日時: 2020年11月07日(土) 19:48

Re: DotMoveSystemのエラーについて

投稿記事 by マドレーヌ »

最適解ではないので削除しました。添付画像のみ残します。                             
添付ファイル
プレイヤーいる場所2.png
プレイヤーいる場所.png
宝箱.png
最後に編集したユーザー マドレーヌ [ 2021年6月06日(日) 20:55 ], 累計 3 回
rpgcode
記事: 47
登録日時: 2020年2月29日(土) 03:53

Re: DotMoveSystemのエラーについて

投稿記事 by rpgcode »

マドレーヌさん

返信ありがとうございます。
いくつかわからないことがあったので確認させて下さい。
1、コピーする元のイベントの(宝箱イベント)の名前が違います。メモが不足していました。
2、宝箱イベントのメモに<TE:1>と記入することでプレイヤーいるMAPのEV001と交換するイメージです。
テンプレートマップにおかれている「宝箱」イベントのメモ欄についてですが、テンプレートマップの宝箱イベントメモ欄に「<TE:1>」と入れるのはなぜでしょうか。

TemplateEvent.jsのヘルプを見ると以下のように書かれています。
利用手順
1.テンプレートマップを作成して、テンプレートイベントを配置します。

2.テンプレートイベントに置き換えたいイベントのメモ欄を記述します。
IDとイベント名の双方が指定可能です。
<TE:1> テンプレートマップのID[1]のイベントに置き換わります。
テンプレートマップの「宝箱」イベントはコピー元であり、実際に宝箱を配置するイベント(コピー先)のメモ欄に「<TE:1>」と入れるとコピー先イベントがコピー元イベントに置き換わるという認識なのですが、これが間違っているということでしょうか?

"テンプレートイベントに置き換えたいイベントのメモ欄を記述"
"<TE:1> テンプレートマップのID[1]のイベントに置き換わります。"

この説明を読むと、私はそう読み取れるのですが。
IDとイベント名の双方が指定可能です。
と書かれているので、ID指定した場合、イベント名は任意でも大丈夫な気がするのですがダメなんでしょうかね?
3、プラグインコマンドでイベントのコピーする数が設定されていませんでした。
  1なら1個イベント生成 10なら10個イベント生成です。
EventReSpawnのヘルプを見ると以下のように書かれています。
生成位置をランダムにすることもできます。ただのランダムではなく
以下の補助条件を指定したうえでのランダムです。
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 コマンドに渡すパラメータの数は「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つ)

どちらが正確な情報なのでしょうか?
マドレーヌ
記事: 36
登録日時: 2020年11月07日(土) 19:48

Re: DotMoveSystemのエラーについて

投稿記事 by マドレーヌ »

rpgcode さん

私の実装方法は最適解ではありませんでした。
回りくどい実装してました。

テンプレートもとの宝箱イベントのトリガーを並列処理から決定ボタンにするだけで
エラーでは無くなります。それで解決でしょうか?

最初の質問に戻りますが、宝箱イベントのトリガーを並列処理して何がしたいのですか?
回りくどい実装が出来るように実装方法はいくつかあると思いますが、
それで実現出来ない内容でしょうか。


<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]個のイベントをランダム生成します。
rpgcode
記事: 47
登録日時: 2020年2月29日(土) 03:53

Re: DotMoveSystemのエラーについて

投稿記事 by rpgcode »

マドレーヌさん

ありがとうございます。
アドバイス頂いたようなイベントの実装方法を変えることでエラー回避もできるのがわかったのでありがたいです。

このエラーについてDotMoveSystemプラグイン作者のうなぎおおとろさんに確認したところ、以下の返答を頂きました。
動的イベントでGame_PrefabEvent#eraseで$dataMap.eventsに割り当てたイベントを解放していますが、ドット移動システムでは常にGame_Eventから$dataMap.eventsのデータを参照できる前提で作っているのでそこで競合してるみたいですね
ドット移動システムv1.6.0にアップデートして下さったので、v1.6.0以降ではこのエラーが発生しなくなりました。

 https://raw.githubusercontent.com/unagi ... eSystem.js

からダウンロードできます。

現在の最新バージョンは既存セーブデータ読み込みにも対応したDot movement system v1.6.1です。

マドレーヌさん、うなぎおおとろさん、どうもありがとうございました!
解決しましたので解決済みにします。
返信する

“MV:質問”に戻る