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

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

EDを5つに分岐させたい なごみ 2013/12/14(土) 15:26
Re:EDを5つに分岐させたい ぽてと 2013/12/15(日) 1:43
Re:EDを5つに分岐させたい なごみ 2013/12/21(土) 9:15

EDを5つに分岐させたい
 なごみ  - 2013/12/14(土) 15:26 -
  
挨拶もなしにすみません。画像選択肢機能を使っていて
ED 1〜3 を通過したら一つ選択肢を増やしEDを追加するというのを目指しています。


@L(2001)=3 →ED_1
@L(2002)=3 →ED_2
@L(2003)=3 →ED_3
それ以外の場合はED_4 

@G(1001)〜G(1003)が各1以上あり、最初からプレイした場合は選択肢が増えて
それを選ぶとED_5にしたいです。


以下の記述でやってみたのですがうまく分岐してくれません。
4.の表記が間違っているのではないかとはおもうんですが他の表記など
よいやり方があったらお力を貸していただけないでしょうか?


___________________________________________________________________________

#=hajime


\GO.IF(@G(1001)>=1 && @G(1002)>=1 && @G(1003)>=1, LABEL2, LABEL1)


___________________________________________________________________________

1.ED1〜3を通過後
___________________________________________________________________________


#=LABEL2


\CSEL(@L(50),1)
\GO.IF(@L(50)==01, 2001_1)
\GO.IF(@L(50)==02, 2002_1)
\GO.IF(@L(50)==03, 2002_1)
\GO.IF(@L(50)==04, ED_5)


___________________________________________________________________________

2.ED1〜3を通過前 1回目の選択肢
___________________________________________________________________________


#=LABEL1


\CSEL(@L(50),1)
\GO.IF(@L(50)==01, 2001_1)
\GO.IF(@L(50)==02, 2002_1)
\GO.IF(@L(50)==03, 2003_1)


#= 2001_1
\LET(@L(2001)+=-1)
\GO(nikaime)

#=2002_1
\LET(@L(2002)+=+1) 
\GO(nikaime)

#=2003_1
\LET(@L(2003)+=+1) 
\GO(nikaime)

___________________________________________________________________________

2.二回目の選択肢
___________________________________________________________________________


#=nikaime


\CSEL(@L(50),1)
\GO.IF(@L(50)==01, 2001_2)
\GO.IF(@L(50)==02, 2002_2)
\GO.IF(@L(50)==03, 2003_2)


#= 2001_2
\LET(@L(2001)+=-1)
\GO(sankaime)

#=2002_2
\LET(@L(2002)+=+1) 
\GO(sankaime)

#=2003_2
\LET(@L(2003)+=+1) 
\GO(sankaime)

___________________________________________________________________________


3.三回目の選択肢
___________________________________________________________________________


#=sankaime


\CSEL(@L(50),1)
\GO.IF(@L(50)==01, 2001_3)
\GO.IF(@L(50)==02, 2002_3)
\GO.IF(@L(50)==03, 2003_3)


#= 2001_3
\LET(@L(2001)+=-1)
\GO(kekka)

#=2002_3
\LET(@L(2002)+=+1) 
\GO(kekka)

#=2003_3
\LET(@L(2003)+=+1) 
\GO(kekka)

___________________________________________________________________________

4.結果
___________________________________________________________________________


#=kekka


\GO.IF(@L(2001)==3, ED_1,hantei_1)
#=hantei_1
\GO.IF(@L(2002)==3, ED_2,hantei_2)
#=hantei_2
\GO.IF(@L(2003)==3, ED_3,ED_4)


#=ED_1
\LET(@G(1001)+=+1) 

#=ED_2
\LET(@G(1002)+=+1)

#=ED_3
\LET(@G(1003)+=+1)

#=ED_4

#=ED_5
引用なし
パスワード

Re:EDを5つに分岐させたい
 ぽてと  - 2013/12/15(日) 1:43 -
  
ソースを読む限り、おかしい点がありました。

1.LABEL2における分岐がおかしい。
 ○:\CSEL(@L(50),1)
 ○:\GO.IF(@L(50)==01, 2001_1)
 ○:\GO.IF(@L(50)==02, 2002_1)
 ×:\GO.IF(@L(50)==03, 2002_1)→○:\GO.IF(@L(50)==03, 2003_1)
 ○:\GO.IF(@L(50)==04, ED_5)

 おかしい理由としてLABEL1での記述が以下のため。
  \CSEL(@L(50),1)
  \GO.IF(@L(50)==01, 2001_1)
  \GO.IF(@L(50)==02, 2002_1)
  \GO.IF(@L(50)==03, 2003_1)

2.選択肢の加算命令がおかしいと思われる。
 ×:\LET(@L(2001)+=-1)→○:\LET(@L(2001)+=+1)
 ○:\LET(@L(2002)+=+1)
 ○:\LET(@L(2003)+=+1)

 おかしい理由として、他の命令と違い、減算命令になっている

-----------------------------------------------------------
また、全体的な流れとしては以下の認識でよろしいでしょうか。

ED1〜3が未通過の場合
 1.1回目の選択肢(選択肢1、選択肢2、選択肢3)
 2.2回目の選択肢(選択肢1、選択肢2、選択肢3)
 3.3回目の選択肢(選択肢1、選択肢2、選択肢3)
 4.結果
  4.1:1〜3回目が選択肢1の場合ED1
  4.2:1〜3回目が選択肢2の場合ED2
  4.3:1〜3回目が選択肢3の場合ED3
  4.4:上記以外ED4

ED1〜3が通過の場合
 1.1回目の選択肢(選択肢1、選択肢2、選択肢3、選択肢4)
 2.2回目の選択肢(選択肢1、選択肢2、選択肢3)
 3.3回目の選択肢(選択肢1、選択肢2、選択肢3)
 4.結果
  4.1:1〜3回目が選択肢1の場合ED1
  4.2:1〜3回目が選択肢2の場合ED2
  4.3:1〜3回目が選択肢3の場合ED3
  4.4:上記以外ED4
  4.5:ED5

-----------------------------------------------------------

上記のとおりであるのなら、1.の選択肢の分岐においてLABEL2とLABEL1の分岐命令として、以下の命令を使用しています。

\GO.IF(@G(1001)>=1 && @G(1002)>=1 && @G(1003)>=1, LABEL2, LABEL1)

これをここではなく、汎用選択肢画面設計でそもそも、選択肢を出さなければ同じ1回目の選択肢の記述で済みます。どちらが見やすいかは分かれますが案としてこういうのもあります、とだけ認識してもらえればと思います。

具体的には汎用選択肢画面設計で以下のようします。
  IF[@_PINT(1)==1]
  {
  〜略記〜
    IF[@G(1001)>=1 && @G(1002)>=1 && @G(1003)>=1]
    }
      \BT.NAME("■選択肢画像4")
      \BT.CGSYS("select/btn_sel04_off", "select/btn_sel04_over")
      \BT.XY(550-10+30, 100)
      \BT.Z(10)
      \BT.MAP.A(1)
      \BT.SET(BTN.SEL, 04)
    }
    IFEND[]
  〜略記〜
  }
  IFEND[]

汎用選択肢を上記に記述すると、特定条件の場合に該当選択肢が表示されません。
@L(50)には4が格納されることはありません。ですのでシナリオを以下のように記述することができます。

ラベル「hajime」の削除
ラベル「LABEL2」の削除
ラベル「LABEL1」の\CSELの選択肢4の場合の記述を追加
 ※\GO.IF(@L(50)==04, ED_5)

とすることができます。

-----------------------------------------------------------
ラベル「kekka」のEDの分岐方法としまして以下のような記述を

\GO.IF(@L(2001)==3, ED_1,hantei_1)
#=hantei_1
\GO.IF(@L(2002)==3, ED_2,hantei_2)
#=hantei_2
\GO.IF(@L(2003)==3, ED_3,ED_4)

以下のように変更することができます。
\GO.IF(@L(2001)==3, ED_1)
\GO.IF(@L(2002)==3, ED_2)
\GO.IF(@L(2003)==3, ED_3)
\GO(ED_4)

\GO.IFの以外の条件は省略が可能なので特段記述する必要はありません。
この記述であれば上記以外の場合ED4にGOします。
引用なし
パスワード

Re:EDを5つに分岐させたい
 なごみ  - 2013/12/21(土) 9:15 -
  
返事が遅くなってしまって申し訳ありません。
おかげさまでうまく動きました。凡ミス多々で恥ずかしい…

汎用選択肢画面設計の方をいじるというやり方もあるんですね!
スクリプトに初めて触る、右も左も判らないしきける人も周りにいないので
とても勉強になりました。

完成させられるか不安になってましたがこれで少し光が見えた気がします。
ぽてとさん、アドバイス本当にありがとうございました。
引用なし
パスワード

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