一体化

ソロゴーストで、\1側のバルーンを使った演出が必要になることがあります。
その場合、多くは透明な画像を\1にあてることが多いのですが、それだとドラッグ移動ができません。
その対処として、\0と\1を一体化し、ドラッグ移動時も同期する方法を記述します。

注意点

2016年に実装された機能で、SSP2.3.77以降でしか動作しません
古いバージョンのSSPを使っているユーザ環境では動かないので、配布ページなどに注意書きしておきましょう。

さくらスクリプト

\![set,sticky-window,ID,ID...]を使います。
\1に表示するサーフェスがあり、どちらかが必ず上に来なければ表示にこまる、という場合は\![set,zorder,ID,ID...]も併用すると良いでしょう。

記述例

@一体化
\1\![set,alignmenttodesktop,free]\![move,0,0,0,0,left.top,left.top]\![set,sticky-window,1,0]

\![set,alignmenttodesktop,free]はシェルのドラッグ移動での自由移動を許可するさくらスクリプトです。
初期値が下部張り付きであるため、\0側が自由移動の場合、左右にはついてくるが上下にはついてこないといった症状を起こしてしまいます。
\0側がもともと下部張り付きだったとしても、\1側が透明サーフェスであればドラッグ移動ができないため、害はありません。

\![move,0,0,0,0,left.top,left.top]はキャラクターの移動を行うスクリプトです。
最初の数字を変えると、位置を調整出来ます。
\![move,50,100,0,0,left.top,left.top]とすれば、\0の位置から見て、\1が右に50pixel下に100pixelの位置に移動します。
\![move,-20,-30,0,0,left.top,left.top]とマイナス指定すると、左に20pixel上に30pixelの位置に移動します。
どちらかがプラスでどちらかがマイナスの指定も可能です。
この位置は、Ctrl + Shift + F12でシェル位置初期化、Ctrl + Shift + F10でバルーン位置を初期化した後、Ctrl + S(要:開発者機能の有効化)でさくらスクリプトを入力して調整すると良いでしょう。

上記のスクリプト(@一体化)を一度実行すれば、ゴースト終了まで一体化します。
起動時のイベント(OnFirstBoot、OnBoot、OnGhostChanged、OnGhostCalled、OnVanishedのうち辞書内にあるもの)で呼び出すようにすると良いでしょう。

*OnFirstBoot
(一体化)(初回)
*初回
:はじめまして。

*OnBoot
(一体化)(起動)
*起動
こんにちは。

*OnGhostChanged
(一体化)(交代)
*交代
>(R0)から交代
>通常交代
*ポストから交代
:手紙はあった?
*通常交代
(R0)さんから交代しました。

これにより、\1のバルーンのみ使う場合でも、\0に追従してくれるようになります。
また、これをネットワーク更新で機能追加する場合は、ネットワーク更新成功時にも(一体化)を書く必要があります。

*OnUpdateComplete
(一体化)
>ネットワーク更新(R0)
:成功したけど(R0)だそうです。

OnUpdateCompleteは更新無しでも呼ばれ、(R0)にnoneが入るので注意してください。
今回のスクリプトであれば、\![set,sticky-window,ID,ID...]は一体化済みのスコープに行うとエラーになる(=動作しない)ため、特に問題はないでしょう。

参考

ソロゴースト向けスクリプト(外部リンク)


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-05-01 (日) 23:27:11