//****************************************************************************** // YAYA ゴーストテンプレート // メニュー処理辞書 //****************************************************************************** //****************************************************************************** //メインメニューの展開 // //AYATEMPLATE.MenuItemの使い方 //1つめの文字列=選択肢に表示する文字列 //2つめの文字列=選んだときに実行される関数名 //3つめの文字列=改行する量 50%刻み 省略すると100%(=\n) //****************************************************************************** //------------------------------------------------------------------------------ //メインメニュー展開 //------------------------------------------------------------------------------ OpenMenu { "\0\s[90]\_q\![*]%sakuranameに話しかけてみる\n%Questions\n%Questions\n%Questions\_q" "\0\s[91]\_q\![*]%sakuranameに話しかけてみる\n%Questions\n%Questions\n%Questions\_q" -- AYATEMPLATE.MenuItem("違う言葉をかける","OpenMenu",150) -- AYATEMPLATE.MenuItem("用事をお願い","OpenMenu2") -- //-------- 占い AYATEMPLATE.MenuItem("今日の運勢","Menu_Divination") -- //-------- プレゼント AYATEMPLATE.MenuItem("%sakuranameにプレゼントする","Menu_GIVE_SOMETHING") -- AYATEMPLATE.MenuItem("なんでもない","Menu_CANCEL",150) } //------------------------------------------------------------------------------ // まかろんに話しかける //------------------------------------------------------------------------------ //質問一覧 Questions : nonoverlap { "\q[ ありがとう ,Reaction_1]" "\q[ 愛してるよ ,Reaction_1]" "\q[ 飽きた ,Reaction_2]" "\q[ 遊ぼう ,Reaction_1]" "\q[ うるさい ,Reaction_2]" "\q[ うざい ,Reaction_3]" "\q[ おなかすいた ,Reaction_5]" "\q[ お疲れさま ,Reaction_1]" "\q[ 愛想がつきた ,Reaction_2]" "\q[ おっぱい ,Reaction_4]" "\q[ うさんくさい ,Reaction_3]" "\q[ いいかげんにして ,Reaction_2]" "\q[ 一緒に寝よう ,Reaction_1]" "\q[ いらない ,Reaction_2]" "\q[ 一生懸命だね ,Reaction_1]" "\q[ エロ可愛い ,Reaction_4]" "\q[ お嬢様 ,Reaction_1]" "\q[ お姫様 ,Reaction_1]" "\q[ 嘘つき ,Reaction_2]" "\q[ おバカさん ,Reaction_2]" "\q[ かわいいね ,Reaction_1]" "\q[ 悲しい  ,Reaction_2]" "\q[ キスしたい ,Reaction_1]" "\q[ 嫌い ,Reaction_2]" "\q[ 気持ち悪い ,Reaction_3]" "\q[ 消えて ,Reaction_2]" "\q[ 綺麗だね ,Reaction_1]" "\q[ 結婚しよう ,Reaction_1]" "\q[ 恋人になって ,Reaction_1]" "\q[ 触れ合いたい ,Reaction_1]" "\q[ 好きだよ ,Reaction_1]" "\q[ 手をつなごう ,Reaction_1]" "\q[ さようなら ,Reaction_2]" "\q[ 最低 ,Reaction_2]" "\q[ 死にたい ,Reaction_2]" "\q[ 踏んで ,Reaction_4]" "\q[ 叱って ,Reaction_4]" "\q[ そばにいて ,Reaction_1]" "\q[ つらい ,Reaction_2]" "\q[ 大切にするよ ,Reaction_1]" "\q[ 大事にするよ ,Reaction_1]" "\q[ チビ ,Reaction_3]" "\q[ 楽しい ,Reaction_1]" "\q[ 付き合って ,Reaction_1]" "\q[ 大好きだよ ,Reaction_1]" "\q[ 何カップ?(胸のサイズについて) ,Reaction_4]" "\q[ 泣きそう ,Reaction_2]" "\q[ 涙が出てきた ,Reaction_2]" "\q[ ババア ,Reaction_3]" "\q[ 馬鹿 ,Reaction_3]" "\q[ 間抜け ,Reaction_3]" "\q[ 不愉快 ,Reaction_2]" "\q[ 変態 ,Reaction_4]" "\q[ 君が欲しい ,Reaction_1]" "\q[ ぱふぱふ ,Reaction_4]" "\q[ 太った? ,Reaction_2]" "\q[ 胸大きいね ,Reaction_4]" "\q[ 胸小さいね ,Reaction_3]" "\q[ むかつく ,Reaction_3]" "\q[ むっつりスケベ ,Reaction_4]" "\q[ むなしい ,Reaction_2]" "\q[ もうかりまっか? ,Reaction_4]" "\q[ 歪みねぇな(♂) ,Reaction_4]" "\q[ 優しいね ,Reaction_1]" "\q[ 笑って ,Reaction_1]" } //----反応 //喜んでいる Reaction_1 : nonoverlap { ChangeLP(1) "\0\s[1](照れているようだ)\e" "\0\s[38](照れているようだ)\e" "\0\s[5](喜んでいるようだ)\e" "\0\s[35](喜んでいるようだ)\e" } //悲しんでいる Reaction_2 : nonoverlap { ChangeLP(-2) "\0\s[3](悲しそうにしている)\e" "\0\s[4](不安そうにしている)\e" "\0\s[33](泣き出しそうだ)\e" } //怒っている Reaction_3 : nonoverlap { ChangeLP(-3) "\0\s[0](無表情になってしまった)\e" "\0\s[7](怒っているようだ)\e" "\0\s[31](憐れむように、こちらを見ている)\e" "\0\s[32](憐れむように、こちらを見ている)\e" "\0\s[37](怒っているようだ)\e" } //困っている Reaction_4 : nonoverlap { ChangeLP(-1) "\0\s[40](リアクションに困っているようだ)\e" "\0\s[41](リアクションに困っているようだ)\e" "\0\s[42](リアクションに困っているようだ)\e" } //食べ物 Reaction_5 : nonoverlap { ChangeLP(1) "\0\s[150](ケーキを薦めているようだ)\e" "\0\s[151](ドーナツを薦めているようだ)\e" "\0\s[152](キャンディを薦めているようだ)\e" "\0\s[153](クッキーを薦めているようだ)\e" "\0\s[154](チョコレートを薦めているようだ)\e" } //------------------------------------------------------------------------------ //用事をお願い //------------------------------------------------------------------------------ OpenMenu2 { "\0\s[5]\b[2]" //-------- メール関連 -- AYATEMPLATE.MenuItem("メールチェック","Menu_ALLMAIL",150) -- AYATEMPLATE.MenuItem("メールチェック機能の設定","Menu_ALLMAIL2") -- AYATEMPLATE.MenuItem("メールソフト起動","Menu_OPENMAILER") //-------- ブラウザ -- AYATEMPLATE.MenuItem("ブラウザ起動","Menu_OPENBROWSER",150) //-------- 時刻合わせ -- void SAORI("saori/ccpuid.dll","cpu.name","os.name","os.build") if "XP" _in_ valueex[1] || "2000" _in_ valueex[1] || "98" _in_ valueex[1] { AYATEMPLATE.MenuItem("時刻合わせ","Menu_SNTP") } //-------- ヘッドライン -- AYATEMPLATE.MenuItem("ヘッドライン","Menu_HEADLINE") //-------- カレンダー -- AYATEMPLATE.MenuItem("カレンダー","Menu_CALENDAR") //-------- ハードディスク関連 -- AYATEMPLATE.MenuItem("ごみ箱を空にする","Menu_TRASHCLEAN",150) -- AYATEMPLATE.MenuItem("ディスクのクリーンアップ","Menu_SYSDUST") //-------- その他 -- AYATEMPLATE.MenuItem("名前と誕生日を覚えて","Menu_NAMEANDBIRTHDAY",150) -- AYATEMPLATE.MenuItem("しゃべり頻度を変えて","Menu_TALKINTERVAL") -- AYATEMPLATE.MenuItem("半透明表示にして","Menu_TRANSLUCENT") //-------- システム情報 -- AYATEMPLATE.MenuItem("システム情報","MENU_SYSTEMNORMAL",150) -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } //------------------------------------------------------------------------------ //メニュー選択タイムアウト //------------------------------------------------------------------------------ OnChoiceTimeout { ChangeLP(-10) "\0\s[32]\e" } //------------------------------------------------------------------------------ //キャンセルされた //------------------------------------------------------------------------------ Menu_CANCEL { "\0\s[4]\e" "\0\s[31]\e" "\0\s[32]\e" } //---- ヘッドラインキャンセル Menu_HEADLINECANCEL { //---- キャンセルされた "\0\s[0](キャンセルされました)\e" } //****************************************************************************** //各項目の処理内容 //****************************************************************************** //---- 何か話して Menu_AITALK { //---- 明示的にAIトーク開始を指示 OnAiTalk } //---- さっきの話は Menu_LASTTALK { AYATEMPLATE.LastTalk } //---- 占い DivinationDateFunc { "%(year)-%(month)-%(day)" } Menu_Divination : nonoverlap { if (DivinationDate != DivinationDateFunc()) || (STRLEN(DivinationComment) == 0) { DivinationDate = DivinationDateFunc() // 占った日 DivinationComment = Menu_DivComment ChangeLP(1) "\0\s[210]\w9\s[211]\w9\w9\w9\w9%(DivinationComment)" "\0\s[210]\w9\s[212]\w9\w9\w9\w9%(DivinationComment)" -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",200) } else { _div_nowait = RE_REPLACE(DivinationComment,'\\w[0-9]','') _div_nowait = RE_REPLACE(_div_nowait,'\\w\[[0-9]+?\]','') "\_q%(_div_nowait)\n(最後に占ってから24時間経過しないと、\n もう一度占いはできません)\_q" -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",200) } } Menu_DivComment { if RAND(99) >= 66 { //良い Menu_Divgood } elseif RAND(99) >= 33 { //普通 Menu_Divnormal } else { //悪い Menu_Divbad } } Menu_Divgood : nonoverlap { "\s[202](運勢は、\w5なかなか良いようだ)" "\s[202](何か良いことがありそうだ)" "\s[202](小さな幸運が舞い込みそうだ)" "\s[202](巡り合わせが良さそうだ)" "\s[202](心が温かくなる出来事が、あるかもしれない)" } Menu_Divnormal : nonoverlap { "\s[201](運勢は、\w5普通のようだ)" "\s[201](平穏に過ごせるようだ)" "\s[201](大きな事件は起きないようだ)" "\s[201](平凡な一日のようだ)" "\s[201](いつもと変わらない日のようだ)" } Menu_Divbad : nonoverlap { "\s[200](運勢は、\w5あまり良くないらしい)" "\s[200](何もないところで転ぶかもしれない)" "\s[200](落し物に気を付けたほうが良さそうだ)" "\s[200](前方に注意したほうが良さそうだ)" "\s[200](ケアレスミスに気を付けたほうが良さそうだ)" } //---- メールチェック Menu_ALLMAIL { ChangeLP(1) "\![biff]\e" } //---- メールチェック機能の設定 Menu_ALLMAIL2 { ChangeLP(1) "\![open,config,biff]\e" } //---- メールソフト起動 Menu_OPENMAILER { ChangeLP(1) "\0(メールソフトを起動します)\![open,mailer]\e" } //---- ブラウザ起動 Menu_OPENBROWSER { ChangeLP(1) "\0(ブラウザを開きます)\![open,browser]\e" } //---- 時刻合わせ Menu_SNTP { ChangeLP(1) '\![executesntp]' } //---- ヘッドライン Menu_HEADLINE { ChangeLP(1) "\0\s[0](%(reference[0])ヘッドライン取得中)\![open,headlinesensorexplorer]\e" } //---- カレンダー Menu_CALENDAR { ChangeLP(1) "\0\![open,calendar](カレンダーを起動しました。\w9\n\n 右上の三角のボタンで、月の変更。\w5\n 日付をダブルクリックすると、\w5予定の入力です。\w5\n\n 操作が分からなくなったら、カレンダーの上で\w5\n 右クリックしてください)\e" } //---- ごみ箱を空にする Menu_TRASHCLEAN { _emptycheck = FUNCTIONEX("saori\empty.dll", "-n") UNLOADLIB("saori\empty.dll") if _emptycheck == 0 { "\0\s[0](ごみ箱は既に空です)" -- AYATEMPLATE.MenuItem("一つ前に戻る","OpenMenu2",200) -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu") } elseif _emptycheck > 0 { "\0(ごみ箱を空にしますか?)" -- AYATEMPLATE.MenuItem("よろしく","Menu_TRASHCLEAN2",200) -- AYATEMPLATE.MenuItem("後でいい","OpenMenu2") } else { "\0\s[3]\e" "\0\s[4]\e" } } Menu_TRASHCLEAN2 { ChangeLP(1) _emptysute = FUNCTIONEX("saori\empty.dll", "-ef") UNLOADLIB("saori\empty.dll") if _emptysute != 0 { "\0\s[-1]\w9\w9\w9\w9\w9\w9\0\s[6](ごみ箱を空にしました)\e" } else { "\w9\w9\0\s[4](失敗しました)\e" } } //---- ディスクのクリーンアップ Menu_SYSDUST { ChangeLP(1) "\0(ディスクのクリーンアップをします。\w9\n クリーンアップするディスクを選んで下さい。\![open,file,C:\WINDOWS\system32\cleanmgr.exe]\n\n\w9\w9(Windowsのディスククリーンアップ機能を\w5\n使用しているため、\w5最初の設定はCドライブです。\w5\n違うディスクを実行する場合、\w5自分で選んで下さい)\e" } //---- 誕生日や名前を覚える Menu_NAMEANDBIRTHDAY { ChangeLP(1) "\1\s[10]\0\s[0](お名前と誕生日を入力してください)\w9\![open,configurationdialog,setup]\e" } //---- トーク頻度の調整 Menu_TALKINTERVAL { "\0\s[0](トーク頻度を調整します)" -- AYATEMPLATE.MenuItem("表情が頻繁に変わる(30秒ごと)","Menu_TALKMAX",200) -- AYATEMPLATE.MenuItem("ふつう(1分ごと)","Menu_TALKNORMAL") -- AYATEMPLATE.MenuItem("あまり変わらない(2分ごと)","Menu_TALKPOOR") -- AYATEMPLATE.MenuItem("戻る","OpenMenu",150) } //---- トーク頻度 Menu_TALKMAX { ChangeLP(1) //---- うるさく話す(30秒間隔) aitalkinterval = 30 "\0\s[6]\e" } Menu_TALKNORMAL { //---- ふつうに話す(1分間隔) aitalkinterval = 60 "\0\s[5]\e" } Menu_TALKPOOR { //---- 静かに話す(2分間隔) aitalkinterval = 120 "\0\s[31]\e" } //---- 半透明表示 Menu_TRANSLUCENT { ChangeLP(1) "\0\![open,config,display]\e" } //---- システム情報 MENU_SYSTEMNORMAL { ChangeLP(1) void SAORI("saori/ccpuid.dll","cpu.name","os.name","os.build") _installtime = GETTIME(FATTRIB('../../')[9]) "\0\s[6]\b[2]\_q\f[bold,true]システム情報\f[bold,false]\n\n[half]/ OS起動時間:%(systemuphour)時間%(systemupminute)分\n/ まかろん起動時間:%(ghostupmin_total()/60)時間%(ghostupmin_total()%60)分\n/ まかろんが来た日:%(_installtime[0])年%(_installtime[1])月%(_installtime[2])日\n/ \n[half]/ CPU:%(valueex[0])\n/ OS:%(valueex[1])\n/ Build: %(valueex[2])\n/ \n[half]/ メモリ使用:%(memoryload)%\n/ 物理メモリ:%(memorytotalphys/1048576)MB\n/ 空き領域:%(memoryavailphys/1048576)MB\n/ \n[half]/ 解像度:%(displaywidth) x %(displayheight)\n/ 画面の色数:%(displaybpp)Bit\n/ \n[half]/ ベースウェア:%(Platform)\_q" -- AYATEMPLATE.MenuItem("一つ前に戻る","OpenMenu2",200) -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu") } Platform { case basewarename { when "embryo" { "Materia" } when "crow" { "CROW" } when "SSP" { "SSP" } others { "謎" } } } //------------------------------------------------------------------------------ // まかろんにプレゼント //------------------------------------------------------------------------------ Menu_GIVE_SOMETHING { //プレゼントをあげた時刻が空の場合 if Timetofeed == "" { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット } //50分後 if GETSECCOUNT() - Timetofeed > 3000 { Menu_GIVE_SOMETHING_1 } //40分後 elseif GETSECCOUNT() - Timetofeed > 2400 { Menu_GIVE_SOMETHING_2 } //30分後 elseif GETSECCOUNT() - Timetofeed > 1800 { Menu_GIVE_SOMETHING_3 } //20分後 elseif GETSECCOUNT() - Timetofeed > 1200 { Menu_GIVE_SOMETHING_4 } //10分後 elseif GETSECCOUNT() - Timetofeed > 600 { Menu_GIVE_SOMETHING_5 } else { "\0\s[41]%sakuranameは、\w5お腹がすいてないようだ。" -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } } Menu_GIVE_SOMETHING_1 { "\0\s[6]\b[2](何をあげますか?)" -- AYATEMPLATE.MenuItem("イチゴ","Menu_GIVE_SOMETHING_strawberry",200) -- AYATEMPLATE.MenuItem("ぶどう","Menu_GIVE_SOMETHING_grape") -- AYATEMPLATE.MenuItem("西洋ナシ","Menu_GIVE_SOMETHING_pear") -- AYATEMPLATE.MenuItem("バナナ","Menu_GIVE_SOMETHING_banana") -- AYATEMPLATE.MenuItem("りんご","Menu_GIVE_SOMETHING_apple") -- AYATEMPLATE.MenuItem("キャンディ","Menu_GIVE_SOMETHING_candy",200) -- AYATEMPLATE.MenuItem("チョコレート","Menu_GIVE_SOMETHING_chocolate") -- AYATEMPLATE.MenuItem("ドーナツ","Menu_GIVE_SOMETHING_donut") -- AYATEMPLATE.MenuItem("クッキー","Menu_GIVE_SOMETHING_cookie") -- AYATEMPLATE.MenuItem("ケーキ","Menu_GIVE_SOMETHING_cake") -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } Menu_GIVE_SOMETHING_2 { "\0\s[6]\b[2](何をあげますか?)" -- AYATEMPLATE.MenuItem("イチゴ","Menu_GIVE_SOMETHING_strawberry",200) -- AYATEMPLATE.MenuItem("ぶどう","Menu_GIVE_SOMETHING_grape") -- AYATEMPLATE.MenuItem("西洋ナシ","Menu_GIVE_SOMETHING_pear") -- AYATEMPLATE.MenuItem("バナナ","Menu_GIVE_SOMETHING_banana") -- AYATEMPLATE.MenuItem("キャンディ","Menu_GIVE_SOMETHING_candy",200) -- AYATEMPLATE.MenuItem("チョコレート","Menu_GIVE_SOMETHING_chocolate") -- AYATEMPLATE.MenuItem("ドーナツ","Menu_GIVE_SOMETHING_donut") -- AYATEMPLATE.MenuItem("クッキー","Menu_GIVE_SOMETHING_cookie") -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } Menu_GIVE_SOMETHING_3 { "\0\s[5]\b[2](何をあげますか?)" -- AYATEMPLATE.MenuItem("イチゴ","Menu_GIVE_SOMETHING_strawberry",200) -- AYATEMPLATE.MenuItem("ぶどう","Menu_GIVE_SOMETHING_grape") -- AYATEMPLATE.MenuItem("西洋ナシ","Menu_GIVE_SOMETHING_pear") -- AYATEMPLATE.MenuItem("キャンディ","Menu_GIVE_SOMETHING_candy",200) -- AYATEMPLATE.MenuItem("チョコレート","Menu_GIVE_SOMETHING_chocolate") -- AYATEMPLATE.MenuItem("ドーナツ","Menu_GIVE_SOMETHING_donut") -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } Menu_GIVE_SOMETHING_4 { "\0\s[5]\b[2](何をあげますか?)" -- AYATEMPLATE.MenuItem("イチゴ","Menu_GIVE_SOMETHING_strawberry",200) -- AYATEMPLATE.MenuItem("ぶどう","Menu_GIVE_SOMETHING_grape") -- AYATEMPLATE.MenuItem("キャンディ","Menu_GIVE_SOMETHING_candy") -- AYATEMPLATE.MenuItem("チョコレート","Menu_GIVE_SOMETHING_chocolate") -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } Menu_GIVE_SOMETHING_5 { "\0\s[5]\b[2](何をあげますか?)" -- AYATEMPLATE.MenuItem("イチゴ","Menu_GIVE_SOMETHING_strawberry",200) -- AYATEMPLATE.MenuItem("キャンディ","Menu_GIVE_SOMETHING_candy") -- AYATEMPLATE.MenuItem("メインメニューに戻る","OpenMenu",150) } //イチゴ Menu_GIVE_SOMETHING_strawberry { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(5) "\0\s[155](喜んでいるようだ)\e" } //ぶどう Menu_GIVE_SOMETHING_grape { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(20) "\0\s[158](喜んでいるようだ)\e" } //西洋ナシ Menu_GIVE_SOMETHING_pear { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(10) "\0\s[156](喜んでいるようだ)\e" } //バナナ Menu_GIVE_SOMETHING_banana { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(15) "\0\s[157](大喜びしているようだ)\e" } //りんご Menu_GIVE_SOMETHING_apple { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(25) "\0\s[159](とても嬉しいようだ)\e" } //キャンディ Menu_GIVE_SOMETHING_candy { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(5) "\0\s[152](まずまず喜んでいるようだ)\e" } //チョコレート Menu_GIVE_SOMETHING_chocolate { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(10) "\0\s[154](喜んでいるようだ)\e" } //クッキー Menu_GIVE_SOMETHING_cookie { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(15) "\0\s[153](喜んでいるようだ)\e" } //ドーナツ Menu_GIVE_SOMETHING_donut { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(20) "\0\s[151](大喜びしているようだ)\e" } //ケーキ Menu_GIVE_SOMETHING_cake { Timetofeed = GETSECCOUNT() // プレゼントをあげた時間をリセット ChangeLP(25) "\0\s[150](とても嬉しいようだ)\e" }