2025/9/17 煩雑になった記事をわかりやすく整理中

【Mote-libs】オリジナル共通ファイル

各ジョブのメンテナンス性を向上させるために、重複する処理を共通ファイルにまとめました。

このファイルはWindower\addons\GearSwap\data\user-globals.luaに保存します。

このファイルはGearSwapが自動でロードしてくれますので、自分で読み込む必要はありません。

目次

機能一覧

user_setup

  • 睡眠監視
  • 定義ファイル読み込み
    • 属性帯定義ファイル読み込み
    • 青魔法のスペルマップ再定義
      • 物理系青魔法:BluePhysical
      • 魔法系青魔法:BlueMagical
      • 弱体系青魔法:BlueMagicAcc
      • 回復系青魔法:BlueHealing
      • 強化系青魔法:BlueBuff
    • 召喚魔法のスペルマップ再定義
      • 回復履行:AvatarCure
      • バフ履行:AvatarBuffWard
      • デバフ履行:AvatarDeBuffWard
      • 物理履行:AvatarPhysicalPacts
      • 魔法履行:AvatarMagicalPacts
    • ウェポンスキルの定義(この定義を使う場合、装備定義ファイルでinit_weapon_skill()を指定する必要あり)
    • ファントムロール情報読み込み
  • ジョブチェンジ時にモグマスターからアイテム取り出し
  • チャットモードを/pに切り替え
  • 待機装備に着替え、ロックスタイルを固定

user_post_pretarget

  • ファントムロール使用時にロール情報出力

user_buff_change

  • バフ・デバフ変更時の処理
    • 睡眠自動起床(gear.Slipの定義が必要)
  • バフ効果切れ通知
    • ファランクス
    • 八双
    • 星眼
    • 心眼
    • コルア
    • ヴァレション
    • ヴァリエンス

customize_melee_set

  • 二刀流係数に応じた抜刀装備に自動着替え
    • サポ忍時はsets.engaged.dual11の定義が必要
    • サポ踊時はsets.engaged.dual21の定義が必要

user_customize_weapon_set

  • アクション後にStateで指定中の武器へ自動持ち替え

job_self_command

  • 共通カスタムコマンド
    • 待機攻撃装備へ強制着替え(gs c Idle)
    • 状態異常回復(gs c Medicine)
      • 死の宣告・呪い→麻痺→静寂→毒→病気→パナケイア系→暗闇の優先度
      • 聖水:死の宣告、呪い(sets.HolyWater定義が必要)
    • アスピルマクロ節約コマンド(gs c aspir)
      • アスピル3→アスピル2→アスピル1の優先度
    • ドレインマクロ節約コマンド(gs c drain)
      • ドレイン3→ドレイン2→ドレイン1の優先度
    • 単体ヘイトアップ節約コマンド(gs c Enmity)
      • フラッシュ→ジェタチュラ→ブランクゲイズ→挑発→スタン→アブゾタックの優先度
    • 範囲ヘイトアップ節約コマンド(gs c EnmityRange)
      • フライトフルロア→ガイストウォール→スティキングガス→サペリフィック→シープソング→ポイゾガの優先度
    • 学者用ロックスタイル固定(gs c lockstyleset)

その他

  • 被強化バフを受けた際の自動着替え
    • リジェネ(sets.midcast.Regeneratedの定義があれば)
    • ファランクス(sets.midcast.Phalanxの定義があれば)
    • リフレシュ(sets.midcast.Refreshの定義があれば)
    • プロテス(sets.midcast.Protectの定義があれば)
    • シェル(sets.midcast.Shellの定義があれば)

コメント

コメント一覧 (8件)

  • いつもお世話になっております

    コメントアウトしてあるので影響は無いですが
    437 –遠隔物理ダメージ:sets.precast.WS.Damage になってます

    ページは違いますが
    暗黒の 87 sets.precast.WS.wsd = { になってます

    共通ファイルはすごく便利ですね 参考にさせて頂いてます これからも頑張ってください

  • こんにちは。毎回とても参考になるコードをありがとうございます。
    アスピルマクロの変数に誤値らしき部分がありましたのでご報告までに。

    145行~147行の変数 recast_time_* と 149行~154行までの変数が一致しておりません。
    149行の条件分岐でサポ暗でないとアスピルIIIを使わないようになっています。(A3は黒風)

    145 local recast_time_3 = recasts[881]/60
    146※ local recast_time_2 = recasts[248]/60
    147※ local recast_time_1 = recasts[247]/60

    149※ if recast_time_3 == 0 and player.sub_job == ‘暗’ then
    150 send_command(‘input /magic ‘..windower.to_shift_jis(‘アスピルIII’)..’ ‘)
    151※ elseif recast_time_a2 == 0 then
    152 send_command(‘input /magic ‘..windower.to_shift_jis(‘アスピルII’)..’ ‘)
    153※ elseif recast_time_a1 == 0 then
    154 send_command(‘input /magic ‘..windower.to_shift_jis(‘アスピル’)..’ ‘)
    155 else

    素晴らしいコードを公開してくれている貴方に感謝を。

    • ご連絡ありがとうございます。
      あまり使わない部分でしたのでバグってました。
      該当ジョブのみ使えるように修正反映しております。

  • FF11は勿論楽しいのですが、
    最近はその楽しみに加えて、luaへの理解を深めたり、作る楽しみが増えました。
    ありがとうございます。

    初歩的な質問で申し訳ありません
    user-globals.lua の中で job_self_command を使用されています
    各ジョブの.luaの中では job_self_command は使用できないという理解でよろしいのでしょうか

    • luaいじるの楽しいですよね。
      私もFF11と同じくらいlua触るのが楽しいです。

      ご質問の件ですが、ご認識の通りジョブファイルではjob_self_commandを使えません。
      user_self_commandが使えれば良かったのですが、Mote-libsで定義されていないので、custom_self_commandをジョブファイルに定義することで同じように使うことができます。
      学者のコードで実装していますので、参考にしてみてください。

管理人 へ返信する コメントをキャンセル

目次