イベント同士の接触をトリガーにEVページを実行させたい

返信する
aruru
記事: 3
登録日時: 2024年1月12日(金) 19:01

イベント同士の接触をトリガーにEVページを実行させたい

投稿記事 by aruru »

お世話になっております。
イベント同士が接触したときの判定に

if ($gameMap.event(this._eventId).pos($gameMap.event(2).x, $gameMap.event(2).y)) {
$gameSelfSwitches.setValue([1 , this._eventId, 'A'], true)}else if{ ~

といったスクリプトを並列処理で走らせて、else if{~ 以降でプレイヤーに話しかけられた場合の処理をしているのですが、色々煩雑なのでもっとシンプルな方法はないかと思いevent(2)が接触したことをトリガーにEVページが実行されればいいなとSAN_ExtendedEventPageのプラグインを使わせてもらったのですがうまく動きません。

<SAN_ExtendedEventPage:{
"trigger":"$gameMap.event(this._eventId).pos($gameMap.event(2).x, $gameMap.event(2).y)"
}>

注釈に上記のように書いて実行すると typeerror cannot read property 'pos' of undefined とのエラーが出て動かなくなります。
一番目のスクリプトとは何か書き方を変えないといけないのでしょうか?
知識がないので初歩的なことかもしれませんがよろしくお願いします。
ecf5DTTzl6h6lJj02
記事: 715
登録日時: 2018年12月23日(日) 13:55

Re: イベント同士の接触をトリガーにEVページを実行させたい

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
aruru さんが書きました:お世話になっております。
イベント同士が接触したときの判定に

if ($gameMap.event(this._eventId).pos($gameMap.event(2).x, $gameMap.event(2).y)) {
$gameSelfSwitches.setValue([1 , this._eventId, 'A'], true)}else if{ ~

といったスクリプトを並列処理で走らせて、else if{~ 以降でプレイヤーに話しかけられた場合の処理をしているのですが、色々煩雑なのでもっとシンプルな方法はないかと思いevent(2)が接触したことをトリガーにEVページが実行されればいいなとSAN_ExtendedEventPageのプラグインを使わせてもらったのですがうまく動きません。

<SAN_ExtendedEventPage:{
"trigger":"$gameMap.event(this._eventId).pos($gameMap.event(2).x, $gameMap.event(2).y)"
}>

注釈に上記のように書いて実行すると typeerror cannot read property 'pos' of undefined とのエラーが出て動かなくなります。
一番目のスクリプトとは何か書き方を変えないといけないのでしょうか?
知識がないので初歩的なことかもしれませんがよろしくお願いします。
エラーとしては、プラグインがページ出現条件を判定する際に、
this._eventId が undefined を返すため イベントのデータが取得できず(undefinedになってしまう)、
pos というプロパティ・メソッドは読み取れないと言われている状態です。

恐らく、プラグインがイベントページを設定するタイミングでは、イベントのデータがきちんと設定されていない(データがない状態な)ので、
この方法では、動作させられないかもしれません。


そもそもですが、このプラグインは本来、
イベントの出現条件の拡張をするもので、
イベントの起動条件を拡張するものではないので、
イベント同士の接触で起動するイベントをこのプラグインで作成するのはあまり正しくない気がします。

イベント同士の接触をトリガーにできるプラグインがないか検索をかけてみたところ、
蔦森くいな様の トリガー拡張プラグイン(TriggerExtension.js) というものがありました。
https://kuina.games/307-2/

私自身で試して確認してはおりませんので、
希望通りの動作がさせられるかどうかは保証できませんが、
こちらを導入してみてはいかがでしょうか。

以上、ご確認ください。
返信する

“MV:質問”に戻る