よく使うSAクライアント用マクロ

はじめに。

SAクライアントを使い始めてからテイマー(バードテイマー)で遊んでいる事が殆どなので、ここでご紹介するマクロはテイマー向けが多いです。
※ ペットへの発言コマンドを「発言」にしていますが、「ささやき」や「大声」などお好みでどうぞ。(筆者は「ささやき」で組んでいる事が多いです)

この記事では、「ユーザー設定」→「オプション」の「ゲームオプション」内「カーソルを待ってターゲット行動」がOFFの状態を前提にしています。
この設定がONの場合は記事中のマクロと組み方を変える必要があるかもしれません。

ターゲット関連のマクロは、「ユーザー設定」→「2D」の「2D式ターゲット」が有効になっていると動作しないと思います。

各マクロ中の遅延秒数は、環境(PCや回線のスペックなど)によって調整する必要があるかもしれません。

SAクライアントのマクロに慣れていない方は、下記 2つの記事をまずご覧ください。

よく使うマクロ

マクロに組み込むと便利なコマンド

自分の頭上にテキストを表示

「発言」や「ささやき」などとは違い頭上に文字を表示するだけなので、ハイド・インビジは解けませんし、その文字は他人には見えません。
長めのマクロを組んだ時に最後に入れておいて、マクロの終了を分かりやすい様にするなど。

  • [その他]コマンド行動[その他]コマンドscript WindowUtils.SendOverheadText( L"== Overhead Text ==" , 255, true)

== Overhead Text ==の部分が表示される文字です、お好きな文字を入力してください。(全角文字は文字化けします)
255はHueID(半角数字)です。参考: 255は薄黄色、1152は青、33は赤。
最後の 
true はログにも文字を出力させる場合。出力しなくて良いなら false で。


アイテムルート関連

棺桶を開いてルートする

  1. [ターゲット]次のオブジェクトを選択行動[ターゲット]次のオブジェクトを選択
  2. [その他]コマンド行動[その他]コマンドscript ContainerWindow.OpenedCorpse = WindowData.CurrentTarget.TargetId
  3. [ターゲット]指定したオブジェクトを使用行動[ターゲット]指定したオブジェクトを使用
  4. [その他]遅延行動[その他]遅延0.1
  5. [その他]Vacuum行動[その他]Vacuum

※ 2.のコマンドは必須ではありません。「ユーザー設定」→「オプション」→「死体を非表示にする」にチェックを入れている場合、このコマンドを入れておくことでマクロから棺桶を開いた時にもその棺桶のオブジェクトハンドルを非表示にします。
※ 新しい棺桶が開かない場合もあります。その際はこのマクロを何度か実行するか諦めてオブハンから開きましょう・・・。

皮剥ぎ&棺桶ルート

※ 要ClifeUI。 皮剥ぎ後に棺桶を開くのに再度現在のターゲットを有効にし直す必要があるため。皮剥ぎだけ(下記1.~2.まで)なら標準UIでも可能。

  1. [ターゲット]次のオブジェクトを選択行動[ターゲット]次のオブジェクトを選択
  2. アイテム 収穫祭のナイフ、肉屋のクリーバー、皮を剥げる適当な刃物などターゲット:現在の対象
  3. [その他]遅延行動[その他]遅延1.1
  4. [その他]コマンド行動[その他]コマンドscript ClfActions.clickLastTarget()
  5. [その他]コマンド行動[その他]コマンドscript ContainerWindow.OpenedCorpse = WindowData.CurrentTarget.TargetId
  6. [ターゲット]指定したオブジェクトを使用行動[ターゲット]指定したオブジェクトを使用
  7. [その他]遅延行動[その他]遅延0.1
  8. [その他]Vacuum行動[その他]Vacuum

騎乗ペット

ペットの乗り降り

乗り降りと言うより、騎乗していたら降りる or 騎乗していなければ乗るマクロ。

  1. [騎乗生物]ペットから降りる行動[騎乗生物]ペットから降りる
  2. [コミュニケーション]発言行動[コミュニケーション]発言all stop
  3. [コミュニケーション]発言行動[コミュニケーション]発言all follow me
  4. [ターゲット]最も近いパーティメンバをターゲット行動[ターゲット]最も近いフォロワーをターゲット ※※ クライアント内の表記では誤訳(?)で「最も近いパーティメンバをターゲット」となっている。本当の「最も近いパーティメンバーをターゲット」とはアイコンが違うので注意。
  5. [ターゲット]指定したオブジェクトを使用行動[ターゲット]指定したオブジェクトを使用

※ 2. と 3. は必須ではありません。(ペットが戦闘中でも乗れるようにしています。)
※ 騎乗状態から降りてペットに乗るのを1回のマクロ実行で済ませたい場合は 1.~4. の間のどこかに 1.0程度の遅延が必要。
※ 複数のペットを連れる場合は、4. を 行動[Pet Targeting]の「Target Default Pet  ○」または[騎乗生物]の「○○をターゲット」にした方が確実。(その場合は騎乗ペットごとにマクロを組むか、ペットを変更するたびに対象の登録を変更する)


テイマー向け

参考:よく使う発言コマンド

詳しくは公式サイトなどでご確認ください。

{petName} はペットの名前(スペースを含む名前は無効)、または all (全ての連れているペットへ)。(allが無効なコマンドも有ります)

ペット用:
  • 攻撃: {petName} kill
  • 攻撃を中止: {petName} stop
  • ガード: {petName} guard me
  • 追尾: {petName} follow
  • 飼い主を追尾: {petName} follow me
  • その場で待機: {petName} stay
  • 飼い主の所まで来させる(多少の障害は回避する){petName} come
  • 持ち物を地面に置かせる(パックアニマル以外の親愛化ペット){petName} drop
厩舎用:
  • ペットを預ける: stable
  • ペットを引き出す: claim {petName}
  • ペット一覧から引き出す: claim {預けたペット名以外の単語}
  • 厩舎スロット数確認: stablecount

現在の対象をテイムする

怒りモードありのペットを調教するときに。

  1. Taming [調教]スキル Taming[調教]ターゲット:現在の対象
  2. Taming [調教]1.を、繰り返したい回数分登録筆者は30回分ほど登録してます
  3. [その他]コマンド行動[その他]コマンドscript WindowUtils.SendOverheadText( L"==== END Tame Skill ====" , 255, true)

※ 2. の繰り返しはリピート機能では無く、繰り返す回数分だけマクロに登録。
※ 3. は必須ではありません。2.の繰り返し終了を分かりやすくしているだけ。

 

近くの敵をペットで攻撃

※ 1. は必須ではありません。周囲に敵がいない時にマクロを実行した時に(ペットやPCなどが現在の対象になっていた場合に)攻撃しないようにするための誤爆よけ。

標準UI用
  1. [ターゲット]Target by Type行動[ターゲット]Target by Typeスペルブックなど、必ずカバンに入っている物を設定しておく
  2. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  3. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  4. [ターゲット]最も近い敵をターゲット行動[ターゲット]最も近い敵をターゲット
  5. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
ClifeUI使用時

script ClfActions.convTargetToEnemy() コマンドを使用すると、ネームカラーに関わらず、ペットや、PCが召喚したmobは対象から除外してターゲットするようになります。

  1. [ターゲット]Target by Type行動[ターゲット]Target by Typeスペルブックなど、必ずカバンに入っている物を設定しておく
  2. [ターゲット]最も近い敵をターゲット行動[ターゲット]最も近い敵をターゲット
  3. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  4. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  5. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
  6. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット

 

複数の敵をペットで攻撃

(ペットに重なっていられない時など)本体がタゲられない様に周囲の敵のタゲをペットに取らせる。
こちらも 1.は必須ではありません。(誤爆よけ)
※ ターゲット後の遅延は不要ですがなんとなく入れてあります^^;

標準UI用
  1. [ターゲット]Target by Type行動[ターゲット]Target by Typeスペルブックなど、必ずカバンに入っている物を設定しておく
  2. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  3. [ターゲット]最も近い敵をターゲット行動[ターゲット]最も近い敵をターゲット
  4. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  5. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
  6. [その他]遅延行動[その他]遅延0.1
  7. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  8. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  9. [ターゲット]次の敵行動[ターゲット]次の敵
  10. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
  11. [その他]遅延行動[その他]遅延0.1
  12. 7.~11.を好きな回数分だけ登録
  13. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  14. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  15. [ターゲット]最も近い敵をターゲット行動[ターゲット]最も近い敵をターゲット※ 最後に一番近い敵を攻撃する様にしておく。
  16. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
ClifeUI使用時

こちらも「近くの敵をペットで攻撃」と同様に、ネームカラーに関わらず、ペットや、PCが召喚したmobは対象から除外してターゲットします。

  1. [ターゲット]Target by Type行動[ターゲット]Target by Typeスペルブックなど、必ずカバンに入っている物を設定しておく
  2. [ターゲット]最も近い敵をターゲット行動[ターゲット]最も近い敵をターゲット
  3. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  4. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  5. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
  6. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
  7. [その他]遅延行動[その他]遅延0.1
  8. [ターゲット]次の敵行動[ターゲット]次の敵
  9. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  10. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  11. [その他]コマンド行動[その他]コマンドscript ClfActions.nearTarget( 2 )
  12. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
  13. [その他]遅延行動[その他]遅延0.1
  14. 8.~13.を好きな回数分だけ登録※ その際、11.の script ClfActions.nearTarget( 2 ) の括弧内の数字は繰り返す数の分だけ増やす。(入れた数字番目に近い敵をターゲットします)
  15. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  16. [ターゲット]最も近い敵をターゲット行動[ターゲット]最も近い敵をターゲット※ 最後に一番近い敵を攻撃する様にしておく。
  17. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  18. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
  19. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット

 

現在のターゲットにフォロー&攻撃

攻撃開始後に対象がハイド・インビジした際、ペットが自分の所に戻ってこないように対象をフォローさせてから攻撃するマクロ。

ClifeUIが有効なら 3. と 7. のコマンドで、現在のターゲットが敵性では無い場合には一番近い敵をタゲる様になる。(標準UI時はこのコマンドを省略してマクロを組む。)

  1. [コミュニケーション]発言行動[コミュニケーション]発言all follow
  2. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  3. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
    ※ 要ClifeUI。標準UI時はこのコマンドを省略する。
  4. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット
  5. [コミュニケーション]発言行動[コミュニケーション]発言all kill
  6. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  7. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
    ※ 要ClifeUI。標準UI時はこのコマンドを省略する。
  8. [カーソルターゲット]現在のターゲット行動[カーソルターゲット]現在のターゲット

 

ペットに包帯&GH

※ 1. 2. は必須ではありません。1. はペットが近くにいない時に誤って敵にGHを掛けないようにする誤爆よけ、 2. はペットの体力が減っていない場合でもペットを対象にするため。

  1. [ターゲット]Target by Type行動[ターゲット]Target by Typeスペルブックなど、必ずカバンに入っている物を設定しておく
  2. [ターゲット]最も近いパーティメンバをターゲット行動[ターゲット]最も近いフォロワーをターゲット ※※ クライアント内の表記では誤訳(?)で「最も近いパーティメンバをターゲット」となっている。本当の「最も近いパーティメンバーをターゲット」とはアイコンが違うので注意。
  3. [ターゲット]重傷を負っているフォロワーをターゲット行動[ターゲット]重傷を負っているフォロワーをターゲット
  4. Greater Heal(回復-強)[Magery]魔法 Greater Heal(回復-強)ターゲット:現在の対象
  5. [アイテム/能力]包帯治療-選択対象行動[アイテム/能力]包帯治療-選択対象

 

ペットにキュア&包帯

ClifeUIが有効の時は 4. のコマンドで毒状態のペットを優先してターゲットします。(標準UI時はこのコマンドを省略してマクロを組む。)

  1. [ターゲット]Target by Type行動[ターゲット]Target by Typeスペルブックなど、必ずカバンに入っている物を設定しておく
  2. [ターゲット]最も近いパーティメンバをターゲット行動[ターゲット]最も近いフォロワーをターゲット ※※ クライアント内の表記では誤訳(?)で「最も近いパーティメンバをターゲット」となっている。本当の「最も近いパーティメンバーをターゲット」とはアイコンが違うので注意。
  3. [ターゲット]重傷を負っているフォロワーをターゲット行動[ターゲット]重傷を負っているフォロワーをターゲット
  4. [その他]コマンド行動[その他]コマンドscript ClfActions.poisonedFriendly( nil, 1, 1 )
    ※ 要ClifeUI。標準UI時はこのコマンドを省略する。
  5. Arch Cure[Magery]魔法 Arch Cureターゲット:現在の対象
  6. [アイテム/能力]包帯治療-選択対象行動[アイテム/能力]包帯治療-選択対象

 

ペットが攻撃を拒むタイプの敵(現在の対象)に攻撃させる

ペットにガード命令を出してから、自分が対象に攻撃を仕掛けてタゲを取ることでペットに対象を攻撃させます。(ペットが戦闘中は大抵効果がありません・・・ペットの戦闘が終わるまで待つかストップさせましょう^^;)
※ 1. のインビジが不要の場合は、3. の遅延は無しでOK。

ClifeUIが有効の時は 4. のコマンドで、現在のターゲットが敵性では無い場合には一番近い敵を対象とする様になる。(標準UI時はこのコマンドを省略してマクロを組む。)

  1. Invisibility[Magery]魔法 Invisibilityターゲット:自分自身
  2. [コミュニケーション]発言行動[コミュニケーション]発言all guard me
  3. [その他]遅延行動[その他]遅延0.9 ※FCによって調整した方がベター
  4. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
    ※ 要ClifeUI。標準UI時はこのコマンドを省略する。
  5. [戦闘]現在のターゲットを攻撃行動[戦闘]現在のターゲットを攻撃
  6. [その他]遅延行動[その他]遅延0.2
  7. [戦闘]ピース行動[戦闘]ピースインビジが成功すればピース状態になるけど一応

シャドウガード

リカーの瓶や護符を拾うのには、(マクロとは違いますが)メインメニュー「Agents Settings」→「Scavenger」を使うと便利です。(※ エージェントにアイテムを登録する際は、アイテム名を英語表記にしてから行う事)

バー:リカーの瓶を現在の対象に投げる

現在の対象にアイテムを使用するタイプの基本的なマクロの一例です。

ClifeUIが有効の時は 1. のコマンドで、現在のターゲットが敵性では無い場合(=海賊じゃない場合)には一番近い敵を対象とする様になる。(標準UI時はこのコマンドを省略してマクロを組む。)

  1. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
    ※ 要ClifeUI。標準UI時はこのコマンドを省略する。
  2. アイテム リカーの瓶ターゲット:現在の対象

※ バーに置かれるリカーの瓶と、色と形が同じ酒瓶がカバンに入っているとその酒瓶もマクロでの使用対象になってしまうので注意。持って行くお酒は色 or 形が違う物を選びましょう ^^;
※ お酒の代わりにシャンパンフルートグラスを持って行くのが良いのでしょうけど、筆者は持っていません。残念!

 

武具屋:堕落した護符を浄化する

登録したオブジェクトに対してアイテムを使用するタイプの基本的なマクロの一例です。

武具屋に入ったらまず「Store Default Object 1」を実行して「浄化の炎」を登録。(武具屋に入るごとに浄化の炎のIDが変わる為)

  • [オブジェクトをターゲットしています]Store Default Object 1行動[オブジェクトをターゲットしています] Store Default Object 1

「堕落した護符」を拾ったら、登録した「浄化の炎」の近くで下記マクロを実行。

  1. アイテム 堕落した護符ターゲット:カーソル表示
  2. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  3. [オブジェクトをターゲットしています]Target Default Object 1行動[オブジェクトをターゲットしています] Target Default Object 1

※ リピート機能にチェックを入れてリピート回数を設定しておくと、1回の実行で複数個浄化出来ます。
※ マクロの組み方を変えて、「堕落した護符」のターゲットを「現在のターゲット」にしたタイプも試してみましたが、筆者の環境ではうまく動きませんでした。

 

シャドウガードから出る

コンテキストメニューの「シャドウガードから出る」と同じ。
シャドウガード内でこのコマンドを実行するとシャドウガードから出るかどうかのガンプが出ます。(要はワンクリック早い&ホットキーが割り当てられる様になるだけ)

  • [その他]コマンド行動[その他]コマンドscript ContextMenu.RequestContextAction( WindowData.PlayerStatus.PlayerId, 362 )

オブジェクトハンドルフィルター

行動[その他]の「Switch Object Handle」のプルダウンメニューで選べる項目を、1クリックで選択&ホットキーを割り当てられる様に。

フィルターを「デフォルト」にする

  1. [その他]コマンド行動[その他]コマンドscript SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eDynamicFilter
  2. [その他]コマンド行動[その他]コマンドscript UserSettingsChanged()

その他のフィルター

その他のフィルターを設定する場合は、上記1. のコマンドを下記と置き換える。

  • 死体: script SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eCorpseFilter
  • NPC: script SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eNPCFilter
  • NPCベンダー: script SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eNPCVendorFilter
  • 移動型ターゲット: script SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eMobileFilter
  • アイテムのみ: script SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eItemsOnlyFilter
  • Lost Items Only: script SystemData.Settings.GameOptions.objectHandleFilter = SystemData.Settings.ObjectHandleFilter.eLostItemsOnlyFilter

おまけ:ClifeUI有効時に使えるちょっと便利なマクロ

ClifeUIを有効にしている時に使えるちょっと便利なマクロを少しだけご紹介。

対象が呪文の射程に入ったらターゲット解放

※ 1.は現在の対象が敵性では無い時に一番近い敵をターゲットする様にします。敵性mob以外も対象にしたい場合などは、1. を省略。
※ 4. のコマンドで、対象が呪文の射程に入るとターゲットします。(「Mind Blast」以外でもターゲットが出るタイプの呪文ならOKです)

  1. [その他]コマンド行動[その他]コマンドscript ClfActions.convTargetToEnemy()
  2. Mind Blast[Magery]魔法 Mind Blastターゲット:カーソル表示
  3. [カーソルターゲット]ターゲットカーソルの表示を待つ行動[カーソルターゲット]ターゲットカーソルの表示を待つ
  4. [その他]コマンド行動[その他]コマンドscript ClfActions.waitTargetRange()

今回はここまで!
最後までご覧いただき、ありがとうございました。

“よく使うSAクライアント用マクロ”への4件のコメント

  1. おおおお、SAクラ使いにはありがたいマクロ集ですね^-^
    ここまで丁寧に解説してもらえたら、わたしにもできそう!w
    (過去にあちこち探しまわって、かなり苦労したので…^^;

    ぜひとも戦士を極めて便利マクロを公開してくださいm(_ _)m

    1. コメントありがとうございます!

      なるべく分かりやすい様に書いたつもりなのでそう言っていただけると嬉しいです ^^

      戦士は・・・最近戦士を使ったのって金鉱石集めに金エレ狩ってたくらいなので。。。
      「こんな事出来るかな~?」なんてアイデアあったらこっそり(じゃなくてもいいので)教えてくださいw

      1. えーと、EMイベでボスタゲ取れるマクロとか?w
        (わたしEMイベ参加してないし、公開しちゃったらみんな同じ条件だから意味ないかw

        お恥ずかしい話ですが、2DとSAでオブハンの使い方が違うみたいなので、そこらの解説(と便利マクロw)をこっそり教えてください^ー^
        ※DOOM死亡時に自分の死体を探すのに四苦八苦しております^^;

        1. またまたコメントありがとうございます!

          EMイベントは一度も参加した事が無いので分からないんですが、
          SAクライアントなら(対象が画面無内にいれば)Mobileヘルスバーが出るので、
          それをターゲットする感じでいけるような気もしますがどうなんでしょう・・・

          ボスの名前が通常のmobと必ず違う、って事なら、
          UIに含まれている名前データ以外のMobのヘルスバーをドラッグ or and クリックする、
          くらいならカスタムUIに機能追加すれば出来ますが実際どうなのかわからないのでなんともw

          あと、オブハンって2DとSAでそんなに違いましたっけ?
          (最近は2D殆ど使ってないので・・・ちょっと2D立ち上げてオブハン出して見た感じでは分かりませんでした ^^;)
          SAだとフィルターが設定出来るくらいで後は同じだと思ってたんですけど、
          2Dなら出来るけどSAだと出来ない事とか、その辺の違いを今度(コメントでもいいです)教えてください ^^;

          とりあえず、死体を探すときは、
          行動[その他]の「Switch Object Handle」から(またはこのページにあるオブジェクトハンドルフィルター用コマンドで)
          フィルターを「死体」にセットすると多少は探しやすいかと思います(モンスの死体も一緒に出ちゃうので結局分からないかもですが・・・)

コメントを残す

※ 送信されたコメントは、管理者の承認後に公開されます。