お知らせ掲示板 | 質問掲示板 | 不具合報告掲示板 | 機能要望掲示板 | 雑談掲示板

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
9 / 383 ツリー ←次へ | 前へ→

二回目のクリア後フラグ しん 2023/5/15(月) 8:59
Re:二回目のクリア後フラグ ユウリ 2023/5/15(月) 17:23
Re:二回目のクリア後フラグ しん 2023/5/19(金) 18:25

二回目のクリア後フラグ
 しん  - 2023/5/15(月) 8:59 -
  
質問失礼します。

一回クリアしたあとにタイトル画面を変えるやり方はわかるのですが

二回目以降をクリアした場合にまたタイトル画面を変えるにはどうしたらいいのでしょうか?

Aルートクリアするとタイトル画面A
Bルートクリアするとタイトル画面B

にすると言った感じです。
教えていただけると助かります。
引用なし
パスワード

Re:二回目のクリア後フラグ
 ユウリ  - 2023/5/15(月) 17:23 -
  
>質問失礼します。
>
>一回クリアしたあとにタイトル画面を変えるやり方はわかるのですが
>
>二回目以降をクリアした場合にまたタイトル画面を変えるにはどうしたらいいのでしょうか?
>
>Aルートクリアするとタイトル画面A
>Bルートクリアするとタイトル画面B
>
>にすると言った感じです。
>教えていただけると助かります。

タイトル画面表示設計.txtで
ELSE[]を増やせばいけると思います。

正しい書き方はYU-RISコマンドリファレンスの
●制御系命令 → IF[] を参照してください。
(ERISマニュアルでなくYU-RISマニュアルです)


YU-RIS/ERISをダウンロードしたばかりの初期の状態では

IF[@flag_omake==0] //「未クリア時のボタン定義」
{

:……省略

}
ELSE[] //「クリア後のボタン定義」
{

:……省略

}
IFEND[]

という風になっており、@flag_omakeの変数が
0の場合のみ未クリア時のボタンを定義し、
1になると ELSE[] から下の定義が表示される、という状態です。

このELSE[]は二つ使うこともでき、それぞれのルートを
クリアした際、クリアフラグに
「Aルートをクリアしたときは1」
「Bルートをクリアしたときは2」 と代入して、

IF[@クリアフラグ==1] //「Aルートクリア時のボタン定義」
{

:……省略

}
ELSE[@クリアフラグ==2] //「Bルートクリア時のボタン定義」
{

:……省略

}
ELSE[] //「未クリア時のボタン定義」
{

:……省略

}
IFEND[]

のような書き方をすればできるのではないかと思います。

クリアフラグですが、初期の@flag_omakeという変数は
普段のスクリプトでは使えず、タイトル画面設計.txt上部に

    INT[@flag_omake]
    INT[@flag_true]
    IF[@G(1234)==1] @flag_omake=1 IFEND[] //クリアフラグ

と@G(1234)が1の場合@flag_omakeに1が代入される式があり、
それが使われている形です。そのまま流用はできないので、
これらの記述をなんかいい感じに書き換えるか、分からない場合は
クリアフラグの@G(いくつ)とかをそのまま使えばいいと思います。
IF[@G(1234)==1]とかELSE[@G(1234)==2]とか。
(この場合は上部の記述は削除しないと動かないときがあるかも)


……で、すごく長々と語らせていただいたのですが、
こういうゲームでのクリア後画面変更、という演出では、
おまけ画面へ行くボタンやCG一覧へ行くボタンなどが
クリア後に追加される、ということもあるかと思いますが、
「背景のみ変更してボタン配置はそのまま」、
ということもあるかと思われます。
その場合はボタンまで丸ごと書き直すのもすごく面倒なので、

        IF[@G(1234)==1]
            \BT.NAME("■背景")
            \BT.CGSYS("Aルートクリア時の背景")
            \BT.XY(0, 0)
            \BT.Z(001)
            \BT.SET(TIP.BG)

        ELSE[@G(1234)==2]
            \BT.NAME("■背景")
            \BT.CGSYS("Bルートクリア時の背景")
            \BT.XY(0, 0)
            \BT.Z(001)
            \BT.SET(TIP.BG)

        ELSE[]
            \BT.NAME("■背景")
            \BT.CGSYS("未クリア時の背景")
            \BT.XY(0, 0)
            \BT.Z(001)
            \BT.SET(TIP.BG)
        IFEND[]

        :……以下省略

のように、背景のみIF[]とIFEND[]で差分表示したら
すごい楽にまとまるんじゃないかなと思います。
(背景だけ変更は楽なのでこちらで動作確認済みです。)
背景以外変わらないならこちらがオススメです。


以上のフラグの使い方は、Aルートクリア時はタイトルA、
Bルートクリア時はタイトルBとその都度変更するものです。
Bルートクリア後はAルートをクリアしても
タイトルB表示のまま、という仕様にしたい場合は、
AルートクリアフラグとBルートクリアフラグを
それぞれ用意して、クリア・未クリアは1と0で管理するようにし、

IF[Bルートクリアフラグ==1] //「Bルートクリア時のボタン定義」
{

:……省略

}
ELSE[Aルートクリアフラグ==1] //「Aルートクリア時のボタン定義」
{

:……省略

}
ELSE[] //「未クリア時のボタン定義」
{

:……省略

}
IFEND[]

という処理順にすれば可能かと思われます。


非常に長々とした投稿になってしまいました。すみません。
どこかしら参考になりましたら幸いです。
引用なし
パスワード

Re:二回目のクリア後フラグ
 しん  - 2023/5/19(金) 18:25 -
  
ご丁寧に本当にありがとうございました、めちゃくちゃ助かります(´;ω;`)ブワッ
引用なし
パスワード

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
9 / 383 ツリー ←次へ | 前へ→
58,170
(SS)C-BOARD v3.8.1β4 is Free.