ページ 2 / 2
Re: 自律移動のカスタムからプラグインコマンドを実行する方法
Posted: 2017年8月11日(金) 00:49
by ビービー
こんばんは。
私の環境では
$gameMap.eraseEvent(this._eventId);
はそのまま使用できました。
イベントIDを指定して消去したいということでしょうか?
それならID3のイベントを消す場合
$gameMap.eraseEvent(3);
でいけるようです。
Re: 自律移動のカスタムからプラグインコマンドを実行する方法
Posted: 2017年8月11日(金) 03:37
by にいやん
ビービーさん確認ありがとうございます。
metaエラーが出ていたのでプラグインの競合かなと思い調べていました。
とりあえずは競合しているプラグインは分かりましたのでどなたかエラー原因が分かる方よろしくお願いします。
プロジェクト:https://drive.google.com/open?id=0B_OBeqvetfyUbnJmY3ZESkZmOFU
■入れているプラグイン■
・トリアコンタンさん
テンプレートプラグイン
イベント動的生成プラグイン
・やなさん
StepSpeed
通常は $gameMap.eraseEvent(this._eventId); を移動ルートの設定から実行してもエラーが出ることはありませんがイベント動的生成プラグインのプラグインコマンド:ERS_MAKE_TEMPLATE 1 5 10 から呼び出されたイベントが移動ルートの設定中で $gameMap.eraseEvent(this._eventId); を実行するとmetaエラーが発生してしまいます。
通常イベントの実行では並列処理で敵との衝突判定を処理しているのでどうしても移動ルートの設定から $gameMap.eraseEvent(this._eventId); を実行したいです。
Re: 自律移動のカスタムからプラグインコマンドを実行する方法
Posted: 2017年8月11日(金) 10:33
by フトコロ
こんにちは。
エラーの内容は、以下のようです。
eraseEventスクリプトでイベント消去を実行する時にも、
平行してイベントのupdate処理が進んでいます。
update処理の中で、StepSpeed.jsの足踏み速度処理が行われるのですが、
この計算にイベントデータを使用しています。
そのため、イベントが消去されてしまうことで、読み出せずにエラーになっているようです。
通常、マップ内のイベントは、eraseEventスクリプトを実行してもイベントデータ自体は残りますが
イベント動的生成プラグインで作成されたイベントは、イベントデータ自体も消えてしまいます。
そのため、マップに元からあるイベントの場合は消去スクリプトを実行してもエラーになりませんが、
イベント動的生成プラグインで作成した場合はエラーになります。
暫定的な対処ですが、StepSpeed.jsを以下の様に修正すると、エラーは起きません。
コード: 全て選択
Game_Event.prototype.stepSpeed = function() {
var speed = 1.0;
if (this.event()) {
if (this.event().meta['足踏み速度']){ speed = Number(this.event().meta['足踏み速度']) }
if (this.event().meta['StepSpeed']){ speed = Number(this.event().meta['StepSpeed']) }
}
return speed;
};
Re: 自律移動のカスタムからプラグインコマンドを実行する方法
Posted: 2017年8月11日(金) 14:24
by にいやん
フトコロさん、プラグインの修正ありがとうございます。
言われた通りにStepSpeedを修正したらエラーが出なくなりました。
これで私のやりたい動作処理は完遂できました。ありがとうございました。