長文には折りたたみを利用しています。
選択肢表示とシナリオジャンプ関係(2ページ目) 項目
- 選択肢に変数を表示
- 変数による、選択肢位置変更 配列による内容変更
- 選択肢を配列分、表示する(配列で選択肢を表示)
- cond属性を使ったシナリオジャンプ
- iscriptを使ったラベルジャンプ
- アラート・ダイアログでの選択肢の表示(はい,キャンセル)
- 数値型の変数で(途中で文字列に変更して)ラベルにジャンプする
- &link_anchor(title=){}
- &link_anchor(title=){}
-
<<選択肢表示とシナリオジャンプ関係に戻る。
選択肢に変数を表示させる
詳細をみる
[eval exp="f.hensu='変数です'"] 文字列はシングルクォートを忘れずに
リンクで表示 真ん中はシナリオなので[emb]を使う。
[link storage=scene1.ks target=*label1][emb exp="f.hensu"][endlink]
エンティティを使う&f.hensu
glinkを使う
[glink target="j1" text="&f.hensu" size=20 width="500" y=300]
[s]
ボタンにテキストはないので終わり
targetやstorageに対してもエンティティを使うことも可能
変数による選択肢位置配置変更 配列による内容変更
詳細をみる
2017/08/05
forで横に繰り返します。iに1を足しています。繰り返す数値は i<3 の数値です。iの初期値は0です。
,x:10+150*i がで位置変更してます 150にiをかけてます
[iscript]
tf.rabel = ['label1','label2'];
for(i=0; i< 2; i++) {
tyrano.plugin.kag.ftag.startTag("glink",{text:'テキスト',size:15,x:10+150*i,y:80,color:"white",width:"60",height:"120",target:tf.rabel[i]});
}
[endscript]
ラベルに配列を使用しています。
連番画像を使うことでimageにも適用できます。
テキストも同様に配列で内容変更できます。
選択肢を配列分表示する
詳細をみる
必ず見るだけではなく実際にコピーしてでもいいので動きを見てから運用してください。
*start
[position layer="message0" left=10 top=10 height=680 width="800" page=fore visible=true frame="none"]
@layopt layer=message0 visible=true
[eval exp="f.選択回数=0"]
[eval exp="f.第1周目='おけいこ0'"]
[eval exp="f.第2週目='おけいこ1'"]
[eval exp="f.第3週目='おけいこ2'"]
[eval exp="f.第4週目='おけいこ3'"]
[eval exp="f.第5週目='おけいこ4'"]
;配列であることを宣言する[r]
[eval exp="f.予定リスト= [ ] "]
;配列の中に必要なものを全部入れる。[r]
;(変数「第1〜週目」にはユーザーが好きなものを代入していると想定 代入は単なる[eval exp="f.第1週目=〜"] プレイヤーが選ぶコマンドとして表示する)
[eval exp="f.予定リスト[0]=f.第1周目"]
[eval exp="f.予定リスト[1]=f.第2週目"]
[eval exp="f.予定リスト[2]=f.第3週目"]
[eval exp="f.予定リスト[3]=f.第4週目"]
[eval exp="f.予定リスト[4]=f.第5週目"]
[eval exp="tf.raberu='0'"]
*sentaku
[cm]
;ループ用の設定 0に1は足せない
[eval exp="tf.繰り返し回数=0"]
;配列数を取得する 条件に利用する[r]
[eval exp="tf.配列数=f.予定リスト.length"]
;配列数と繰返し回数が同じになるまでラベルloopにジャンプしリンクを増やす
*loop
[eval exp="tf.raberu=tf.繰り返し回数"]
;数値型
[iscript]
String(tf.raberu);
[endscript]
;文字列
[eval exp="tf.raberu='*'+tf.raberu"]
;ラベルに変更 数値型だとダメなのと*ないとダメなので
[if exp="f.予定リスト[tf.繰り返し回数]" == "f.予定リスト[tf.配列数]"]
;シナリオyoteihyo.ks ラベル1〜配列数を想定 予定リストを表示する
[link storage="yoteihyo.ks" target=&tf.raberu][emb exp="f.予定リスト[tf.繰り返し回数]"][endlink][r]
;繰返し回数を足す
[eval exp="tf.繰り返し回数++"]
[emb exp="tf.繰り返し回数"][r]
@jump target=loop
;ループに飛ぶ
[endif]
;条件に合わないときは停止をかける
[eval exp="f.選択回数=f.選択回数+1"]
[emb exp="f.選択回数"]
[s
yoteihyo.ks
*0
ここはラベル0[l]
;ここで選択もし第2週ならと分岐をかける
[if exp="f.選択回数==1"]
1回目の選択です[l][r]
[endif]
[if exp="f.選択回数==2"]
2回目の選択です[l][r]
[endif]
@jump storage=scene2.ks target=start
;@jump storage=scene2.ks target=sentaku 初期設定をする必要がない場合はsentakuに飛ぶ
*1
ここはラベル1[l]
@jump storage=scene2.ks target=start
*2
ここはラベル2[l]
@jump storage=scene2.ks target=start
*3
ここはラベル3[l]
@jump storage=scene2.ks target=start
*4
ここはラベル4[l]
@jump storage=scene2.ks target=start
リンクにしたけど画像にしたかったらボタンにすればOK
応用でアイテム選択画面も可能 リンクとgraphインライン画像表示を使う
おけいこ0のリンクを押したとき、続けて下に選択したシナリオ内容が表示される
続けて表示されたくない場合は[cm][er]などを使用
おけいこ選択→おけいこ内容はこれです(おけいこフラグが立つ)
第2週目の予定は選択回数で分岐される形となるyoteihyou.ks *0の[if]を参照
cond属性を使ったシナリオジャンプ
ティラノビルダーのジャンプ時に使用できるとされている。
[jump cond="f.money<f.price" target="*足りない"]
詳細をみる
*
start
[eval exp="f.money=100"]
[eval exp="f.price=200"]
所持金は[emb exp="f.money"]円です。[r]
代金は[emb exp="f.price"]円です。[r]
[jump cond="f.money<f.price" target="*足りない"]
[jump cond="f.money>=f.price" target="*足りてる"]
*
足りない
お金が足りないよ。
[s]
*
足りてる
お金は足りています。
[s]
引用元 http://kagru.web.fc2.com/3-3.html
余談 2015年、linkに対するcondは推奨されていません。[endlink]が関係している為。ifやglink、jumpにてcondを利用して下さい。
iscriptでラベルにジャンプ
508 名前:2015/12/22 (Tue) 23:14:14
[iscript]
TG.kag.ftag.startTag("jump",{target:"*hoge"});
[endscript stop=true]
111あああああああああ[p]
*hoge
いいいいいいいいい[p]
ううううううううう[p]
このように、script内でjumpした場合は[endscript stop=true]とすることで
いいいいいいから表示されるかと思います。
ダイアログでの選択肢の表示 (はい キャンセル)
js詳細をみる
if(confirm("続きは有料です。はいを押すと支払いページに飛びます")){
trueの場合にno publicスペースの入り口に飛ばす
document.location.href=url;
}
elseでキャンセル処理を書くといいでしょう
参考 confirm
basic認証fc2lite
新しいティラノスクリプトではダイアログ実装されました!(V4.10より)
;警告メッセージ
[dialog type="alert" text="メッセージ内容" ]
;確認ダイアログの表示
[dialog type="confirm" text="メッセージ内容" target="ok_label" ]
;テキスト入力ダイアログの表示
[dialog type="input" text="名前を教えて下さい" storage="scene1.ks" target="ok_label" ]
[emb exp="tf.dialog_value"]
引用元
数値型の変数でラベルにジャンプする
といっても途中で文字列に変更します。
予行演習
;これは文字列です
[eval exp="tf.raberu='あ'"]
[iscript]
alert(typeof tf.raberu);
[endscript]
;これは数値型です
[eval exp="tf.hensu=5"]
;文字列だった方に代入しちゃいます
[eval exp="tf.raberu=tf.hensu"]
[iscript]
alert(typeof tf.raberu);
[endscript]
;文字になってしまいました
詳細をみる
*start
@layopt layer=message0 visible=true
[eval exp="tf.raberu='0'"]
;数値型
[eval exp="tf.hensu=5"]
[eval exp="tf.raberu=tf.hensu"]
;数値型になっている
[iscript]
String(tf.raberu);
[endscript]
;文字列に変更
[eval exp="tf.raberu='*'+tf.raberu"]
;これがないとエラー
文字列[emb exp="tf.raberu"][r][l]
@jump storage="scene1.ks" target=&tf.raberu
;scene1.ksの*5にとぶ