SAORIについて。
簡単にいうとゴーストに機能を追加するプラグイン。dllやexe形式で提供されます。
難しく言うとSHIORIから利用するプラグイン。見た目は関数っぽい何か。
さおりちゃんと遊ぼう、さおこれ、さおりんなど外部サイトも参照。
wiki内関連ページ:SAORI/YAYA、SAORI/YAYA/統合関数一覧
登録名,saori/SAORI本体のファイル名
(登録名[,引数n…])
登録名には好きな名前を付けられます。
特に決まりはなく、そのSAORIの名前をそのまま使ったり、短縮したものなど、自分が把握しやすいものがいいでしょう。
呼び出す方法は、関数のそれと全く同じです。
引数が必要ないSAORIなら、(登録名)だけでOK。
MIYさんのmciaudio.dllを組み込む例。
mciaudio,saori/mciaudio.dll
(mciaudio,load,鳥の詩.mp3)(mciaudio,play)
曲読み込み,saori/mciaudio.dll,load 演奏,saori/mciaudio.dll,play上のように宣言した場合は下記のように呼び出しできるようになります。
(曲読み込み,鳥の詩.mp3)(演奏)
配布されているさおり同梱の説明は里々以外の栞に向けて書かれている事が多いので、ちょっと補足。
(登録名,Argument0,Argument1,…)
関数はもちろん、SAORIの呼び出しも例外なく、そのトークが呼ばれた時点で実行されます。
なので、トークを再生中のあるタイミングでSAORIを実行させたい場合、文中にただ書いただけではダメ。
これを実現するには二つの方法があります。
どちらも@SAORIに
fill_desktop,saori/fill_desktop.dll
fill_red,saori/fill_desktop.dll,255,0,0
が設定されているとします。
:3・2・1・(sync,fill_red)はい!\w9\w9 (sync,fill_desktop)びっくりした?\w9\w9
* :3・2・1・\![raise,塗りつぶし]はい!\w9\w9 \![raise,塗りつぶし解除]びっくりした?\w9\w9 *塗りつぶし (fill_red) *塗りつぶし解除 (fill_desktop)
これで想定したタイミングで発生します。
戻り値は捨てられます。挿入されたりはしません。
ウィンドウハンドルの通知時に *hwnd が呼ばれます。
ここで変数に保存するか、SAORIに直接渡しましょう。
(R0)には本体ウィンドウ、(R1)にはバルーンウィンドウのハンドルが入ります。
それぞれ、\0,\1,\2...(\2以降はCROW/SSP限定)のハンドルがバイト値1で区切られたもの。
これをsplitで分割して、目的のウィンドウハンドルを得る事になります。
例
*hwnd (split,(R0),(sprintf,%c,1)) $本体ハンドル0=(S0) $本体ハンドル1=(S1) (split,(R1),(sprintf,%c,1)) $バルーンハンドル0=(S0) $バルーンハンドル1=(S1) #\0・\1の本体・バルーンのハンドルを変数に保存する。~ #この変数をハンドルを必要とするさおり呼び出しに使用する。~ #(S2)以降を参照することで\2以降のハンドルも取得できるが、~ #ウィンドウが初期化されていない場合無効なハンドルが~ #渡されてくるかもしれない。(未検証)~
例えばこう記述して「1+1+1」内の「+」を消そうとすると
(erase、1+1+1、+)
「1+1+1」がerase処理前に計算され、「111」ではなく「3」という結果が出てしまう。
計算されなくても全角数字にが勝手に半角になってしまい困る場合もある。
これを防ぐには、特殊変数の$SAORI引数の計算を使おう。
$SAORI引数の計算【タブ】無効
ただし、これを無効にしたままだと他のSAORIが正常に動かなくなる可能性があるので、用が済んだら「$SAORI引数の計算【タブ】自動」に戻すようにしよう。
$SAORI引数の計算【タブ】有効 計算する。 $SAORI引数の計算【タブ】無効 計算しない。 $SAORI引数の計算【タブ】自動 各引数の先頭文字が数値または+、-記号のいずれかであれば計算する。 何も指定しなければこれ。今までと同じ動作。
栞(SHIORI)の中には、SAORIとしても使えるようになっているものもあります。
特に文/YAYAや華和梨を使ってその関数を借りれば、里々の簡単さを損なわないままに、できる事を大幅に拡張する事ができます。
AKARI as SAORI
YAYA as SAORI と同じノリで作られています。
マウスカーソルを自在に操る等、YAYAとは明らかに違う灯独自の関数を堪能できて楽しいと思います。
最新版の華和梨8.2.5をSAORIとして使う方法。
YAYAほどメジャーではなく、基本的にKIS*1をそのまま利用するか、処理を自分で組む必要があります。華和梨利用者向け。
YAYAと比べた場合、ファイル操作などの面で劣るものの、変数処理機能の扱いやすさで優位かも?
詳細は華和梨ユーザーズマニュアルを参照。
shiori.dll | 華和梨本体。 |
kawarirc.kis | 華和梨の初期辞書。本体と同じフォルダに置くこと。 |
System.Callback.OnSaoriExecute | saoriとして呼び出された時に評価される。 |
System.Request.Argument0 | 引数が格納されている(末尾数値で1,2,3...と対応)。 |
System.Response.Result | 返したい結果及びスクリプトをセットするエントリ。 |
System.Response.Value0 | 追加情報をセットするエントリ(末尾数値で1,2,3...と対応)。 里々側は(S○)で受け取る。 |
System.Response | ステータスコードをセットするエントリ。 |
System.Callback.OnSaoriExecute : $( entry ${System.Request.Argument0}; setstr System.Response.Result ${返したい結果及びスクリプト}; setstr System.Response ${ステータスコード}; )
この例では第一引数のイベントを呼び出す。
返すべきステータスコードは200(正常+戻り値あり)、204(正常+戻り値なし)、400(おかしい)から選ぶ。上記ユーザーズマニュアル参照。
=kis # 里々の辞書リロードとかで何度も読み込まれたケースを想定して clear System.Callback.OnSaoriExecute; cleartree KaS; =end System.Callback.OnSaoriExecute : $( entry KaS.${System.Request.Argument0}; ) KaS.元旦からの通算日 : $( setstr System.Response.Result $(date %J); setstr System.Response 200; )
@SAORI kawari,saori/shiori.dll
(kawari,元旦からの通算日)
華和梨のSAORI用サブセットを組むのは、他のSHIORIに比べれば楽なほう。
要は引数にそのままKIS名ごと渡す方法なら記述も少なく楽。
が、それはそれで設計安全上の問題があるのと、KISの活用にも華和梨に精通している必要があるので、やっぱり華和梨ユーザ向け。
里々自体もさおりとして使うことができます。
里々をさおりとして使用する際には特別必要なものはありません。
satoriで登録したならば、(satori,起動)のようにして使えます。この時、引数の間にスペースが入ってはいけません。
最初から使える関数以外の定義(例えば上記の"起動")は自分で里々形式のスクリプトを書き、さおりと同じフォルダに配置しなければなりません。
忍をさおりとして使用する際には特別必要なものはありません。
shinoで登録したならば、(shino, get, OnBoot?)のようにgetというコマンドを使います。
OnBoot?等の定義は自分で忍形式のスクリプトを書き、さおりと同じフォルダに配置しなければなりませんが、サンプルとなるゴーストが既にダウンロードできない状態のようですので利用は難しいと思います。
里珠をさおりとして使うためには、別途さおりとして扱うためのスクリプトが必要ですが、現在のところ公開されているものはないようです。