複数のシェルを使ったり、特定のシェルによって分岐が必要になる時に。




概要

現時点では里々に使用中のシェル名を取得する機能は備わっていません。
なので、SSPの機能を利用して、使用中のシェル名を得る事になります。

記述例

以下は、いずれも変数(現在のシェル)に使用中のシェル名を格納する方法の例です。好みで選択して下さい。
いずれかの方法で値を保存したら、後は分岐する箇所で(現在のシェル)を使用して下さい。

OnNotifyShellInfo

SSP専用。Notifyイベントなのでトークはできませんが、逆に言えば変数処理を行うにはうってつけのイベントです。

*OnNotifyShellInfo
$現在のシェル【タブ】(R0)

OnShellChanging

シェル変更を指示された時に通知されるイベントです。

*OnShellChanging
$現在のシェル【タブ】(R0)

OnShellChanged

シェルの変更を完了した時に通知されるイベントです。

*OnShellChanged
$現在のシェル【タブ】(R0)

プロパティシステム

あまり一般的な方法ではないため詳細は割愛します。
これはプロパティシステムを参照するさくらスクリプトを実行し、独自イベントを発生させる→独自イベントのリファレンスで目的の値を保存、と2つステップを踏む必要があり、単純に作成に手間がかかるからです。

使用例

*0Headつつかれ【タブ】(現在のシェル)==master
:パリィ!

これでmasterシェルの時だけ出現する頭つつき反応になります。
条件式をより正確にするならssuのcompareを使い (compare,(現在のシェル),master) とすると良いでしょう。

どのイベントを使うのか?

基本的にはどれを選んでも大丈夫です。
面倒だから俺は全部記述するぜ!でも構いませんが、実用上はどれか一つで十分です。

なお、それぞれの大きな違いは通知されるタイミングです。
早い順に並べるとこうなります。

  1. OnShellChanging
  2. OnNotifyShellInfo
  3. OnShellChanged

従って、2と3のタイミングで変数を格納している場合、1=OnShellChangingイベント中に(現在のシェル)を使おうとすると値が間に合いません。
この観点で考えると、OnShellChangingが最も有効かもしれません。
とはいえ、この場合は(R0)で値を参照すれば良いだけの話なので、やはりどれを選んでも困る事はないでしょう。

なお、OnNotifyShellInfoに関してはゴースト起動時にも通知されるメリットもあります。
特に動作テストを行う際にシェル変更指示をしなくても良いので、ゴースト制作時に役立つかも知れません。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-02-28 (水) 05:15:22 (264d)