VacuumとScavengerにちょっとした動作を追加しました
登録したアイテムをルートする(マクロでも使える)Vacuumと、登録したアイテムをオブジェクトハンドル(以下、オブハン)表示時に拾うScavenger。どちらもSAクライアントの特徴的な便利機能ですよね。
そんな二大(?)便利機能ではありますが、こうなってたら良いのになぁ、なんて動作をClifeUIに組み込んでみました。
動作を追加するついでに、(基本動作はなるべく変わらないように)スクリプトを変更していますので、もしかしたら多少は軽快に動くかも??(とは言え、約1秒ごとにしか動かない物なので筆者の環境では違いはよく分かりませんでしたが ^^;)
※ スクリプトを変更と言っても、物理的にファイルを上書きするのでは無く、カスタムUI側で関数名等を置き換えているだけなので、インターフェースの選択を標準UI(デフォルト)に戻すと標準の動作に戻ります。
※ Vacuum、Scavenger周りは以前から手を付けていたのですが、アイテムのドラッグ&ドロップはクライアントクラッシュの原因になりやすい様なので、公開まで時間が掛かってしまいました。。。
Vacuumの追加動作
Vacuumはとっても便利なのですが、ルートし終わったタイミングが分かり難く、プレイヤーが所持出来る重量・アイテム数を超えても(手動で止めない限りは)動作し続けるのが若干使いにくく感じていました。
そんなワケで下記の動作を追加しました。
※ 行動→その他→Vacuumが動作の対象です。コンテナウィンドウのOrganizerボタンでの動作は対象外です。
- プレイヤーが所持できるアイテム数上限(125個)になったらVacuumを停止する。
- プレイヤーが持ち運べる重量上限以上になったらVacuumを停止する。(後述の設定で無効に出来ます)
- Organizerの「Auto-Close Container」をオンにしている時は、Vacuum終了時に棺桶コンテナを閉じる。(後述の設定で無効に出来ます)
- Vacuum終了時や、プレイヤーが所持できるアイテム数・持ち運べる重量の上限に近づいたら頭上テキストを表示する。(後述の設定で無効に出来ます)
- Vacuum対象のアイテムがゴールドの場合は、バックパック第一階層にドロップする。(後述の設定で無効に出来ます)
- Vacuum実行中に再度Vacuumを呼び出した場合でも、Vacuumを停止しない。
1. プレイヤーが所持できるアイテム数上限になったらVacuumを停止する。
オーガナイザー用のバッグ(アイテムをドロップするコンテナ)がプレイヤーのバックパック自体、もしくは、プレイヤーが所持しているコンテナの場合は、Vacuum実行中にプレイヤーの所持アイテム数が125個になるとVacuumを停止します。
2. プレイヤーが持ち運べる重量上限以上になったらVacuumを停止する。
オーガナイザー用のバッグ(アイテムをドロップするコンテナ)がプレイヤーのバックパック自体、もしくは、プレイヤーが所持しているコンテナの場合は、Vacuum実行中にプレイヤーの所持重量が持ち運べる重量上限※以上になるとVacuumを停止します。
※ バックパックに入れられる限界重量では無く、STRに依存する最大重量。
設定の切り替えは下記コマンドから行います。(設定はキャラクターごとに保存されます)
または /script ClfSettings.toggleAbortVacuum() と発言(チャット画面で入力)でもOKです。
コマンドを実行すると、頭上に Abort Vacuum: ON (または OFF )と表示されます。
初期状態は ON になっています。
3. Organizerの「Auto-Close Container」をオンにしている時は、Vacuum終了時に棺桶コンテナを閉じる。
Vacuum開始時に有効なOrganizerの「Auto-Close Container」がオンの場合は、Vacuum終了時に棺桶のコンテナを閉じます。
※ アイテム数が多い棺桶だとコンテナ内容のデータが反映されるまでに遅延があるようで、棺桶を開いた直後にVacuumを実行すると、(Vacuum対象のアイテムが無いとみなされ)即コンテナが閉じてしまう場合があります。
※ 前述の、アイテム数・重量オーバーでVacuumを停止した場合には、コンテナを閉じません。
Vacuum対象のアイテムが無くなったコンテナごとに閉じるようにしようかとも思いましたが、個人的にはあまり重要な機能ではない事もあってスクリプトのパフォーマンスを優先しちゃいました ^^;
設定の切り替えは下記コマンドから行います。(設定はキャラクターごとに保存されます)
または /script ClfSettings.toggleCloseContainerOnVacuum() と発言(チャット画面で入力)でもOKです。
コマンドを実行すると、頭上に Close Container on Vacuum: ON (または OFF )と表示されます。
初期状態は ON になっています。
コンテナウィンドウの Organizerボタンから実行した時はコンテナを閉じたいけど、Vacuumの時は閉じたくない、なんて場合などに OFF にすると良いと思います。
※ この設定が ON になっていても、Organizerの「Auto-Close Container」が無効ならコンテナは閉じません。
4. Vacuum終了時や、プレイヤーが所持できるアイテム数・持ち運べる重量上限に近づいたら頭上テキストを表示する。
Vacuumが便利すぎて、気がつくと重量やアイテム数が上限になってたりするので(筆者だけ・・・?)上限にある程度近づいた時などにメッセージを表示する様にしてみました。
以下の条件で各頭上テキストを表示します。(テキストは他人からは見えません)
- Vacuumが終了した時(通常時): === END Vacuum ===
- アイテム数オーバーでVacuumが停止した時: === STOP Vacuum: ItemNum Limit ===
- 重量オーバーでVacuumが停止した時: === STOP Vacuum: Weight Limit ===
- 所持アイテム数が110を超えた時: === Alert, ItemNum: {現在のアイテム数} / 125 ===
- 所持重量が持ち運べる重量の88%を超えた時: === Alert, Weight: {現在の重量} / {持ち運べる重量} ===
頭上テキストを表示するかどうかの切り替えは下記コマンドから行います。(設定はキャラクターごとに保存されます)
または /script ClfSettings.toggleVacuumMsg() と発言(チャット画面で入力)でもOKです。
コマンドを実行すると、頭上に Vacuum Msg: ON (または OFF )と表示されます。
初期状態は ON になっています。
5. Vacuum対象のアイテムがゴールドの場合は、バックパック第一階層にドロップする。
Vacuum対象のアイテムがゴールドで、オーガナイザー用のバッグ(アイテムをドロップするコンテナ)がプレイヤーが所持しているコンテナの場合は、オーガナイザー用バッグの設定に関わらず、バックパック第一階層にドロップします。
(Loot Bagを設定している場合でも棺桶内のゴールド右クリックで第一階層にドロップされるのと動作を合わせました)
設定の切り替えは下記コマンドから行います。(設定はキャラクターごとに保存されます)
または /script ClfSettings.toggleDropGoldToBP() と発言(チャット画面で入力)でもOKです。
コマンドを実行すると、頭上に Drop Gold to BP: ON (または OFF )と表示されます。
初期状態は ON になっています。
※ 後述のScavenger用と共通設定(コマンドも同じ)です。
6. Vacuum実行中に再度Vacuumを呼び出した場合でも、Vacuumを停止しない。
標準UIでは、Vacuum実行中に再度Vacuumを呼び出すとVacuumを停止しますが、この動作をやめました。
標準UIだと停止するまで時間が掛かるようなケースでもClifeUIのVacuumではすぐに停止する様にしてあるため、この動作を不要と判断しました。
# Vacuum再実行で停止する動作が煩わしく感じる事の方が多いため。
その代わり、Vacuumを停止する以下のコマンドを追加しました。
上記コマンドを実行すると、Vacuumを停止します。
(恐らく不要なコマンドと思いますが念のため)
Scavengerの追加動作
Scavengerについては下記の動作のみ追加しました。
(オブハン表示を中止すれば止まる物なので、アラート等の頭上テキストは不要かな、と)
- Scavenger対象のアイテムがゴールドの場合は、バックパック第一階層にドロップする。(後述の設定で無効に出来ます)
- オブハンが表示されている全アイテムをScavenger対象にする設定を追加。
1. Scavenger対象のアイテムがゴールドの場合は、バックパック第一階層にドロップする。
上記Vacuumと動作・設定方法ともに同じです。
対象アイテムがゴールドの時は、Scavenger用バッグの設定に関わらず、バックパック第一階層にドロップします。
設定の切り替えは下記コマンドから行います。(設定はキャラクターごとに保存されます)
または /script ClfSettings.toggleDropGoldToBP() と発言(チャット画面で入力)でもOKです。
コマンドを実行すると、頭上に Drop Gold to BP: ON (または OFF )と表示されます。
初期状態は ON になっています。
※ 前述のVacuum用と共通設定(コマンドも同じ)です。
2. オブハンが表示されている全アイテムをScavenger対象にする設定を追加。
この設定を有効にすると、(オブハンのフィルター設定に準じて)オブハンが表示されているプレイヤーから2マス以内の全てのアイテムに対してドラッグ&ドロップを試みます。(mobは除外されます)
オブハンが表示されていれば、ロックダウンされているアイテムやフィールド上に固定されているアイテムなども対象になってしまうので、普段は無効にしておく事をオススメします ^^;(ログが「それを持ち上げることはできません。」であふれる事になるかと)
使い道としては、フィールド上に落ちている遺失物やクエストアイテムなどを探す時に有効にしておくと多少は楽になるんじゃないかと。(クエストアイテムはともかく、遺失物をScavengerに登録するのは無理がありますよね)
設定の切り替えは下記コマンドから行います。(設定はキャラクターごとに保存されます)
または /script ClfSettings.toggleScavengeAll() と発言(チャット画面で入力)でもOKです。
コマンドを実行すると、頭上に Scavenge All: ON (または OFF )と表示されます。
初期状態は OFF になっています。
今回の更新内容は以上です。
カスタムUIのダウンロードはこちらのページからどうぞ。