一括表示

記事No: 12874
タイトル周回プレイをできるようにしたい
投稿日: 2012/01/23 15:00
投稿者バイト [reLerieOp307(海外)]

[やりたいこと]
ゲームをクリアしてセーブデータをそのままに始めからできるようにしたくてあるアイテムの所有数で判定できるようにしました
[やってみたこと]
アイテム判定ができているかどうか
[やり方]
Aアイテムがそのアイテムだとします。
そのアイテムはストーリーに関係するイベントの最後に一つづつ入手できるようにして次回それを起動する時は2ページにで実行

1ページ
会話等
Aアイテムを入手
Evをを変換させてページ2に移動
2ページ
Aアイテムの所有数を判定
条件分散
Aアイテム所有数1以上の場合
マップ移動など
Aアイテム所有数が0以下の場合
Evをを変換させてページ1に移動
ゲームクリアで周回プレイを選ぶとAアイテム消滅
[やってみた結果、どううまくいかないか]
Aアイテム1以上を持っているのに0以下の判定になった
つまりページ2で1以上に進まないといけないはずが0以下に進んでしまう


記事No: 12875
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/23 15:48
投稿者wataP [ergeegrL463(海外)]

> Aアイテム1以上を持っているのに0以下の判定になった
> つまりページ2で1以上に進まないといけないはずが0以下に進んでしまう

1,条件分散の式が間違っている可能性があります
2,もしくは所有数を格納する変数名が間違っているか
3,ページ2の起動条件が間違っており、次回の起動時ページ1が実行されている

■1
条件式を個別にしていて ※1
所有数が 1 以上の分岐内で、アイテム所有数を減らし
その分岐後に
所有数が 0 の時の分岐が存在した場合
両方の分岐が処理されてしまって
結果的に 0 以下の判定しか行われていない、という風に見えている可能性

※1 こうなっている可能性がある
1,■所持数が1以上
2,┣所持数が1以上なら
3,┃アイテム数減少
4,■条件分散 終了
5,
6,■所持数が0と同じ
7,┣所持数が0と同じなら
8,┃Ev変換
9,■条件分散 終了

■2
[所持数] にアイテムAの所持数を入れているのではなく、別の [なにか] にアイテムAの所持数を入れてしまっている
結果的に条件分散の [所持数] が 0 なのでEv変換が行われ、ページ 1 が起動
■3
次回起動時からはページ2を起動するとあるので
ページ2の起動条件が間違ってしまっている
結果的にページ1の起動条件が合っていれば、アイテム数が0の処理が行われたように見えてしまっている


記事No: 12876
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/23 17:45
投稿者ピッコロ [rOOi278(海外)]
URLhttp://www.nmt.ne.jp/~piccoro

 なんとなくですが。
 そのアイテムがを取得した後、データを保存しているでしょうか?
 タイトル画面に戻ったとき、データが初期化されます。
なのでそのアイテムの数だけ、先にロードする処理をいれないと
だめでしょうね。


記事No: 12879
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/23 22:51
投稿者バイト [reLerieOp307(海外)]

wataP さん、ピッコロさん
ありがとうございました
けれどどちらも確認して間違いないみたいなので他の解決策があればよろしくお願いします。


記事No: 12881
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/24 03:52
投稿者ピッコロ [rOOi278(海外)]
URLhttp://www.nmt.ne.jp/~piccoro

 では、どこでそのアイテム数が0になっているか調べる必要がありそうです。
 次手順で確認をやってみてください。

 1、データをロードする前に何フレームかウェイトをいれてみる。
   これは、並列処理によるデータの初期を防ぐためです。

 2、そのアイテム数を増やした後、データをセーブ。
  そこでタイトルにもどる処理をやめて、どこかのマップへ移動するようにする。
  手動でゲーム終了。
  ゲームを再起動してそのデータ番号をロードして
  ゲーム再開。
  そのアイテムの数を確認する。 
  それが0ならセーブデータがおかしいので、セーブまでの
  処理を確認する必要があると思われます。

 3、上の確認で異常がなければ、ロード処理に問題がある可能性を調べます。
   データをロードした、直後デバグウインドウにそのデータを
  表示させます。そこで0になっているようなら、ロード処理が
  怪しいです。

 4、そこも問題がないようなら、ところどころでそのデータを
  読み込んで、デバグウインドウに表示させ、どこで0になっているか絞り込んでゆくしかないでしょう。

ちなみに僕がやるならDBではなく通常変数をつかいます。
その方がセーブロードが簡単そうです。

例:これが通常変数1をセルフ変数0に読み込んだ処理の例です。
読み込んだといってもセルフ変数によみこんでいるので、V1は0のままです。

■セーブデータの内容読込: このEvのセルフ変数0 = セーブデータ[1]の V1[シナリオ進行状況]
■デバッグ文:self=\self[0] V1=\v[1]

デバグウインドウの結果
self=3 V1=0 -->[MapEv0/34行]

注意:セルフ変数に読み込んでいるので、 V1は0のままです。


記事No: 12888
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/24 11:30
投稿者バイト [reLerieOp307(海外)]

今思ったのですがもしかしてアイテムを獲得したらセーブしろって意味ですか?
セーブロードタイトルに戻るゲーム終了どれもやらずに獲得してすぐその場所へ行きます。
僕が思うにタイトルに行くと初期化される=0場番のマップに入ったら初期化とは違いますか?
そこまで考えたことなかったです


記事No: 12889
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/24 12:24
投稿者ピッコロ [rOOi278(海外)]
URLhttp://www.nmt.ne.jp/~piccoro

 たぶんですが、タイトル画面に戻ったら、0番のデータが自動的に読み込まれるのだと思います。初期データですね。
スタートすると最初から始まるでしょう。

 なので、周回プレイをしたいのなら、エンディングのあと、引き継ぎたいデータを保存してからタイトルへもどる。
保存ファイルは、番号外のファイルにした方がいいでしょうね。
詳しくは、マニュアルの「セーブ・ロード操作」をみてください。

 タイトルへ戻ったら、変数およびデータは、すべて初期状態になっています。
ここで、周回データがあれば、メニューに周回スタートを加える。
周回スタートが選ばれたら、周回で引き継がれるデータのみを
ロードする。
最初のマップへ移動する。

というような作業が必要だと思います。


記事No: 12890
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/24 15:52
投稿者バイト [reLerieOp307(海外)]

いえ一周目でそうなります。
そもそもエンディングの後周回にするとAアイテムは個数が0になってまた獲得し直すって感じなんですが・・・


記事No: 12893
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/24 19:05
投稿者ピッコロ [rOOi278(海外)]
URLhttp://www.nmt.ne.jp/~piccoro

 どちらにしろ、タイトルに戻る前にデータをセーブしておかなくてはだめでしょう。データベースに書き込んだだけではだめです。

 そのアイテムの数を0にしたければ、読み込んだ後0にもどせば済むことです。問題は、アイテム数が0に戻ってしまうということではなかったのですか?


記事No: 12894
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/24 21:17
投稿者ピッコロ [rOOi278(海外)]
URLhttp://www.nmt.ne.jp/~piccoro

 もしかして、タイトルに戻る前にアイテム数が0になっているということでしょうか?
 それなら、デバグウインドウに逐次表示させてゆきば解決できそうです。
 ただ、表示させるまえにその都度DBから読み込む必要はありそうですね。
それとページを変更することでやっているようですが、ページを動かさずにやってみてください。
それで、うまくいくようなら、フレームの作動誤差によるものでしょう。
例えば、ページ1でセルフ変数0を1にしてウエイトをかけたとします。
ページ2の作動条件がセルフ変数1だったとしますね。
ウエイトをかけた時点で、ページ2が動く可能性は、否定できません。
ウエイトをかけるということは、システムに制御を返すということなのでシステムが、ページ2を呼び出す可能性があります。


記事No: 12896
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 10:20
投稿者バイト [reLerieOp307(海外)]

タイトル画面に戻る前にで合ってます。
その方法を使ってみてまだできないようでしたらまた書き込みします。
ありがとうございました


記事No: 12897
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 10:35
投稿者皐月紫龍 [rriieLg309(海外)]

バイトさんのやり方に色々と誤解があるかもしれませんので、横やりですが入れてみます。もしかしたら分かってるかもしれませんが一応。

・周回するの意味
イベントコマンドの「タイトルに戻る」はアイテム数や変数などを初期化します。
初めからやると当然、一周目のアイテムは持ち込めません。

・分岐の方法
アイテムを持っているか持っていないかで分岐する場合は1ページ内で判定するといいかなと。サンプルの夕一へパンをあげるイベントが参考になります。



やり方はちょっと説明しづらいんでサンプル作ってきました。
ウディタ公式アップローダに上げてあります。


記事No: 12898
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 14:50
投稿者バイト [reLerieOp307(海外)]

情報はありがたいですがわかっていないのはそちらだと思います。
タイトルに戻らずに周回プレイを可能にしたいのであってそんな簡単な意味ではありません
いままでの回答や返信を見てから書いていただきたいです。
そもそも質問している内容が違うのでここに書くのはおかしいと思います。


記事No: 12899
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 14:56
投稿者皐月紫龍 [rriieLg309(海外)]

> 情報はありがたいですがわかっていないのはそちらだと思います。
> タイトルに戻らずに周回プレイを可能にしたいのであってそんな簡単な意味ではありません
> いままでの回答や返信を見てから書いていただきたいです。

おや、すみません。
周回という事で勘違いしたようです。

一応全て読んだ上でのコメントでしたが、もし気を悪くしてしまいましたら申し訳ありません。


記事No: 12900
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 18:22
投稿者バイト [reLerieOp307(海外)]


> おや、すみません。
> 周回という事で勘違いしたようです。
>
> 一応全て読んだ上でのコメントでしたが、もし気を悪くしてしまいましたら申し訳ありません。
周回の意味を理解していないか理解はしているが他にも意味がある理解しているが考えているやり方以外に実行する方法がある
上が可能性としてあがります
どれかはわかりませんがこれをかんがえてみてください


記事No: 12901
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 18:27
投稿者バイト [reLerieOp307(海外)]

タイトル画面に戻っての考え方ではありません
ピッコロさん少し僕が勘違いをしていた為間違った回答を正しい回答だと思い込んでしまったみたいです。
すいません
考え方を変えての回答をお待ちしております


記事No: 12903
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 18:43
投稿者北極星のなりそこない [Frrdgrd1063(海外)]
URLhttp://npshed.go-th.net/

 さしあたってバイトさんが組んだイベントの実物がみたい(イベント欄のスクショでもいいので)のですが。
 書いてある概略を見る限り、特に間違った処理をしているようには見えないので……


記事No: 12906
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 19:55
投稿者wataP [ergeegrLe381(海外)]

■1
初回はページ1にて会話等のイベントを起こし
周回プレイ用のアイテムを1個入手後■3へ

■2、
そして一度会話したので
次回からはページ2から起動するように

■3、
ページ2の内容は
周回プレイ用のアイテムが1個以上あれば
周回プレイするかどうかの選択肢の表示等を起こす

■4、
そして周回プレイ用のアイテムを1個も持っていなければ■1へ

という風にしたいけれど、周回プレイ用のアイテムを1個以上持っているのに■4の状態になるっていうのが
最初の質問の内容で合っていますよね?
今までの回答内容で改善できないとなると、正直どこが間違っているものか分かりません
該当するイベントの全コードを見ないことには私としては、もうどうしようもないです

他のやり方ならば
条件分散、ラベル、イベント処理中断で
1ページだけで可能にはできます


記事No: 12910
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 21:09
投稿者ピッコロ [rOOi278(海外)]
URLhttp://www.nmt.ne.jp/~piccoro

 2つの可能性が考えられます。
一つは、コードにバグがある。
もう一つは、並列処理によるデータ書き換え。

どちらにしろ、細かくデバグウインドウへパラメータを
出力してみるしかないでしょうね。

 データベースから、アイテム数をセルフ変数Aとかに
読み込んで、セルフ変数Aの値にによってページを移動しているのだと思いますが、
 そこで1クッションおいて、セルフ変数Bにデータを読み込み
セルフ変数Bの値をデバグウインドウへ表示させてはどうでしょうか。
 それでセルフ変数Bが0以下ならそれ以前の処理に問題があり
1以上ならそれ以降の処理に問題があることが分かります。

こんな調子で探っていくしかにように思いますが。

 それと、ページの先頭行にこのページへ来たというデバグ文を
いれるのも有効です。ページ起動判定に使うセルフ変数を他の用途に使うのは危険なので、それは確かめてください。
 マップ上の他のイベントからも変更出来るのですべてのマップイベントをチェックしてください。


記事No: 12911
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/25 23:20
投稿者葉っぱ [WdgprWO844(海外)]

> [やりたいこと]
> ゲームをクリアしてセーブデータをそのままに始めからできるようにしたくてあるアイテムの所有数で判定できるようにしました
> [やってみたこと]
> アイテム判定ができているかどうか
> [やり方]
> Aアイテムがそのアイテムだとします。
> そのアイテムはストーリーに関係するイベントの最後に一つづつ入手できるようにして次回それを起動する時は2ページにで実行
> 例
> 1ページ
> 会話等
> Aアイテムを入手
> Evをを変換させてページ2に移動
> 2ページ
> Aアイテムの所有数を判定
> 条件分散
> Aアイテム所有数1以上の場合
> マップ移動など
> Aアイテム所有数が0以下の場合
> Evをを変換させてページ1に移動
> ゲームクリアで周回プレイを選ぶとAアイテム消滅
> [やってみた結果、どううまくいかないか]
> Aアイテム1以上を持っているのに0以下の判定になった
> つまりページ2で1以上に進まないといけないはずが0以下に進んでしまう

変数を使えばいいのでは?
変数で周回変数(仮称)を作ります。
周回変数で敵のイベントを変え、難易度を変更可能。
変数だと他のセーブデータから呼び出せるのでひとつでもEDしていたら二週目ってのも可能です。
変数を使いこなせれば何でもできますよ。


記事No: 12912
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/26 12:03
投稿者バイト [reLerieOp307(海外)]

変数を使えばいいのでは?
変数で周回変数(仮称)を作ります。
周回変数で敵のイベントを変え、難易度を変更可能。
変数だと他のセーブデータから呼び出せるのでひとつでもEDしていたら二週目ってのも可能です。
変数を使いこなせれば何でもできますよ。

その方法はすでに使ってます


記事No: 12914
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/26 16:59
投稿者葉っぱ [WdgprWO844(海外)]

たからばこを作るのがめんどくさくなりますが、
いちをしょきいちにもどしてすべての通常変数を0にしてみては。
というのは、全モンスターが復活してまたぼうけんできるという事です。
くそみたいですがいちよう考えました。
んで、鍵とかキーアイテムはつくれなくなる。
ひとつでもあるとしょりが必要になる
さらに、この方法を使うと、なかまが最初から全員になる。
しかも!
ぶぶん的におかしくなる可能性大(ストーリーが進まないなど)
りかいしてもらえたでしょうか?


記事No: 12915
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/26 18:48
投稿者オタパ [rirrrd865(海外)]
URLhttp://www.geocities.jp/sazankurosuz/index-2.html

Aアイテムの所有数を入れる変数が、『X番の変数呼び出し』状態になっていませんか?




・・・ところで、バイトさんが制作したイベントを公開して見てもらえばすぐに解決すると思うのですが、
何か見せたくない理由があるのですか?


記事No: 12916
タイトルRe: 周回プレイをできるようにしたい
投稿日: 2012/01/26 19:29
投稿者葉っぱ [WdgprWO844(海外)]

おたぱさんと同じで、見せてくれないと、
かいけつができません。
だからスクショを見せてください。
たぶんどこかで間違ったところに変数を入れてると思います。
いがいと変なとこでミスっている可能性が高いです。
とにかく情報がないと解決できません。