Download List

Project Description

OpenKEEPS はデスクトップアクセサリ「伺か」とその互換アプリケーションに対応した準AIモジュール"華和梨"のミドルウェアです。

System Requirements

System requirement is not defined

Released at 2003-07-31 00:32
OpenKEEPS 2.2.5 (1 files Hide)

Release Notes

---------------------------------------------------------------
【 データ名 】 OpenKEEPS
【 バージョン 】 2.2.5 (2003.07.31)
【データ作成者】 OpenKEEPSプロジェクト
【 圧縮形式 】 ZIP
---------------------------------------------------------------

  "OpenKEEPS" はデスクトップアクセサリ『伺か』及びその互換
  アプリケーションに対応したプログラマブル準AIモジュール
  『華和梨8』用のミドルウェア(スクリプトセット)です。
  華和梨の本体イベント等挙動に関する煩多な処理を担当しています。
  ゴーストベンダーはシェルを用意し、スクリプト辞書を書き換える
  ことで用意にゴーストを作成できるようになります。

  ご意見ご感想などは下記URLまでお願いします。

                     OpenKEEPSプロジェクト
               URL: http://keeps.sourceforge.jp/
---------------------------------------------------------------
ファイル名を【openkeeps225.zip】としてダウンロードして下さい

Changelog

2003/07/31 Ver.2.2.5
* dict-keeps.kisのバグfix
- 組み込みKISのピリオドによるエスケープ忘れ修正
- StringNormalizeが一部の2バイト文字をエスケープしていないバグ修正
- ゴースト起動時間/OS起動時間表示の判定が、仕様と異なっていたバグ修正
- OnFileDrop2で「ファイル」の判定が不完全だった問題を修正
* shiori-essential.kisのバグfix
- ゴーストをさおり化した時、Referenceヘッダを返せなかった問題を修正

2003/06/16 Ver.2.2.4
* マルチキャラクタを使用した際、撫で反応リミッタが常にキャラクタモード無し
のリミッタを使ってしまう問題を修正。確実を帰すため、今後はキャラクタモード
切り替えを必ずchFlagModeで行うことを推奨。
* 上記に関連して、起動時のタイマ初期化関数のSetTimeを、実態に合わせInitCondに
改称。
* CROWの本体オンラインアップデート機能に対応。対応するエントリは以下の通り。
・SystemupdateBegin …本体オンラインアップデート開始
・SystemupdateReady …本体オンラインアップデート準備完了
・SystemupdateNoupdate …本体オンラインアップデート完了(更新無し)
・SystemupdateCompleted …本体オンラインアップデート完了(更新有り)
・SystemupdateFailed.* …本体オンラインアップデート失敗(*は失敗理由)
MD5照合等は、ゴースト側のオンラインアップデートのトークを共用する。
* \-タグによる終了を異常終了と誤認する問題を修正

2003/05/18 Ver.2.2.3
* SSPでトーク間隔を約30秒以上にした場合、OnSurfaceRestoreの処理と干渉して
発話しなくなっていた問題を修正。
内部的には、OnSurfaceRestoreでタグのみ出力した場合、トークカウントを
リセットしないことで対応。また、Talkコマンドを呼んだ場合でも、実際の発話が
無かった場合トークカウントをリセットしないことにした。
* コミュニケート機能で、該当ゴースト無しの時のトークを呼ばなくなっていた
バグを修正
* トークカウントのリセットを、常にコマンドを介して行うよう変更。
* トークカウントをダウンカウンタに変更。これで不規則な発話周期が可能に。
* SSPのゴーストキャッシュに対応していなかった問題を修正

2003/05/01 Ver.2.2.2
* \![change,ghost]タグによるゴースト切替に、不正終了検出ルーチンが対応して
いないバグを修正

2003/04/14 Ver.2.2.1
* OnKeyPressの応答がおかしかった問題を修正。

2003/04/01 Ver.2.2
* 通算起動時間を記録するエントリ名のスペルミス修正。影響は無いと思われる。
* ゴーストをさおりとして起動する際のバグ修正。
* OnFileDrop2に対応。TalkFileDrop.<正規化した拡張子>エントリに拡張子に
対応したトークを処理する。複数のファイルがDnDされた場合、TalkFileDrop
エントリを読む。kp.FileDrop.NoSingleエントリに何か定義しておくと、
単独のファイルがDnDされた場合もTalkFileDropエントリだけを読む。
DnDされたファイル名はDroppedFilesエントリに格納されている。複数のファイル
がDnDされた場合も同じ。

2003/03/03 Ver.2.1.2
* OpenKEEPS内部エントリの保護強化。起動後変更不要なものはwriteprotectする。
これはセキュリティ対策の他、ゴースト側の不用意な設定による誤動作防止が目的。
* トーク発話の際、検索対象エントリ一覧を記憶しているエントリの保護。同時に、
OpenKEEPS側コールバックエントリの保護。
* 前回に異常終了だったかの判定を、辞書読み込み完了時に行うよう変更
* メニュー構築支援機能として、メニューグループの概念を導入。
kp.MenuGroupエントリにメニューグループ名(総合、トーク頻度、キャラクタ等)を
設定すると、OnChoiceSelectでReference0の前にピリオドを挟んでメニューグループ
名を挿入。同一選択肢IDを返しても、メニューグループがあれば区別できる。
OnChoiceSelectが呼ばれた時点で、kp.MenuGroupの内容は自動的に消える。
メニューグループを使わないなら、従来のままでよい。
* メニューグループ概念と関連して、OnChoiceTimeoutでも、メニューグループが
設定あれば、TalkTimeout.<メニューグループ名>を先に検索する。
これに応答文がなければ、TalkTimeoutを検索する。
従って、特に設定しなければ従来互換の動作をする。
* メニューグループ設定用にsetMenuGroupコマンド追加。第1引数にメニューグループ
名を書くと、kp.MenuGroupに設定される。引数省略時はkp.MenuGroupをクリアする。
* OpenKEEPS側コールバック追加。OpenKEEPSのセーブファイル保存時に呼ばれる
kp.callback.OnSave、ネットワーク更新成功時の再起動直前に呼ばれる
kp.callback.OnBackup、ネットワーク更新完了(更新有)時の再起動後に呼ばれる
kp.callback.OnUpdateCompleteの3つを追加。
最初の2つは、暗号化等の理由でOpenKEEPSとは別のセーブファイルを作りたいが、
セーブの管理はOpenKEEPSに任せたい場合に使う。最後の1つは、アップデート成功
でも再起動がかかるのに、起動系コールバックが無かったので追加した。
* セーブ系コールバックの新設に伴い、辞書読み込み完了後、datasaveparamエントリ、
databackupparamエントリに追加できないよう変更。セーブファイルへ故意に
System.callback.*系の重要なエントリを改変記録させ、次回起動時にゴーストや
システムを壊す攻撃が想定される為。
* OpenKEEPS内部で使用している一時エントリではないエントリ(カウンタ等)を、
極力評価せずに参照するように変更。これも同じく攻撃対策。
* 上記実現の為、GetString、GetIntegerコマンド新設。getと似ているが、
GetStringは置換ブロックを殺してから評価、GetIntegerは整数として評価する。
主にマウス系イベントで使用。
* OpenKEEPS内部では、組み込みKISと同名のユーザ定義関数があっても、必ず
組み込みKISを使うよう変更。これも同じく攻撃対策。
* SSPのNOTIFY installedshellname/installedballoonnameに対応。それぞれ
System.InstalledShell/System.InstalledBalloonにシェル名/バルーン名が
列挙され、Execute.Installedshellname/Execute.Installedballoonnameが
コールバックされる。
* ログ出力コマンドLogMsgコマンド新設。時刻やイベント名を自動的に付加して
ログファイルに出力するので、デバッグの際に使用できる。
* SecurityLevel設定がhighより弱い場合、Requestヘッダ中の「$」を「_」に置換
* OnBIFFCompleteイベントでオリジン補正廃止
* dict-keeps-url.kisを実態に即してghost-keeps-url.kisへ名前変更

2003/01/26 Ver.2.1.1
* セキュリティ対策。Referenceコマンドをサービス関数から標準変数へ変更し、
同時にセキュアなReference参照コマンドSReference、Referenceを整数のみ通す
IntReference、非負整数のみ通すNonNegReference、エントリ名に使える文字のみ
通すEntNamReference、Referenceを正規化して返すNormReferenceを追加。
危険タグを潰すKillDengerousTagコマンド追加。基幹エントリ構造を保護する
ProtectEntryStructure追加。今後、Reference結果をバルーンに出す場合、最低でも
SReferenceを使って参照することが望ましい。(dict/ghost-keeps,shiori-essential)
* 上記に伴ない、dict/ghost-keeps-*.kisファイルのReference参照箇所を、適切な
安全レベルのReference系コマンドを使ったものに変更。
* 上記に伴ない、「だぶるている」のメッセージは$(debugger on)の時のみ受け取る
ように変更。(dict-keeps)
* 上記に伴ない、外部SSTPと思われるメッセージを置換する際は、危険タグを潰すよう
変更。(dict-keeps-translate)
* 上記に関連して、外部SSTPではなくトークを内部生成した場合、
kp.internaltalkflagをセットし、OnTranslateイベントで内部・外部の区別を
出来るようにした。ただし、リソース要求は外部と同じ扱いとする。実質的に
困らない筈である。(dict-keeps/keypress/comm/translate)
* キャプションボタン用エントリ名が一部間違っていた点を修正(dict-keeps)
* KeyFilter関数が特殊記号を理解しなくなっていた問題を修正(dict-keeps-keypress)
* インストール開始用トークのエントリ名が間違っていたので修正(ghost-keeps)
* 毎分ごとのベースウェア取得に失敗していた問題を修正(dict-keeps)

2003/01/03 Ver.2.1.0
* キャラクタモードの変更で従来通りの切替式加え、派生式を追加。
派生式を選択した場合、現在のキャラクタモードに存在しないトークエントリは、
<FlagMode>.InheritFromエントリの内容を派生元のキャラクタモードと考え、
再帰的に検索する。FlagModeのないエントリにまで辿り着くと、検索を終了する。
<FlagMode>.InheritFromの内容が「__self__」の場合、そこで検索を終了する。
$(OverrideOn)で派生式に、$(OverrideOff)で従来通りの切替式になる。
内部的にはEntryName、Del1stPeriod新設、EntryRefer、Talk、MakeList変更。
(dict-keeps)
* 自己クラッシュ検出機能を追加。
自分が異常終了すると、次の起動時にTalkCrashedのトークを読む。
ただし、OnVanishedでの起動は例外とする。
内部的にはBoottimeSearchをBootCondSearchに変更、ClearTimeでセーブするよう変更、
closemodeに関係するイベントを修正、関連コマンドの実行順番を入れ替え、
対称性の為にClosetimeSearchをCloseCondSearchに変更。
(dict-keeps)
* OnMinuteChangeにHourZone挿入、常にtimezoneエントリに時刻を表すキーワードが
入っている。(dict-keeps)
* 発言予約システムが基底キャラクタモード以外で動かなかった問題を修正。
内部的にはTalkEventコマンド、EntryReferコマンド変更。
(dict-keeps)
* OnFirstBoot時のコールバックエントリがkp.OnFirstBootになっていた問題を修正
正しくはkp.callback.OnFirstBoot。(dict-keeps)
* TalkSearchコマンド新設。頻出するEntrySearchの検索結果を話す動作をコマンド化。
これに伴い、kpで始まる検索エントリ名をイベント名準拠に変更。(dict-keeps)
* コミュニケート対応。コミュニケート支援ライブラリ「豊水」を改変して採用。
キャラクタモードを意識したコミュニケートを記述出来る。(dict/ghost-keeps-com)
* OnKeyPress処理をコミュニケート処理と共通したアルゴリズムに変更
(dict-keeps-keypress)
* MATERIAでOnVanishedのReference0が通知されないバグに対応。
vanishログ中で最も日付が新しいゴーストをbeforeghostエントリで提示。
(dict-keeps)
* メールチェック、ネットワーク更新のベースウェアによるオリジンの違いを吸収。
ネットワーク更新では、
・UpdateFileTotal…更新ファイル総数
・UpdateFileNo…現在のファイルが更新何番目か
メールチェックでは、
・NewMail…新着メール数
のエントリでオリジンの違いを吸収した値を提示。
(dict-keeps)
* kp.BaseWareエントリに起動中の本体ソフト名を格納。
起動時のSenderヘッダから判断し、以後毎分Senderヘッダを取得。
(dict-keeps)