//****************************************************************************** // YAYA ゴーストテンプレート // メニュー処理辞書 //****************************************************************************** //****************************************************************************** //メインメニューの展開 // //AYATEMPLATE.MenuItemの使い方 //1つめの文字列=選択肢に表示する文字列 //2つめの文字列=選んだときに実行される関数名 //3つめの文字列=改行する量 50%刻み 省略すると100%(=\n) //****************************************************************************** //------------------------------------------------------------------------------ //メインメニュー展開 //------------------------------------------------------------------------------ OpenMenu { "\0\s[2]うい。なんかあったか?" "\0\s[4]%username、どうした?" "\0\s[2]おう、どった?" -- AYATEMPLATE.MenuItem("なんか話して","Menu_AITALK",200) -- if ( STRLEN(AYATEMPLATE.LastTalk) > 0 ) { AYATEMPLATE.MenuItem("さっきの話は?","Menu_LASTTALK") } -- AYATEMPLATE.MenuItem("今日は何の日?","Menu_TODAY") -- AYATEMPLATE.MenuItem("しゃべり頻度を変えて","Menu_TALKINTERVAL") -- //AYATEMPLATE.MenuItem("他のゴーストと話す","Menu_GHOSTCOMSTART") //-- AYATEMPLATE.MenuItem("久人に話しかける","Menu_COMMUNICATEOPEN") -- //スタンプ帳チェック if AYATEMPLATE.IsPluginExist('379E0DA0-131C-11DD-E1AC-90009E101CFE') { AYATEMPLATE.MenuItem("スタンプを押す","Menu_STAMP") } -- AYATEMPLATE.MenuItem("AIについて","Menu_ABOUTAYA") -- AYATEMPLATE.MenuItem("なんでもない","Menu_CANCEL",150) } //------------------------------------------------------------------------------ //メニュー選択タイムアウト //------------------------------------------------------------------------------ OnChoiceTimeout { "\0\s[5]どうした?寝落ちか?\e" "\0\s[4]反応止まったな\w8\1\s[92]たぬに見とれてるたぬね\e" "\0\s[11]%(username)の霊圧が…\w8\w8消えたッ!!\w8\1\s[94]なん……\w8だと……!!\e" "\0\s[11]一定時間が過ぎると。\w8\1\s[92]キャンセルされるたぬ\e" "\0\s[26]早く選べー!\nじゃないとこの狸の命はないぞ!!\w8\1\s[94]ころさるるー!!\e" } //****************************************************************************** //各項目の処理内容 //****************************************************************************** //---- 何か話して Menu_AITALK { //---- 明示的にAIトーク開始を指示 OnAiTalk } //---- さっきの話は Menu_LASTTALK { AYATEMPLATE.LastTalk } //---- 今日は何の日? Menu_TODAY { TodayTalk } //---- トーク頻度の調整 Menu_TALKINTERVAL { "\0\s[1]どのくらいにするよ?" -- AYATEMPLATE.MenuItem("うるさいくらい","Menu_TALKMAX",200) -- AYATEMPLATE.MenuItem("ちょっと多めに","Menu_TALKMIDLL") -- AYATEMPLATE.MenuItem("ふつう","Menu_TALKNORMAL") -- AYATEMPLATE.MenuItem("静か","Menu_TALKPOOR") -- AYATEMPLATE.MenuItem("黙ってて","Menu_TALKNONE") -- AYATEMPLATE.MenuItem("戻る","OpenMenu",150) } //---- 久人について説明 Menu_ABOUTAYA { "\0\s[1]俺らは、「YAYA」で制作されたゴーストだ\w8\1\s[92]YAYAは久人を右クリックしたメニューから飛べるたぬ\w9\0\s[8]\n\nちなみに俺は○年前から開始しているVNIだ。\w8\1\n\n久人についてはたぬを右クリックして飛べるたぬよ\e" } //---- 久人に話しかける Menu_COMMUNICATEOPEN { "\0\s[4]おう!\![open,communicatebox]\e" } //---- 他のゴーストと話す Menu_GHOSTCOMSTART { StartCommunicate } //---- キャンセルされた Menu_CANCEL { "\0\s[11]むむ…\e" "\0\s[9]なんでもないならいいけど…\e" } //---- トーク頻度 Menu_TALKMAX { //---- うるさく話す(15秒間隔) aitalkinterval = 15 "\0\s[54]よーし、覚悟しろよ?\w8\1\s[92]そんなにたぬの声を聞きたいたぬかー\w8\w8\0\s[81]\n\nお前は黙れよ\e" } Menu_TALKMIDLL { //---- ちょっと多めに(1分間隔) aitalkinterval = 60 "\0\s[1]だいたい一分に一回くらいわいわい言う\w8\1\s[92]まったく久人はうるさいぬー\w8\0\s[21]\n\n狸には負けるわー\e" } Menu_TALKNORMAL { //---- ふつうに話す(3分間隔) aitalkinterval = 180 "\0\s[1]ふつうは3分間隔くらいらしいぞ\w8\1\s[92]ちょっと静か過ぎて怖い。\w8\nとよく言われるたぬ\e" } Menu_TALKPOOR { //---- 静かに話す(5分間隔) aitalkinterval = 300 "\0\s[32]…頑張る\w8\1\s[92]…頑張る\e" } Menu_TALKNONE { //---- 話さない aitalkinterval = 0 "\0\s[27]本気か…?\w8\1\s[92]そうたぬよ!たぬのクールボイスを聞かないなんて!\e" } //---- ヘッドライン Menu_HEADLINECANCEL { //---- キャンセルされた "\0\s[5]はーい。\e" } //---- スタンプ帳 Menu_STAMP { //初期化 SHIORI3FW.RegisterTempVar('StampInfo_IsExist','StampInfo_IsNotify','StampInfo_CurrentStampFile','StampInfo_CurrentStampTitle') StampInfo_IsExist = 0 StampInfo_IsNotify = 0 //スタンプ帳情報を取った後、raiseでOnStampMenuExecを発生させて下に処理を移す "\![raiseplugin,379E0DA0-131C-11DD-E1AC-90009E101CFE,OnStampInfoCall]\![raise,OnStampMenuExec]" } OnStampInfo { //スタンプあるかどうか? StampInfo_IsExist = reference[1] StampInfo_IsNotify = 1 StampInfo_CurrentStampFile = '' StampInfo_CurrentStampTitle = '' //押している場合は、どのスタンプを押しているか? _stamparray = SPLIT(reference[3],CHR(2)) StampInfo_Data = _stamparray _n = ARRAYSIZE(_stamparray) for _i = 0 ; _i < _n ; _i++ { _stamp = RE_SPLIT(_stamparray[_i],'[\x1,]') //バイト値1かカンマかでぶった切る:互換モード対策 //ほかで使う場合はここの名前を変えてね if _stamp[0] == 'はろーYAYAわーるど' || _stamp[0] == '紺野ややめ' { StampInfo_CurrentStampFile = _stamp[1] StampInfo_CurrentStampTitle = _stamp[2] break } } } OnStampMenuExec { _stamp_type = '' //あった if StampInfo_IsExist { if 'ややめ' _in_ StampInfo_CurrentStampTitle { //マック朗におきかえ "\u\s[10]\h\s[2]もう押してあるのに、\w5まだほしいの?\w9\w9\u\s[11]ならおれのスタンプに置き換えだ!\w9\nどうだうれしいだろ!\w9\w9\h\s[4]\n\nなにやってるの\w5…\w5…" _stamp_type = 'マック朗' } else { //ややめに置き換え "\h\s[0]\u\s[10]もうおれのスタンプが押してあるぞ?\w9\w9\h\s[5]とりあえずわたしのに戻すねー。" _stamp_type = 'ややめ' } } //ない else { "\0\s[0]スタンプ?\w9\w9\n\s[5]はいどうぞ〜。\w9\w9\1\s[11]せっかくだから俺はこのスタンプを選ぶぜ!\w9\w9\0\s[4]えーっと。" _stamp_type = 'ややめ' } -- if _stamp_type == 'ややめ' { //2行目ファイル、3行目タイトル、4行目コメント "\![raiseplugin,379E0DA0-131C-11DD-E1AC-90009E101CFE,OnStampAdd,/ ghost/master/stmp_yym.png,/ ややめスタンプ,/ 紺野ややめが押したスタンプ。服のジッパーの取っ手とデザインが同じ。]" } else { "\![raiseplugin,379E0DA0-131C-11DD-E1AC-90009E101CFE,OnStampAdd,/ ghost/master/stmp_mcr.png,/ マック朗スタンプ,/ マック朗が押したスタンプ。黒林檎。見た目に反して毒はない…と信じたい。]" } }