ユーザーの名前を覚える¶
概要¶
ゴーストがユーザーの名前を inputbox ダイアログを通じて取得し、グローバル変数 username に保存する方法を説明しています。保存した名前はその後のセリフで %username として参照できます。
コード例¶
基本実装(シンプル版)¶
ChoiceUsernameEntry
{
"\0お名前、教えてください。\![open,inputbox,OnInputUsername,-1]\e"
}
OnInputUsername
{
username = EscapeAllTags(reference[0])
if username == ""
{
username = '名無し'
"\0教えてくれないの?\n\w9じゃあ勝手に%usernameって呼んじゃうね。\e"
}
else
{
"\0じゃあこれから、\w5%usernameって呼ぶね。\e"
}
}
EscapeAllTagsでSakuraスクリプトタグを除去してから保存する- 空入力の場合は
'名無し'をデフォルト値として使用する
応用実装(敬称選択付き)¶
ChoiceUsernameEntry
{
"\0お名前、教えてください。\![open,inputbox,OnInputUsername,-1]\e"
}
OnInputUsername
{
inputted_name = reference[0]
"/
\0呼び方は、どうするの?\n\n[half]/
\![*]\q[ちゃん,Oninputted_name1]\n/
\![*]\q[さん,Oninputted_name2]\e"
}
Oninputted_name1
{
"/
\0「%inputted_nameちゃん」でいい?\n\n[half]/
\![*]\q[いいよ,Oninputted_name1_determination]\n/
\![*]\q[まちがい,ChoiceUsernameEntry]\e"
}
Oninputted_name1_determination
{
username = "%inputted_nameちゃん"
"\0じゃあこれから、\w5%usernameってよぶね。\e"
}
Oninputted_name2
{
"/
\0「%inputted_nameさん」でいい?\n\n[half]/
\![*]\q[いいよ,Oninputted_name2_determination]\n/
\![*]\q[まちがい,ChoiceUsernameEntry]\e"
}
Oninputted_name2_determination
{
username = "%inputted_nameさん"
"\0じゃあこれから、\w5%usernameって呼ぶね。\e"
}
説明¶
\![open,inputbox,コールバック関数名,-1]: inputbox ダイアログを開く Sakura スクリプトreference[0]: ユーザーが入力したテキストEscapeAllTags: 入力値から Sakura スクリプトタグを除去するセキュリティ処理- 敬称選択版では
inputted_nameに一時保存し、確認後にusernameへ格納する - 保存した名前は
%usernameでセリフ内から参照できる
関連項目¶
- SAVEVAR(変数の永続化)