///////// 文 ゴーストテンプレート ///////// メニュー処理辞書 ///////// written by umeici. //**** メインメニューの展開 ************************************************************* MItem { _menuitem = _argv[0] for _i = GETSTRBYTES(_menuitem) ; _i < 48 ; _i++ { _menuitem += " " } _menuitem } //---- メインメニュー展開 --------------------------------------------------------------- Select.mainmenu { OpenMenu } OpenMenu { "\h\s[5]\b[2]なんですか?" "\h\s[0]\b[2]ん?" "\h\s[6]\b[2]メニューですね。" "\h\s[0]\b[2]呼びましたか?" -- "\_q\n\n" -- "\![*]\q[%(MItem('謎のメニュー')),wana1]\n\n" -- "\![*]\q[%(MItem('名前を教える')),TeachName]\n\n" -- "\![*]\q[%(MItem('何か喋って')),ai]\n" -- "\![*]\q[%(MItem('話す頻度の調節')),Timing]\n\n" -- "\![*]\q[%(MItem('ネットワーク更新')),Update]\n\n" -- if basewarenameex == 'SSP' { "\![*]\q[%(MItem('本体バージョンチェック')),sspupdate]\n\n" } elseif basewarenameex == 'crow' { "\![*]\q[%(MItem('本体ネットワーク更新')),crowupdate]\n\n" } -- "\![*]\q[%(MItem('他のゴーストに話し掛ける')),Talk]\n\n" -- "\![*]\q[%(MItem('他のゴーストを呼ぶ')),ghostexp]\n" -- "\![*]\q[%(MItem('バルーンの一覧を見る')),balloonexp]\n" -- "\![*]\q[%(MItem('ヘッドラインセンサを見る')),headline]\n\n" -- "\![*]\q[%(MItem('ちょっとどいてて')),icon]\n" -- "\![*]\q[%(MItem('キャンセル')),Cancel]\n" -- "\_q" } //**** メニュー項目選択 ***************************************************************** //---- OnChoiceSelectイベント ----------------------------------------------------------- OnChoiceSelect { _name = 'Select.' + REPLACE(reference0,'#','_') if ISFUNC(_name) { EVAL(_name) return } if ISFUNC(reference0) { EVAL(reference0) return } } OnAnchorSelect { if SUBSTR(reference0,0,7) == 'http://' { if basewarenameex == 'SSP' { "\C\j[%(reference0)]" } else { "\j[%(reference0)]" } return } _name = 'Anchor.' + REPLACE(reference0,'#','_') if ISFUNC(_name) { EVAL(_name) return } if ISFUNC(reference0) { EVAL(reference0) return } } OnUserInput { _name = 'TalkInput.' + reference0 if ISFUNC(_name) { EVAL(_name) return } if ISFUNC(reference0) { EVAL(reference0) return } } //ランダムトーク Select.ai { RandomTalk } //罠1 Select.wana1 { "\h\s[5]ふふ。\w9\w5\u‥\w5‥\w5なんのつもりや。\e" "\h\s[6]2つめ。\w5\w9\uなにがや。\e" "\h\s[5]リフォームの匠です。\n\n\b2%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\n%(takumi)\w5\w9\u\s[10]誰や。\e" } //ネットワーク更新 Select.Update { "\![updatebymyself]" } //本体ネットワーク更新 Select.crowupdate { "\h\s[5]では、\w5アップデートしますね。\![update,platform]" } Select.sspupdate { "\h\s[5]では、\w5バージョンチェックしますね。\![update,platform]" } //ゴーストエクスプローラー Select.ghostexp { "\h\s[0]ゴーストエクスプローラーを起動しますね。\w9\w5\u別に右クリックからでええんやないか?\w9\w7\h\s[6]\n\n見やすいから\w5‥\w5‥。\w9\![open,ghostexplorer]\e" } //バルーンエクスプローラー Select.balloonexp { "\h\s[5]バルーン一覧です。\n\w8どうでしょうか。\w8\u\s[10]いや、\w5どうっちゅーて\w5‥\w5‥。\w9\![open,balloonexplorer]\e" } //ヘッドラインセンサ一覧 Select.headline { "\h\s[5]ヘッドラインセンサ一覧です。\![open,headlinesensorexplorer]\e" } //アイコン化 Select.icon { "\![set,windowstate,minimize]" } //キャンセル Select.Cancel { "\h\s[0]ではキャンセルします。\w9\w9\u\s[10]用もないのに呼ばんでくれや。\w9\w9\h\s[4]\n\n文句言っちゃダメですよ。\e" "\h\s[3]‥\w5‥。\w9\w9\u\s[10]遊びやったんやな。\w9\w9\h\s[4]\n\n何言ってるんですか。\e" } Select.Cancel2 { "\u\s[10]\h\s[0]それでは、\w5やめにしますね。" } //キャンセル(SSTP等での[#cancel]エントリ) Select._cancel { "\b0\h\s[3]‥\w5‥。\e" } Select.Timing { "/ \0\s[0]\cおしゃべり間隔の設定です。\n\n/ \![*]\q[とぎれなく,Timing1]/ \_l[100]\![*]\q[やかましく,Timing3]\n/ \![*]\q[普通に,Timing5]/ \_l[100]\![*]\q[ほどほどに,Timing7]\n/ \![*]\q[ぽつぽつと,Timing8]/ \_l[100]\![*]\q[静かにして,Timing9]\n/ \![*]\q[黙ってて,TimingSilence]\n\n[half]/ \![*]\q[戻る,Mainmenu]\n/ \![*]\q[キャンセル,Cancel]\e/ " } Select.Timing1 { aitalkinterval = 7 "\h\s[3]え\w5‥\w5‥\w9\nそんなに沢山、ネタ無いですよ。\w9\w5\u\s[11]まずいな。\e" } Select.Timing3 { aitalkinterval = 28 "\h\s[5]はいっ!\w9頑張りますっ♪\w9\w9\u\s[10]若いモンは元気ええのう。\w9\w9\h\s[4]\n\n何歳なんですか、\w5あなたは。\e" } Select.Timing5 { aitalkinterval = 56 "\u\s[11]「普通」っちゅーて言われるんが一番困るんや!!\w9\nそれがわからへんのか!?\w9\w5\h\s[4]お、\w5落ち着いてください\w5‥\w5‥。\e" } Select.Timing7 { aitalkinterval = 84 "\h\s[6]では、\w5程々にしておきますね。\w9\w9\u\s[10]程々ってどのくらいや?\w9\w9\h\s[4]\n\n‥\w5‥。\e" } Select.Timing8 { aitalkinterval = 140 "\h\s[3]あんまり喋って欲しくないって事…?\e" } Select.Timing9 { aitalkinterval = 998 "\h\s[0]\u\s[10]とうとう飽きられたんか\w5‥\w5‥。\w8\w8\h\s[5]作業中だと思っておきましょうよ、\w8ね?\w8\w8\w8\u\n\n‥\w5‥\w5せやな。\e" } Select.TimingSilence { aitalkinterval = 0 "\h\s[0]それでは。\w9\w5\n\s[5]用があったら呼んでくださいね。\e" } //名前覚えて------------------------------------------------------------------- Select.TeachName { "\h\s[5]名前を教えてくれるんですか?\w5\![open,inputbox,TeachName,-1]" } TalkInput.TeachName { entername = REPLACE(reference1,'\','') "\h\c\s[0]%(entername)さんですか。\w9\w9\n\s[2]あっ、\w5\s[3]いま「さん」ってつけてしまいましたけど、\w5敬称変えた方が良いですか?\n\n/ \q[%(MItem('「さん」でいいよ')),titles_user0]\n/ \q[%(MItem('「様」にしてくれ')),titles_user1]\n/ \q[%(MItem('無しがいい')),titles_user2]\n/ \q[%(MItem('やっぱり止め')),Cancel]\e/ " } Select.titles_user0 { username = entername + 'さん' ERASEVAR('entername') titles_user } Select.titles_user1 { username = entername + '様' ERASEVAR('entername') titles_user } Select.titles_user2 { username = entername ERASEVAR('entername') titles_user } titles_user { "\0\s[5]じゃ、%(username)って呼びますね。\e" } //だれかに話しかける Select.Talk { if ARRAYSIZE(ghostexlist) { _name = ANY(ghostexlist) res_reference0 = _name "\h\s[0]%(_name)さん、\w5こんにちは。\e" } else { "\h\s[1]他には誰も居ませんよ‥\w5‥\w5?\w9\w9\u\s[10]何やその顔は。\w9\w9\h\n\nだって、\w9%(username)と二人っきりなんですから\w5‥\w5‥。\w9\w9\u\s[10]\n\nワイはアウトオブ眼中かい。\w9\w9\h\s[6]\n\nころんは\w5「人」\w5じゃなくて\w5「匹」\w5ですし。\w9\w9\u\s[10]\n\nそういう問題なんか?\e" } } //---- メニュー選択タイムアウト --------------------------------------------------------- OnChoiceTimeout { "\b[0]\h\s[0]‥\w5‥\s[4]ちゃんと選んでくださいよ。\e" "\h\s[7]無視ですか。\e" }