[elsif][if]の複数条件分岐で&&(なおかつ)を使いたい。
- asayuki0130
- 8月9日
- 読了時間: 2分
①好感度>100のときは[内容A]を表示する
②好感度が==100、なおかつフラグがBのときは[内容B]を表示する。
これをやりたいとき、[else](○○ではない場合、それ以外~)だと対応できない。
うちじゃ好感度は100までなんだよ!110とかで分岐させるわけにはいかないの!
100
┣なおかつA
┣なおかつB
┣なおかつC
┗・・・
こうしたい。
(┗は、けいせんって打つと出てくるよ/豆知識)
[if exp="f.koukando<=0"]
[内容default]好感度は0です
[elsif exp="f.koukando<=100"]
[内容A]好感度は100です
[elsif exp="f.koukando==100 && f.falg=='B'"]
内容B]好感度は100で、なおかつフラグBです。
[endif]
書いてみたけど動かない。
[内容A]が先に表示されちゃう。
【解決編】
ティラノスクリプトって上からタスクをこなしていく。
だから先に[内容A/好感度100の時]を書いちゃうと、
そのレーン(行)で即判断して[内容A]を表示しちゃう。
あとから[内容B]の条件を読ませても、もう対応してるんで。
ってなっちゃう。
あとから「あ、さっきのタスク、もしBだったらBに振り分けといてね」が通用しないんだ。
てっきり、一旦全部if~endifを全部読み込んでから対処してるのかと思ってたよ。
違った、うえから順に即決でやってた。
なので解決策としては、
[if exp="f.koukando<=0"]
[内容default]好感度は0です
[elsif exp="f.koukando==100 && f.falg=='B'"]
[内容B]好感度は100で、なおかつフラグBです。
[elsif exp="f.koukando<=100"]
[内容A]好感度は100です
[endif]
こうやってなおかつを先に書くこと。
ド素人はこういう前提知識がないから、基礎のjavascriptくらい読んでおいた方がいいなぁ。
なんでタブで段差を付けるのか…とか未定義とnullの違いとか。
わかんないよね、こっちは絵描きなんだよ。
変数を使うときに、未定義を準備しておく必要とかわからなかったなぁ。
今もお守りでhensu.ksとかに書いておいて、first.ksとかにcallで読み込ませてる。
;call_hensu.ks
;好感度の未定義を設定
[if exp="f.koukando==undefined"]
[eval exp="f.koukando=0"]
[endif]
;フラグの未定義を設定
[if exp="f.falg==undefined"]
[eval exp="f.falg = 'false'"]
[endif]
;frst.ks
;■必須ファイルの読み込み
@call storage="call_hensu.ks"
undefined(未定義)・・・トイレットペーパーのホルダーに芯すら入ってない状態(虚無)
null・・・芯だけ残ってる状態(残高0)
って聞いたことある
コメント