情報取得変数。
ここではカッコで取得できる変数を指します。内容は、里々やベースウェアが提供してくれる情報など。
里々が自動で生成している変数なので、特に使用条件を必要としません。
ただし、特殊変数同様、リストにある名前を変数名に使ってはだめ。




時間関連・起動回数の検出

現在○

(現在年)
(現在月)
(現在日)
(現在曜日)
(現在時)
(現在分)
(現在秒)

現在の年月日と時間、それぞれ全角の数字列を返します。
曜日だけは「日」「月」「火」……となります。

起動回数

(起動回数)

ゴーストを起動した回数を返します。
この変数はsatori_savedata.txtに自動で保存されており、同ファイルを削除や上書きなどするとクリアされます。
辞書が読み込まれる時にカウントされる*1ので、(起動回数)に応じたイベントを仕込む際には注意。

起動○ / 累計○

(起動時)
(起動分)
(起動秒)
(累計時)
(累計分)
(累計秒)

ゴーストの起動していた時間を返します。
(起動○)は今回の起動時間、(累計○)は今回までの合計起動時間
時・分・秒は非換算です(1時間20分55秒ならそれぞれ1、20、55)。秒単位、または分単位で換算した値が欲しいときは後述の(単純〜)を使用して下さい。
後者はsatori_savedata.txtにゴースト起動時間累計ミリ秒として保存されており、同ファイルを削除や上書きなどするとクリアされます。

  • *
    :ユーザさんとは今までに(累計時)時間(累計分)分(累計秒)秒会ってるよ。

OS起動○

(OS起動時)
(OS起動分)
(OS起動秒)

OSを起動してからの経過時間。おおよそマシンの連続起動時間と捉えてOK。

偽林檎ではOS関連の時間が取得できません。
偽林檎では(OS起動時)、(OS起動分)、(OS起動秒)、(単純OS起動秒)、(単純OS起動分)はいずれも常に0(ゼロ)です。

単純○

(単純累計秒)
(単純起動秒)
(単純OS起動秒)
(単純累計分)
(単純起動分)
(単純OS起動分)

前記の(起動○)(累計○)(OS起動○)を指定単位で換算した数値にして出力します。

  • 例/起動後2分15秒経過した時、起動秒と単純起動秒は以下のようになります
    • (起動秒) → 15が返る
    • (単純起動秒) → 135が返る

最終トークからの経過秒

(最終トークからの経過秒)

最後のトークから経過した秒を返します。

ゴースト起動時間累計ミリ秒

(ゴースト起動時間累計ミリ秒)

累計○のミリ秒を返します。
この変数はsatori_savedata.txtに自動的に保存・計測されます。つまりこれを消すと累計○で取得できる起動時間もリセットされます。

サーフェス関連

サーフェス○

現在のサーフェスのID番号を取得します。
○はスコープID番号、¥0側は0、¥1側は1になります。

(サーフェス0)
(サーフェス1)

前のトークが怒ってる状態で終わったあと、次のトークの種類を変えてみる、とか。

前回終了時サーフェス○

前回終了時のサーフェスのID番号を取得します。
○はスコープID番号、¥0側は0、¥1側は1になります。

(前回終了時サーフェス0)
(前回終了時サーフェス1)

辞書内の検出

文「○○」の存在 / 単語群「○○」の存在 / 変数「○○」の存在

(文「○○」の存在)
(単語群「○○」の存在)
(変数「○○」の存在)

それぞれ、あれば1、なければ0が返ってくる。
フラグや教えてもらったもの等で分岐したい時などに。

*【タブ】(変数「好きなもの」の存在)==0
:ねえ、(ユーザ)って好きなものある?

文「○○」の数 / 単語群「○○」の数

(文「○○」の数)
(単語群「○○」の数)

里々Mc129-1以降で使用可。
現在読み込まれている辞書内の文の数、単語の要素数を取得。
存在しない場合0を返す。

「単語の追加」で単語を追加すると数がおかしくなる。
里々Mc135-1で修正されました。

システム情報

SHIORI関連のヘッダ情報。

  • (R○)(Sender)(Status)(Charset)などのSHIORI関連のヘッダはイベント毎に送られてきます。
  • 一部SSP専用のものがあるので注意。
  • この項にある一部の変数は(変数「○○」の存在)の検出では中身に関わらず反応しません。常に0になります。該当するのはSender、Status、Charset、Referenceなどです(R○は反応します)。
  • OnSatoriBoot、OnSatoriLoadなどの里々の独自イベントには付加されていないため使用できません(通常イベントを介して呼び出される独自イベントは使用できます/つつかれ、ころころ等)。

里々のバージョン

(里々のバージョン)

文字通り里々のバージョンが返ってきます。
うちのゴーストの里々って最新版だっけ?という時にどうぞ。

本体の所在

Mc142-1以降で使用可。

(本体の所在)

ベースウェアがインストールされているフォルダを取得できます。

Sender

(Sender)

ゴーストを起動しているプラットフォームなどのSenderヘッダが取得できます。
動作するベースウェアが限定される事をやる時の不具合回避対策等に便利。

ベースウェア名Senderヘッダ
MATERIA(伺か)embryo
SSPSSP
CROWcrow
DAEDAE
偽林檎NiseRingo
なーコミックスNAR COMIX
何かみたいな何かduet
ninix-ayaninix-aya
ninixninix

Senderはベースウェア本体とは限りません。
例えば、The Handなど特定のゴーストが自身の名前をSenderとしてイベントを送信する事があります。
参考:Don/特殊Shioriイベント一覧

これらの特殊なゴーストがベースウェアと同じイベントを発信する場合、

*0Bustなでられ【タブ】(compare,(Sender),The Hand)
:ギャアアアアア!!!!マドハンド!!!!

といった方法で個別に対応する事ができます。

Status

(Status)

SSP専用の付随情報。
そのイベントが送られてきた時点でのステータスコード(Statusヘッダ)を返します。
特に何もなければ空っぽ。
参考:SSP/仕様書/SHIORI Statusヘッダ

talking現在スクリプトを実行中(喋り中)。
喋り終わると(=さくらスクリプト\eが実行されると)解除される
passiveパッシブモードの最中。
\![enter,passivemode]が実行され、まだ\![leave,passivemode]が実行されていない
inductionインダクションモードの最中。
\![enter,inductionmode]が実行され、まだ\![leave,inductionmode]が実行されていない
timecritical\tタグが実行され、その影響下にある最中。
新たなイベントが起きる(選択肢を選ぶなど)か、選択肢の無い状態で喋り終わると解除
onlineオンライン中。
ヘッドライン取得中や時刻あわせ中、自分自身のネットワーク更新中など
choosing\q、\__qタグによる選択肢表示中。
里々では「_」が\qタグに変換されるのでこれも含む
minimizing最小化中(タスクトレイアイコン化中)
balloon(ID=n/ID=n...)IDのスコープでn番のバルーンを表示中。
(0=0)なら本体側のみバルーンの0番表示中

例えば、 talkingは現在スクリプトを実行中(喋り中)である事を示します。
これを利用して、特定のトークを「talkingの時は実行しない」(喋り中に割り込まない)という設定をしたり、音楽再生機能で連続再生をする時に「特定のステータスコードの時だけ再生中のファイルの情報を表示する」といった事が可能です。
他にも、talking中に「\C」を頭に付けたトークを割り込ませると、現在喋っているトークの末尾に追記する形でトークを続けたりなんかもできます。

#本体側の領域が設定されてない部分をつついたとき、
#Statusに、talking(喋り中)とchoosing(選択肢表示中)がない時だけメニューを表示する
*0つつかれ
>メニュー【タブ】(count、(Status)、talking)==0&&(count、(Status)、choosing)==0

Charset

(Charset)

辞書の文字コード名を返します。

R○ / Reference○

イベントのリファレンスを返します。
R0,R1,R2...と続く。半角で書いたり、Reference○の書き方でもOK。
用途は主に、イベント対応トークを作るときに、イベントの情報などを取得する。
(Rの数)でいくつR○があるか調べることが可能。

*OnGhostChanged
:(R0)さんから交代しました。

イベントの種類とどんなリファレンスがあるかはこちらを参照→Ukadoc SHIORI Eventリスト

A○

call関数で呼び出した関数側で渡した引数を参照する、A0,A1,A2...と続く (Aの数)でいくつA○があるか調べることが出来る。

*
:(call,足し算関数,100,2)

@足し算関数
(A0)たす(A1)は(han2zen,(calc,(A0)+(A1)))です!

関連→call関数

S○

SAORIの複数返り値、S0,S1,S2...と続く
(Sの数)でいくつS○があるか調べることができます。

例えばsplit関数は、関数自体は分割数を返しますが、分割した文字列をS0以降に格納します。

(split,ドンジャラ)
↓
(S0)=ド
(S1)=ン
(S2)=ジ
(S3)=ャ
(S4)=ラ

値が保持されるのは次のSAORI関数を使用するまでです。
S○をループで処理してる最中に別のSAORI関数を呼び出すとS○に入っていたデータが消えるので注意して下さい。その様な処理をしたい場合いったんS○を別の配列変数に退避しておいてから処理します。

$n【タブ】(Sの数)
 (for,0,(n)-1,(set、退避配列(C0)、(S(C0))))
 (for,0,(n)-1,(split、(退避配列(C0))、\))

H○

単語等をもう一度呼び出す。 数字がそのトークの何番目の単語かを表わす。

*
:今日の晩御飯は(オカズ)だよ!
:昨日も(H1)だったような……。
:えー、昨日は(オカズ)だったよー。
:(H3)だったのは一昨日!

C○

里々Mc146-1,Mc134-901以降で使用可。
times,while,for関数本体及びループ本文中でループカウンタとして使用。
ループが入れ子の場合、現在のループがC0,一つ上のループのカウンタがC1…Cnと参照出来ます。

Aの数 / Rの数 / Sの数

里々Mc137-2以降で使用可。

(Aの数)(Rの数)(Sの数)

それぞれの総数を出してくれる。

  • Aの数 / call関数で呼び出された文の中で渡された引数の数を取得、A0,A1…Anまであった場合(Aの数)はn+1
  • Rの数 / イベントの引数の数を取得、R0,R1…Rnまであった場合(Rの数)はn+1
  • Sの数 / 関数SAORIからの返り値の数を取得、S0,S1…Snまであった場合(Sの数)はn+1

(R0)〜(R5)まで有効なら(Rの数)は6になる。
間が抜けている場合は最後の数+1になる。

リファレンスがいくつあるかいちいち数えなくてもいい。
(loop,hoge,huga)の時の数値設定で困らなくてすむ。

他ゴーストとの連携

隣で起動しているゴースト

(隣で起動しているゴースト)

他のゴーストが同時起動していれば、その中の一体のゴースト名(\0名)になります。
誰もいなければ空っぽになります。

起動しているゴースト数

(起動しているゴースト数)

同時に起動しているゴースト数を取得します。
自分自身も含まれるので、もし自分ともう一体起動しているなら、2が返ってきます。

単に自分以外に起動しているゴーストがいるかどうかを知りたい場合は、(隣で起動しているゴースト)を使うよりこちらを使った方が確実かも知れません。

>他に誰も起動していない【タブ】(起動しているゴースト数)<2

○○の存在

(さくらの存在)

○○に確認したいゴーストの「\0名」を入れて下さい。
同時に起動しているかどうかを取得できます。いれば1、いなければ0です。

○○のサーフェス

(さくらのサーフェス)
(うにゅうのサーフェス)

○○にゴーストの名前を入れると、同時起動中のそのゴーストの現在のサーフェス値を取得できます。
\1名にも対応しているのが特徴。
多重人格ゴーストのモード判別ができる場合もあります。

トーク関連

予約トーク

(予約トーク数)
(次から○回目のトーク)
(トーク「○」の予約有無)

上から、
現在予約されているトーク数を返す。
指定した回に予約されているトークがあればそのトーク名を返す。なければ何も返さない。
指定したトークが予約されていれば1を、されていない場合は0を返す。

乱数○〜△

(乱数1〜10)

○〜△で指定された間の数値を、ランダムに取得する。

選択肢関連

それぞれ直前に選択したものが返ります。
選択肢を選んだあと、次の選択肢を選ぶまで保持されます。
さくらスクリプトの例でいうと \q[選択ラベル,選択ID] 。

選択ラベル

(選択ラベル)

選択肢の、マウスでクリックできる文章の部分。

選択ID

(選択ID)

選択肢の、クリックした時にジャンプするトーク名の部分。

選択番号

(選択番号)

インストール確認

以下のものはベースウェアから通知されるNOTIFY情報を利用するため、$NOTIFYの自動保存が有効になっている必要があります。

導入済み「○○」の存在

(導入済みゴースト「○○」の存在)
(導入済みシェル「○○」の存在)
(導入済みバルーン「○○」の存在)
(導入済みフォント「○○」の存在)
(導入済みヘッドライセンサ「○○」の存在)
(導入済みプラグイン「○○」の存在)

○○で指定したものがインストールされているかどうかを確認できます。
Mc155-1より追加。$NOTIFYの自動保存が有効になっている必要あり。

導入済みプラグイン「○○」のID

(導入済みプラグイン「○○」のID)

上記のプラグインのIDの取得。 Mc155-1より追加。$NOTIFYの自動保存が有効になっている必要あり。

使ってるぞグラフ「○○」

(使ってるぞグラフ「○○」の本体側の名前)
(使ってるぞグラフ「○○」の相方側の名前)
(使ってるぞグラフ「○○」の起動回数)
(使ってるぞグラフ「○○」の単純累計分)
(使ってるぞグラフ「○○」の起動割合)
(使ってるぞグラフ「○○」の状態)

○○で指定したものを使ってるぞグラフから参照して返します。
Mc155-1より追加。$NOTIFYの自動保存が有効になっている必要あり。

デバッグ用

countTalk

(countTalk)

全トーク数を返します。

countNoNameTalk

(countNoNameTalk)

*のみ、いわゆるランダムトーク数の合計を返します。

countEventTalk

(countEventTalk)

*On〜で始まるイベントトーク数合計を返します。

countOtherTalk

(countOtherTalk)

ランダムトーク・イベントトーク以外のトーク数合計を返します。

countWords

(countWords)

単語群の総数を返します。

countWord

(countWord)

単語の総数を返します。

countVariable

(countVariable)

変数の総数を返します。

countAnchor

(countAnchor)

アンカーの総数を返します。

countParenthesis

(countParenthesis)

辞書中のカッコの数を返します。 phase120以前は(countParentheres)なので注意。

countLine

(countLine)

トークの総行数を返します。

日時取得時に時分秒を付ける

里々では、日時取得時に「2003,6,1,12,34,56」のようになります。
これを、「2003年6月1日12時34分56秒」のように整形します。
SAORIとして、ssu.dllの中のsplitを使用しています。

*OnSNTPCompare
$時計【タブ】(split、(R1)、,)
:あちらは、(S0)年(S1)月(S2)日(S3)時(S4)分(S5)秒
$時計【タブ】(split、(R2)、,)
こちらが、(S0)年(S1)月(S2)日(S3)時(S4)分(S5)秒

*1 辞書リロード時や辞書フォルダ変更時、ネットワーク更新成功時等

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-25 (水) 21:42:56 (54d)