
2016/04/09追記:
「$タイムアウト先」を削除していることを分かりやすくするよう処理変更
2016/01/04追記:
「$時間切れ選択肢名」を、何かの選択肢を選択時に削除する処理を追加
----
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiとukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。
今回は、選択肢の時間切れを、好きな秒数に設定する
たとえば、「クイズを出して5秒以内に答えなければ、時間切れにする」ということが出来ます。
里々のタイマなどを使っていないため、各トーク内でキャンセル処理を書く必要がないのが利点です。
詳細は続きに。
「$タイムアウト先」を削除していることを分かりやすくするよう処理変更
2016/01/04追記:
「$時間切れ選択肢名」を、何かの選択肢を選択時に削除する処理を追加
----
里々のちょっとしたロジックを提供するコーナー。
全て、里々wikiとukadocの情報の組み合わせで作ります。
里々のサンプルゴースト「Rポストと狛犬」を書き換えて自ゴーストを作るくらいの知識が必要です。
今回は、選択肢の時間切れを、好きな秒数に設定する
たとえば、「クイズを出して5秒以内に答えなければ、時間切れにする」ということが出来ます。
里々のタイマなどを使っていないため、各トーク内でキャンセル処理を書く必要がないのが利点です。
詳細は続きに。
以下サンプルは、preタグを使っていますが、場合によってはタブや改行がコピーできないかもしれません。
(call、時間切れ設定、トークの名前、秒数)は、トークの最初に書いても、最後に書いても変わりありません。
(タイムアウトが、トークが全文表示されてからの時間をカウントしているため)
call関数は、里々wikiに詳しい説明があるので、読んでみてください。
その中にある、replace.txtを使った書き方の省略を使えば、多用するときも書くのが楽になるのでおすすめです。
(時間切れ設定、【タブ】(call、時間切れ設定、
としておくと、全角入力で全て書けるように出来ます。
\![set,choicetimeout,ミリ秒]は、選択肢のタイムアウト時間を今回限り上書きするさくらスクリプトです。
ウェイトを並べると早送り(デフォルトCtrlキー)でうまく動きませんが、これにより確実にタイムアウト時間を揃えることが出来ます。
また、タイムアウトが起きたばあいに、「OnChoiceTimeout」が呼び出されます。(Rポストと狛犬にこれを使ったサンプルトークあり)
ここで、タイムアウト時のトークに飛ばすようにしています。
(「時間切れ設定」の中で、変数「時間切れイベント名」に保存して、実際にタイムアウトが起きた時に中身を見ている)
#----
#ここからスクリプト
#----
#*OnChoiceSelectが1つと、*OnChoiceTimeoutが2つあるので、
#両方消して書き換える
#(dic02_event.txtの250行目あたり)
#
#ここで、時間切れの設定を行う
#ミリ秒(1秒=1000ミリ秒)単位、かつ半角のみしか受け付けないため、calc関数を使う
#使い方
#(call、時間切れ設定、◯トークの名前◯、◯秒数◯)
#◯トークの名前◯と、◯秒数◯はそれぞれ
#時間切れが起きた場合のトーク名と、秒数(整数)を設定する
@時間切れ設定
(set(バイト値,1)時間切れイベント名(バイト値,1)(A0))\![set,choicetimeout,(calc,(A1)*1000)]
#選択肢が何か選択された場合、時間切れ選択肢先をクリアする
#「$時間切れイベント名」の右側にはタブ文字がある(変数削除)
#コピーしそこねないように注意
*OnChoiceSelect
$時間切れイベント名
>(R0)
:選択肢のジャンプ先「(R0)」は存在しません。記述ミス?
#ここで、時間切れ選択肢があればそのイベントにジャンプする
#次に誤爆しないよう、一回使ったら中身を消す
#「$タイムアウト先」には「$時間切れイベント名」を格納するが、中身がなければ変数削除
#「$時間切れイベント名」の右側にはタブ文字がある(変数削除)
#コピーしそこねないように注意
*OnChoiceTimeout
$タイムアウト先 (when,(変数「時間切れイベント名」の存在),(時間切れイベント名))
$時間切れイベント名
>(タイムアウト先) (変数「タイムアウト先」の存在)
>選択肢放置トーク
*選択肢放置トーク
:……放置?
:ま、そういうこともあるさ。
*選択肢放置トーク
:……放置?
:優柔不断なだけかもな。
#
#使い方のサンプル
#
*
:クイズだよ。
メロンは植物の分類上、何科?
5秒以内に選んでね。
_●ウリ科
_●ナス科
_●プロコスペルマ科
(call、時間切れ設定、メロン科クイズ時間切れ、5)
:最後あからさまに違うやろ。
*●ウリ科
:せいかーい!
*●ナス科
:はっずれー!
正解は、ウリ科だよ。
*●プロコスペルマ科
:はっずれー!
引っ掛け問題じゃありません。
正解はウリ科。
*メロン科クイズ時間切れ
:ぶー、時間切れ。
正解は、ウリ科だよ。
#----
#ここまで
#----
(call、時間切れ設定、トークの名前、秒数)は、トークの最初に書いても、最後に書いても変わりありません。
(タイムアウトが、トークが全文表示されてからの時間をカウントしているため)
call関数は、里々wikiに詳しい説明があるので、読んでみてください。
その中にある、replace.txtを使った書き方の省略を使えば、多用するときも書くのが楽になるのでおすすめです。
(時間切れ設定、【タブ】(call、時間切れ設定、
としておくと、全角入力で全て書けるように出来ます。
\![set,choicetimeout,ミリ秒]は、選択肢のタイムアウト時間を今回限り上書きするさくらスクリプトです。
ウェイトを並べると早送り(デフォルトCtrlキー)でうまく動きませんが、これにより確実にタイムアウト時間を揃えることが出来ます。
また、タイムアウトが起きたばあいに、「OnChoiceTimeout」が呼び出されます。(Rポストと狛犬にこれを使ったサンプルトークあり)
ここで、タイムアウト時のトークに飛ばすようにしています。
(「時間切れ設定」の中で、変数「時間切れイベント名」に保存して、実際にタイムアウトが起きた時に中身を見ている)


