これは何?
さくらスクリプトタグをカスタマイズできるDLLです。

・既存のタグの機能を変更できます。
・自分で新しいタグを作れます。

タグの機能は、さくらスクリプトへ単純に置換することもできるし、 SHIORIで処理することもできるし、SAORIを動作させることもできます。
ダウンロード
中断しています。


ファイル構成
sscは、以下の各ファイルから構成されています。
すべて、ゴーストの (ゴースト名)/ghost/master/ に配置してください。
ssc.dll  ssc 本体DLL (shiori)
ssc.txt  ssc 設定ファイル
ssc_e.exe  ssc 内部制御で使用するプログラム
ssc_m.dll  ssc トランスレータ (makoto)
SAORIのDLL  オプション。使う場合のみ、1つだけ配置可能
初期設定
1.ghost/master/descipt.txt を、以下のように書き換えます。
【書き換え前】
shiori,SHIORI.dll  ← ゴーストで使用しているSHIORIのファイル名

【書き換え後】
shiori,ssc.dll    ← shiori には、「ssc.dll」を指定します
aishiori,SHIORI.dll ← aishiori には、ゴーストで使用しているSHIORIを指定します
makoto,ssc_m.dll ← makoto には、「ssc_m.dll」を指定します
2.SAORIのDLLをsscに組み込む場合は、ssc.txt に、以下の一行を記述します。
saori,SAORI.dll   ← 組み込むSAORIのファイル名


既存のタグの動きを変更する方法
▼単純にタグをスクリプトに置き換える
例えば、「\e」する直前に、必ずゴーストを怒らせる(\s[7]タグを付加する)には、 ssc.txt に、以下の記述を追加します。
tag
{
name,\e
script,on,\0\w9\s[7]怒!\e
}
こうすることで、「\e」タグはすべて「\0\w9\s[7]怒!\e」に置き換わります。

▼タグの動作をSHIORIで記述する
AYA v5.8 or later を例にして説明します。

例えば、\0タグが出現した回数を数えるという機能を持たせたい場合、ssc.txt に、以下の記述を追加します。
tag
{
name,\0
shiori,on
event,OnAnzu
baseware,on
}
このように書くと、\0タグがベースウェアで再生されたときに、OnAnzu イベントが発生します。
あとは、ゴーストの辞書に、以下のように OnAnzu の動作を記述すればOKです。
OnAnzu
{
yen0_active++
}
なお、yen0_active は、OnFirstBoot / OnBoot で、0に初期化しておきましょう。
yen0_active = 0
--------

【注意】タグの動作をSHIORIで記述する場合、スクリプトを返すときは注意してください。例えば上記の例で、
OnAnzu
{
yen0_active++

yen0_active
}
とすると、OnAnzu は実行後の回数を返すことになります。これがすぐにベースウェアで再生されますから、もともと再生していたスクリプトは 中断されてしまいます。
従いまして、例えば
\0こんにちは。\e
というスクリプトを作成すると、\0を再生した瞬間に OnAnzu が実行されるので、決して「こんにちは。」はバルーンに表示されません。
1
のように、変数 yen0_active の値が表示されるだけになります。

※「このような記述は間違っている」と言っているのではなく、うまく使えば、どんどんトークをチェインすることができたりします。

▼タグによってSAORIを動作させる
SAORI.dll を組み込んでいるとして説明します。

例えば以下のように記述しますと、\s[n] タグが再生されるたびに、n が SAORI.DLL にリクエストされるようになります。
tag
{
name,\s[
saori,on
event,OnYenS
baseware,on
}
例えば \s[10] が再生されると、以下のリクエストが SAORI.dll に渡されます。
EXECUTE SAORI/1.0
Charset: Shift_JIS
Argument0: 10
仮に \s[ABCD,123,EF] などとしても正常に機能します。SAORI.dllには以下が渡されます。
EXECUTE SAORI/1.0
Charset: Shift_JIS
Argument0: ABCD
Argument1: 123
Argument2: EF
--------

【注意】SAORI の応答スクリプト(Result ヘッダの値)は捨てられ、まったく利用されません。したがって、状態値を取得するような SAORI を実行しても、意味がありません。


自分で新しいタグを作る方法
ほとんど、前項「既存のタグの動きを変更する方法」と同じです。

▼単純にタグをスクリプトに置き換える
例えば、「\素」というタグを、\s[0] と同等にしたいなら、ssc.txt に、以下の記述を追加します。
tag
{
name,\素
script,on,\s[0]
}

▼タグの動作をSHIORIで記述する
既存のタグを変更するのと同じ方法でOKですが、ただ、baseware,on は省いてください。

例えば、以下のように記述すると、\FOO? タグ(?は0〜9)が定義され、スクリプトが再生されると、OnFoo イベントが発生します。
Reference0 に、?が入ります。
tag
{
name,\Foo?
shiori,on
event,OnFoo
}
OnFoo がスクリプトを返すと、現在再生中のスクリプトの再生が中断されるのは、既存のタグを変更したときと同じです。

▼タグによってSAORIを動作させる
ゴースト使用率グラフを表示できる SAORI「花柚 QuickHack」(hanayu.dll、りゅう氏原作、C.Ponapalt氏 サルベージ)を
組み込んでいるとして説明します。

例えば以下のように記述しますと、\Hanayu[show] タグが再生されたとき、 ゴースト使用率グラフが表示されるようになります。
tag
{
name,\Hanayu[
saori,on
event,OnHanayu
}
SAORI の応答スクリプトが捨てられるのは、、既存のタグを変更したときと同じです。


サンプルゴースト「紺野あんず」
サンプルゴースト「紺野あんず」を、拙サイトにて公開しています。
インストール後に、ghost/master/ の各ファイルを参照して、参考にしてみてください。

以下の内容で組み込んでいます。

・ランダムトークにおいて、\s[0] を \素 タグで記述しています。
・ブラッ9(真四角のキャラクタ)をダブルクリックすると、CDトレイが開閉します。
 トレイの開閉は、SAORI で行っています。
・すべてのトークが、怒りサーフィス(\s[7])で終了するようになっています。
・終了時に、実際に再生された \0 と \1 の回数がトークされます。


履歴
2022/1/7
こんな婉曲的な構造にしなくても、単にSHIORIかMAKOTOで文字列置換すればいいだけでは? という意見に反論できなかったため凍結。
2022/1/6 Version 1.0
初版。
作者・連絡先
今成震(sin imanari)

Web1 : http://umeici.onjn.jp/
Web2 : http://shime.onjn.jp/
E-Mail : sin@onjn.jp
Twitter : @vivrabNi


ssc - さくらスクリプトタグコントローラ