///////// 文 ゴーストテンプレート ///////// 種々のイベント辞書 ///////// copyright (C) 2002 umeici. //**** インストール関連 ***************************************************************** //---- インストール中のメッセージ ------------------------------------------------------- OnInstallBegin { "\1\s[10]\0\s[6]インストールしています。\e" } //---- インストール完了メッセージ ------------------------------------------------------- OnInstallComplete { "\0\s[0]" -- if reference[0] == "shell" { "シェル" } elseif reference[0] == "ghost" { "ゴースト" } elseif reference[0] == "balloon" { "バルーン" } elseif reference[0] == "plugin" { "プラグイン" } -- "「%(reference[1])」、インストールしました。" -- if reference[0] == "ghost" { Ghostname = reference[1] "/ \n\s[0]交代しますか?\n\n/ \![*]\q[%(MENUITEM('よろしく')),ChoiceGhostchange0]\n/ \![*]\q[%(MENUITEM('いや、あとで')),ChoiceGhostchange1]\e" } else { "\e" } } //ゴースト交代可否 ChoiceGhostchange0 { "/ \0\s[0]\cでは、%Ghostnameさんと交代します。\w5\n/ たまにうまく行かないこともあるので、\w5\n/ そのときは手動で切り替えてね。\w9\w9/ \![change,ghost,%Ghostname]\e" } ChoiceGhostchange1 { "\0\s[0]はーい。\e" } //---- インストール失敗メッセージ ------------------------------------------------------- OnInstallFailure { "\0\s[8]インストール、失敗。\w5\n理由:%(reference[0])だって。\e" } //---- インストール拒否(他のゴーストのためのアーカイブだった) ------------------------- OnInstallRefuse { "\0\s[8]これは、%(reference[0])さん用の\nアーカイブです。\w5\n\n直接渡してあげて。\e" } //---- メールチェック開始 --------------------------------------------------------------- OnBIFFBegin { "\1\s[10]\0\s[5]メールチェックを開始しまーす。\e" } //---- メールチェック成功 --------------------------------------------------------------- OnBIFFComplete { if reference[0] == 0 { //---- メールは無かった "\0\s[0]メールはありませんでした。\e" } else { //---- メールが届いていた "\0\s[5]メールが来てます。\w5\n%(reference[0])通、%(reference[1])バイトです。\e" } } //---- メールチェック失敗 --------------------------------------------------------------- OnBIFFFailure { if reference[0] == "timeout" { //---- タイムアウト "\0\s[8]メールサーバに繋がらないよ。\e" } elseif reference[0] == "kick" { //---- 蹴られた "\0\s[8]あいたた。\w5\nメールサーバから蹴られました。\e" } elseif reference[0] == "defect" { //---- 設定誤り "\0\s[8]設定ミスの可能性が大。\w5\nメールチェックの設定を見なおしてね。\e" } else { //---- 原因不明 "\0\s[8]原因はわからないけど、失敗。\e" } } //**** ネットワーク更新 ***************************************************************** //---- ネットワーク更新開始 ------------------------------------------------------------- OnUpdateBegin { if reference[3] == "baseware" { "\0\s[5]ベースウェアのネットワーク更新、開始しまーす。\e" } else { "\0\s[5]ネットワーク更新、開始しまーす。\e" } } //---- ネットワーク更新準備完了 --------------------------------------------------------- OnUpdateReady { GetSender = basewarenameex Getfiles = reference[0]+1 if GetSender == "NiseRingo" { "\0\s[0]更新ファイルの数は\w3\n%(reference[0])個。\e" } else { "\0\s[0]更新ファイルの数は\w3\n%Getfiles個。\e" } } //---- ネットワーク更新終了 ------------------------------------------------------------- OnUpdateComplete { if reference[0] == "none" { //---- 更新すべきファイルが無かった "\0\s[0]更新、なかったです。\e" } else { //---- 実際に更新が完了した "\1\s[10]\0\s[5]更新、おわりー。\e" } } //---- ネットワーク更新失敗 ------------------------------------------------------------- OnUpdateFailure { if reference[0] == "timeout" { //---- タイムアウトした "\0\s[8]タイムアウトです。" } elseif reference[0] == "md5 miss" { //---- MD5値が一致しなかった "\0\s[8]MD5値が違ってます。" } else { //---- 上記以外の理由で失敗した "\0\s[8]%(reference[0])、だって。" } -- "\n\nネットワーク更新、失敗。\e" } //---- ネットワーク更新 ダウンロード開始 ------------------------------------------------ OnUpdate.OnDownloadBegin { "\0\s[0]\n\_q%(reference[0])\_q\nのダウンロード開始。\e" } //---- ネットワーク更新 MD5値照合開始 --------------------------------------------------- OnUpdate.OnMD5CompareBegin { "\0\s[6]MD5値のチェックを開始します。\e" } //---- ネットワーク更新 MD5値一致 ------------------------------------------------------- OnUpdate.OnMD5CompareComplete { "\0\s[5]オッケー。\e" } //**** ヘッドラインセンス *************************************************************** //---- ヘッドラインセンス開始 ----------------------------------------------------------- OnHeadlinesenseBegin { "\1\s[10]\0\s[0]%(reference[0])ヘッドラインを取得します。\e" } //---- ヘッドライン読み上げ ------------------------------------------------------------- OnHeadlinesense.OnFind { //---- はじめのセリフ if reference[2] == "First" || reference[2] == "First and Last" { //---- 最初のページ "\0\b2\s[0]%(reference[0])ヘッドライン第1ページ。" } elseif reference[2] == "Next" { //---- 真ん中あたりのページ "\0\b2\s[0]%(reference[0])ヘッドライン、続き。" } elseif reference[2] == "Last" { //---- 最後のページ "\0\b2\s[0]%(reference[0])ヘッドライン、これが最後のページです。" } -- //---- ヘッドライン本体 "\n\n%(reference[3])\n\n" -- //---- 選択肢 if reference[2] == "First" || reference[2] == "Next" { //---- 次のページがある場合 "\![*]\q[%(MENUITEM('次のページへ')),]\n/ \![*]\q[%(MENUITEM('行ってみる')),%(reference[1])]\n/ \![*]\q[%(MENUITEM('行かない')),ChoiceCancel]" } else { //---- 次のページがない場合 "\![*]\q[%(MENUITEM('行ってみる')),%(reference[1])]\n/ \![*]\q[%(MENUITEM('行かない')),ChoiceCancel]\e" } } //---- ヘッドライン更新が無かった ------------------------------------------------------- OnHeadlinesenseComplete { "\0\s[0]更新はないみたいです。\e" } //---- ヘッドラインセンス失敗 ----------------------------------------------------------- OnHeadlinesenseFailure { "\0\s[3]ヘッドラインセンスに失敗しました。\n\n" -- if reference[0] == "can't download" { "理由は\w5…\w5…\w5ダウンロードの失敗。" } elseif reference[0] == "can't analyze" { "理由は\w5…\w5…\w5ヘッドライン解析、失敗。" } else { "\s[4]理由は\w5…\w5…\w5よく分かんないです。" } -- "\e" } //**** ファイル作成関連 ***************************************************************** //---- updates2.dau作成開始 ------------------------------------------------------------- OnUpdatedataCreating { "\1\s[10]\0\s[0]アップデータファイル、作成中。\e" } //---- updates2.dau作成完了 ------------------------------------------------------------- OnUpdatedataCreated { "\0\s[5]できました。\e" } //---- NAR作成開始 ---------------------------------------------------------------------- OnNarCreating { "\1\s[10]\0\s[0]なー、作成中。\e" } //---- NAR作成完了 ---------------------------------------------------------------------- OnNarCreated { "\0\s[5]「%(reference[0])」の「なー」ファイル\n「%(reference[1])」、出来ました。\e" } //**** 時計合わせ ********************************************************************* //**** みか (http://homepage2.nifty.com/ko-ki/) の辞書を参考にしました。感謝>こーき氏 //---- 時計合わせ開始 ------------------------------------------------------------------ OnSNTPBegin { "\1\s[10]\0\s[0]時計あわせを開始します。\n\n%(reference[0])\n\nに接続します。\e" } //---- 時刻取得成功、比較開始 ---------------------------------------------------------- OnSNTPCompare { SSNTP = reference[1] LSNTP = reference[2] "\0\s[0]\_q現在時刻 :%LSNTP[1]月%LSNTP[2]日%LSNTP[3]時%LSNTP[4]分%LSNTP[5]秒。\_q\n/ \_qSNTPServer:%SSNTP[1]月%SSNTP[2]日%SSNTP[3]時%SSNTP[4]分%SSNTP[5]秒。\_q\n\n" -- if reference[3] == 0 { "\s[5]ぴったり。\w9\w9\nこのままにしておきます。" } else { "%(reference[3])秒ずれています。\6\w2\n\s[5]直しておきました。" } } //---- 時計合わせ実行 ------------------------------------------------------------------ OnSNTPEXECUTE { "\0\s[0]時刻を合わせました。\6\e" } //---- 時計合わせ中止 ------------------------------------------------------------------ OnSNTPCANCEL { "\0\s[0]中止。\e" } //---- 時計合わせ失敗 ------------------------------------------------------------------ OnSNTPFailure { "\0\s[0]時計あわせ失敗。\e" } //**** そのほか ************************************************************************* //---- 壁紙変更 ----------------------------------------------------------- OnFileDrop2 { Filename = reference[0] _file = TOLOWER(Filename) //壁紙変更 if ".png" _in_ _file || ".jpg" _in_ _file || ".jpeg" _in_ _file ||".bmp" _in_ _file { "/ \0\s[5]壁紙に、する?\n\n[half]/ \![*]\q[%(MENUITEM('真ん中に')),ChoiceWallchange0]\n/ \![*]\q[%(MENUITEM('並べて')),ChoiceWallchange1]\n/ \![*]\q[%(MENUITEM('拡大する')),ChoiceWallchange2]\n/ \![*]\q[%(MENUITEM('やっぱりやめた')),ChoiceCancel]\e" } //音楽再生 elseif ".mid" _in_ _file || ".mp3" _in_ _file || ".wav" _in_ _file || ".wma" _in_ _file || ".au" _in_ _file || ".ogg" _in_ _file { FUNCTIONEX("saori/mciaudior.dll","stop") FUNCTIONEX("saori/mciaudior.dll", "load", "%Filename") "\0\s[25]\![raise,OnPlayMusic]音楽ファイル、再生中。\w5\n止めたいときは、%keronameの頭を\nダブルクリックして下さい。\n\n\w9\w9\1\s[11]なぜ、あたしの頭なんだ!\w9\w9\0\s[5]いいじゃないですか。\e" } } ChoiceWallchange0 { _i = FUNCTIONEX("saori/proxy.dll", "set_wall_paper.exe", "%(CHR(34))%(Filename)%(CHR(34))", "0") "\0\s[5]壁紙に、しました。\e" } ChoiceWallchange1 { _i = FUNCTIONEX("saori/proxy.dll", "set_wall_paper.exe", "%(CHR(34))%(Filename)%(CHR(34))", "1") "\0\s[5]壁紙に、しました。\e" } ChoiceWallchange2 { _i = FUNCTIONEX("saori/proxy.dll", "set_wall_paper.exe", "%(CHR(34))%(Filename)%(CHR(34))", "2") "\0\s[5]壁紙に、しました。\e" } //---mciaudior.dll呼び出し、開放------------ OnPlayMusic { FUNCTIONEX("saori/mciaudior.dll", "play") } OnStopMusic { FUNCTIONEX("saori/mciaudior.dll", "stop") } //---- URLドロップ ----------------------------------------------------------- //---- CROW でゴーストインストーラからゴーストをインストールを始めた時にも呼ばれます。 OnURLDropping { "\1\s[10]\0\s[0]\_q%(reference[0])から、ダウンロードしてます。\_q\e" } OnURLDropped { "\0\s[5]ダウンロード、できました。\e" } OnURLDropFailure { if reference[1] == "timeout" { //---- タイムアウトした "\0\s[8]タイムアウトです。\e" } elseif reference[1] == "artificial" { //---- ユーザー自身で中止 "\0\s[0]中止ー。\e" } else { //---- 上記以外の理由で失敗した "\0\s[8]失敗。\e" } } //---- ネットワークが重い ----------------------------------------------------- OnNetworkHeavy { "\0\s[8]重くて反応しない\w5…\w5…\w5\e" } //---- ディスプレイ解像度変更 ----------------------------------------------------------- OnDisplayChange { //---- 変数にディスプレイ解像度と色深度に関する情報を取得 //---- 使うかどうかは分からないがとりあえず保持しておく displaybpp = reference[0] displaywidth = reference[1] displayheight = reference[2] } //**** RSS関連 ***************************************************************** OnRSSBegin { "" } OnRSSComplete { "" -- "\_q\n\n[half]" -- _script = '' for _i = 2 ; 1 ; _i++ { _vname = "reference%(_i)" if ! ISVAR(_vname) { break } _kv = EVAL(_vname) _kv[0] = REPLACE(_kv[0],'[','[') _kv[0] = REPLACE(_kv[0],']',']') _kv[0] = REPLACE(_kv[0],',',',') _script += "\q[%(_kv[0]),%(_kv[1])]\n" } _script -- "\n[half]\_q" -- "\q[サイトへ,%(reference[1])]\n/ \q[やめ,Choice_HEADLINECANCEL]\e" } OnRSSFailure { "" } /********************************************************* * ゴーストプロパティを返す *********************************************************/ #define PROPERTY_CHARACTER_NAME "所長たん,ばぐたん" ///////////////////// // プロパティ要求対応 ///////////////////// OnRequestValues { _cname = PROPERTY_CHARACTER_NAME _n = ARRAYSIZE(reference) _return_script = '' for _i = 1 ; _i < _n ; _i++ { _result = EVAL('プロパティ' + reference[_i]) if STRLEN(_result) { _return_script += ',"' _return_script += reference[_i] _return_script += '=' _return_script += _result _return_script += '"' } } if STRLEN(_return_script) { "\C\![raiseother,%(reference[0]),OnGetValues,%(_cname[0,','])%(_return_script)]" } } OnRequestProperty { _cname = PROPERTY_CHARACTER_NAME if TOINT(reference[1]) < 0 { //負の場合はキャラ数を返すでっちあげ仕様 reference[1] = '' } _text = EVAL('プロパティ' + reference[1] + reference[2]) if STRLEN(_text) { "\C\![raiseother,%(reference[0]),OnGetProperty,%(_cname[0,',']),%(reference[1]),%(reference[2]),%(_text)]" } } プロパティNOC { 2 } プロパティNOB { 2 } //プロパティ0 プロパティ0name { プロパティ0キャラクター名 } プロパティ0キャラクター名 { PROPERTY_CHARACTER_NAME[0,','] } プロパティ0年齢層 { プロパティ0世代 } プロパティ0世代 { // 【入力】\hの年齢層・世代 (子供|若者|大人|老人|不明) '若者' } プロパティ0性別 { // 【入力】\hの性別 (男性|女性|雌雄同体|不明) '男性' } プロパティ0種族 { // 【入力】\hの種族 '天使' } プロパティ0種族タイプ { // 【入力】\hの種族タイプ (人型|獣型|植物型|不定形型|無機物型) '人型' } プロパティ0プロフィール { // 【入力】\hのプロフィール文章 '「所長たん」\nばぐとら事務所/研究所の所長。\nゴースト達の面倒を見る立場。\nよくバグる。\nちょっと変。' } プロパティ0カード画像パス { '..\..\..\ponapalt\shell\master\surface0.png' } //CyberSphere //とりあえず基本的にLIFE以外を足して60前後になるように調整すると「ふつう」になる //所長たんは「忠実に」以前リリースした偽カードに従っています。バランスなどさっぱり考えていませんので注意 プロパティ0行動タイプ { // 【入力】\hの行動タイプ(属性?) (物理攻撃|精神攻撃) '精神攻撃' } プロパティ0LIFE { // 【入力】\hの体力。即値(int)。 2 } プロパティ0STR { // 【入力】\hの腕力。物理攻撃力。即値(int)。 5 } プロパティ0DEX { // 【入力】\hの器用さ。物理攻撃命中率。即値(int)。 7 } プロパティ0AGL { // 【入力】\hの敏捷さ。物理攻撃回避率。即値(int)。 7 } プロパティ0MIN { // 【入力】\hの精神力。精神攻撃力。即値(int)。 18 } プロパティ0INT { // 【入力】\hの知力。精神攻撃命中率。即値(int)。 10 } プロパティ0SEN { // 【入力】\hの感性。精神攻撃回避率。即値(int)。 10 } //プロパティ1 プロパティ1name { プロパティ1キャラクター名 } プロパティ1キャラクター名 { PROPERTY_CHARACTER_NAME[1,','] } プロパティ1年齢層 { プロパティ1世代 } プロパティ1世代 { // 【入力】\uの年齢層・世代 (子供|若者|大人|老人|不明) '大人' } プロパティ1性別 { // 【入力】\uの性別 (男性|女性|雌雄同体|不明) '女性' } プロパティ1種族 { // 【入力】\uの種族 '悪魔' } プロパティ1種族タイプ { // 【入力】\uの種族タイプ (人型|獣型|植物型|不定形型|無機物型) '人型' } プロパティ1プロフィール { // 【入力】\uのプロフィール文章 '「ばぐたん」\n悪魔。\nいたずら好き。\n昔はともかく、今じゃ所長たんと腐れ縁。' } プロパティ1カード画像パス { '..\..\..\ponapalt\shell\master\surface10.png' } //CyberSphere //とりあえず基本的にLIFE以外を足して60前後になるように調整すると「ふつう」になる プロパティ1行動タイプ { // 【入力】\uの行動タイプ(属性?) (物理攻撃|精神攻撃) '精神攻撃' } プロパティ1LIFE { // 【入力】\uの体力。即値(int)。 9 } プロパティ1STR { // 【入力】\uの腕力。物理攻撃力。即値(int)。 7 } プロパティ1DEX { // 【入力】\uの器用さ。物理攻撃命中率。即値(int)。 12 } プロパティ1AGL { // 【入力】\uの敏捷さ。物理攻撃回避率。即値(int)。 13 } プロパティ1MIN { // 【入力】\uの精神力。精神攻撃力。即値(int)。 12 } プロパティ1INT { // 【入力】\uの知力。精神攻撃命中率。即値(int)。 10 } プロパティ1SEN { // 【入力】\uの感性。精神攻撃回避率。即値(int)。 9 }