Re: バグ報告スレッド 9 [ No.124 ]
メンテ
 2010/08/30 02:03
 XQNH
>>121
素早い返信ありがとうございます。
にもかかわらず、返信が遅れて申し訳ありません。

どうやら此方の説明が良くなかったらしく、上手く伝えられなかったようです。
順を追って説明したいと思います。

私は、ウディタ講座を幾つかこなした後、そのうち一つの教材用のシナリオをマウスで動かせるようにしてみようと思いました。
まず、コモンイベント集よりマウス移動のコモンを取得して組み込み、続いて、自作の主人公の目の前のマップイベントをを右クリックで呼びだすコモンを作りました。
これは、変数操作+でマウス座標のEvIDを取得し、イベントの挿入でこのイベントを呼びだすものです。

この方法で選択肢の出るマップイベントを呼びだしたところ、選択肢を選ぶマウスにつられて主人公が動き回ってしまいました。
ここで使用したマウス移動コモンには、システム変数13番を認識して動作が止まるように作ってありましたが、F9で変数一覧を見たところ、システム変数13番が0のままだったのです。

このマップイベントの起動トリガーは「決定キーで実行」で、その通りに決定キーで呼び出したところ、システム変数13番には1が取得され、マウスを動かしても主人公はちゃんと停止したままでした。

以上の状況から、私は「イベントの挿入」で呼び出されたマップイベントには、システム変数13番のフラグが立たないのではないかと推測し、バグではないかと疑ったわけです。

拙い説明で解りにくく、申し訳ありませんが、ご理解いただけたならと思います。


** 私の使用したシナリオやコモンについての詳細な情報は、作者様方の名前を出して良いか解らなかったので控えました。
その為、更に分かりにくい文になっているとは思いますが、その点お許し願います。
Re: バグ報告スレッド 9 [ No.125 ]
メンテ
 2010/08/30 06:02
 たぴす
>>124
はじめまして。
勉強になりそうなのを発見したので検証してみました。

マップイベントをイベント挿入で呼び出してみましたが、
呼び出し元が自動実行や決定キー実行であれば実行中=1になりました。
並列実行から呼び出されたイベントは並列実行扱いになるようで実行中=0になりました。

おそらく並列扱いじゃないと何か弊害が出るのだと思います。
稚拙な頭で考えてみたところ
・同時に起動中のイベントがあった場合に並列でないと
 どちらかが止まるのかもしれない。
・呼び出すイベントも並列扱い(実行中を0)にしてほしい時に
 並列実行されないように条件を設定しておく必要が出てきそう。
というのが思い浮かびました。

別の手法を考えてみました。
取得したEvIDのセルフ変数を変化させ、イベント挿入でなく
セルフ変数を条件にマップイベントの自動実行にすることで
解決できるのではないかと思います。
Re: バグ報告スレッド 9 [ No.126 ]
メンテ
 2010/08/30 12:17
 k_kou
>>124,>>125
中身はもっとシンプルです。

『イベントの挿入』で呼び出されたイベントは、呼び出し元のイベント条件を継承します。
(並列上で挿入されたイベントは、呼び出しのみ、自動実行であっても並列扱い。
逆に自動実行上で挿入されたイベントは、並列であっても自動実行扱いになります)
なので並列で呼び出されたイベントは全て並列上で動作することになり、
Sys13番は並列イベントをカウントしないので0を返すようになってます。

※イベントの挿入は『別の場所の別イベントを実行する』のではなく、
『現イベントエリア内で別イベントを呼び出す』というものです。