//****************************************************************************** // YAYA ghost template // Menu processing dictionary //****************************************************************************** //****************************************************************************** //Expanding the main menu // //How to use AYATEMPLATE.MenuItem //1st string = String to display in the options //2nd string = Function name to be executed when selected //3rd string = Line break amount, in 50% increments, 100% if omitted (=\n) //****************************************************************************** //------------------------------------------------------------------------------ //Expanding the main menu //------------------------------------------------------------------------------ OpenMenu { "\0\s[5]Okay、what is it?" "\0\s[5]%(username)、what is it?" "\0\s[0]Hmm‥‥what's wrong?" -- AYATEMPLATE.MenuItem("Tell me something","Menu_AITALK",200) -- if ( STRLEN(AYATEMPLATE.LastTalk) > 0 ) { AYATEMPLATE.MenuItem("The story from earlier?","Menu_LASTTALK") } -- AYATEMPLATE.MenuItem("Change the frequency of speaking","Menu_TALKINTERVAL") -- AYATEMPLATE.MenuItem("Talk to other ghosts","Menu_GHOSTCOMSTART") -- AYATEMPLATE.MenuItem("Talk to them to stop","Menu_COMMUNICATEOPEN") -- //Stamp Book Check if AYATEMPLATE.IsPluginExist('379E0DA0-131C-11DD-E1AC-90009E101CFE') { AYATEMPLATE.MenuItem("スタンプを押す","Menu_STAMP") } -- AYATEMPLATE.MenuItem("Nothing","Menu_CANCEL",150) } //------------------------------------------------------------------------------ //Menu selection timeout //------------------------------------------------------------------------------ OnChoiceTimeout { "\0\s[7]Please choose carefully!\e" "\0\s[4]Phewー。\w8\1Don't be depressed。\e" "\0\s[4]一After a certain amount of time has passed。\w8\1It will be canceled, right?\w8\0\n\nIt will self-destruct。\w8\1\s[11]\n\nWhat!?\w8\0\n\nMc Black。\w8\1\n\nNoooooo―――――――!!\e" } //****************************************************************************** //Processing details for each item //****************************************************************************** //---- Tell me something Menu_AITALK { //---- Explicitly instruct AI to start talking OnAiTalk } //---- The story from earlier Menu_LASTTALK { AYATEMPLATE.LastTalk } //---- Adjusting talk frequency Menu_TALKINTERVAL { '\0\s[0]How much is good?' -- AYATEMPLATE.MenuItem("It's so noisy","Menu_TALKMAX",200) -- AYATEMPLATE.MenuItem("Normal","Menu_TALKNORMAL") -- AYATEMPLATE.MenuItem("Quietly","Menu_TALKPOOR") -- AYATEMPLATE.MenuItem("Shut up","Menu_TALKNONE") -- AYATEMPLATE.MenuItem("Return","OpenMenu",150) } //---- 文について説明 Menu_ABOUTAYA { '\0\s[0]わたしたちは、汎用DLL「文」の進化版、「YAYA」で制作されてるんだよね?\w8\1聞くなよ。その通りだ。\w9\nC言語風の読みやすいスクリプトで、SHIORIやSAORIを作ることが出来るんだ。\w8\0\s[5]\n\n最初は訳分かんないかもしれないけど、噛めば噛むほど面白くなるよ。\w8\s[4]\n多分。\w8\1\n\nおい。\e' } //---- Talk to them to stop Menu_COMMUNICATEOPEN { '\0\s[5]Sure。\![open,communicatebox]\e' } //---- Talk to other ghosts Menu_GHOSTCOMSTART { StartCommunicate } //---- Cancelled Menu_CANCEL { '\0\s[4]‥\w6‥\w6poohー。\e' } //---- Talk Frequency Menu_TALKMAX { //---- Talk loudly (15 second intervals) aitalkinterval = 15 '\0\s[5]Start talking without worrying about running out of material!\w8\1‥\w5‥\w5wait。\e' } Menu_TALKNORMAL { //---- Speak normally (every 3 minutes) aitalkinterval = 180 '\0\s[6]A test where you speak normally at about 3 minute intervals。\w8\1Test locally。\w8\0\s[4]\n\n‥\w5‥\w5what rule is that?\e' } Menu_TALKPOOR { //---- Speak quietly (every 5 minutes) aitalkinterval = 300 "\0\s[5]You're pretending to be someone else。\w8\1You're always pretending to be someone else。\e" } Menu_TALKNONE { //---- Do not speak aitalkinterval = 0 '\0\s[4]‥\w5‥\w5most of the functions as a desktop accessory are sealed away and it starts to consume memory steadily。\w8\1What a way to say it。\e' } //---- Headlines Menu_HEADLINECANCEL { //---- Cancelled '\0\s[5]Yes。\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/stamp/stmp_yym.png,/ ややめスタンプ,/ 紺野ややめが押したスタンプ。服のジッパーの取っ手とデザインが同じ。]' } else { '\![raiseplugin,379E0DA0-131C-11DD-E1AC-90009E101CFE,OnStampAdd,/ ghost/master/stamp/stmp_mcr.png,/ マック朗スタンプ,/ マック朗が押したスタンプ。黒林檎。見た目に反して毒はない…と信じたい。]' } }